aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario Vavti <mario@mariovavti.com>2019-03-08 11:52:57 +0100
committerMario Vavti <mario@mariovavti.com>2019-03-08 11:52:57 +0100
commit8ecdde6cb573ace776b472046388bb046dc59451 (patch)
treef568af943a17c3156adf2d34477cd424bc24bd94
parent90fd323ac54619766feedf699e5f53fce04fc295 (diff)
parent5b3824917d591b27c4797971c8253ed67b41dc5a (diff)
downloadvolse-hubzilla-8ecdde6cb573ace776b472046388bb046dc59451.tar.gz
volse-hubzilla-8ecdde6cb573ace776b472046388bb046dc59451.tar.bz2
volse-hubzilla-8ecdde6cb573ace776b472046388bb046dc59451.zip
Merge branch '4.0RC'
-rw-r--r--.gitlab-ci.yml116
-rw-r--r--.homeinstall/README.md28
-rw-r--r--.homeinstall/hubzilla-config.txt.template2
-rwxr-xr-x.homeinstall/hubzilla-setup.sh34
-rw-r--r--CHANGELOG115
-rw-r--r--Zotlabs/Daemon/Cache_embeds.php27
-rw-r--r--Zotlabs/Daemon/Cron.php23
-rw-r--r--Zotlabs/Daemon/Deliver.php7
-rw-r--r--Zotlabs/Daemon/Master.php129
-rw-r--r--Zotlabs/Daemon/Notifier.php88
-rw-r--r--Zotlabs/Daemon/Onepoll.php2
-rw-r--r--Zotlabs/Daemon/Poller.php2
-rw-r--r--Zotlabs/Daemon/Queue.php15
-rw-r--r--Zotlabs/Lib/Activity.php640
-rw-r--r--Zotlabs/Lib/ActivityStreams.php187
-rw-r--r--Zotlabs/Lib/Api_router.php10
-rw-r--r--Zotlabs/Lib/Apps.php377
-rw-r--r--Zotlabs/Lib/DReport.php96
-rw-r--r--Zotlabs/Lib/JSalmon.php50
-rw-r--r--Zotlabs/Lib/Libzot.php447
-rw-r--r--Zotlabs/Lib/NativeWiki.php17
-rw-r--r--Zotlabs/Lib/PConfig.php38
-rw-r--r--Zotlabs/Lib/Share.php1
-rw-r--r--Zotlabs/Lib/ThreadItem.php44
-rw-r--r--Zotlabs/Lib/ThreadListener.php53
-rw-r--r--Zotlabs/Lib/ZotURL.php91
-rw-r--r--Zotlabs/Lib/Zotfinger.php23
-rw-r--r--Zotlabs/Module/Admin.php2
-rw-r--r--Zotlabs/Module/Admin/Addons.php5
-rw-r--r--Zotlabs/Module/Admin/Site.php2
-rw-r--r--Zotlabs/Module/Affinity.php94
-rw-r--r--Zotlabs/Module/Cards.php16
-rw-r--r--Zotlabs/Module/Channel.php44
-rw-r--r--Zotlabs/Module/Chanview.php2
-rw-r--r--Zotlabs/Module/Connedit.php34
-rw-r--r--Zotlabs/Module/Display.php5
-rw-r--r--Zotlabs/Module/Dreport.php23
-rw-r--r--Zotlabs/Module/Embed.php22
-rw-r--r--Zotlabs/Module/Embedphotos.php122
-rw-r--r--Zotlabs/Module/Events.php4
-rw-r--r--Zotlabs/Module/Filestorage.php40
-rw-r--r--Zotlabs/Module/Group.php21
-rw-r--r--Zotlabs/Module/Id.php119
-rw-r--r--Zotlabs/Module/Impel.php8
-rw-r--r--Zotlabs/Module/Item.php215
-rw-r--r--Zotlabs/Module/Like.php9
-rw-r--r--Zotlabs/Module/Mail.php4
-rw-r--r--Zotlabs/Module/Mood.php4
-rw-r--r--Zotlabs/Module/Network.php13
-rw-r--r--Zotlabs/Module/Nojs.php15
-rw-r--r--Zotlabs/Module/Notes.php20
-rw-r--r--Zotlabs/Module/Oep.php2
-rw-r--r--Zotlabs/Module/Pconfig.php4
-rw-r--r--Zotlabs/Module/Photo.php89
-rw-r--r--Zotlabs/Module/Photos.php2
-rw-r--r--Zotlabs/Module/Profiles.php28
-rw-r--r--Zotlabs/Module/React.php4
-rw-r--r--Zotlabs/Module/Rmagic.php18
-rw-r--r--Zotlabs/Module/Settings/Featured.php34
-rw-r--r--Zotlabs/Module/Setup.php60
-rw-r--r--Zotlabs/Module/Share.php140
-rw-r--r--Zotlabs/Module/Sslify.php14
-rw-r--r--Zotlabs/Module/Subthread.php6
-rw-r--r--Zotlabs/Module/Viewsrc.php6
-rw-r--r--Zotlabs/Module/Wfinger.php9
-rw-r--r--Zotlabs/Photo/PhotoDriver.php498
-rw-r--r--Zotlabs/Photo/PhotoGd.php176
-rw-r--r--Zotlabs/Photo/PhotoImagick.php (renamed from include/photo/photo_imagick.php)143
-rw-r--r--Zotlabs/Storage/Browser.php14
-rw-r--r--Zotlabs/Storage/Directory.php2
-rw-r--r--Zotlabs/Update/_1226.php78
-rw-r--r--Zotlabs/Update/_1227.php30
-rw-r--r--Zotlabs/Update/_1228.php36
-rw-r--r--Zotlabs/Update/_1229.php32
-rw-r--r--Zotlabs/Update/_1230.php12
-rw-r--r--Zotlabs/Web/CheckJS.php50
-rw-r--r--Zotlabs/Web/HTTPSig.php6
-rw-r--r--Zotlabs/Web/Session.php46
-rw-r--r--Zotlabs/Widget/Affinity.php84
-rw-r--r--Zotlabs/Widget/Settings_menu.php7
-rw-r--r--Zotlabs/Zot/Finger.php2
-rw-r--r--Zotlabs/Zot6/HTTPSig.php46
-rw-r--r--Zotlabs/Zot6/Receiver.php2
-rw-r--r--Zotlabs/Zot6/Zot6Handler.php45
-rw-r--r--app/affinity.apd7
-rwxr-xr-xboot.php41
-rw-r--r--composer.lock336
-rw-r--r--doc/admin/administrator_guide.md2
-rw-r--r--doc/bugs.bb4
-rw-r--r--doc/hook/collect_public_recipients.bb42
-rw-r--r--doc/hook/daemon_master_release.bb5
-rw-r--r--doc/hook/item_custom.bb24
-rw-r--r--doc/hook/item_stored.bb18
-rw-r--r--doc/hook/item_stored_update.bb15
-rw-r--r--doc/hook/jot_header_tpl_filter.bb5
-rw-r--r--doc/hook/jot_tpl_filter.bb5
-rw-r--r--doc/hook/privacygroup_extras.bb12
-rw-r--r--doc/hook/privacygroup_extras_drop.bb11
-rw-r--r--doc/hook/privacygroup_extras_post.bb11
-rw-r--r--doc/hooklist.bb30
-rw-r--r--include/activities.php3
-rw-r--r--include/api_zot.php22
-rw-r--r--include/attach.php78
-rw-r--r--include/bbcode.php17
-rw-r--r--include/channel.php181
-rw-r--r--include/contact_widgets.php40
-rw-r--r--include/conversation.php19
-rw-r--r--include/crypto.php9
-rw-r--r--include/event.php20
-rw-r--r--include/features.php8
-rw-r--r--include/feedutils.php20
-rw-r--r--include/follow.php6
-rw-r--r--include/help.php57
-rw-r--r--include/import.php12
-rwxr-xr-xinclude/items.php138
-rw-r--r--include/message.php2
-rw-r--r--include/network.php37
-rw-r--r--include/photo/photo_driver.php859
-rw-r--r--include/photo/photo_gd.php162
-rw-r--r--include/photos.php10
-rwxr-xr-xinclude/plugin.php93
-rw-r--r--include/queue_fn.php100
-rw-r--r--include/text.php441
-rw-r--r--include/xchan.php5
-rw-r--r--include/zid.php6
-rw-r--r--include/zot.php104
-rw-r--r--install/sample-lighttpd.conf2
-rw-r--r--install/sample-nginx.conf5
-rw-r--r--install/schema_mysql.sql8
-rw-r--r--install/schema_postgres.sql8
-rw-r--r--tests/phpunit-pgsql.xml33
-rw-r--r--tests/unit/Photo/PhotoGdTest.php147
-rw-r--r--tests/unit/Web/HttpSigTest.php2
-rw-r--r--tests/unit/get_tags_test.php17
-rw-r--r--tests/unit/includes/PhotodriverTest.php39
-rw-r--r--util/Doxyfile4
-rwxr-xr-xutil/admins60
-rw-r--r--util/hmessages.po2999
-rwxr-xr-xutil/udall2
-rw-r--r--vendor/bshaffer/oauth2-server-php/CHANGELOG.md4
-rw-r--r--vendor/bshaffer/oauth2-server-php/README.md2
-rw-r--r--vendor/bshaffer/oauth2-server-php/src/OAuth2/Request.php7
-rw-r--r--vendor/bshaffer/oauth2-server-php/src/OAuth2/Response.php2
-rw-r--r--vendor/bshaffer/oauth2-server-php/src/OAuth2/ResponseType/JwtAccessToken.php18
-rw-r--r--vendor/bshaffer/oauth2-server-php/src/OAuth2/Server.php9
-rw-r--r--vendor/bshaffer/oauth2-server-php/test/OAuth2/RequestTest.php18
-rw-r--r--vendor/bshaffer/oauth2-server-php/test/OAuth2/ResponseTest.php23
-rw-r--r--vendor/bshaffer/oauth2-server-php/test/OAuth2/ResponseType/JwtAccessTokenTest.php21
-rw-r--r--vendor/bshaffer/oauth2-server-php/test/OAuth2/Storage/PdoTest.php8
-rw-r--r--vendor/bshaffer/oauth2-server-php/test/lib/OAuth2/Storage/Bootstrap.php2
-rw-r--r--vendor/composer/autoload_classmap.php14
-rw-r--r--vendor/composer/autoload_static.php14
-rw-r--r--vendor/composer/installed.json24
-rw-r--r--vendor/league/html-to-markdown/CHANGELOG.md11
-rw-r--r--vendor/league/html-to-markdown/src/Converter/DefaultConverter.php8
-rw-r--r--vendor/league/html-to-markdown/src/Converter/HardBreakConverter.php5
-rw-r--r--view/es-es/hmessages.po3413
-rw-r--r--view/es-es/hstrings.php223
-rw-r--r--view/js/autocomplete.js2
-rw-r--r--view/js/main.js63
-rw-r--r--view/ru/hmessages.po22711
-rw-r--r--view/ru/hstrings.php5523
-rwxr-xr-xview/tpl/categories_widget.tpl2
-rw-r--r--view/tpl/cloud_directory.tpl2
-rwxr-xr-xview/tpl/conv_item.tpl11
-rwxr-xr-xview/tpl/conv_list.tpl9
-rwxr-xr-xview/tpl/group_edit.tpl1
-rwxr-xr-xview/tpl/jot-header.tpl22
-rwxr-xr-xview/tpl/jot.tpl14
-rw-r--r--view/tpl/notifications_widget.tpl2
-rw-r--r--view/tpl/privacy_groups.tpl1
-rwxr-xr-xview/tpl/remote_friends_common.tpl3
172 files changed, 24100 insertions, 19665 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0b8e0430f..43c65f365 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,36 +1,126 @@
# Select image from https://hub.docker.com/_/php/
-image: php:7.1
+#image: php:7.2
+# Use a prepared Hubzilla image to optimise pipeline run
+image: registry.gitlab.com/dawnbreak/hubzilla/core:php7.2
+
+
+stages:
+ - test
+ - deploy
+
# Select what we should cache
cache:
paths:
- vendor/
+ - .cache/
+
+# global variables for all jobs, if no job specific variables
variables:
- # Configure mysql service (https://hub.docker.com/_/mysql/)
+ # Tell composer to use the project workspace .cache folder
+ COMPOSER_CACHE_DIR: "$CI_PROJECT_DIR/.cache/composer"
+ # Ignore a Composer warning
+ COMPOSER_ALLOW_SUPERUSER: 1
+ # Configure MySQL/MariaDB service (https://hub.docker.com/_/mysql/, https://hub.docker.com/_/mariadb/)
MYSQL_DATABASE: hello_world_test
MYSQL_ROOT_PASSWORD: mysql
+ # Configure PostgreSQL service (https://hub.docker.com/_/postgres/)
+ POSTGRES_DB: ci-db
+ POSTGRES_USER: ci-user
+ POSTGRES_PASSWORD: ci-pass
-services:
-- mysql:5.7
-
before_script:
-- apt-get update -yqq
-- apt-get install -yqq git mysql-server mysql-client libmcrypt-dev libpq-dev libcurl4-gnutls-dev libicu-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev
-# Install PHP extensions
-- docker-php-ext-install mbstring mcrypt pdo_mysql pdo_pgsql curl json intl gd xml zip bz2 opcache
# Install & enable Xdebug for code coverage reports
- pecl install xdebug
- docker-php-ext-enable xdebug
-# Install and run Composer
+# Install composer
- curl -sS https://getcomposer.org/installer | php
-- php composer.phar install
+# Install dev libraries from composer
+- php composer.phar install --no-progress
+
+
+# test PHP7 with MySQL 5.7
+php7.2_mysql 1/2:
+ stage: test
+ services:
+ - mysql:5.7
+ script:
+ - echo "USE $MYSQL_DATABASE; $(cat ./install/schema_mysql.sql)" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
+ - echo "SHOW DATABASES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
+ - echo "USE $MYSQL_DATABASE; SHOW TABLES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
+ - vendor/bin/phpunit --configuration tests/phpunit.xml --coverage-text
+
-# We test PHP7 with MySQL, but we allow it to fail
-test:php:mysql:
+# test PHP7 with MySQL latest (8)
+php7.2_mysql 2/2:
+ stage: test
+ services:
+ - name: mysql:latest
+ command: ["--default-authentication-plugin=mysql_native_password"]
script:
- echo "USE $MYSQL_DATABASE; $(cat ./install/schema_mysql.sql)" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
- echo "SHOW DATABASES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
- echo "USE $MYSQL_DATABASE; SHOW TABLES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
- vendor/bin/phpunit --configuration tests/phpunit.xml --coverage-text
+
+
+# test PHP7 with MariaDB latest (10.3)
+php7.2_mariadb:
+ stage: test
+ services:
+ - name: mariadb:latest
+ alias: mysql
+ script:
+ - echo "USE $MYSQL_DATABASE; $(cat ./install/schema_mysql.sql)" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
+ - echo "SHOW DATABASES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
+ - echo "USE $MYSQL_DATABASE; SHOW TABLES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
+ - vendor/bin/phpunit --configuration tests/phpunit.xml --coverage-text
+
+
+# test PHP7 with PostgreSQL latest
+php7.2_postgres:
+ stage: test
+ services:
+ - postgres:latest
+ script:
+ - export PGPASSWORD=$POSTGRES_PASSWORD
+ - psql --version
+ - psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "SELECT VERSION();"
+ # Import hubzilla's DB schema
+ - psql -h "postgres" -U "$POSTGRES_USER" -v ON_ERROR_STOP=1 --quiet "$POSTGRES_DB" < ./install/schema_postgres.sql
+ # Show databases and relations/tables of hubzilla's database
+ #- psql -h "postgres" -U "$POSTGRES_USER" -l
+ #- psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "\dt;"
+ # Run the actual tests
+ - vendor/bin/phpunit --configuration tests/phpunit-pgsql.xml --testdox
+ artifacts:
+ expire_in: 1 week
+ # Gitlab should show the results, but has problems parsing PHPUnit's junit file.
+ reports:
+ junit: tests/results/junit.xml
+ # Archive test results (coverage, testdox, junit)
+ name: "$CI_COMMIT_REF_SLUG-$CI_JOB_NAME"
+ paths:
+ - tests/results/
+
+
+# Generate Doxygen API Documentation and deploy it at GitLab pages
+pages:
+ stage: deploy
+ cache: {}
+ image: php:7-cli-alpine
+ before_script:
+ - apk update
+ - apk add doxygen ttf-freefont graphviz
+ script:
+ - doxygen util/Doxyfile
+ - mv doc/html/ public/
+ - echo "API documentation should be accessible at https://hubzilla.frama.io/core/ soon"
+ artifacts:
+ paths:
+ - public
+ only:
+ # Only generate it on main repo's master branch
+ - master@hubzilla/core
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 5d0f35cc1..0a57efa9d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,118 @@
+Hubzilla 4.0 (2019-03-08)
+ - Add CURLOPT_CONNECTTIMEOUT option
+ - Allow parameters as final path argument in API router
+ - Remove clones from delivery recipients for top-level posts in favor of clone sync
+ - Mention php-zip module dependency in administrator guide
+ - Iron out some kinks with scrollToItem() in combination with collapsed content and images
+ - Zot API changes to support combined content (items+files) import addon
+ - Update PHP Version check during setup - min version is now 7.1
+ - Urlencode links in category widget
+ - Implement ability for channel visitors to be able to delete their own content
+ - Support zot location independent urls
+ - MySQL 8 admin summary compatibility
+ - Improved gitlab-ci environment
+ - Deprecate and remove addon settings in favour of per app settings
+ - Refactor PhotoDriver class and add tests
+ - Convert affinity tool to app
+ - Refactor linkify_tags() so it works with xchans across multiple protocols
+ - Add the actual mid to viewsrc for debuging reasons
+ - Add filter hooks and the ability to add buttons to the default status editor
+ - Prevent Hubzilla usage for SEO backlinks
+ - Implement privacy warning for forum posts via !-tag
+ - Set document title when title changes on a page update
+ - Cache embeds in the background on initial storage rather than on first access
+ - Custom sessionhandler support
+ - Update nginx and lighttpd sample server configs to explicit disallow access to util
+ - Introduce command line tool for managing site admins
+ - Various doxygen improvements
+ - Add privacygroup_extras_post/drop hooks
+ - Add collect_public_recipients hook
+ - Prevent memory exhaustion on zot message pickup with large message queue
+ - Remove experimental worker queue from core
+ - Add get_base_apps hook
+ - Improve handling of notification updates while commenting
+ - Add warning if upload_filesize < 4MB
+ - Add ITEM_TYPE_CUSTOM and hooks for processing custom item types
+ - Set min/maxversion for plugins to STD_VERSION unless otherwise specified
+ - Add option to make affinity slider 'sticky' across page loads
+ - Add photo_view_filter hook
+ - Reset page title if article has no title
+ - Implement the zot6 protocol
+ - Add PHOTO_CACHE photo type
+ - Basic support for HTTP3
+ - Add native summary support
+ - Disable image caching if personal or group permissions enabled
+
+ Bugfixes
+ - Fix guest access token xchan record not created on URL login
+ - Fix regression where mod oep was still using hex2bin/bin2hex instead of album hash
+ - Fix regression when selecting multiple images in embed images
+ - Fix broken sync_an_item()
+ - Fix page jumping on like if comments are expanded (show all x comments)
+ - Fix regression in mod display where an page update could display items from multiple channels
+ - Fix starring and filing allowed for other unsupported item types
+ - Fix wrong variable in z_get_temp_dir()
+ - Fix page jumping when liking a collapsed/expanded post
+ - Fix tags detection in URL
+ - Fix warnings in mod embedphotos
+ - Fix wrong variable in can_comment_on_post()
+ - Fix mod new_channel counting removed channels
+ - Fix regression where not all content variables were sslified
+ - Fix default values for affinity tool and other information which could be lost when approving a connection
+ - Fix regression in linkdropper()
+ - Fix issue with unset auto_save_draft variable which resultet in a javascript error
+ - Fix home notifications won't expand if there are more than 300 unseen network notifications ahead of them
+ - Fix total_identities count
+ - Fix delayed items propagate before publication on cloned channels
+
+ Addons
+ - twitter_api: fedilab needs profile_image_url_https
+ - New addon: content_import - imports items and files to cloned channels (this obsoletes hzfiles)
+ - Diaspora: prevent processing of incomplete messages in various places
+ - hzfiles: fix add missing load/unload functions
+ - chess: do not look for games if we have no game_id - improves initial pageload performance
+ - chess: convert to app
+ - channelreputation: convert to app
+ - irc: convert to per app
+ - Provide the addon_common directory for common addon libraries
+ - fuzzloc: convert to app
+ - flattrwidget: convert to app
+ - jappixmini: convert to app
+ - xmpp: convert to app
+ - visage: convert to app
+ - diaspora: reflect linkify_tags() rewrite
+ - twitter: convert to app
+ - smileybutton: convert to app
+ - skeleton: convert to app
+ - planets: convert to app
+ - pumpio: convert to app
+ - pageheader: convert to app
+ - nsabait: convert to app
+ - dwpost: convert to app
+ - diaspora: set the preserve_lf option in various places
+ - diaspora: fix comments from unknown persons are not accpted
+ - nofed: convert to app
+ - ljpost: convert to app
+ - diaspora: call update_queue_item() if delivery failed
+ - pubcrawl: call update_queue_item() if delivery failed
+ - libertree: convert to app
+ - New addon: queueworker advanced - queue handling (experimental)
+ - gallery: extended functionality: implements stream image viewer, converts images at the beginning of a post to a gallery
+ - authchoose: correction to query, add affinity setting
+ - New addon: photocache - local caching for public photos
+ - New addon: totp - two factor authentication using time-based one-time passwords
+
+
+Hubzilla 3.8.9 (2018-02-03)
+ - Fix typos in mod oep
+ - Fix page jumping when liking collapsed/expanded post
+ - Fix failure to import mail in mod import
+ - Fix wrong channel count in mod new_channel
+ - Fix diaspora addon regression
+ - Remove deprecated diaspora addon endpoint
+ - Fix wrong function call in gallery addon
+
+
Hubzilla 3.8.8 (2018-12-22)
- Fix issue with linkinfo
- Fix cURL with HTTP/2
diff --git a/Zotlabs/Daemon/Cache_embeds.php b/Zotlabs/Daemon/Cache_embeds.php
new file mode 100644
index 000000000..08088abd6
--- /dev/null
+++ b/Zotlabs/Daemon/Cache_embeds.php
@@ -0,0 +1,27 @@
+<?php /** @file */
+
+namespace Zotlabs\Daemon;
+
+
+class Cache_embeds {
+
+ static public function run($argc,$argv) {
+
+ if(! $argc == 2)
+ return;
+
+ $c = q("select body from item where id = %d ",
+ dbesc(intval($argv[1]))
+ );
+
+ if(! $c)
+ return;
+
+ $item = $c[0];
+
+ // bbcode conversion by default processes embeds that aren't already cached.
+ // Ignore the returned html output.
+
+ bbcode($item['body']);
+ }
+}
diff --git a/Zotlabs/Daemon/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/Daemon/Deliver.php b/Zotlabs/Daemon/Deliver.php
index b809cba91..43f426eb7 100644
--- a/Zotlabs/Daemon/Deliver.php
+++ b/Zotlabs/Daemon/Deliver.php
@@ -2,6 +2,8 @@
namespace Zotlabs\Daemon;
+use Zotlabs\Lib\DReport;
+
require_once('include/zot.php');
require_once('include/queue_fn.php');
@@ -58,11 +60,12 @@ class Deliver {
foreach($dresult as $xx) {
if(is_array($xx) && array_key_exists('message_id',$xx)) {
- if(delivery_report_is_storable($xx)) {
- q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_result, dreport_time, dreport_xchan ) values ( '%s', '%s','%s','%s','%s','%s' ) ",
+ if(DReport::is_storable($xx)) {
+ q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_name, dreport_result, dreport_time, dreport_xchan ) values ( '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
dbesc($xx['message_id']),
dbesc($xx['location']),
dbesc($xx['recipient']),
+ dbesc(($xx['name']) ? $xx['name'] : EMPTY_STR),
dbesc($xx['status']),
dbesc(datetime_convert($xx['date'])),
dbesc($xx['sender'])
diff --git a/Zotlabs/Daemon/Master.php b/Zotlabs/Daemon/Master.php
index 0656ca05b..857d47243 100644
--- a/Zotlabs/Daemon/Master.php
+++ b/Zotlabs/Daemon/Master.php
@@ -16,8 +16,6 @@ if(array_search( __file__ , get_included_files()) === 0) {
class Master {
- static public $queueworker = null;
-
static public function Summon($arr) {
proc_run('php','Zotlabs/Daemon/Master.php',$arr);
}
@@ -25,126 +23,21 @@ class Master {
static public function Release($argc,$argv) {
cli_startup();
- $maxworkers = get_config('system','max_queue_workers');
-
- if (!$maxworkers || $maxworkers == 0) {
- logger('Master: release: ' . print_r($argv,true), LOGGER_ALL,LOG_DEBUG);
- $cls = '\\Zotlabs\\Daemon\\' . $argv[0];
- $cls::run($argc,$argv);
- self::ClearQueue();
- } else {
- logger('Master: enqueue: ' . print_r($argv,true), LOGGER_ALL,LOG_DEBUG);
- $workinfo = ['argc'=>$argc,'argv'=>$argv];
- q("insert into config (cat,k,v) values ('queuework','%s','%s')",
- dbesc(uniqid('workitem:',true)),
- dbesc(serialize($workinfo)));
- self::Process();
- }
- }
-
- static public function GetWorkerID() {
- $maxworkers = get_config('system','max_queue_workers');
- $maxworkers = ($maxworkers) ? $maxworkers : 3;
-
- $workermaxage = get_config('system','max_queue_worker_age');
- $workermaxage = ($workermaxage) ? $workermaxage : 300;
-
- $workers = q("select * from config where cat='queueworkers' and k like '%s'", 'workerstarted_%');
-
- if (count($workers) > $maxworkers) {
- foreach ($workers as $idx => $worker) {
- $curtime = time();
- $age = (intval($curtime) - intval($worker['v']));
- if ( $age > $workermaxage) {
- logger("Prune worker: ".$worker['k'], LOGGER_ALL, LOGGER_DEBUG);
- $k = explode('_',$worker['k']);
- q("delete from config where cat='queueworkers' and k='%s'",
- 'workerstarted_'.$k[1]);
- q("update config set k='%s' where cat='queuework' and k='%s'",
- dbesc(uniqid('workitem:',true)),
- 'workitem_'.$k[1]);
- unset($workers[$idx]);
- }
- }
- if (count($workers) > $maxworkers) {
- return false;
- }
- }
- return uniqid('',true);
-
- }
-
- static public function Process() {
-
- self::$queueworker = self::GetWorkerID();
-
- if (!self::$queueworker) {
- logger('Master: unable to obtain worker ID.');
- killme();
- }
-
- set_config('queueworkers','workerstarted_'.self::$queueworker,time());
-
- $workersleep = get_config('system','queue_worker_sleep');
- $workersleep = ($workersleep) ? $workersleep : 5;
- cli_startup();
-
- $work = q("update config set k='%s' where cat='queuework' and k like '%s' limit 1",
- 'workitem_'.self::$queueworker,
- dbesc('workitem:%'));
- $jobs = 0;
- while ($work) {
- $workitem = q("select * from config where cat='queuework' and k='%s'",
- 'workitem_'.self::$queueworker);
-
- if (isset($workitem[0])) {
- $jobs++;
- $workinfo = unserialize($workitem[0]['v']);
- $argc = $workinfo['argc'];
- $argv = $workinfo['argv'];
- logger('Master: process: ' . print_r($argv,true), LOGGER_ALL,LOG_DEBUG);
-
- //Delete unclaimed duplicate workitems.
- q("delete from config where cat='queuework' and k='workitem' and v='%s'",
- serialize($argv));
-
- $cls = '\\Zotlabs\\Daemon\\' . $argv[0];
- $cls::run($argc,$argv);
+ $hookinfo = [
+ 'argv'=>$argv
+ ];
- //Right now we assume that if we get a return, everything is OK.
- //At some point we may want to test whether the run returns true/false
- // and requeue the work to be tried again. But we probably want
- // to implement some sort of "retry interval" first.
+ call_hooks ('daemon_master_release',$hookinfo);
- q("delete from config where cat='queuework' and k='%s'",
- 'workitem_'.self::$queueworker);
- } else {
- break;
- }
- sleep ($workersleep);
- $work = q("update config set k='%s' where cat='queuework' and k like '%s' limit 1",
- 'workitem_'.self::$queueworker,
- dbesc('workitem:%'));
+ $argv = $hookinfo['argv'];
+ $argc = count($argv);
+ if ((!is_array($argv) || (count($argv) < 1))) {
+ return;
}
- logger('Master: Worker Thread: queue items processed:' . $jobs);
- q("delete from config where cat='queueworkers' and k='%s'",
- 'workerstarted_'.self::$queueworker);
- }
- static public function ClearQueue() {
- $work = q("select * from config where cat='queuework' and k like '%s'",
- dbesc('workitem%'));
- foreach ($work as $workitem) {
- $workinfo = unserialize($workitem['v']);
- $argc = $workinfo['argc'];
- $argv = $workinfo['argv'];
- logger('Master: process: ' . print_r($argv,true), LOGGER_ALL,LOG_DEBUG);
- $cls = '\\Zotlabs\\Daemon\\' . $argv[0];
- $cls::run($argc,$argv);
- }
- $work = q("delete from config where cat='queuework' and k like '%s'",
- dbesc('workitem%'));
+ logger('Master: release: ' . json_encode($argv), LOGGER_ALL,LOG_DEBUG);
+ $cls = '\\Zotlabs\\Daemon\\' . $argv[0];
+ $cls::run($argc,$argv);
}
-
}
diff --git a/Zotlabs/Daemon/Notifier.php b/Zotlabs/Daemon/Notifier.php
index f74c8f11c..4e0c0d49c 100644
--- a/Zotlabs/Daemon/Notifier.php
+++ b/Zotlabs/Daemon/Notifier.php
@@ -2,6 +2,8 @@
namespace Zotlabs\Daemon;
+use Zotlabs\Lib\Libzot;
+
require_once('include/queue_fn.php');
require_once('include/html2plain.php');
require_once('include/conversation.php');
@@ -344,7 +346,16 @@ class Notifier {
return;
$encoded_item = encode_item($target_item);
-
+
+ // activitystreams version
+ $m = get_iconfig($target_item,'activitystreams','signed_data');
+ if($m) {
+ $activity = json_decode($m,true);
+ }
+ else {
+ $activity = \Zotlabs\Lib\Activity::encode_activity($target_item);
+ }
+
// Send comments to the owner to re-deliver to everybody in the conversation
// We only do this if the item in question originated on this site. This prevents looping.
// To clarify, a site accepting a new comment is responsible for sending it to the owner for relay.
@@ -401,6 +412,12 @@ class Notifier {
$private = false;
$recipients = collect_recipients($parent_item,$private);
+
+ if ($top_level_post) {
+ // remove clones who will receive the post via sync
+ $recipients = array_diff($recipients, [ $target_item['owner_xchan'] ]);
+ }
+
// FIXME add any additional recipients such as mentions, etc.
// don't send deletions onward for other people's stuff
@@ -423,6 +440,8 @@ class Notifier {
$x['body'] = 'private';
logger('notifier: encoded item: ' . print_r($x,true), LOGGER_DATA, LOG_DEBUG);
+ //logger('notifier: encoded activity: ' . print_r($activity,true), LOGGER_DATA, LOG_DEBUG);
+
stringify_array_elms($recipients);
if(! $recipients) {
logger('no recipients');
@@ -561,7 +580,7 @@ class Notifier {
logger('notifier_hub: ' . $hub['hubloc_url'],LOGGER_DEBUG);
- if($hub['hubloc_network'] !== 'zot') {
+ if(! in_array($hub['hubloc_network'], [ 'zot','zot6' ])) {
$narr = [
'channel' => $channel,
'upstream' => $upstream,
@@ -610,20 +629,32 @@ class Notifier {
continue;
}
- // default: zot protocol
+ if(! in_array($hub['hubloc_network'], [ 'zot','zot6' ])) {
+ continue;
+ }
+
+ // Do not change this to a uuid as long as we have traditional zot servers
+ // in the loop. The signature verification step can't handle dashes in the
+ // hashes.
+
+ $hash = random_string(48);
- $hash = random_string();
$packet = null;
$pmsg = '';
if($packet_type === 'refresh' || $packet_type === 'purge') {
- $packet = zot_build_packet($channel,$packet_type,(($packet_recips) ? $packet_recips : null));
+ if($hub['hubloc_network'] === 'zot6') {
+ $packet = Libzot::build_packet($channel, $packet_type, ids_to_array($packet_recips,'hash'));
+ }
+ else {
+ $packet = zot_build_packet($channel,$packet_type,(($packet_recips) ? $packet_recips : null));
+ }
}
- if($packet_type === 'keychange') {
+ if($packet_type === 'keychange' && $hub['hubloc_network'] === 'zot') {
$pmsg = get_pconfig($channel['channel_id'],'system','keychange');
$packet = zot_build_packet($channel,$packet_type,(($packet_recips) ? $packet_recips : null));
}
- elseif($packet_type === 'request') {
+ elseif($packet_type === 'request' && $hub['hubloc_network'] === 'zot') {
$env = (($hub_env && $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']]) ? $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']] : '');
$packet = zot_build_packet($channel,$packet_type,$env,$hub['hubloc_sitekey'],$hub['site_crypto'],
$hash, array('message_id' => $request_message_id)
@@ -636,6 +667,7 @@ class Notifier {
'account_id' => $channel['channel_account_id'],
'channel_id' => $channel['channel_id'],
'posturl' => $hub['hubloc_callback'],
+ 'driver' => $hub['hubloc_network'],
'notify' => $packet,
'msg' => (($pmsg) ? json_encode($pmsg) : '')
));
@@ -643,18 +675,43 @@ class Notifier {
else {
$env = (($hub_env && $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']]) ? $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']] : '');
- // currently zot6 delivery is only performed on normal items and not sync items or mail or anything else
- // Eventually we will do this for all deliveries, but for now ensure this is precisely what we are dealing
- // with before switching to zot6 as the primary zot6 handler checks for the existence of a message delivery report
- // to trigger dequeue'ing
- $z6 = (($encoded_item && $encoded_item['type'] === 'activity' && (! array_key_exists('allow_cid',$encoded_item))) ? true : false);
- if($z6) {
- $packet = zot6_build_packet($channel,'notify',$env, json_encode($encoded_item), (($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto'],$hash);
+ if($hub['hubloc_network'] === 'zot6') {
+ $zenv = [];
+ if($env) {
+ foreach($env as $e) {
+ $zenv[] = $e['hash'];
+ }
+ }
+
+ $packet_type = (($upstream || $uplink) ? 'response' : 'activity');
+
+ // block zot private reshares from zot6, as this could cause a number of privacy issues
+ // due to parenting differences between the reshare implementations. In zot a reshare is
+ // a standalone parent activity and in zot6 it is a followup/child of the original activity.
+ // For public reshares, some comments to the reshare on the zot fork will not make it to zot6
+ // due to these different message models. This cannot be prevented at this time.
+
+ if($packet_type === 'activity' && $activity['type'] === 'Announce' && intval($target_item['item_private'])) {
+ continue;
+ }
+
+ $packet = Libzot::build_packet($channel,$packet_type,$zenv,$activity,'activitystreams',(($private) ? $hub['hubloc_sitekey'] : null),$hub['site_crypto']);
}
else {
- $packet = zot_build_packet($channel,'notify',$env, (($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto'],$hash);
+ // currently zot6 delivery is only performed on normal items and not sync items or mail or anything else
+ // Eventually we will do this for all deliveries, but for now ensure this is precisely what we are dealing
+ // with before switching to zot6 as the primary zot6 handler checks for the existence of a message delivery report
+ // to trigger dequeue'ing
+
+ $z6 = (($encoded_item && $encoded_item['type'] === 'activity' && (! array_key_exists('allow_cid',$encoded_item))) ? true : false);
+ if($z6) {
+ $packet = zot6_build_packet($channel,'notify',$env, json_encode($encoded_item), (($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto'],$hash);
+ }
+ else {
+ $packet = zot_build_packet($channel,'notify',$env, (($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto'],$hash);
+ }
}
queue_insert(
@@ -663,6 +720,7 @@ class Notifier {
'account_id' => $target_item['aid'],
'channel_id' => $target_item['uid'],
'posturl' => $hub['hubloc_callback'],
+ 'driver' => $hub['hubloc_network'],
'notify' => $packet,
'msg' => json_encode($encoded_item)
]
diff --git a/Zotlabs/Daemon/Onepoll.php b/Zotlabs/Daemon/Onepoll.php
index 920916828..1d9fd5f72 100644
--- a/Zotlabs/Daemon/Onepoll.php
+++ b/Zotlabs/Daemon/Onepoll.php
@@ -69,7 +69,7 @@ class Onepoll {
return;
}
- if($contact['xchan_network'] !== 'zot')
+ if(! in_array($contact['xchan_network'],['zot','zot6']))
return;
// update permissions
diff --git a/Zotlabs/Daemon/Poller.php b/Zotlabs/Daemon/Poller.php
index 49151437c..a8cf34ce2 100644
--- a/Zotlabs/Daemon/Poller.php
+++ b/Zotlabs/Daemon/Poller.php
@@ -110,7 +110,7 @@ class Poller {
}
- if($contact['xchan_network'] !== 'zot')
+ if(! in_array($contact['xchan_network'],['zot','zot6']))
continue;
if($c == $t) {
diff --git a/Zotlabs/Daemon/Queue.php b/Zotlabs/Daemon/Queue.php
index 8f529ff13..814148404 100644
--- a/Zotlabs/Daemon/Queue.php
+++ b/Zotlabs/Daemon/Queue.php
@@ -12,7 +12,6 @@ class Queue {
require_once('include/items.php');
require_once('include/bbcode.php');
-
if($argc > 1)
$queue_id = $argv[1];
else
@@ -61,10 +60,20 @@ class Queue {
// or just prior to this query based on recent and long-term delivery history. If we have good reason to believe
// the site is permanently down, there's no reason to attempt delivery at all, or at most not more than once
// or twice a day.
-
- $r = q("SELECT * FROM outq WHERE outq_delivered = 0 and outq_scheduled < %s ",
+
+ $sqlrandfunc = db_getfunc('rand');
+
+ $r = q("SELECT *,$sqlrandfunc as rn FROM outq WHERE outq_delivered = 0 and outq_scheduled < %s order by rn limit 1",
db_utcnow()
);
+ while ($r) {
+ foreach($r as $rv) {
+ queue_deliver($rv);
+ }
+ $r = q("SELECT *,$sqlrandfunc as rn FROM outq WHERE outq_delivered = 0 and outq_scheduled < %s order by rn limit 1",
+ db_utcnow()
+ );
+ }
}
if(! $r)
return;
diff --git a/Zotlabs/Lib/Activity.php b/Zotlabs/Lib/Activity.php
index 6ddbbb9db..9aaf6d866 100644
--- a/Zotlabs/Lib/Activity.php
+++ b/Zotlabs/Lib/Activity.php
@@ -2,18 +2,21 @@
namespace Zotlabs\Lib;
-use Zotlabs\Lib\Libzot;
-use Zotlabs\Lib\Libsync;
-use Zotlabs\Lib\ActivityStreams;
-use Zotlabs\Lib\Group;
+use Zotlabs\Zot6\HTTPSig;
class Activity {
static function encode_object($x) {
+
if(($x) && (! is_array($x)) && (substr(trim($x),0,1)) === '{' ) {
$x = json_decode($x,true);
}
+
+ if(is_array($x) && array_key_exists('asld',$x)) {
+ $x = $x['asld'];
+ }
+
if($x['type'] === ACTIVITY_OBJ_PERSON) {
return self::fetch_person($x);
}
@@ -26,11 +29,57 @@ class Activity {
if($x['type'] === ACTIVITY_OBJ_THING) {
return self::fetch_thing($x);
}
+ if($x['type'] === ACTIVITY_OBJ_EVENT) {
+ return self::fetch_event($x);
+ }
+ if($x['type'] === ACTIVITY_OBJ_PHOTO) {
+ return self::fetch_image($x);
+ }
return $x;
}
+ static function fetch($url,$channel = null) {
+ $redirects = 0;
+ if(! check_siteallowed($url)) {
+ logger('blacklisted: ' . $url);
+ return null;
+ }
+ if(! $channel) {
+ $channel = get_sys_channel();
+ }
+
+ logger('fetch: ' . $url, LOGGER_DEBUG);
+
+ if(strpos($url,'x-zot:') === 0) {
+ $x = ZotURL::fetch($url,$channel);
+ }
+ else {
+ $m = parse_url($url);
+ $headers = [
+ 'Accept' => 'application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
+ 'Host' => $m['host'],
+ '(request-target)' => 'get ' . get_request_string($url),
+ 'Date' => datetime_convert('UTC','UTC','now','D, d M Y H:i:s') . ' UTC'
+ ];
+ $h = HTTPSig::create_sig($headers,$channel['channel_prvkey'],channel_url($channel),false);
+ $x = z_fetch_url($url, true, $redirects, [ 'headers' => $h ] );
+ }
+
+ if($x['success']) {
+ $y = json_decode($x['body'],true);
+ logger('returned: ' . json_encode($y,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES));
+ return json_decode($x['body'], true);
+ }
+ else {
+ logger('fetch failed: ' . $url);
+ }
+ return null;
+ }
+
+
+
static function fetch_person($x) {
return self::fetch_profile($x);
@@ -93,6 +142,63 @@ class Activity {
}
}
+
+ static function fetch_image($x) {
+
+
+ $ret = [
+ 'type' => 'Image',
+ 'id' => $x['id'],
+ 'name' => $x['title'],
+ 'content' => bbcode($x['body']),
+ 'source' => [ 'mediaType' => 'text/bbcode', 'content' => $x['body'] ],
+ 'published' => datetime_convert('UTC','UTC',$x['created'],ATOM_TIME),
+ 'updated' => datetime_convert('UTC','UTC', $x['edited'],ATOM_TIME),
+ 'url' => [
+ 'type' => 'Link',
+ 'mediaType' => $x['link'][0]['type'],
+ 'href' => $x['link'][0]['href'],
+ 'width' => $x['link'][0]['width'],
+ 'height' => $x['link'][0]['height']
+ ]
+ ];
+ return $ret;
+ }
+
+ static function fetch_event($x) {
+
+ // convert old Zot event objects to ActivityStreams Event objects
+
+ if (array_key_exists('content',$x) && array_key_exists('dtstart',$x)) {
+ $ev = bbtoevent($x['content']);
+ if($ev) {
+
+ $actor = null;
+ if(array_key_exists('author',$x) && array_key_exists('link',$x['author'])) {
+ $actor = $x['author']['link'][0]['href'];
+ }
+ $y = [
+ 'type' => 'Event',
+ 'id' => z_root() . '/event/' . $ev['event_hash'],
+ 'summary' => bbcode($ev['summary']),
+ // RFC3339 Section 4.3
+ 'startTime' => (($ev['adjust']) ? datetime_convert('UTC','UTC',$ev['dtstart'], ATOM_TIME) : datetime_convert('UTC','UTC',$ev['dtstart'],'Y-m-d\\TH:i:s-00:00')),
+ 'content' => bbcode($ev['description']),
+ 'location' => [ 'type' => 'Place', 'content' => bbcode($ev['location']) ],
+ 'source' => [ 'content' => format_event_bbcode($ev), 'mediaType' => 'text/bbcode' ],
+ 'actor' => $actor,
+ ];
+ if($actor) {
+ return $y;
+ }
+ }
+ }
+
+ return $x;
+
+ }
+
+
static function encode_item_collection($items,$id,$type,$extra = null) {
$ret = [
@@ -167,7 +273,7 @@ class Activity {
$ret['id'] = ((strpos($i['mid'],'http') === 0) ? $i['mid'] : z_root() . '/item/' . urlencode($i['mid']));
if($i['title'])
- $ret['title'] = bbcode($i['title']);
+ $ret['name'] = $i['title'];
$ret['published'] = datetime_convert('UTC','UTC',$i['created'],ATOM_TIME);
if($i['created'] !== $i['edited'])
@@ -342,10 +448,17 @@ class Activity {
$ret['type'] = 'Tombstone';
$ret['formerType'] = self::activity_obj_mapper($i['obj_type']);
$ret['id'] = ((strpos($i['mid'],'http') === 0) ? $i['mid'] : z_root() . '/item/' . urlencode($i['mid']));
+ $actor = self::encode_person($i['author'],false);
+ if($actor)
+ $ret['actor'] = $actor;
+ else
+ return [];
return $ret;
}
$ret['type'] = self::activity_mapper($i['verb']);
+
+
$ret['id'] = ((strpos($i['mid'],'http') === 0) ? $i['mid'] : z_root() . '/activity/' . urlencode($i['mid']));
if($i['title'])
@@ -417,6 +530,10 @@ class Activity {
if(! is_array($i['obj'])) {
$i['obj'] = json_decode($i['obj'],true);
}
+ if($i['obj']['type'] === ACTIVITY_OBJ_PHOTO) {
+ $i['obj']['id'] = $i['id'];
+ }
+
$obj = self::encode_object($i['obj']);
if($obj)
$ret['object'] = $obj;
@@ -540,6 +657,12 @@ class Activity {
}
+
+
+
+
+
+
static function activity_mapper($verb) {
if(strpos($verb,'/') === false) {
@@ -556,6 +679,9 @@ class Activity {
'http://activitystrea.ms/schema/1.0/tag' => 'Add',
'http://activitystrea.ms/schema/1.0/follow' => 'Follow',
'http://activitystrea.ms/schema/1.0/unfollow' => 'Unfollow',
+ 'http://purl.org/zot/activity/attendyes' => 'Accept',
+ 'http://purl.org/zot/activity/attendno' => 'Reject',
+ 'http://purl.org/zot/activity/attendmaybe' => 'TentativeAccept'
];
@@ -582,6 +708,70 @@ class Activity {
}
+
+ static function activity_decode_mapper($verb) {
+
+ $acts = [
+ 'http://activitystrea.ms/schema/1.0/post' => 'Create',
+ 'http://activitystrea.ms/schema/1.0/share' => 'Announce',
+ 'http://activitystrea.ms/schema/1.0/update' => 'Update',
+ 'http://activitystrea.ms/schema/1.0/like' => 'Like',
+ 'http://activitystrea.ms/schema/1.0/favorite' => 'Like',
+ 'http://purl.org/zot/activity/dislike' => 'Dislike',
+ 'http://activitystrea.ms/schema/1.0/tag' => 'Add',
+ 'http://activitystrea.ms/schema/1.0/follow' => 'Follow',
+ 'http://activitystrea.ms/schema/1.0/unfollow' => 'Unfollow',
+ 'http://purl.org/zot/activity/attendyes' => 'Accept',
+ 'http://purl.org/zot/activity/attendno' => 'Reject',
+ 'http://purl.org/zot/activity/attendmaybe' => 'TentativeAccept'
+ ];
+
+
+ foreach($acts as $k => $v) {
+ if($verb === $v) {
+ return $k;
+ }
+ }
+
+ logger('Unmapped activity: ' . $verb);
+ return 'Create';
+
+ }
+
+ static function activity_obj_decode_mapper($obj) {
+
+ $objs = [
+ 'http://activitystrea.ms/schema/1.0/note' => 'Note',
+ 'http://activitystrea.ms/schema/1.0/note' => 'Article',
+ 'http://activitystrea.ms/schema/1.0/comment' => 'Note',
+ 'http://activitystrea.ms/schema/1.0/person' => 'Person',
+ 'http://purl.org/zot/activity/profile' => 'Profile',
+ 'http://activitystrea.ms/schema/1.0/photo' => 'Image',
+ 'http://activitystrea.ms/schema/1.0/profile-photo' => 'Icon',
+ 'http://activitystrea.ms/schema/1.0/event' => 'Event',
+ 'http://activitystrea.ms/schema/1.0/wiki' => 'Document',
+ 'http://purl.org/zot/activity/location' => 'Place',
+ 'http://purl.org/zot/activity/chessgame' => 'Game',
+ 'http://purl.org/zot/activity/tagterm' => 'zot:Tag',
+ 'http://purl.org/zot/activity/thing' => 'Object',
+ 'http://purl.org/zot/activity/file' => 'zot:File',
+ 'http://purl.org/zot/activity/mood' => 'zot:Mood',
+
+ ];
+
+ foreach($objs as $k => $v) {
+ if($obj === $v) {
+ return $k;
+ }
+ }
+
+ logger('Unmapped activity object: ' . $obj);
+ return 'Note';
+ }
+
+
+
+
static function activity_obj_mapper($obj) {
if(strpos($obj,'/') === false) {
@@ -1149,7 +1339,7 @@ class Activity {
}
if($act->obj['type'] === 'Note' && $s['attach']) {
- $s['body'] .= self::bb_attach($s['attach']);
+ $s['body'] .= self::bb_attach($s['attach'],$s['body']);
}
// we will need a hook here to extract magnet links e.g. peertube
@@ -1230,21 +1420,39 @@ class Activity {
}
+ static function get_actor_bbmention($id) {
- static function decode_note($act) {
+ $x = q("select * from hubloc left join xchan on hubloc_hash = xchan_hash where hubloc_hash = '%s' or hubloc_id_url = '%s' limit 1",
+ dbesc($id),
+ dbesc($id)
+ );
- $s = [];
+ if($x) {
+ return sprintf('@[zrl=%s]%s[/zrl]',$x[0]['xchan_url'],$x[0]['xchan_name']);
+ }
+ return '@{' . $id . '}';
+ }
- $content = self::get_content($act->obj);
+ static function decode_note($act) {
+
+ $response_activity = false;
+
+ $s = [];
+ if(is_array($act->obj)) {
+ $content = self::get_content($act->obj);
+ }
+
$s['owner_xchan'] = $act->actor['id'];
$s['author_xchan'] = $act->actor['id'];
- $s['mid'] = $act->id;
- $s['parent_mid'] = $act->parent_id;
+ // ensure we store the original actor
+ self::actor_store($act->actor['id'],$act->actor);
+ $s['mid'] = $act->obj['id'];
+ $s['parent_mid'] = $act->parent_id;
if($act->data['published']) {
$s['created'] = datetime_convert('UTC','UTC',$act->data['published']);
@@ -1259,105 +1467,325 @@ class Activity {
$s['edited'] = datetime_convert('UTC','UTC',$act->obj['updated']);
}
- if(! $s['created'])
- $s['created'] = datetime_convert();
- if(! $s['edited'])
- $s['edited'] = $s['created'];
+ if(in_array($act->type, [ 'Like', 'Dislike', 'Flag', 'Block', 'Announce', 'Accept', 'Reject', 'TentativeAccept' ])) {
- if(in_array($act->type,['Announce'])) {
- $root_content = self::get_content($act->raw);
+ $response_activity = true;
- $s['title'] = self::bb_content($root_content,'name');
- $s['summary'] = self::bb_content($root_content,'summary');
- $s['body'] = (self::bb_content($root_content,'bbcode') ? : self::bb_content($root_content,'content'));
+ $s['mid'] = $act->id;
+ $s['parent_mid'] = $act->obj['id'];
- if(strpos($s['body'],'[share') === false) {
+ // over-ride the object timestamp with the activity
- // @fixme - error check and set defaults
+ if($act->data['published']) {
+ $s['created'] = datetime_convert('UTC','UTC',$act->data['published']);
+ }
- $name = urlencode($act->obj['actor']['name']);
- $profile = $act->obj['actor']['id'];
- $photo = $act->obj['icon']['url'];
+ if($act->data['updated']) {
+ $s['edited'] = datetime_convert('UTC','UTC',$act->data['updated']);
+ }
+
+ $obj_actor = ((isset($act->obj['actor'])) ? $act->obj['actor'] : $act->get_actor('attributedTo', $act->obj));
+ // ensure we store the original actor
+ self::actor_store($obj_actor['id'],$obj_actor);
- $s['body'] .= "\r\n[share author='" . $name .
- "' profile='" . $profile .
- "' avatar='" . $photo .
- "' link='" . $act->obj['id'] .
- "' auth='" . ((is_matrix_url($act->obj['id'])) ? 'true' : 'false' ) .
- "' posted='" . $act->obj['published'] .
- "' message_id='" . $act->obj['id'] .
- "']";
+ $mention = self::get_actor_bbmention($obj_actor['id']);
+
+ if($act->type === 'Like') {
+ $content['content'] = sprintf( t('Likes %1$s\'s %2$s'),$mention,$act->obj['type']) . "\n\n" . $content['content'];
+ }
+ if($act->type === 'Dislike') {
+ $content['content'] = sprintf( t('Doesn\'t like %1$s\'s %2$s'),$mention,$act->obj['type']) . "\n\n" . $content['content'];
+ }
+ if($act->type === 'Accept' && $act->obj['type'] === 'Event' ) {
+ $content['content'] = sprintf( t('Will attend %1$s\'s %2$s'),$mention,$act->obj['type']) . "\n\n" . $content['content'];
+ }
+ if($act->type === 'Reject' && $act->obj['type'] === 'Event' ) {
+ $content['content'] = sprintf( t('Will not attend %1$s\'s %2$s'),$mention,$act->obj['type']) . "\n\n" . $content['content'];
+ }
+ if($act->type === 'TentativeAccept' && $act->obj['type'] === 'Event' ) {
+ $content['content'] = sprintf( t('May attend %1$s\'s %2$s'),$mention,$act->obj['type']) . "\n\n" . $content['content'];
+ }
+ if($act->type === 'Announce') {
+ $content['content'] = sprintf( t('&#x1f501; Repeated %1$s\'s %2$s'), $mention, $act->obj['type']);
}
}
- else {
- $s['title'] = self::bb_content($content,'name');
- $s['summary'] = self::bb_content($content,'summary');
- $s['body'] = (self::bb_content($content,'bbcode') ? : self::bb_content($content,'content'));
- }
- $s['verb'] = self::activity_mapper($act->type);
+ if(! $s['created'])
+ $s['created'] = datetime_convert();
+
+ if(! $s['edited'])
+ $s['edited'] = $s['created'];
+
+ $s['title'] = self::bb_content($content,'name');
+ $s['summary'] = self::bb_content($content,'summary');
+ $s['body'] = ((self::bb_content($content,'bbcode') && (! $response_activity)) ? self::bb_content($content,'bbcode') : self::bb_content($content,'content'));
- if($act->type === 'Tombstone') {
+ $s['verb'] = self::activity_decode_mapper($act->type);
+
+
+ if($act->type === 'Tombstone' || ($act->type === 'Create' && $act->obj['type'] === 'Tombstone')) {
$s['item_deleted'] = 1;
}
- $s['obj_type'] = self::activity_obj_mapper($act->obj['type']);
- $s['obj'] = $act->obj;
+ $s['obj_type'] = self::activity_obj_decode_mapper($act->obj['type']);
+ if($s['obj_type'] === ACTIVITY_OBJ_NOTE && $s['mid'] !== $s['parent_mid']) {
+ $s['obj_type'] = ACTIVITY_OBJ_COMMENT;
+ }
+
+ if($act->obj['type'] === 'Event') {
+ $s['obj'] = [];
+ $s['obj']['asld'] = $act->obj;
+ $s['obj']['type'] = ACTIVITY_OBJ_EVENT;
+ $s['obj']['id'] = $act->obj['id'];
+ $s['obj']['title'] = $act->obj['summary'];
+
+ if(strpos($act->obj['startTime'],'Z'))
+ $s['obj']['adjust'] = true;
+ else
+ $s['obj']['adjust'] = false;
+
+ $s['obj']['dtstart'] = datetime_convert('UTC','UTC',$act->obj['startTime']);
+ if($act->obj['endTime'])
+ $s['obj']['dtend'] = datetime_convert('UTC','UTC',$act->obj['endTime']);
+ else
+ $s['obj']['nofinish'] = true;
+ $s['obj']['description'] = $act->obj['content'];
+
+ if(array_path_exists('location/content',$act->obj))
+ $s['obj']['location'] = $act->obj['location']['content'];
+
+ }
+ else {
+ $s['obj'] = $act->obj;
+ }
$instrument = $act->get_property_obj('instrument');
- if(! $instrument)
+ if((! $instrument) && (! $response_activity)) {
$instrument = $act->get_property_obj('instrument',$act->obj);
+ }
if($instrument && array_key_exists('type',$instrument)
&& $instrument['type'] === 'Service' && array_key_exists('name',$instrument)) {
$s['app'] = escape_tags($instrument['name']);
}
- $a = self::decode_taxonomy($act->obj);
- if($a) {
- $s['term'] = $a;
+
+ if(! $response_activity) {
+ $a = self::decode_taxonomy($act->obj);
+ if($a) {
+ $s['term'] = $a;
+ foreach($a as $b) {
+ if($b['ttype'] === TERM_EMOJI) {
+ $s['title'] = str_replace($b['term'],'[img=16x16]' . $b['url'] . '[/img]',$s['title']);
+ $s['summary'] = str_replace($b['term'],'[img=16x16]' . $b['url'] . '[/img]',$s['summary']);
+ $s['body'] = str_replace($b['term'],'[img=16x16]' . $b['url'] . '[/img]',$s['body']);
+ }
+ }
+ }
+
+ $a = self::decode_attachment($act->obj);
+ if($a) {
+ $s['attach'] = $a;
+ }
}
- $a = self::decode_attachment($act->obj);
- if($a) {
- $s['attach'] = $a;
+ if($act->obj['type'] === 'Note' && $s['attach']) {
+ $s['body'] .= self::bb_attach($s['attach'],$s['body']);
}
+
// we will need a hook here to extract magnet links e.g. peertube
// right now just link to the largest mp4 we find that will fit in our
// standard content region
- if($act->obj['type'] === 'Video') {
+ if(! $response_activity) {
+ if($act->obj['type'] === 'Video') {
- $vtypes = [
- 'video/mp4',
- 'video/ogg',
- 'video/webm'
- ];
+ $vtypes = [
+ 'video/mp4',
+ 'video/ogg',
+ 'video/webm'
+ ];
- $mps = [];
- if(array_key_exists('url',$act->obj) && is_array($act->obj['url'])) {
- foreach($act->obj['url'] as $vurl) {
- if(in_array($vurl['mimeType'], $vtypes)) {
- if(! array_key_exists('width',$vurl)) {
- $vurl['width'] = 0;
+ $mps = [];
+ $ptr = null;
+
+ if(array_key_exists('url',$act->obj)) {
+ if(is_array($act->obj['url'])) {
+ if(array_key_exists(0,$act->obj['url'])) {
+ $ptr = $act->obj['url'];
}
- $mps[] = $vurl;
+ else {
+ $ptr = [ $act->obj['url'] ];
+ }
+ foreach($ptr as $vurl) {
+ // peertube uses the non-standard element name 'mimeType' here
+ if(array_key_exists('mimeType',$vurl)) {
+ if(in_array($vurl['mimeType'], $vtypes)) {
+ if(! array_key_exists('width',$vurl)) {
+ $vurl['width'] = 0;
+ }
+ $mps[] = $vurl;
+ }
+ }
+ elseif(array_key_exists('mediaType',$vurl)) {
+ if(in_array($vurl['mediaType'], $vtypes)) {
+ if(! array_key_exists('width',$vurl)) {
+ $vurl['width'] = 0;
+ }
+ $mps[] = $vurl;
+ }
+ }
+ }
+ }
+ if($mps) {
+ usort($mps,[ __CLASS__, 'vid_sort' ]);
+ foreach($mps as $m) {
+ if(intval($m['width']) < 500 && self::media_not_in_body($m['href'],$s['body'])) {
+ $s['body'] .= "\n\n" . '[video]' . $m['href'] . '[/video]';
+ break;
+ }
+ }
+ }
+ elseif(is_string($act->obj['url']) && self::media_not_in_body($act->obj['url'],$s['body'])) {
+ $s['body'] .= "\n\n" . '[video]' . $act->obj['url'] . '[/video]';
}
}
}
- if($mps) {
- usort($mps,'as_vid_sort');
- foreach($mps as $m) {
- if(intval($m['width']) < 500) {
- $s['body'] .= "\n\n" . '[video]' . $m['href'] . '[/video]';
- break;
+
+ if($act->obj['type'] === 'Audio') {
+
+ $atypes = [
+ 'audio/mpeg',
+ 'audio/ogg',
+ 'audio/wav'
+ ];
+
+ $ptr = null;
+
+ if(array_key_exists('url',$act->obj)) {
+ if(is_array($act->obj['url'])) {
+ if(array_key_exists(0,$act->obj['url'])) {
+ $ptr = $act->obj['url'];
+ }
+ else {
+ $ptr = [ $act->obj['url'] ];
+ }
+ foreach($ptr as $vurl) {
+ if(in_array($vurl['mediaType'], $atypes) && self::media_not_in_body($vurl['href'],$s['body'])) {
+ $s['body'] .= "\n\n" . '[audio]' . $vurl['href'] . '[/audio]';
+ break;
+ }
+ }
+ }
+ elseif(is_string($act->obj['url']) && self::media_not_in_body($act->obj['url'],$s['body'])) {
+ $s['body'] .= "\n\n" . '[audio]' . $act->obj['url'] . '[/audio]';
+ }
+ }
+
+ }
+
+ // avoid double images from hubzilla to zap/osada
+
+ if($act->obj['type'] === 'Image' && strpos($s['body'],'zrl=') === false) {
+
+ $ptr = null;
+
+ if(array_key_exists('url',$act->obj)) {
+ if(is_array($act->obj['url'])) {
+ if(array_key_exists(0,$act->obj['url'])) {
+ $ptr = $act->obj['url'];
+ }
+ else {
+ $ptr = [ $act->obj['url'] ];
+ }
+ foreach($ptr as $vurl) {
+ if(strpos($s['body'],$vurl['href']) === false) {
+ $s['body'] .= "\n\n" . '[zmg]' . $vurl['href'] . '[/zmg]';
+ break;
+ }
+ }
+ }
+ elseif(is_string($act->obj['url'])) {
+ if(strpos($s['body'],$act->obj['url']) === false) {
+ $s['body'] .= "\n\n" . '[zmg]' . $act->obj['url'] . '[/zmg]';
+ }
+ }
+ }
+ }
+
+
+ if($act->obj['type'] === 'Page' && ! $s['body']) {
+
+ $ptr = null;
+ $purl = EMPTY_STR;
+
+ if(array_key_exists('url',$act->obj)) {
+ if(is_array($act->obj['url'])) {
+ if(array_key_exists(0,$act->obj['url'])) {
+ $ptr = $act->obj['url'];
+ }
+ else {
+ $ptr = [ $act->obj['url'] ];
+ }
+ foreach($ptr as $vurl) {
+ if(array_key_exists('mediaType',$vurl) && $vurl['mediaType'] === 'text/html') {
+ $purl = $vurl['href'];
+ break;
+ }
+ elseif(array_key_exists('mimeType',$vurl) && $vurl['mimeType'] === 'text/html') {
+ $purl = $vurl['href'];
+ break;
+ }
+ }
+ }
+ elseif(is_string($act->obj['url'])) {
+ $purl = $act->obj['url'];
+ }
+ if($purl) {
+ $li = z_fetch_url(z_root() . '/linkinfo?binurl=' . bin2hex($purl));
+ if($li['success'] && $li['body']) {
+ $s['body'] .= "\n" . $li['body'];
+ }
+ else {
+ $s['body'] .= "\n\n" . $purl;
+ }
}
}
}
}
+
+
+ if(in_array($act->obj['type'],[ 'Note','Article','Page' ])) {
+ $ptr = null;
+
+ if(array_key_exists('url',$act->obj)) {
+ if(is_array($act->obj['url'])) {
+ if(array_key_exists(0,$act->obj['url'])) {
+ $ptr = $act->obj['url'];
+ }
+ else {
+ $ptr = [ $act->obj['url'] ];
+ }
+ foreach($ptr as $vurl) {
+ if(array_key_exists('mediaType',$vurl) && $vurl['mediaType'] === 'text/html') {
+ $s['plink'] = $vurl['href'];
+ break;
+ }
+ }
+ }
+ elseif(is_string($act->obj['url'])) {
+ $s['plink'] = $act->obj['url'];
+ }
+ }
+ }
+
+ if(! $s['plink']) {
+ $s['plink'] = $s['mid'];
+ }
+
if($act->recips && (! in_array(ACTIVITY_PUBLIC_INBOX,$act->recips)))
$s['item_private'] = 1;
@@ -1371,8 +1799,6 @@ class Activity {
}
-
-
static function announce_note($channel,$observer_hash,$act) {
$s = [];
@@ -1464,7 +1890,7 @@ class Activity {
$body .= self::bb_content($content,'content');
if($act->obj['type'] === 'Note' && $s['attach']) {
- $body .= self::bb_attach($s['attach']);
+ $body .= self::bb_attach($s['attach'],$body);
}
$body .= "[/share]";
@@ -1642,19 +2068,26 @@ class Activity {
}
- static function bb_attach($attach) {
+
+ static function bb_attach($attach,$body) {
$ret = false;
foreach($attach as $a) {
if(strpos($a['type'],'image') !== false) {
- $ret .= "\n\n" . '[img]' . $a['href'] . '[/img]';
+ if(self::media_not_in_body($a['href'],$body)) {
+ $ret .= "\n\n" . '[img]' . $a['href'] . '[/img]';
+ }
}
if(array_key_exists('type',$a) && strpos($a['type'], 'video') === 0) {
- $ret .= "\n\n" . '[video]' . $a['href'] . '[/video]';
+ if(self::media_not_in_body($a['href'],$body)) {
+ $ret .= "\n\n" . '[video]' . $a['href'] . '[/video]';
+ }
}
if(array_key_exists('type',$a) && strpos($a['type'], 'audio') === 0) {
- $ret .= "\n\n" . '[audio]' . $a['href'] . '[/audio]';
+ if(self::media_not_in_body($a['href'],$body)) {
+ $ret .= "\n\n" . '[audio]' . $a['href'] . '[/audio]';
+ }
}
}
@@ -1662,16 +2095,31 @@ class Activity {
}
+ // check for the existence of existing media link in body
+
+ static function media_not_in_body($s,$body) {
+
+ if((strpos($body,']' . $s . '[/img]') === false) &&
+ (strpos($body,']' . $s . '[/zmg]') === false) &&
+ (strpos($body,']' . $s . '[/video]') === false) &&
+ (strpos($body,']' . $s . '[/audio]') === false)) {
+ return true;
+ }
+ return false;
+ }
+
static function bb_content($content,$field) {
require_once('include/html2bbcode.php');
-
+ require_once('include/event.php');
$ret = false;
if(is_array($content[$field])) {
foreach($content[$field] as $k => $v) {
- $ret .= '[language=' . $k . ']' . html2bbcode($v) . '[/language]';
+ $ret .= html2bbcode($v);
+ // save this for auto-translate or dynamic filtering
+ // $ret .= '[language=' . $k . ']' . html2bbcode($v) . '[/language]';
}
}
else {
@@ -1682,6 +2130,9 @@ class Activity {
$ret = html2bbcode($content[$field]);
}
}
+ if($field === 'content' && $content['event'] && (! strpos($ret,'[event'))) {
+ $ret .= format_event_bbcode($content['event']);
+ }
return $ret;
}
@@ -1690,21 +2141,52 @@ class Activity {
static function get_content($act) {
$content = [];
- if (! $act) {
+ $event = null;
+
+ if ((! $act) || (! is_array($act))) {
return $content;
}
+ if($act['type'] === 'Event') {
+ $adjust = false;
+ $event = [];
+ $event['event_hash'] = $act['id'];
+ if(array_key_exists('startTime',$act) && strpos($act['startTime'],-1,1) === 'Z') {
+ $adjust = true;
+ $event['adjust'] = 1;
+ $event['dtstart'] = datetime_convert('UTC','UTC',$event['startTime'] . (($adjust) ? '' : 'Z'));
+ }
+ if(array_key_exists('endTime',$act)) {
+ $event['dtend'] = datetime_convert('UTC','UTC',$event['endTime'] . (($adjust) ? '' : 'Z'));
+ }
+ else {
+ $event['nofinish'] = true;
+ }
+ }
+
foreach ([ 'name', 'summary', 'content' ] as $a) {
if (($x = self::get_textfield($act,$a)) !== false) {
$content[$a] = $x;
}
}
+
+ if($event) {
+ $event['summary'] = html2bbcode($content['summary']);
+ $event['description'] = html2bbcode($content['content']);
+ if($event['summary'] && $event['dtstart']) {
+ $content['event'] = $event;
+ }
+ }
+
if (array_key_exists('source',$act) && array_key_exists('mediaType',$act['source'])) {
if ($act['source']['mediaType'] === 'text/bbcode') {
$content['bbcode'] = purify_html($act['source']['content']);
}
}
+
+
+
return $content;
}
@@ -1722,4 +2204,6 @@ class Activity {
}
return $content;
}
+
+
} \ No newline at end of file
diff --git a/Zotlabs/Lib/ActivityStreams.php b/Zotlabs/Lib/ActivityStreams.php
index 37e717f58..a357b6d69 100644
--- a/Zotlabs/Lib/ActivityStreams.php
+++ b/Zotlabs/Lib/ActivityStreams.php
@@ -7,22 +7,25 @@ namespace Zotlabs\Lib;
*
* Parses an ActivityStream JSON string.
*/
+
class ActivityStreams {
- public $raw = null;
- public $data;
- public $valid = false;
- public $id = '';
- public $type = '';
- public $actor = null;
- public $obj = null;
- public $tgt = null;
- public $origin = null;
- public $owner = null;
- public $signer = null;
- public $ldsig = null;
- public $sigok = false;
- public $recips = null;
+ public $raw = null;
+ public $data = null;
+ public $valid = false;
+ public $deleted = false;
+ public $id = '';
+ public $parent_id = '';
+ public $type = '';
+ public $actor = null;
+ public $obj = null;
+ public $tgt = null;
+ public $origin = null;
+ public $owner = null;
+ public $signer = null;
+ public $ldsig = null;
+ public $sigok = false;
+ public $recips = null;
public $raw_recips = null;
/**
@@ -35,16 +38,49 @@ class ActivityStreams {
function __construct($string) {
$this->raw = $string;
- $this->data = json_decode($string, true);
+
+ if(is_array($string)) {
+ $this->data = $string;
+ }
+ else {
+ $this->data = json_decode($string, true);
+ }
if($this->data) {
+
+ // verify and unpack JSalmon signature if present
+
+ if(is_array($this->data) && array_key_exists('signed',$this->data)) {
+ $ret = JSalmon::verify($this->data);
+ $tmp = JSalmon::unpack($this->data['data']);
+ if($ret && $ret['success']) {
+ if($ret['signer']) {
+ $saved = json_encode($this->data,JSON_UNESCAPED_SLASHES);
+ $this->data = $tmp;
+ $this->data['signer'] = $ret['signer'];
+ $this->data['signed_data'] = $saved;
+ if($ret['hubloc']) {
+ $this->data['hubloc'] = $ret['hubloc'];
+ }
+ }
+ }
+ }
+
$this->valid = true;
+
+ if(array_key_exists('type',$this->data) && array_key_exists('actor',$this->data) && array_key_exists('object',$this->data)) {
+ if($this->data['type'] === 'Delete' && $this->data['actor'] === $this->data['object']) {
+ $this->deleted = $this->data['actor'];
+ $this->valid = false;
+ }
+ }
+
}
if($this->is_valid()) {
$this->id = $this->get_property_obj('id');
$this->type = $this->get_primary_type();
- $this->actor = $this->get_compound_property('actor');
+ $this->actor = $this->get_actor('actor','','');
$this->obj = $this->get_compound_property('object');
$this->tgt = $this->get_compound_property('target');
$this->origin = $this->get_compound_property('origin');
@@ -53,14 +89,31 @@ class ActivityStreams {
$this->ldsig = $this->get_compound_property('signature');
if($this->ldsig) {
$this->signer = $this->get_compound_property('creator',$this->ldsig);
- if($this->signer && $this->signer['publicKey'] && $this->signer['publicKey']['publicKeyPem']) {
- $this->sigok = \Zotlabs\Lib\LDSignatures::verify($this->data,$this->signer['publicKey']['publicKeyPem']);
+ if($this->signer && is_array($this->signer) && array_key_exists('publicKey',$this->signer) && is_array($this->signer['publicKey']) && $this->signer['publicKey']['publicKeyPem']) {
+ $this->sigok = LDSignatures::verify($this->data,$this->signer['publicKey']['publicKeyPem']);
}
}
- if(($this->type === 'Note') && (! $this->obj)) {
+ if(! $this->obj) {
$this->obj = $this->data;
$this->type = 'Create';
+ if(! $this->actor) {
+ $this->actor = $this->get_actor('attributedTo',$this->obj);
+ }
+ }
+
+ if($this->obj && is_array($this->obj) && $this->obj['actor'])
+ $this->obj['actor'] = $this->get_actor('actor',$this->obj);
+ if($this->tgt && is_array($this->tgt) && $this->tgt['actor'])
+ $this->tgt['actor'] = $this->get_actor('actor',$this->tgt);
+
+ $this->parent_id = $this->get_property_obj('inReplyTo');
+
+ if((! $this->parent_id) && is_array($this->obj)) {
+ $this->parent_id = $this->obj['inReplyTo'];
+ }
+ if((! $this->parent_id) && is_array($this->obj)) {
+ $this->parent_id = $this->obj['id'];
}
}
}
@@ -190,44 +243,106 @@ class ActivityStreams {
$base = (($base) ? $base : $this->data);
$propname = (($prefix) ? $prefix . ':' : '') . $property;
+ if(! is_array($base)) {
+ btlogger('not an array: ' . print_r($base,true));
+ return null;
+ }
+
return ((array_key_exists($propname, $base)) ? $base[$propname] : null);
}
+
/**
* @brief Fetches a property from an URL.
*
* @param string $url
* @return NULL|mixed
*/
+
function fetch_property($url) {
- $redirects = 0;
- if(! check_siteallowed($url)) {
- logger('blacklisted: ' . $url);
- return null;
- }
+ return self::fetch($url);
+ }
- $x = z_fetch_url($url, true, $redirects,
- ['headers' => [ 'Accept: application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams"' ]]);
- if($x['success'])
- return json_decode($x['body'], true);
+ static function fetch($url,$channel = null) {
+ return Activity::fetch($url,$channel);
+ }
+ static function is_an_actor($s) {
+ return(in_array($s,[ 'Application','Group','Organization','Person','Service' ]));
+ }
+
+ /**
+ * @brief
+ *
+ * @param string $property
+ * @param array $base
+ * @param string $namespace (optional) default empty
+ * @return NULL|mixed
+ */
+
+ function get_actor($property,$base='',$namespace = '') {
+ $x = $this->get_property_obj($property, $base, $namespace);
+ if($this->is_url($x)) {
+
+ // SECURITY: If we have already stored the actor profile, re-generate it
+ // from cached data - don't refetch it from the network
+
+ $r = q("select * from xchan left join hubloc on xchan_hash = hubloc_hash where hubloc_id_url = '%s' limit 1",
+ dbesc($x)
+ );
+ if($r) {
+ $y = Activity::encode_person($r[0]);
+ $y['cached'] = true;
+ return $y;
+ }
+ }
+ $actor = $this->get_compound_property($property,$base,$namespace,true);
+ if(is_array($actor) && self::is_an_actor($actor['type'])) {
+ if(array_key_exists('id',$actor) && (! array_key_exists('inbox',$actor))) {
+ $actor = $this->fetch_property($actor['id']);
+ }
+ return $actor;
+ }
return null;
}
+
/**
* @brief
*
* @param string $property
* @param array $base
* @param string $namespace (optional) default empty
+ * @param boolean $first (optional) default false, if true and result is a sequential array return only the first element
* @return NULL|mixed
*/
- function get_compound_property($property, $base = '', $namespace = '') {
+ function get_compound_property($property, $base = '', $namespace = '', $first = false) {
$x = $this->get_property_obj($property, $base, $namespace);
if($this->is_url($x)) {
$x = $this->fetch_property($x);
}
+ // verify and unpack JSalmon signature if present
+
+ if(is_array($x) && array_key_exists('signed',$x)) {
+ $ret = JSalmon::verify($x);
+ $tmp = JSalmon::unpack($x['data']);
+ if($ret && $ret['success']) {
+ if($ret['signer']) {
+ $saved = json_encode($x,JSON_UNESCAPED_SLASHES);
+ $x = $tmp;
+ $x['signer'] = $ret['signer'];
+ $x['signed_data'] = $saved;
+ if($ret['hubloc']) {
+ $x['hubloc'] = $ret['hubloc'];
+ }
+ }
+ }
+ }
+ if($first && is_array($x) && array_key_exists(0,$x)) {
+ return $x[0];
+ }
+
return $x;
}
@@ -273,4 +388,18 @@ class ActivityStreams {
return $x;
}
+
+ static function is_as_request() {
+
+ $x = getBestSupportedMimeType([
+ 'application/ld+json;profile="https://www.w3.org/ns/activitystreams"',
+ 'application/activity+json',
+ 'application/ld+json;profile="http://www.w3.org/ns/activitystreams"'
+ ]);
+
+ return(($x) ? true : false);
+
+ }
+
+
} \ No newline at end of file
diff --git a/Zotlabs/Lib/Api_router.php b/Zotlabs/Lib/Api_router.php
index 404678bd9..6e3f231a9 100644
--- a/Zotlabs/Lib/Api_router.php
+++ b/Zotlabs/Lib/Api_router.php
@@ -12,8 +12,16 @@ class Api_router {
}
static function find($path) {
- if(array_key_exists($path,self::$routes))
+ if (array_key_exists($path,self::$routes)) {
return self::$routes[$path];
+ }
+
+ $with_params = dirname($path) . '/[id]';
+
+ if (array_key_exists($with_params,self::$routes)) {
+ return self::$routes[$with_params];
+ }
+
return null;
}
diff --git a/Zotlabs/Lib/Apps.php b/Zotlabs/Lib/Apps.php
index 8cf62c01a..7541c68a4 100644
--- a/Zotlabs/Lib/Apps.php
+++ b/Zotlabs/Lib/Apps.php
@@ -1,32 +1,34 @@
-<?php /** @file */
+<?php
namespace Zotlabs\Lib;
-/**
- * Apps
- *
- */
-
require_once('include/plugin.php');
require_once('include/channel.php');
-
+/**
+ * @brief Apps class.
+ *
+ */
class Apps {
static public $available_apps = null;
static public $installed_apps = null;
-
static public $base_apps = null;
-
-
+ /**
+ * @brief
+ *
+ * @param boolean $translate (optional) default true
+ * @return array
+ */
static public function get_system_apps($translate = true) {
+ $ret = [];
- $ret = array();
if(is_dir('apps'))
$files = glob('apps/*.apd');
else
$files = glob('app/*.apd');
+
if($files) {
foreach($files as $f) {
$x = self::parse_app_description($f,$translate);
@@ -50,14 +52,17 @@ class Apps {
}
}
- call_hooks('get_system_apps',$ret);
+ /**
+ * @hooks get_system_apps
+ * Hook to manipulate the system apps array.
+ */
+ call_hooks('get_system_apps', $ret);
return $ret;
-
}
static public function get_base_apps() {
- return get_config('system','base_apps',[
+ $x = get_config('system','base_apps',[
'Connections',
'Network',
'Settings',
@@ -72,6 +77,14 @@ class Apps {
'Mail',
'Profile Photo'
]);
+
+ /**
+ * @hooks get_base_apps
+ * Hook to manipulate the base apps array.
+ */
+ call_hooks('get_base_apps', $x);
+
+ return $x;
}
static public function import_system_apps() {
@@ -79,7 +92,7 @@ class Apps {
return;
self::$base_apps = self::get_base_apps();
-
+
$apps = self::get_system_apps(false);
self::$available_apps = q("select * from app where app_channel = 0");
@@ -104,6 +117,7 @@ class Apps {
// $id will be boolean true or false to install an app, or an integer id to update an existing app
if($id === false)
continue;
+
if($id !== true) {
// if we already installed this app, but it changed, preserve any categories we created
$s = EMPTY_STR;
@@ -124,16 +138,17 @@ class Apps {
$app['guid'] = hash('whirlpool',$app['name']);
$app['system'] = 1;
self::app_install(local_channel(),$app);
-
}
- }
+ }
}
/**
- * Install the system app if no system apps have been installed, or if a new system app
+ * Install the system app if no system apps have been installed, or if a new system app
* is discovered, or if the version of a system app changes.
+ *
+ * @param array $app
+ * @return boolean|int
*/
-
static public function check_install_system_app($app) {
if((! is_array(self::$available_apps)) || (! count(self::$available_apps))) {
return true;
@@ -157,17 +172,16 @@ class Apps {
return $notfound;
}
-
/**
- * Install the system app if no system apps have been installed, or if a new system app
- * is discovered, or if the version of a system app changes.
+ * Install the personal app if no personal apps have been installed, or if a new personal app
+ * is discovered, or if the version of a personal app changes.
+ *
+ * @param array $app
+ * @return boolean|int
*/
-
-
-
static public function check_install_personal_app($app) {
$installed = false;
- foreach(self::$installed_apps as $iapp) {
+ foreach(self::$installed_apps as $iapp) {
if($iapp['app_id'] == hash('whirlpool',$app['name'])) {
$installed = true;
if(($iapp['app_version'] != $app['version'])
@@ -187,19 +201,24 @@ class Apps {
return strcasecmp($a['name'],$b['name']);
}
-
- static public function parse_app_description($f,$translate = true) {
-
- $ret = array();
+ /**
+ * @brief Parse app description.
+ *
+ * @param string $f filename
+ * @param boolean $translate (optional) default true
+ * @return boolean|array
+ */
+ static public function parse_app_description($f, $translate = true) {
+ $ret = [];
+ $matches = [];
$baseurl = z_root();
- $channel = \App::get_channel();
- $address = (($channel) ? $channel['channel_address'] : '');
-
+ //$channel = \App::get_channel();
+ //$address = (($channel) ? $channel['channel_address'] : '');
+
//future expansion
$observer = \App::get_observer();
-
$lines = @file($f);
if($lines) {
@@ -208,7 +227,7 @@ class Apps {
$ret[$matches[1]] = trim($matches[2]);
}
}
- }
+ }
if(! $ret['photo'])
$ret['photo'] = $baseurl . '/' . get_default_profile_photo(80);
@@ -290,36 +309,40 @@ class Apps {
if($ret) {
if($translate)
self::translate_system_apps($ret);
+
return $ret;
}
+
return false;
- }
+ }
static public function translate_system_apps(&$arr) {
$apps = array(
'Apps' => t('Apps'),
+ 'Affinity Tool' => t('Affinity Tool'),
'Articles' => t('Articles'),
'Cards' => t('Cards'),
'Admin' => t('Site Admin'),
'Report Bug' => t('Report Bug'),
'Bookmarks' => t('Bookmarks'),
'Chatrooms' => t('Chatrooms'),
+ 'Content Filter' => t('Content Filter'),
'Connections' => t('Connections'),
'Remote Diagnostics' => t('Remote Diagnostics'),
'Suggest Channels' => t('Suggest Channels'),
'Login' => t('Login'),
- 'Channel Manager' => t('Channel Manager'),
+ 'Channel Manager' => t('Channel Manager'),
'Network' => t('Stream'),
'Settings' => t('Settings'),
'Files' => t('Files'),
'Webpages' => t('Webpages'),
'Wiki' => t('Wiki'),
- 'Channel Home' => t('Channel Home'),
+ 'Channel Home' => t('Channel Home'),
'View Profile' => t('View Profile'),
- 'Photos' => t('Photos'),
- 'Events' => t('Events'),
- 'Directory' => t('Directory'),
+ 'Photos' => t('Photos'),
+ 'Events' => t('Events'),
+ 'Directory' => t('Directory'),
'Help' => t('Help'),
'Mail' => t('Mail'),
'Mood' => t('Mood'),
@@ -364,30 +387,31 @@ class Apps {
if(array_key_exists($arr[$x]['name'],$apps)) {
$arr[$x]['name'] = $apps[$arr[$x]['name']];
} else {
- // Try to guess by app name if not in list
- $arr[$x]['name'] = t(trim($arr[$x]['name']));
+ // Try to guess by app name if not in list
+ $arr[$x]['name'] = t(trim($arr[$x]['name']));
}
}
}
-
}
-
- // papp is a portable app
-
- static public function app_render($papp,$mode = 'view') {
-
- /**
- * modes:
- * view: normal mode for viewing an app via bbcode from a conversation or page
- * provides install/update button if you're logged in locally
- * install: like view but does not display app-bin options if they are present
- * list: normal mode for viewing an app on the app page
- * no buttons are shown
- * edit: viewing the app page in editing mode provides a delete button
- * nav: render apps for app-bin
- */
-
+ /**
+ * @brief
+ *
+ * @param array $papp
+ * papp is a portable app
+ * @param string $mode (optional) default 'view'
+ * Render modes:
+ * * \b view: normal mode for viewing an app via bbcode from a conversation or page
+ * provides install/update button if you're logged in locally
+ * * \b install: like view but does not display app-bin options if they are present
+ * * \b list: normal mode for viewing an app on the app page
+ * no buttons are shown
+ * * \b edit: viewing the app page in editing mode provides a delete button
+ * * \b nav: render apps for app-bin
+ *
+ * @return void|string Parsed HTML
+ */
+ static public function app_render($papp, $mode = 'view') {
$installed = false;
if(! $papp)
@@ -412,7 +436,7 @@ class Apps {
$sys = get_sys_channel();
$view_channel = $sys['channel_id'];
}
- self::app_macros($view_channel,$papp);
+ self::app_macros($view_channel,$papp);
}
if(strpos($papp['url'], ',')) {
@@ -425,7 +449,6 @@ class Apps {
$papp['url'] = z_root() . ((strpos($papp['url'],'/') === 0) ? '' : '/') . $papp['url'];
-
foreach($papp as $k => $v) {
if(strpos($v,'http') === 0 && $k != 'papp') {
if(! (local_channel() && strpos($v,z_root()) === 0)) {
@@ -507,7 +530,7 @@ class Apps {
if($x) {
$hosturl = $x['scheme'] . '://' . $x['host'] . '/';
}
- }
+ }
}
$install_action = (($installed) ? t('Update') : t('Install'));
@@ -590,8 +613,14 @@ class Apps {
return false;
}
-
- static public function can_delete($uid,$app) {
+ /**
+ * @brief
+ *
+ * @param mixed $uid If not set return false, otherwise no influence
+ * @param array $app
+ * @return boolean
+ */
+ static public function can_delete($uid, $app) {
if(! $uid) {
return false;
}
@@ -599,7 +628,7 @@ class Apps {
$base_apps = self::get_base_apps();
if($base_apps) {
foreach($base_apps as $b) {
- if($app['guid'] === hash('whirlpool',$b)) {
+ if($app['guid'] === hash('whirlpool', $b)) {
return false;
}
}
@@ -611,7 +640,6 @@ class Apps {
static public function app_destroy($uid,$app) {
if($uid && $app['guid']) {
-
$x = q("select * from app where app_id = '%s' and app_channel = %d limit 1",
dbesc($app['guid']),
intval($uid)
@@ -620,7 +648,7 @@ class Apps {
if(! intval($x[0]['app_deleted'])) {
$x[0]['app_deleted'] = 1;
if(self::can_delete($uid,$app)) {
- $r = q("delete from app where app_id = '%s' and app_channel = %d",
+ q("delete from app where app_id = '%s' and app_channel = %d",
dbesc($app['guid']),
intval($uid)
);
@@ -628,10 +656,15 @@ class Apps {
intval(TERM_OBJ_APP),
intval($x[0]['id'])
);
+ /**
+ * @hooks app_destroy
+ * Called after app entry got removed from database
+ * and provide app array from database.
+ */
call_hooks('app_destroy', $x[0]);
}
else {
- $r = q("update app set app_deleted = 1 where app_id = '%s' and app_channel = %d",
+ q("update app set app_deleted = 1 where app_id = '%s' and app_channel = %d",
dbesc($app['guid']),
intval($uid)
);
@@ -645,22 +678,23 @@ class Apps {
}
}
}
-
}
- static public function app_undestroy($uid,$app) {
-
- // undelete a system app
-
+ /**
+ * @brief Undelete a system app.
+ *
+ * @param int $uid
+ * @param array $app
+ */
+ static public function app_undestroy($uid, $app) {
if($uid && $app['guid']) {
-
$x = q("select * from app where app_id = '%s' and app_channel = %d limit 1",
dbesc($app['guid']),
intval($uid)
);
if($x) {
if($x[0]['app_system']) {
- $r = q("update app set app_deleted = 0 where app_id = '%s' and app_channel = %d",
+ q("update app set app_deleted = 0 where app_id = '%s' and app_channel = %d",
dbesc($app['guid']),
intval($uid)
);
@@ -669,7 +703,15 @@ class Apps {
}
}
- static public function app_feature($uid,$app,$term) {
+ /**
+ * @brief
+ *
+ * @param int $uid
+ * @param array $app
+ * @param string $term
+ * @return void
+ */
+ static public function app_feature($uid, $app, $term) {
$r = q("select id from app where app_id = '%s' and app_channel = %d limit 1",
dbesc($app['guid']),
intval($uid)
@@ -693,23 +735,37 @@ class Apps {
}
}
- static public function app_installed($uid,$app,$bypass_filter=false) {
+ /**
+ * @brief
+ *
+ * @param int $uid
+ * @param array $app
+ * @param boolean $bypass_filter (optional) default false
+ * @return boolean
+ */
+ static public function app_installed($uid, $app, $bypass_filter = false) {
$r = q("select id from app where app_id = '%s' and app_channel = %d limit 1",
- dbesc((array_key_exists('guid',$app)) ? $app['guid'] : ''),
+ dbesc((array_key_exists('guid', $app)) ? $app['guid'] : ''),
intval($uid)
);
- if (!$bypass_filter) {
+ if(!$bypass_filter) {
$filter_arr = [
- 'uid'=>$uid,
- 'app'=>$app,
- 'installed'=>$r
+ 'uid' => $uid,
+ 'app' => $app,
+ 'installed' => $r
];
- call_hooks('app_installed_filter',$filter_arr);
+ /**
+ * @hooks app_installed_filter
+ * * \e int \b uid
+ * * \e array \b app
+ * * \e mixed \b installed - return value
+ */
+ call_hooks('app_installed_filter', $filter_arr);
$r = $filter_arr['installed'];
}
- return(($r) ? true : false);
+ return(($r) ? true : false);
}
@@ -725,11 +781,17 @@ class Apps {
'app'=>$app,
'installed'=>$r
];
- call_hooks('addon_app_installed_filter',$filter_arr);
+ /**
+ * @hooks addon_app_installed_filter
+ * * \e int \b uid
+ * * \e array \b app
+ * * \e mixed \b installed - return value
+ */
+ call_hooks('addon_app_installed_filter', $filter_arr);
$r = $filter_arr['installed'];
}
- return(($r) ? true : false);
+ return(($r) ? true : false);
}
static public function system_app_installed($uid,$app,$bypass_filter=false) {
@@ -744,28 +806,39 @@ class Apps {
'app'=>$app,
'installed'=>$r
];
- call_hooks('system_app_installed_filter',$filter_arr);
+ /**
+ * @hooks system_app_installed_filter
+ * * \e int \b uid
+ * * \e array \b app
+ * * \e mixed \b installed - return value
+ */
+ call_hooks('system_app_installed_filter', $filter_arr);
$r = $filter_arr['installed'];
}
- return(($r) ? true : false);
+ return(($r) ? true : false);
}
-
-
+ /**
+ * @brief
+ *
+ * @param int $uid
+ * @param boolean $deleted
+ * @param array $cats
+ * @return boolean|array
+ */
static public function app_list($uid, $deleted = false, $cats = []) {
- if($deleted)
- $sql_extra = "";
+ if($deleted)
+ $sql_extra = '';
else
- $sql_extra = " and app_deleted = 0 ";
+ $sql_extra = ' and app_deleted = 0 ';
if($cats) {
-
- $cat_sql_extra = " and ( ";
+ $cat_sql_extra = ' and ( ';
foreach($cats as $cat) {
if(strpos($cat_sql_extra, 'term'))
- $cat_sql_extra .= "or ";
+ $cat_sql_extra .= 'or ';
$cat_sql_extra .= "term = '" . dbesc($cat) . "' ";
}
@@ -777,11 +850,13 @@ class Apps {
);
if(! $r)
return $r;
- $sql_extra .= " and app.id in ( ";
+
+ $sql_extra .= ' and app.id in ( ';
$s = '';
foreach($r as $rr) {
if($s)
$s .= ',';
+
$s .= intval($rr['oid']);
}
$sql_extra .= $s . ') ';
@@ -792,12 +867,26 @@ class Apps {
);
if($r) {
- $hookinfo = Array('uid'=>$uid,'deleted'=>$deleted,'cats'=>$cats,'apps'=>$r);
- call_hooks('app_list',$hookinfo);
+ $hookinfo = [
+ 'uid' => $uid,
+ 'deleted' => $deleted,
+ 'cats' => $cats,
+ 'apps' => $r,
+ ];
+ /**
+ * @hooks app_list
+ * * \e int \b uid
+ * * \e boolean \b deleted
+ * * \e array \b cats
+ * * \e array \b apps - return value
+ */
+ call_hooks('app_list', $hookinfo);
$r = $hookinfo['apps'];
- for($x = 0; $x < count($r); $x ++) {
+
+ for($x = 0; $x < count($r); $x++) {
if(! $r[$x]['app_system'])
$r[$x]['type'] = 'personal';
+
$r[$x]['term'] = q("select * from term where otype = %d and oid = %d",
intval(TERM_OBJ_APP),
intval($r[$x]['id'])
@@ -805,7 +894,7 @@ class Apps {
}
}
- return($r);
+ return $r;
}
static public function app_order($uid,$apps,$menu) {
@@ -837,13 +926,14 @@ class Apps {
$ret[] = $ap;
}
}
- return $ret;
+ return $ret;
}
static function find_app_in_array($name,$arr) {
if(! $arr)
return false;
+
foreach($arr as $x) {
if($x['name'] === $name) {
return $x;
@@ -852,8 +942,16 @@ class Apps {
return false;
}
- static function moveup($uid,$guid,$menu) {
- $syslist = array();
+ /**
+ * @brief
+ *
+ * @param int $uid
+ * @param int $guid
+ * @param string $menu
+ * @return void
+ */
+ static function moveup($uid, $guid, $menu) {
+ $syslist = [];
$conf = (($menu === 'nav_featured_app') ? 'app_order' : 'app_pin_order');
@@ -863,6 +961,7 @@ class Apps {
$papp = self::app_encode($li);
if($menu !== 'nav_pinned_app' && strpos($papp['categories'],'nav_pinned_app') !== false)
continue;
+
$syslist[] = $papp;
}
}
@@ -875,8 +974,6 @@ class Apps {
if(! $syslist)
return;
- $newlist = [];
-
foreach($syslist as $k => $li) {
if($li['guid'] === $guid) {
$position = $k;
@@ -885,6 +982,7 @@ class Apps {
}
if(! $position)
return;
+
$dest_position = $position - 1;
$saved = $syslist[$dest_position];
$syslist[$dest_position] = $syslist[$position];
@@ -896,11 +994,18 @@ class Apps {
}
set_pconfig($uid,'system',$conf,implode(',',$narr));
-
}
- static function movedown($uid,$guid,$menu) {
- $syslist = array();
+ /**
+ * @brief
+ *
+ * @param int $uid
+ * @param int $guid
+ * @param string $menu
+ * @return void
+ */
+ static function movedown($uid, $guid, $menu) {
+ $syslist = [];
$conf = (($menu === 'nav_featured_app') ? 'app_order' : 'app_pin_order');
@@ -910,6 +1015,7 @@ class Apps {
$papp = self::app_encode($li);
if($menu !== 'nav_pinned_app' && strpos($papp['categories'],'nav_pinned_app') !== false)
continue;
+
$syslist[] = $papp;
}
}
@@ -922,8 +1028,6 @@ class Apps {
if(! $syslist)
return;
- $newlist = [];
-
foreach($syslist as $k => $li) {
if($li['guid'] === $guid) {
$position = $k;
@@ -932,6 +1036,7 @@ class Apps {
}
if($position >= count($syslist) - 1)
return;
+
$dest_position = $position + 1;
$saved = $syslist[$dest_position];
$syslist[$dest_position] = $syslist[$position];
@@ -943,7 +1048,6 @@ class Apps {
}
set_pconfig($uid,'system',$conf,implode(',',$narr));
-
}
static public function app_decode($s) {
@@ -951,8 +1055,14 @@ class Apps {
return json_decode($x,true);
}
-
- static public function app_macros($uid,&$arr) {
+ /**
+ * @brief
+ *
+ * @param int $uid
+ * @param[in,out] array $arr
+ * @return void
+ */
+ static public function app_macros($uid, &$arr) {
if(! intval($uid))
return;
@@ -960,21 +1070,17 @@ class Apps {
$baseurl = z_root();
$channel = channelx_by_n($uid);
$address = (($channel) ? $channel['channel_address'] : '');
-
+
//future expansion
- $observer = \App::get_observer();
-
+ //$observer = \App::get_observer();
+
$arr['url'] = str_replace(array('$baseurl','$nick'),array($baseurl,$address),$arr['url']);
$arr['photo'] = str_replace(array('$baseurl','$nick'),array($baseurl,$address),$arr['photo']);
-
}
-
-
-
static public function app_store($arr) {
//logger('app_store: ' . print_r($arr,true));
@@ -1158,16 +1264,20 @@ class Apps {
}
return $ret;
-
}
-
- static public function app_encode($app,$embed = false) {
-
- $ret = array();
+ /**
+ * @brief
+ *
+ * @param array $app
+ * @param boolean $embed (optional) default false
+ * @return array|string
+ */
+ static public function app_encode($app, $embed = false) {
+ $ret = [];
$ret['type'] = 'personal';
-
+
if($app['app_id'])
$ret['guid'] = $app['app_id'];
@@ -1200,7 +1310,7 @@ class Apps {
if($app['app_price'])
$ret['price'] = $app['app_price'];
-
+
if($app['app_page'])
$ret['page'] = $app['app_page'];
@@ -1224,12 +1334,12 @@ class Apps {
foreach($app['term'] as $t) {
if($s)
$s .= ',';
+
$s .= $t['term'];
}
$ret['categories'] = $s;
}
-
if(! $embed)
return $ret;
@@ -1237,18 +1347,15 @@ class Apps {
if(array_key_exists('categories',$ret))
unset($ret['categories']);
-
+
$j = json_encode($ret);
- return '[app]' . chunk_split(base64_encode($j),72,"\n") . '[/app]';
+ return '[app]' . chunk_split(base64_encode($j),72,"\n") . '[/app]';
}
static public function papp_encode($papp) {
return chunk_split(base64_encode(json_encode($papp)),72,"\n");
-
}
}
-
-
diff --git a/Zotlabs/Lib/DReport.php b/Zotlabs/Lib/DReport.php
index a68d6c18f..18087e29f 100644
--- a/Zotlabs/Lib/DReport.php
+++ b/Zotlabs/Lib/DReport.php
@@ -14,6 +14,7 @@ class DReport {
$this->location = $location;
$this->sender = $sender;
$this->recipient = $recipient;
+ $this->name = EMPTY_STR;
$this->message_id = $message_id;
$this->status = $status;
$this->date = datetime_convert();
@@ -24,8 +25,8 @@ class DReport {
$this->date = datetime_convert();
}
- function addto_recipient($name) {
- $this->recipient = $this->recipient . ' ' . $name;
+ function set_name($name) {
+ $this->name = $name;
}
function addto_update($status) {
@@ -37,6 +38,7 @@ class DReport {
$this->location = $arr['location'];
$this->sender = $arr['sender'];
$this->recipient = $arr['recipient'];
+ $this->name = $arr['name'];
$this->message_id = $arr['message_id'];
$this->status = $arr['status'];
$this->date = $arr['date'];
@@ -47,9 +49,99 @@ class DReport {
'location' => $this->location,
'sender' => $this->sender,
'recipient' => $this->recipient,
+ 'name' => $this->name,
'message_id' => $this->message_id,
'status' => $this->status,
'date' => $this->date
);
}
+
+ /**
+ * @brief decide whether to store a returned delivery report
+ *
+ * @param array $dr
+ * @return boolean
+ */
+
+ static function is_storable($dr) {
+
+ if(get_config('system', 'disable_dreport'))
+ return false;
+
+ /**
+ * @hooks dreport_is_storable
+ * Called before storing a dreport record to determine whether to store it.
+ * * \e array
+ */
+
+ call_hooks('dreport_is_storable', $dr);
+
+ // let plugins accept or reject - if neither, continue on
+ if(array_key_exists('accept',$dr) && intval($dr['accept']))
+ return true;
+ if(array_key_exists('reject',$dr) && intval($dr['reject']))
+ return false;
+
+ if(! ($dr['sender']))
+ return false;
+
+ // Is the sender one of our channels?
+
+ $c = q("select channel_id from channel where channel_hash = '%s' or channel_portable_id = '%s' limit 1",
+ dbesc($dr['sender']),
+ dbesc($dr['sender'])
+ );
+
+ if(! $c)
+ return false;
+
+ // legacy zot recipients add a space and their name to the xchan. remove it if true.
+
+ $legacy_recipient = strpos($dr['recipient'], ' ');
+ if($legacy_recipient !== false) {
+ $legacy_recipient_parts = explode(' ', $dr['recipient'], 2);
+ $rxchan = $legacy_recipient_parts[0];
+ }
+ else {
+ $rxchan = $dr['recipient'];
+ }
+
+
+
+ // is the recipient one of our connections, or do we want to store every report?
+
+ $pcf = get_pconfig($c[0]['channel_id'],'system','dreport_store_all');
+ if($pcf)
+ return true;
+
+ // We always add ourself as a recipient to private and relayed posts
+ // So if a remote site says they can't find us, that's no big surprise
+ // and just creates a lot of extra report noise
+
+ if(($dr['location'] !== z_root()) && ($dr['sender'] === $rxchan) && ($dr['status'] === 'recipient_not_found'))
+ return false;
+
+ // If you have a private post with a recipient list, every single site is going to report
+ // back a failed delivery for anybody on that list that isn't local to them. We're only
+ // concerned about this if we have a local hubloc record which says we expected them to
+ // have a channel on that site.
+
+ $r = q("select hubloc_id from hubloc where hubloc_hash = '%s' and hubloc_url = '%s'",
+ dbesc($rxchan),
+ dbesc($dr['location'])
+ );
+ if((! $r) && ($dr['status'] === 'recipient_not_found'))
+ return false;
+
+ $r = q("select abook_id from abook where abook_xchan = '%s' and abook_channel = %d limit 1",
+ dbesc($rxchan),
+ intval($c[0]['channel_id'])
+ );
+ if($r)
+ return true;
+
+ return false;
+ }
+
+
}
diff --git a/Zotlabs/Lib/JSalmon.php b/Zotlabs/Lib/JSalmon.php
index 43d5f9d09..f35bf6235 100644
--- a/Zotlabs/Lib/JSalmon.php
+++ b/Zotlabs/Lib/JSalmon.php
@@ -2,15 +2,13 @@
namespace Zotlabs\Lib;
+use Zotlabs\Zot6\HTTPSig;
class JSalmon {
- static function sign($data,$key_id,$key) {
+ static function sign($data,$key_id,$key,$data_type = 'application/x-zot+json') {
- $arr = $data;
- $data = json_encode($data,JSON_UNESCAPED_SLASHES);
- $data = base64url_encode($data, false); // do not strip padding
- $data_type = 'application/x-zot+json';
+ $data = base64url_encode(json_encode($data,true),true); // strip padding
$encoding = 'base64url';
$algorithm = 'RSA-SHA256';
@@ -18,9 +16,9 @@ class JSalmon {
// precomputed base64url encoding of data_type, encoding, algorithm concatenated with periods
- $precomputed = '.' . base64url_encode($data_type,false) . '.YmFzZTY0dXJs.UlNBLVNIQTI1Ng==';
+ $precomputed = '.' . base64url_encode($data_type,true) . '.YmFzZTY0dXJs.UlNBLVNIQTI1Ng';
- $signature = base64url_encode(rsa_sign($data . $precomputed, $key), false);
+ $signature = base64url_encode(rsa_sign($data . $precomputed, $key), true);
return ([
'signed' => true,
@@ -30,9 +28,45 @@ class JSalmon {
'alg' => $algorithm,
'sigs' => [
'value' => $signature,
- 'key_id' => base64url_encode($key_id)
+ 'key_id' => base64url_encode($key_id, true)
]
]);
}
+
+ static function verify($x) {
+
+ logger('verify');
+ $ret = [ 'results' => [] ];
+
+ if(! is_array($x)) {
+ return $false;
+ }
+ if(! ( array_key_exists('signed',$x) && $x['signed'])) {
+ return $false;
+ }
+
+ $signed_data = preg_replace('/\s+/','',$x['data']) . '.'
+ . base64url_encode($x['data_type'],true) . '.'
+ . base64url_encode($x['encoding'],true) . '.'
+ . base64url_encode($x['alg'],true);
+
+ $key = HTTPSig::get_key(EMPTY_STR,base64url_decode($x['sigs']['key_id']));
+ logger('key: ' . print_r($key,true));
+ if($key['portable_id'] && $key['public_key']) {
+ if(rsa_verify($signed_data,base64url_decode($x['sigs']['value']),$key['public_key'])) {
+ logger('verified');
+ $ret = [ 'success' => true, 'signer' => $key['portable_id'], 'hubloc' => $key['hubloc'] ];
+ }
+ }
+
+ return $ret;
+
+ }
+
+ static function unpack($data) {
+ return json_decode(base64url_decode($data),true);
+ }
+
+
} \ No newline at end of file
diff --git a/Zotlabs/Lib/Libzot.php b/Zotlabs/Lib/Libzot.php
index 2c726aff4..fd1538f0b 100644
--- a/Zotlabs/Lib/Libzot.php
+++ b/Zotlabs/Lib/Libzot.php
@@ -2,11 +2,6 @@
namespace Zotlabs\Lib;
-/**
- * @brief lowlevel implementation of Zot6 protocol.
- *
- */
-
use Zotlabs\Zot6\HTTPSig;
use Zotlabs\Access\Permissions;
use Zotlabs\Access\PermissionLimits;
@@ -14,14 +9,17 @@ use Zotlabs\Daemon\Master;
require_once('include/crypto.php');
-
+/**
+ * @brief Lowlevel implementation of Zot6 protocol.
+ *
+ */
class Libzot {
/**
* @brief Generates a unique string for use as a zot guid.
*
- * Generates a unique string for use as a zot guid using our DNS-based url, the
- * channel nickname and some entropy.
+ * Generates a unique string for use as a zot guid using our DNS-based url,
+ * the channel nickname and some entropy.
* The entropy ensures uniqueness against re-installs where the same URL and
* nickname are chosen.
*
@@ -32,9 +30,8 @@ class Libzot {
* immediate universe.
*
* @param string $channel_nick a unique nickname of controlling entity
- * @returns string
+ * @return string
*/
-
static function new_uid($channel_nick) {
$rawstr = z_root() . '/' . $channel_nick . '.' . mt_rand();
return(base64url_encode(hash('whirlpool', $rawstr, true), true));
@@ -52,8 +49,8 @@ class Libzot {
*
* @param string $guid
* @param string $pubkey
+ * @return string
*/
-
static function make_xchan_hash($guid, $pubkey) {
return base64url_encode(hash('whirlpool', $guid . $pubkey, true));
}
@@ -65,10 +62,8 @@ class Libzot {
* should only be used by channels which are defined on this hub.
*
* @param string $hash - xchan_hash
- * @returns array of hubloc (hub location structures)
- *
+ * @return array of hubloc (hub location structures)
*/
-
static function get_hublocs($hash) {
/* Only search for active hublocs - e.g. those that haven't been marked deleted */
@@ -92,16 +87,17 @@ class Libzot {
* packet type: one of 'ping', 'pickup', 'purge', 'refresh', 'keychange', 'force_refresh', 'notify', 'auth_check'
* @param array $recipients
* envelope recipients, array of portable_id's; empty for public posts
- * @param string msg
+ * @param string $msg
* optional message
+ * @param string $encoding
+ * optional encoding, default 'activitystreams'
* @param string $remote_key
* optional public site key of target hub used to encrypt entire packet
* NOTE: remote_key and encrypted packets are required for 'auth_check' packets, optional for all others
* @param string $methods
- * optional comma separated list of encryption methods @ref self::best_algorithm()
+ * optional comma separated list of encryption methods @ref best_algorithm()
* @returns string json encoded zot packet
*/
-
static function build_packet($channel, $type = 'activity', $recipients = null, $msg = '', $encoding = 'activitystreams', $remote_key = null, $methods = '') {
$sig_method = get_config('system','signature_algorithm','sha256');
@@ -109,7 +105,7 @@ class Libzot {
$data = [
'type' => $type,
'encoding' => $encoding,
- 'sender' => $channel['channel_hash'],
+ 'sender' => $channel['channel_portable_id'],
'site_id' => self::make_xchan_hash(z_root(), get_config('system','pubkey')),
'version' => System::get_zot_revision(),
];
@@ -146,11 +142,10 @@ class Libzot {
* @brief Choose best encryption function from those available on both sites.
*
* @param string $methods
- * comma separated list of encryption methods
+ * Comma separated list of encryption methods
* @return string first match from our site method preferences crypto_methods() array
- * of a method which is common to both sites; or 'aes256cbc' if no matches are found.
+ * of a method which is common to both sites; or 'aes256cbc' if no matches are found.
*/
-
static function best_algorithm($methods) {
$x = [
@@ -164,7 +159,6 @@ class Libzot {
* * \e string \b methods - comma separated list of encryption methods
* * \e string \b result - the algorithm to return
*/
-
call_hooks('zot_best_algorithm', $x);
if($x['result'])
@@ -190,7 +184,7 @@ class Libzot {
/**
- * @brief send a zot message
+ * @brief Send a zot message.
*
* @see z_post_url()
*
@@ -200,18 +194,17 @@ class Libzot {
* @param array $crypto (required if encrypted httpsig, requires hubloc_sitekey and site_crypto elements)
* @return array see z_post_url() for returned data format
*/
-
static function zot($url, $data, $channel = null,$crypto = null) {
if($channel) {
- $headers = [
- 'X-Zot-Token' => random_string(),
- 'Digest' => HTTPSig::generate_digest_header($data),
+ $headers = [
+ 'X-Zot-Token' => random_string(),
+ 'Digest' => HTTPSig::generate_digest_header($data),
'Content-type' => 'application/x-zot+json',
'(request-target)' => 'post ' . get_request_string($url)
];
- $h = HTTPSig::create_sig($headers,$channel['channel_prvkey'],channel_url($channel),false,'sha512',
+ $h = HTTPSig::create_sig($headers,$channel['channel_prvkey'],channel_url($channel),false,'sha512',
(($crypto) ? [ 'key' => $crypto['hubloc_sitekey'], 'algorithm' => self::best_algorithm($crypto['site_crypto']) ] : false));
}
else {
@@ -227,7 +220,6 @@ class Libzot {
/**
* @brief Refreshes after permission changed or friending, etc.
*
- *
* refresh is typically invoked when somebody has changed permissions of a channel and they are notified
* to fetch new permissions via a finger/discovery operation. This may result in a new connection
* (abook entry) being added to a local channel and it may result in auto-permissions being granted.
@@ -251,7 +243,6 @@ class Libzot {
* * \b true if successful
* * otherwise \b false
*/
-
static function refresh($them, $channel = null, $force = false) {
logger('them: ' . print_r($them,true), LOGGER_DATA, LOG_DEBUG);
@@ -265,13 +256,13 @@ class Libzot {
}
else {
$r = null;
-
+
// if they re-installed the server we could end up with the wrong record - pointing to the old install.
// We'll order by reverse id to try and pick off the newest one first and hopefully end up with the
// correct hubloc. If this doesn't work we may have to re-write this section to try them all.
if(array_key_exists('xchan_addr',$them) && $them['xchan_addr']) {
- $r = q("select hubloc_id_url, hubloc_primary from hubloc where hubloc_addr = '%s' order by hubloc_id desc",
+ $r = q("select hubloc_id_url, hubloc_primary from hubloc where hubloc_addr = '%s' and hubloc_network = 'zot6' order by hubloc_id desc",
dbesc($them['xchan_addr'])
);
}
@@ -317,7 +308,7 @@ class Libzot {
if(! $hsig_valid) {
logger('http signature not valid: ' . print_r($hsig,true));
- return $result;
+ return false;
}
@@ -329,8 +320,14 @@ class Libzot {
return false;
if($channel && $record['data']['permissions']) {
- $old_read_stream_perm = their_perms_contains($channel['channel_id'],$x['hash'],'view_stream');
- set_abconfig($channel['channel_id'],$x['hash'],'system','their_perms',$record['data']['permissions']);
+ $permissions = explode(',',$record['data']['permissions']);
+ if($permissions && is_array($permissions)) {
+ $old_read_stream_perm = get_abconfig($channel['channel_id'],$x['hash'],'their_perms','view_stream');
+
+ foreach($permissions as $p) {
+ set_abconfig($channel['channel_id'],$x['hash'],'their_perms',$p,'1');
+ }
+ }
if(array_key_exists('profile',$record['data']) && array_key_exists('next_birthday',$record['data']['profile'])) {
$next_birthday = datetime_convert('UTC','UTC',$record['data']['profile']['next_birthday']);
@@ -379,19 +376,19 @@ class Libzot {
else {
$p = Permissions::connect_perms($channel['channel_id']);
- $my_perms = Permissions::serialise($p['perms']);
+ $my_perms = $p['perms'];
$automatic = $p['automatic'];
// new connection
if($my_perms) {
- set_abconfig($channel['channel_id'],$x['hash'],'system','my_perms',$my_perms);
+ foreach($my_perms as $k => $v) {
+ set_abconfig($channel['channel_id'],$x['hash'],'my_perms',$k,$v);
+ }
}
- $closeness = get_pconfig($channel['channel_id'],'system','new_abook_closeness');
- if($closeness === false)
- $closeness = 80;
+ $closeness = get_pconfig($channel['channel_id'],'system','new_abook_closeness',80);
$y = abook_store_lowlevel(
[
@@ -409,8 +406,8 @@ class Libzot {
if($y) {
logger("New introduction received for {$channel['channel_name']}");
- $new_perms = get_all_perms($channel['channel_id'],$x['hash']);
-
+ $new_perms = get_all_perms($channel['channel_id'],$x['hash'],false);
+
// Send a clone sync packet and a permissions update if permissions have changed
$new_connection = q("select * from abook left join xchan on abook_xchan = xchan_hash where abook_xchan = '%s' and abook_channel = %d and abook_self = 0 order by abook_created desc limit 1",
@@ -425,7 +422,7 @@ class Libzot {
[
'type' => NOTIFY_INTRO,
'from_xchan' => $x['hash'],
- 'to_xchan' => $channel['channel_hash'],
+ 'to_xchan' => $channel['channel_portable_id'],
'link' => z_root() . '/connedit/' . $new_connection[0]['abook_id']
]
);
@@ -500,6 +497,7 @@ class Libzot {
$r = q("select hubloc.*, site.site_crypto from hubloc left join site on hubloc_url = site_url
where hubloc_guid = '%s' and hubloc_guid_sig = '%s'
and hubloc_url = '%s' and hubloc_url_sig = '%s'
+ and hubloc_network = 'zot6'
and hubloc_site_id = '%s' $limit",
dbesc($arr['id']),
dbesc($arr['id_sig']),
@@ -517,10 +515,14 @@ class Libzot {
return false;
}
-
-
-
- static function valid_hub($sender,$site_id) {
+ /**
+ * @brief
+ *
+ * @param string $sender
+ * @param string $site_id
+ * @return null|array
+ */
+ static function valid_hub($sender, $site_id) {
$r = q("select hubloc.*, site.site_crypto from hubloc left join site on hubloc_url = site_url where hubloc_hash = '%s' and hubloc_site_id = '%s' limit 1",
dbesc($sender),
@@ -541,7 +543,6 @@ class Libzot {
}
return $r[0];
-
}
/**
@@ -552,21 +553,14 @@ class Libzot {
* origination address. This will fetch the discovery packet of the sender,
* which contains the public key we need to verify our guid and url signatures.
*
- * @param array $arr an associative array which must contain:
- * * \e string \b guid => guid of conversant
- * * \e string \b guid_sig => guid signed with conversant's private key
- * * \e string \b url => URL of the origination hub of this communication
- * * \e string \b url_sig => URL signed with conversant's private key
+ * @param string $id
*
* @return array An associative array with
- * * \b success boolean true or false
- * * \b message (optional) error string only if success is false
+ * * \e boolean \b success
+ * * \e string \b message (optional, unused) error string only if success is false
*/
-
static function register_hub($id) {
- $id_hash = false;
- $valid = false;
$hsig_valid = false;
$result = [ 'success' => false ];
@@ -691,9 +685,27 @@ class Libzot {
$adult_changed = 1;
if(intval($r[0]['xchan_deleted']) != intval($arr['deleted']))
$deleted_changed = 1;
+
+ // new style 6-MAR-2019
+
+ if(array_key_exists('channel_type',$arr)) {
+ if($arr['channel_type'] === 'collection') {
+ // do nothing at this time.
+ }
+ elseif($arr['channel_type'] === 'group') {
+ $arr['public_forum'] = 1;
+ }
+ else {
+ $arr['public_forum'] = 0;
+ }
+ }
+
+ // old style
+
if(intval($r[0]['xchan_pubforum']) != intval($arr['public_forum']))
$pubforum_changed = 1;
+
if($arr['protocols']) {
$protocols = implode(',',$arr['protocols']);
if($protocols !== 'zot6') {
@@ -776,7 +788,7 @@ class Libzot {
// see if this is a channel clone that's hosted locally - which we treat different from other xchans/connections
- $local = q("select channel_account_id, channel_id from channel where channel_hash = '%s' limit 1",
+ $local = q("select channel_account_id, channel_id from channel where channel_portable_id = '%s' limit 1",
dbesc($xchan_hash)
);
if($local) {
@@ -800,7 +812,7 @@ class Libzot {
// If setting for the default profile, unset the profile photo flag from any other photos I own
if($is_default_profile) {
- q("UPDATE photo SET photo_usage = %d WHERE photo_usage = %d AND resource_id != '%s' AND aid = %d AND uid = %d",
+ q("UPDATE photo SET photo_usage = %d WHERE photo_usage = %d AND resource_id != '%s' AND aid = %d AND uid = %d",
intval(PHOTO_NORMAL),
intval(PHOTO_PROFILE),
dbesc($hash),
@@ -947,8 +959,8 @@ class Libzot {
* @param string $hub - url of site we just contacted
* @param array $arr - output of z_post_url()
* @param array $outq - The queue structure attached to this request
+ * @return void
*/
-
static function process_response($hub, $arr, $outq) {
logger('remote: ' . print_r($arr,true),LOGGER_DATA);
@@ -966,6 +978,7 @@ class Libzot {
}
$x = crypto_unencapsulate($x, get_config('system','prvkey'));
+
if(! is_array($x)) {
$x = json_decode($x,true);
}
@@ -978,7 +991,7 @@ class Libzot {
if(! $x['success']) {
// handle remote validation issues
-
+
$b = q("update dreport set dreport_result = '%s', dreport_time = '%s' where dreport_queue = '%s'",
dbesc(($x['message']) ? $x['message'] : 'unknown delivery error'),
dbesc(datetime_convert()),
@@ -986,17 +999,27 @@ class Libzot {
);
}
- if(is_array($x) && array_key_exists('delivery_report',$x) && is_array($x['delivery_report'])) {
+ if(is_array($x) && array_key_exists('delivery_report',$x) && is_array($x['delivery_report'])) {
+
foreach($x['delivery_report'] as $xx) {
call_hooks('dreport_process',$xx);
if(is_array($xx) && array_key_exists('message_id',$xx) && DReport::is_storable($xx)) {
+
+ // legacy recipients add a space and their name to the xchan. split those if true.
+ $legacy_recipient = strpos($xx['recipient'], ' ');
+ if($legacy_recipient !== false) {
+ $legacy_recipient_parts = explode(' ', $xx['recipient'], 2);
+ $xx['recipient'] = $legacy_recipient_parts[0];
+ $xx['name'] = $legacy_recipient_parts[1];
+ }
+
q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_name, dreport_result, dreport_time, dreport_xchan ) values ( '%s', '%s', '%s','%s','%s','%s','%s' ) ",
dbesc($xx['message_id']),
dbesc($xx['location']),
dbesc($xx['recipient']),
dbesc($xx['name']),
dbesc($xx['status']),
- dbesc(datetime_convert($xx['date'])),
+ dbesc(datetime_convert('UTC','UTC',$xx['date'])),
dbesc($xx['sender'])
);
}
@@ -1065,11 +1088,6 @@ class Libzot {
*
* @param array $arr
* 'pickup' structure returned from remote site
- * @param string $sender_url
- * the url specified by the sender in the initial communication.
- * We will verify the sender and url in each returned message structure and
- * also verify that all the messages returned match the site url that we are
- * currently processing.
*
* @returns array
* Suitable for logging remotely, enumerating the processing results of each message/recipient combination
@@ -1077,7 +1095,6 @@ class Libzot {
* * [1] => \e string $delivery_status
* * [2] => \e string $address
*/
-
static function import($arr) {
$env = $arr;
@@ -1099,7 +1116,7 @@ class Libzot {
$has_data = array_key_exists('data',$env) && $env['data'];
$data = (($has_data) ? $env['data'] : false);
- $AS = null;
+ $AS = null;
if($env['encoding'] === 'activitystreams') {
@@ -1108,9 +1125,14 @@ class Libzot {
logger('Activity rejected: ' . print_r($data,true));
return;
}
- $arr = Activity::decode_note($AS);
+ if (is_array($AS->obj)) {
+ $arr = Activity::decode_note($AS);
+ }
+ else {
+ $arr = [];
+ }
- logger($AS->debug());
+ logger($AS->debug(),LOGGER_DATA);
}
@@ -1129,7 +1151,7 @@ class Libzot {
if($recip_arr) {
stringify_array_elms($recip_arr,true);
$recips = implode(',',$recip_arr);
- $r = q("select channel_hash as hash from channel where channel_hash in ( " . $recips . " ) and channel_removed = 0 ");
+ $r = q("select channel_portable_id as hash from channel where channel_portable_id in ( " . $recips . " ) and channel_removed = 0 ");
}
if(! $r) {
@@ -1157,7 +1179,6 @@ class Libzot {
$deliveries = self::public_recips($env,$AS);
-
}
$deliveries = array_unique($deliveries);
@@ -1176,31 +1197,31 @@ class Libzot {
//logger($AS->debug());
- $r = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' limit 1",
+ $r = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1",
dbesc($AS->actor['id'])
- );
+ );
if($r) {
$arr['author_xchan'] = $r[0]['hubloc_hash'];
}
- $s = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' limit 1",
+ $s = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1",
dbesc($env['sender'])
- );
+ );
// in individual delivery, change owner if needed
if($s) {
$arr['owner_xchan'] = $s[0]['hubloc_hash'];
}
else {
- $arr['owner_xchan'] = $env['sender'];
+ $arr['owner_xchan'] = $env['sender'];
}
if($private) {
$arr['item_private'] = true;
}
- // @fixme - spoofable
+ /// @FIXME - spoofable
if($AS->data['hubloc']) {
$arr['item_verified'] = true;
}
@@ -1214,7 +1235,7 @@ class Libzot {
$relay = (($env['type'] === 'response') ? true : false );
- $result = self::process_delivery($env['sender'],$arr,$deliveries,$relay,false,$message_request);
+ $result = self::process_delivery($env['sender'],$AS,$arr,$deliveries,$relay,false,$message_request);
}
elseif($env['type'] === 'sync') {
// $arr = get_channelsync_elements($data);
@@ -1229,12 +1250,19 @@ class Libzot {
}
if ($result) {
$return = array_merge($return, $result);
- }
+ }
return $return;
}
- static function is_top_level($env,$act) {
+ /**
+ * @brief
+ *
+ * @param array $env
+ * @param object $act
+ * @return boolean
+ */
+ static function is_top_level($env, $act) {
if($env['encoding'] === 'zot' && array_key_exists('flags',$env) && in_array('thread_parent', $env['flags'])) {
return true;
}
@@ -1277,9 +1305,9 @@ class Libzot {
* Some of these will be rejected, but this gives us a place to start.
*
* @param array $msg
- * @return NULL|array
+ * @param object $act
+ * @return array
*/
-
static function public_recips($msg, $act) {
require_once('include/channel.php');
@@ -1303,12 +1331,12 @@ class Libzot {
$r = [];
- $c = q("select channel_id, channel_hash from channel where channel_removed = 0");
+ $c = q("select channel_id, channel_portable_id from channel where channel_removed = 0");
if($c) {
foreach($c as $cc) {
if(perm_is_allowed($cc['channel_id'],$msg['sender'],$perm)) {
- $r[] = $cc['channel_hash'];
+ $r[] = $cc['channel_portable_id'];
}
}
}
@@ -1316,7 +1344,7 @@ class Libzot {
if($include_sys) {
$sys = get_sys_channel();
if($sys)
- $r[] = $sys['channel_hash'];
+ $r[] = $sys['channel_portable_id'];
}
@@ -1332,7 +1360,7 @@ class Libzot {
if($tag['type'] === 'Mention' && (strpos($tag['href'],z_root()) !== false)) {
$address = basename($tag['href']);
if($address) {
- $z = q("select channel_hash as hash from channel where channel_address = '%s'
+ $z = q("select channel_portable_id as hash from channel where channel_address = '%s'
and channel_removed = 0 limit 1",
dbesc($address)
);
@@ -1353,7 +1381,7 @@ class Libzot {
$thread_parent = self::find_parent($msg,$act);
if($thread_parent) {
- $z = q("select channel_hash as hash from channel left join item on channel.channel_id = item.uid where ( item.thr_parent = '%s' OR item.parent_mid = '%s' ) ",
+ $z = q("select channel_portable_id as hash from channel left join item on channel.channel_id = item.uid where ( item.thr_parent = '%s' OR item.parent_mid = '%s' ) ",
dbesc($thread_parent),
dbesc($thread_parent)
);
@@ -1380,7 +1408,7 @@ class Libzot {
/**
* @brief
*
- * @param array $sender
+ * @param string $sender
* @param array $arr
* @param array $deliveries
* @param boolean $relay
@@ -1389,7 +1417,7 @@ class Libzot {
* @return array
*/
- static function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $request = false) {
+ static function process_delivery($sender, $act, $arr, $deliveries, $relay, $public = false, $request = false) {
$result = [];
@@ -1408,7 +1436,7 @@ class Libzot {
$DR = new DReport(z_root(),$sender,$d,$arr['mid']);
- $channel = channelx_by_hash($d);
+ $channel = channelx_by_portid($d);
if (! $channel) {
$DR->update('recipient not found');
@@ -1418,16 +1446,34 @@ class Libzot {
$DR->set_name($channel['channel_name'] . ' <' . channel_reddress($channel) . '>');
+ if(($act) && ($act->obj) && (! is_array($act->obj))) {
+ // The initial object fetch failed using the sys channel credentials.
+ // Try again using the delivery channel credentials.
+ // We will also need to re-parse the $item array,
+ // but preserve any values that were set during anonymous parsing.
+
+ $o = Activity::fetch($act->obj,$channel);
+ if($o) {
+ $act->obj = $o;
+ $arr = array_merge(Activity::decode_note($act),$arr);
+ }
+ else {
+ $DR->update('Incomplete or corrupt activity');
+ $result[] = $DR->get();
+ continue;
+ }
+ }
+
/**
* We need to block normal top-level message delivery from our clones, as the delivered
* message doesn't have ACL information in it as the cloned copy does. That copy
* will normally arrive first via sync delivery, but this isn't guaranteed.
* There's a chance the current delivery could take place before the cloned copy arrives
* hence the item could have the wrong ACL and *could* be used in subsequent deliveries or
- * access checks.
+ * access checks.
*/
- if($sender === $channel['channel_hash'] && $arr['author_xchan'] === $channel['channel_hash'] && $arr['mid'] === $arr['parent_mid']) {
+ if($sender === $channel['channel_portable_id'] && $arr['author_xchan'] === $channel['channel_portable_id'] && $arr['mid'] === $arr['parent_mid']) {
$DR->update('self delivery ignored');
$result[] = $DR->get();
continue;
@@ -1479,14 +1525,37 @@ class Libzot {
intval($channel['channel_id'])
);
if ($parent) {
- $allowed = can_comment_on_post($d,$parent[0]);
+ $allowed = can_comment_on_post($sender,$parent[0]);
}
}
- if($request) {
- $allowed = true;
+
+ if ($request) {
+
+ // Conversation fetches (e.g. $request == true) take place for
+ // a) new comments on expired posts
+ // b) hyperdrive (friend-of-friend) conversations
+ // c) Repeats of posts by others
+
+
+ // over-ride normal connection permissions for hyperdrive (friend-of-friend) conversations
+ // (if hyperdrive is enabled) and repeated posts by a friend.
+ // If $allowed is already true, this is probably the conversation of a direct friend or a
+ // conversation fetch for a new comment on an expired post
+ // Comments of all these activities are allowed and will only be rejected (later) if the parent
+ // doesn't exist.
+
+ if ($perm === 'send_stream') {
+ if (get_pconfig($channel['channel_id'],'system','hyperdrive',false) || $arr['verb'] === ACTIVITY_SHARE) {
+ $allowed = true;
+ }
+ }
+ else {
+ $allowed = true;
+ }
+
$friendofriend = true;
}
-
+
if (! $allowed) {
logger("permission denied for delivery to channel {$channel['channel_id']} {$channel['channel_address']}");
$DR->update('permission denied');
@@ -1495,14 +1564,18 @@ class Libzot {
}
}
- if($arr['mid'] != $arr['parent_mid']) {
+ // logger('item: ' . print_r($arr,true), LOGGER_DATA);
+
+ if($arr['mid'] !== $arr['parent_mid']) {
+
+ logger('checking source: "' . $arr['mid'] . '" != "' . $arr['parent_mid'] . '"');
// check source route.
// We are only going to accept comments from this sender if the comment has the same route as the top-level-post,
// this is so that permissions mismatches between senders apply to the entire conversation
// As a side effect we will also do a preliminary check that we have the top-level-post, otherwise
// processing it is pointless.
-
+
$r = q("select route, id, owner_xchan, item_private from item where mid = '%s' and uid = %d limit 1",
dbesc($arr['parent_mid']),
intval($channel['channel_id'])
@@ -1517,10 +1590,7 @@ class Libzot {
// have the copy and we don't want the request to loop.
// Also don't do this if this comment came from a conversation request packet.
// It's possible that comments are allowed but posting isn't and that could
- // cause a conversation fetch loop. We can detect these packets since they are
- // delivered via a 'notify' packet type that has a message_id element in the
- // initial zot packet (just like the corresponding 'request' packet type which
- // makes the request).
+ // cause a conversation fetch loop.
// We'll also check the send_stream permission - because if it isn't allowed,
// the top level post is unlikely to be imported and
// this is just an exercise in futility.
@@ -1531,14 +1601,14 @@ class Libzot {
}
continue;
}
-
+
if($relay || $friendofriend || (intval($r[0]['item_private']) === 0 && intval($arr['item_private']) === 0)) {
// reset the route in case it travelled a great distance upstream
// use our parent's route so when we go back downstream we'll match
// with whatever route our parent has.
// Also friend-of-friend conversations may have been imported without a route,
// but we are now getting comments via listener delivery
- // and if there is no privacy on this or the parent, we don't care about the route,
+ // and if there is no privacy on this or the parent, we don't care about the route,
// so just set the owner and route accordingly.
$arr['route'] = $r[0]['route'];
$arr['owner_xchan'] = $r[0]['owner_xchan'];
@@ -1592,13 +1662,13 @@ class Libzot {
// remove_community_tag is a no-op if this isn't a community tag activity
self::remove_community_tag($sender,$arr,$channel['channel_id']);
-
+
// set these just in case we need to store a fresh copy of the deleted post.
// This could happen if the delete got here before the original post did.
$arr['aid'] = $channel['channel_account_id'];
$arr['uid'] = $channel['channel_id'];
-
+
$item_id = self::delete_imported_item($sender,$arr,$channel['channel_id'],$relay);
$DR->update(($item_id) ? 'deleted' : 'delete_failed');
$result[] = $DR->get();
@@ -1694,7 +1764,7 @@ class Libzot {
* * \e array \b item
* * \e array \b sender
* * \e array \b channel
- */
+ */
call_hooks('activity_received', $parr);
// don't add a source route if it's a relay or later recipients will get a route mismatch
if(! $relay)
@@ -1709,7 +1779,7 @@ class Libzot {
$stored = (($item_result && $item_result['item']) ? $item_result['item'] : false);
if((is_array($stored)) && ($stored['id'] != $stored['parent'])
- && ($stored['author_xchan'] === $channel['channel_hash'])) {
+ && ($stored['author_xchan'] === $channel['channel_hash'] || $stored['author_xchan'] === $channel['channel_portable_id'])) {
retain_item($stored['item']['parent']);
}
@@ -1759,17 +1829,17 @@ class Libzot {
logger($AS->debug());
- $r = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' limit 1",
+ $r = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1",
dbesc($AS->actor['id'])
- );
+ );
if(! $r) {
$y = import_author_xchan([ 'url' => $AS->actor['id'] ]);
if($y) {
- $r = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' limit 1",
+ $r = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1",
dbesc($AS->actor['id'])
);
- }
+ }
if(! $r) {
logger('FOF Activity: no actor');
continue;
@@ -1789,9 +1859,9 @@ class Libzot {
$arr['author_xchan'] = $r[0]['hubloc_hash'];
}
- $s = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' limit 1",
+ $s = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1",
dbesc($a['signature']['signer'])
- );
+ );
if($s) {
$arr['owner_xchan'] = $s[0]['hubloc_hash'];
@@ -1800,7 +1870,8 @@ class Libzot {
$arr['owner_xchan'] = $a['signature']['signer'];
}
- // @fixme - spoofable
+
+ /// @FIXME - spoofable
if($AS->data['hubloc']) {
$arr['item_verified'] = true;
}
@@ -1809,12 +1880,12 @@ class Libzot {
}
logger('FOF Activity received: ' . print_r($arr,true), LOGGER_DATA, LOG_DEBUG);
- logger('FOF Activity recipient: ' . $channel['channel_hash'], LOGGER_DATA, LOG_DEBUG);
+ logger('FOF Activity recipient: ' . $channel['channel_portable_id'], LOGGER_DATA, LOG_DEBUG);
- $result = self::process_delivery($arr['owner_xchan'],$arr, [ $channel['channel_hash'] ],false,false,true);
+ $result = self::process_delivery($arr['owner_xchan'],$AS, $arr, [ $channel['channel_portable_id'] ],false,false,true);
if ($result) {
$ret = array_merge($ret, $result);
- }
+ }
}
return $ret;
@@ -1824,15 +1895,14 @@ class Libzot {
/**
* @brief Remove community tag.
*
- * @param array $sender an associative array with
- * * \e string \b hash a xchan_hash
+ * @param string $sender
* @param array $arr an associative array
* * \e int \b verb
* * \e int \b obj_type
* * \e int \b mid
* @param int $uid
+ * @return void
*/
-
static function remove_community_tag($sender, $arr, $uid) {
if(! (activity_match($arr['verb'], ACTIVITY_TAG) && ($arr['obj_type'] == ACTIVITY_OBJ_TAGTERM)))
@@ -1860,7 +1930,7 @@ class Libzot {
}
$i = $r[0];
-
+
if($i['target'])
$i['target'] = json_decode($i['target'],true);
if($i['object'])
@@ -1898,13 +1968,13 @@ class Libzot {
*
* @see item_store_update()
*
- * @param array $sender
+ * @param string $sender
* @param array $item
* @param array $orig
* @param int $uid
* @param boolean $tag_delivery
+ * @return void|array
*/
-
static function update_imported_item($sender, $item, $orig, $uid, $tag_delivery) {
// If this is a comment being updated, remove any privacy information
@@ -1949,7 +2019,7 @@ class Libzot {
/**
* @brief Deletes an imported item.
*
- * @param array $sender
+ * @param string $sender
* * \e string \b hash a xchan_hash
* @param array $item
* @param int $uid
@@ -1967,9 +2037,9 @@ class Libzot {
$r = q("select id, author_xchan, owner_xchan, source_xchan, item_deleted from item where ( author_xchan = '%s' or owner_xchan = '%s' or source_xchan = '%s' )
and mid = '%s' and uid = %d limit 1",
- dbesc($sender['hash']),
- dbesc($sender['hash']),
- dbesc($sender['hash']),
+ dbesc($sender),
+ dbesc($sender),
+ dbesc($sender),
dbesc($item['mid']),
intval($uid)
);
@@ -2044,10 +2114,10 @@ class Libzot {
}
foreach($deliveries as $d) {
-
+
$DR = new DReport(z_root(),$sender,$d,$arr['mid']);
- $r = q("select * from channel where channel_hash = '%s' limit 1",
+ $r = q("select * from channel where channel_portable_id = '%s' limit 1",
dbesc($d['hash'])
);
@@ -2063,7 +2133,7 @@ class Libzot {
if(! perm_is_allowed($channel['channel_id'],$sender,'post_mail')) {
- /*
+ /*
* Always allow somebody to reply if you initiated the conversation. It's anti-social
* and a bit rude to send a private message to somebody and block their ability to respond.
* If you are being harrassed and want to put an end to it, delete the conversation.
@@ -2123,18 +2193,18 @@ class Libzot {
* @brief Processes delivery of profile.
*
* @see import_directory_profile()
- * @param array $sender an associative array
- * * \e string \b hash a xchan_hash
+ *
+ * @param string $sender
* @param array $arr
* @param array $deliveries (unused)
+ * @return void
*/
-
static function process_profile_delivery($sender, $arr, $deliveries) {
logger('process_profile_delivery', LOGGER_DEBUG);
$r = q("select xchan_addr from xchan where xchan_hash = '%s' limit 1",
- dbesc($sender['hash'])
+ dbesc($sender)
);
if($r) {
Libzotdir::import_directory_profile($sender, $arr, $r[0]['xchan_addr'], UPDATE_FLAGS_UPDATED, 0);
@@ -2145,10 +2215,10 @@ class Libzot {
/**
* @brief
*
- * @param array $sender an associative array
- * * \e string \b hash a xchan_hash
+ * @param string $sender
* @param array $arr
* @param array $deliveries (unused) deliveries is irrelevant
+ * @return void
*/
static function process_location_delivery($sender, $arr, $deliveries) {
@@ -2166,7 +2236,7 @@ class Libzot {
$x = Libsync::sync_locations($xchan,$arr,true);
logger('results: ' . print_r($x,true), LOGGER_DEBUG);
if($x['changed']) {
- $guid = random_string() . '@' . App::get_hostname();
+ //$guid = random_string() . '@' . App::get_hostname();
Libzotdir::update_modtime($sender,$r[0]['xchan_guid'],$arr['locations'][0]['address'],UPDATE_FLAGS_UPDATED);
}
}
@@ -2190,8 +2260,8 @@ class Libzot {
*
* @param string $sender_hash A channel hash
* @param array $locations
+ * @return void
*/
-
static function check_location_move($sender_hash, $locations) {
if(! $locations)
@@ -2202,7 +2272,7 @@ class Libzot {
$loc = $locations[0];
- $r = q("select * from channel where channel_hash = '%s' limit 1",
+ $r = q("select * from channel where channel_portable_id = '%s' limit 1",
dbesc($sender_hash)
);
@@ -2210,7 +2280,7 @@ class Libzot {
return;
if($loc['url'] !== z_root()) {
- $x = q("update channel set channel_moved = '%s' where channel_hash = '%s' limit 1",
+ $x = q("update channel set channel_moved = '%s' where channel_portable_id = '%s' limit 1",
dbesc($loc['url']),
dbesc($sender_hash)
);
@@ -2233,7 +2303,6 @@ class Libzot {
}
-
/**
* @brief Returns an array with all known distinct hubs for this channel.
*
@@ -2242,11 +2311,10 @@ class Libzot {
* * \e string \b channel_hash the hash of the channel
* @return array an array with associative arrays
*/
-
static function encode_locations($channel) {
$ret = [];
- $x = self::get_hublocs($channel['channel_hash']);
+ $x = self::get_hublocs($channel['channel_portable_id']);
if($x && count($x)) {
foreach($x as $hub) {
@@ -2283,7 +2351,7 @@ class Libzot {
if(! $z['site_id']) {
$z['site_id'] = Libzot::make_xchan_hash($z['url'],$z['sitekey']);
}
-
+
$ret[] = $z;
}
}
@@ -2296,10 +2364,8 @@ class Libzot {
* @brief
*
* @param array $arr
- * @param string $pubkey
* @return boolean true if updated or inserted
*/
-
static function import_site($arr) {
if( (! is_array($arr)) || (! $arr['url']) || (! $arr['site_sig']))
@@ -2557,6 +2623,9 @@ class Libzot {
static function zotinfo($arr) {
+ logger('arr: ' . print_r($arr,true));
+
+
$ret = [];
$zhash = ((x($arr,'guid_hash')) ? $arr['guid_hash'] : '');
@@ -2571,20 +2640,20 @@ class Libzot {
$feed = ((x($arr,'feed')) ? intval($arr['feed']) : 0);
if($ztarget) {
- $t = q("select * from hubloc where hubloc_id_url = '%s' limit 1",
+ $t = q("select * from hubloc where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1",
dbesc($ztarget)
);
if($t) {
-
+
$ztarget_hash = $t[0]['hubloc_hash'];
}
else {
-
+
// should probably perform discovery of the requestor (target) but if they actually had
- // permissions we would know about them and we only want to know who they are to
+ // permissions we would know about them and we only want to know who they are to
// enumerate their specific permissions
-
+
$ztarget_hash = EMPTY_STR;
}
}
@@ -2593,13 +2662,13 @@ class Libzot {
$r = null;
if(strlen($zhash)) {
- $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash
- where channel_hash = '%s' limit 1",
+ $r = q("select channel.*, xchan.* from channel left join xchan on channel_portable_id = xchan_hash
+ where channel_portable_id = '%s' limit 1",
dbesc($zhash)
);
}
elseif(strlen($zguid) && strlen($zguid_sig)) {
- $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash
+ $r = q("select channel.*, xchan.* from channel left join xchan on channel_portable_id = xchan_hash
where channel_guid = '%s' and channel_guid_sig = '%s' limit 1",
dbesc($zguid),
dbesc($zguid_sig)
@@ -2607,7 +2676,7 @@ class Libzot {
}
elseif(strlen($zaddr)) {
if(strpos($zaddr,'[system]') === false) { /* normal address lookup */
- $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash
+ $r = q("select channel.*, xchan.* from channel left join xchan on channel_portable_id = xchan_hash
where ( channel_address = '%s' or xchan_addr = '%s' ) limit 1",
dbesc($zaddr),
dbesc($zaddr)
@@ -2627,10 +2696,10 @@ class Libzot {
*
*/
- $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash
+ $r = q("select channel.*, xchan.* from channel left join xchan on channel_portable_id = xchan_hash
where channel_system = 1 order by channel_id limit 1");
if(! $r) {
- $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash
+ $r = q("select channel.*, xchan.* from channel left join xchan on channel_portable_id = xchan_hash
where channel_removed = 0 order by channel_id limit 1");
}
}
@@ -2731,7 +2800,7 @@ class Libzot {
$ret['id'] = $e['xchan_guid'];
$ret['id_sig'] = self::sign($e['xchan_guid'], $e['channel_prvkey']);
- $ret['primary_location'] = [
+ $ret['primary_location'] = [
'address' => $e['xchan_addr'],
'url' => $e['xchan_url'],
'connections_url' => $e['xchan_connurl'],
@@ -2749,11 +2818,11 @@ class Libzot {
];
$ret['channel_role'] = get_pconfig($e['channel_id'],'system','permissions_role','custom');
- $ret['protocols'] = [ 'zot6' ];
+ $ret['protocols'] = [ 'zot', 'zot6' ];
$ret['searchable'] = $searchable;
$ret['adult_content'] = $adult_channel;
$ret['public_forum'] = $public_forum;
-
+
$ret['comments'] = map_scope(PermissionLimits::Get($e['channel_id'],'post_comments'));
$ret['mail'] = map_scope(PermissionLimits::Get($e['channel_id'],'post_mail'));
@@ -2774,7 +2843,7 @@ class Libzot {
if(! $ret['follow_url'])
$ret['follow_url'] = z_root() . '/follow?f=&url=%s';
- $permissions = get_all_perms($e['channel_id'],$ztarget_hash,false);
+ $permissions = get_all_perms($e['channel_id'],$ztarget_hash,false,false);
if($ztarget_hash) {
$permissions['connected'] = false;
@@ -2811,14 +2880,20 @@ class Libzot {
$ret['locations'] = $x;
$ret['site'] = self::site_info();
+ /**
+ * @hooks zotinfo
+ * Hook to manipulate the zotinfo array before it is returned.
+ */
+ call_hooks('zotinfo', $ret);
- call_hooks('zotinfo',$ret);
-
- return($ret);
-
+ return $ret;
}
-
+ /**
+ * @brief Get siteinfo.
+ *
+ * @return array
+ */
static function site_info() {
$signing_key = get_config('system','prvkey');
@@ -2855,7 +2930,7 @@ class Libzot {
if($dirmode != DIRECTORY_MODE_STANDALONE) {
$register_policy = intval(get_config('system','register_policy'));
-
+
if($register_policy == REGISTER_CLOSED)
$ret['site']['register_policy'] = 'closed';
if($register_policy == REGISTER_APPROVE)
@@ -2902,18 +2977,16 @@ class Libzot {
}
return $ret['site'];
-
}
/**
* @brief
*
* @param array $hub
- * @param string $sitekey (optional, default empty)
+ * @param string $site_id (optional, default empty)
*
* @return string hubloc_url
*/
-
static function update_hub_connected($hub, $site_id = '') {
if ($site_id) {
@@ -2972,12 +3045,21 @@ class Libzot {
return $hub['hubloc_url'];
}
-
+ /**
+ * @brief
+ *
+ * @param string $data
+ * @param string $key
+ * @param string $alg (optional) default 'sha256'
+ * @return string
+ */
static function sign($data,$key,$alg = 'sha256') {
if(! $key)
return 'no key';
+
$sig = '';
openssl_sign($data,$sig,$key,$alg);
+
return $alg . '.' . base64url_encode($sig);
}
@@ -2990,24 +3072,27 @@ class Libzot {
if ($key && count($x) === 2) {
$alg = $x[0];
$signature = base64url_decode($x[1]);
-
+
$verify = @openssl_verify($data,$signature,$key,$alg);
if ($verify === (-1)) {
while ($msg = openssl_error_string()) {
logger('openssl_verify: ' . $msg,LOGGER_NORMAL,LOG_ERR);
}
- btlogger('openssl_verify: key: ' . $key, LOGGER_DEBUG, LOG_ERR);
+ btlogger('openssl_verify: key: ' . $key, LOGGER_DEBUG, LOG_ERR);
}
}
return(($verify > 0) ? true : false);
}
-
-
+ /**
+ * @brief
+ *
+ * @return boolean
+ */
static function is_zot_request() {
-
$x = getBestSupportedMimeType([ 'application/x-zot+json' ]);
+
return(($x) ? true : false);
}
diff --git a/Zotlabs/Lib/NativeWiki.php b/Zotlabs/Lib/NativeWiki.php
index cdabbc3e9..e2bd07c0d 100644
--- a/Zotlabs/Lib/NativeWiki.php
+++ b/Zotlabs/Lib/NativeWiki.php
@@ -40,26 +40,17 @@ class NativeWiki {
function create_wiki($channel, $observer_hash, $wiki, $acl) {
- // Generate unique resource_id using the same method as item_message_id()
- do {
- $dups = false;
- $resource_id = random_string();
- $r = q("SELECT mid FROM item WHERE resource_id = '%s' AND resource_type = '%s' AND uid = %d LIMIT 1",
- dbesc($resource_id),
- dbesc(NWIKI_ITEM_RESOURCE_TYPE),
- intval($channel['channel_id'])
- );
- if($r)
- $dups = true;
- } while($dups == true);
+ $resource_id = new_uuid();
+ $uuid = new_uuid();
$ac = $acl->get();
- $mid = item_message_id();
+ $mid = z_root() . '/item/' . $uuid;
$arr = array(); // Initialize the array of parameters for the post
$item_hidden = ((intval($wiki['postVisible']) === 0) ? 1 : 0);
$wiki_url = z_root() . '/wiki/' . $channel['channel_address'] . '/' . $wiki['urlName'];
$arr['aid'] = $channel['channel_account_id'];
+ $arr['uuid'] = $uuid;
$arr['uid'] = $channel['channel_id'];
$arr['mid'] = $mid;
$arr['parent_mid'] = $mid;
diff --git a/Zotlabs/Lib/PConfig.php b/Zotlabs/Lib/PConfig.php
index 5e5954c95..c08c11e75 100644
--- a/Zotlabs/Lib/PConfig.php
+++ b/Zotlabs/Lib/PConfig.php
@@ -112,9 +112,11 @@ class PConfig {
* The configuration key to set
* @param string $value
* The value to store
+ * @param string $updated (optional)
+ * The datetime to store
* @return mixed Stored $value or false
*/
- static public function Set($uid, $family, $key, $value, $updated=NULL) {
+ static public function Set($uid, $family, $key, $value, $updated = NULL) {
// this catches subtle errors where this function has been called
// with local_channel() when not logged in (which returns false)
@@ -131,14 +133,19 @@ class PConfig {
$dbvalue = ((is_array($value)) ? serialize($value) : $value);
$dbvalue = ((is_bool($dbvalue)) ? intval($dbvalue) : $dbvalue);
+ $now = datetime_convert();
if (! $updated) {
- $updated = datetime_convert();
+ //Sometimes things happen fast... very fast.
+ //To make sure legitimate updates aren't rejected
+ //because not enough time has passed. We say our updates
+ //happened just a short time in the past rather than right now.
+ $updated = datetime_convert('UTC','UTC','-2 seconds');
}
$hash = hash('sha256',$family.':'.$key);
if (self::Get($uid, 'hz_delpconfig', $hash) !== false) {
- if (self::Get($uid, 'hz_delpconfig', $hash) > $updated) {
+ if (self::Get($uid, 'hz_delpconfig', $hash) > $now) {
logger('Refusing to update pconfig with outdated info (Item deleted more recently).', LOGGER_NORMAL, LOG_ERR);
return self::Get($uid,$family,$key);
} else {
@@ -173,7 +180,7 @@ class PConfig {
}
else {
- $new = (\App::$config[$uid][$family]['pcfgud:'.$key] < $updated);
+ $new = (\App::$config[$uid][$family]['pcfgud:'.$key] < $now);
if ($new) {
@@ -234,16 +241,18 @@ class PConfig {
* The category of the configuration value
* @param string $key
* The configuration key to delete
- * @return mixed
+ * @param string $updated (optional)
+ * The datetime to store
+ * @return boolean
*/
static public function Delete($uid, $family, $key, $updated = NULL) {
if(is_null($uid) || $uid === false)
return false;
- $updated = ($updated) ? $updated : datetime_convert();
-
- $newer = (\App::$config[$uid][$family]['pcfgud:'.$key] < $updated);
+ $updated = ($updated) ? $updated : datetime_convert('UTC','UTC','-2 seconds');
+ $now = datetime_convert();
+ $newer = (\App::$config[$uid][$family]['pcfgud:'.$key] < $now);
if (! $newer) {
logger('Refusing to delete pconfig with outdated delete request.', LOGGER_NORMAL, LOG_ERR);
@@ -266,22 +275,13 @@ class PConfig {
dbesc($key)
);
+ // Synchronize delete with clones.
+
if ($family != 'hz_delpconfig') {
$hash = hash('sha256',$family.':'.$key);
set_pconfig($uid,'hz_delpconfig',$hash,$updated);
}
- // Synchronize delete with clones.
-
- if(! array_key_exists('transient', \App::$config[$uid]))
- \App::$config[$uid]['transient'] = array();
- if(! array_key_exists($family, \App::$config[$uid]['transient']))
- \App::$config[$uid]['transient'][$family] = array();
-
- if ($new) {
- \App::$config[$uid]['transient'][$family]['pcfgdel:'.$key] = $updated;
- }
-
return $ret;
}
diff --git a/Zotlabs/Lib/Share.php b/Zotlabs/Lib/Share.php
index d3ecbf7fa..3a2ab1783 100644
--- a/Zotlabs/Lib/Share.php
+++ b/Zotlabs/Lib/Share.php
@@ -54,6 +54,7 @@ class Share {
if(! $this->item)
return $obj;
+ $obj['asld'] = $this->item['mid'];
$obj['type'] = $this->item['obj_type'];
$obj['id'] = $this->item['mid'];
$obj['content'] = $this->item['body'];
diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php
index 78714c2c4..40c0fca4b 100644
--- a/Zotlabs/Lib/ThreadItem.php
+++ b/Zotlabs/Lib/ThreadItem.php
@@ -39,6 +39,8 @@ class ThreadItem {
$this->data = $data;
$this->toplevel = ($this->get_id() == $this->get_data_value('parent'));
+ $observer = \App::get_observer();
+
// Prepare the children
if($data['children']) {
foreach($data['children'] as $item) {
@@ -51,6 +53,7 @@ class ThreadItem {
continue;
}
+
$child = new ThreadItem($item);
$this->add_child($child);
}
@@ -73,7 +76,7 @@ class ThreadItem {
* _ false on failure
*/
- public function get_template_data($conv_responses, $thread_level=1) {
+ public function get_template_data($conv_responses, $thread_level=1, $conv_flags = []) {
$result = array();
@@ -98,6 +101,7 @@ class ThreadItem {
|| strlen($item['deny_cid']) || strlen($item['deny_gid']))))
? t('Private Message')
: false);
+
$shareable = ((($conv->get_profile_owner() == local_channel() && local_channel()) && ($item['item_private'] != 1)) ? true : false);
// allow an exemption for sharing stuff from your private feeds
@@ -112,6 +116,19 @@ class ThreadItem {
$privacy_warning = true;
}
+ if ($lock) {
+ if (($item['mid'] == $item['parent_mid']) && count(get_terms_oftype($item['term'],TERM_FORUM))) {
+ $privacy_warning = true;
+ $conv_flags['parent_privacy_warning'] = true;
+ }
+ }
+
+ $privacy_warning = (isset($conv_flags['parent_privacy_warning'])) ? $conv_flags['parent_privacy_warning'] : $privacy_warning;
+
+ if ($lock && $privacy_warning) {
+ $lock = t('Privacy conflict. Discretion advised.');
+ }
+
$mode = $conv->get_mode();
switch($item['item_type']) {
@@ -290,8 +307,15 @@ class ThreadItem {
$dislike = array( t("I don't like this \x28toggle\x29"), t("dislike"));
}
- if ($shareable)
- $share = array( t('Share This'), t('share'));
+ if ($shareable) {
+ // This actually turns out not to be possible in some protocol stacks without opening up hundreds of new issues.
+ // Will allow it only for uri resolvable sources.
+ if(strpos($item['mid'],'http') === 0) {
+ $share = []; //Not yet ready for primetime
+ //$share = array( t('Repeat This'), t('repeat'));
+ }
+ $embed = array( t('Share This'), t('share'));
+ }
$dreport = '';
@@ -299,8 +323,10 @@ class ThreadItem {
if($keep_reports === 0)
$keep_reports = 10;
- if((! get_config('system','disable_dreport')) && strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC',"now - $keep_reports days")) > 0)
+ if((! get_config('system','disable_dreport')) && strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC',"now - $keep_reports days")) > 0) {
$dreport = t('Delivery Report');
+ $dreport_link = gen_link_id($item['mid']);
+ }
if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0)
$is_new = true;
@@ -316,7 +342,7 @@ class ThreadItem {
$owner_address = substr($item['owner']['xchan_addr'],0,strpos($item['owner']['xchan_addr'],'@'));
$viewthread = $item['llink'];
if($conv->get_mode() === 'channel')
- $viewthread = z_root() . '/channel/' . $owner_address . '?f=&mid=' . urlencode($item['mid']);
+ $viewthread = z_root() . '/channel/' . $owner_address . '?f=&mid=' . urlencode(gen_link_id($item['mid']));
$comment_count_txt = sprintf( tt('%d comment','%d comments',$total_children),$total_children );
$list_unseen_txt = (($unseen_comments) ? sprintf('%d unseen',$unseen_comments) : '');
@@ -364,6 +390,7 @@ class ThreadItem {
'thread_action_menu' => thread_action_menu($item,$conv->get_mode()),
'thread_author_menu' => thread_author_menu($item,$conv->get_mode()),
'dreport' => $dreport,
+ 'dreport_link' => $dreport_link,
'name' => $profile_name,
'thumb' => $profile_avatar,
'osparkle' => $osparkle,
@@ -402,12 +429,13 @@ class ThreadItem {
'like' => $like,
'dislike' => ((feature_enabled($conv->get_profile_owner(),'dislike')) ? $dislike : ''),
'share' => $share,
+ 'embed' => $embed,
'rawmid' => $item['mid'],
'plink' => get_plink($item),
'edpost' => $edpost, // ((feature_enabled($conv->get_profile_owner(),'edit_posts')) ? $edpost : ''),
- 'star' => ((feature_enabled($conv->get_profile_owner(),'star_posts')) ? $star : ''),
+ 'star' => ((feature_enabled($conv->get_profile_owner(),'star_posts') && ($item['item_type'] == ITEM_TYPE_POST)) ? $star : ''),
'tagger' => ((feature_enabled($conv->get_profile_owner(),'commtag')) ? $tagger : ''),
- 'filer' => ((feature_enabled($conv->get_profile_owner(),'filing')) ? $filer : ''),
+ 'filer' => ((feature_enabled($conv->get_profile_owner(),'filing') && ($item['item_type'] == ITEM_TYPE_POST)) ? $filer : ''),
'bookmark' => (($conv->get_profile_owner() == local_channel() && local_channel() && $has_bookmarks) ? t('Save Bookmarks') : ''),
'addtocal' => (($has_event) ? t('Add to Calendar') : ''),
'drop' => $drop,
@@ -464,7 +492,7 @@ class ThreadItem {
if(($this->get_display_mode() === 'normal') && ($nb_children > 0)) {
foreach($children as $child) {
- $result['children'][] = $child->get_template_data($conv_responses, $thread_level + 1);
+ $result['children'][] = $child->get_template_data($conv_responses, $thread_level + 1,$conv_flags);
}
// Collapse
if(($nb_children > $visible_comments) || ($thread_level > 1)) {
diff --git a/Zotlabs/Lib/ThreadListener.php b/Zotlabs/Lib/ThreadListener.php
new file mode 100644
index 000000000..308e02255
--- /dev/null
+++ b/Zotlabs/Lib/ThreadListener.php
@@ -0,0 +1,53 @@
+<?php
+
+namespace Zotlabs\Lib;
+
+class ThreadListener {
+
+ static public function store($target_id,$portable_id,$ltype = 0) {
+ $x = self::fetch($target_id,$portable_id,$ltype = 0);
+ if(! $x) {
+ $r = q("insert into listeners ( target_id, portable_id, ltype ) values ( '%s', '%s' , %d ) ",
+ dbesc($target_id),
+ dbesc($portable_id),
+ intval($ltype)
+ );
+ }
+ }
+
+ static public function fetch($target_id,$portable_id,$ltype = 0) {
+ $x = q("select * from listeners where target_id = '%s' and portable_id = '%s' and ltype = %d limit 1",
+ dbesc($target_id),
+ dbesc($portable_id),
+ intval($ltype)
+ );
+ if($x) {
+ return $x[0];
+ }
+ return false;
+ }
+
+ static public function fetch_by_target($target_id,$ltype = 0) {
+ $x = q("select * from listeners where target_id = '%s' and ltype = %d",
+ dbesc($target_id),
+ intval($ltype)
+ );
+
+ return $x;
+ }
+
+ static public function delete_by_target($target_id, $ltype = 0) {
+ return q("delete from listeners where target_id = '%s' and ltype = %d",
+ dbesc($target_id),
+ intval($ltype)
+ );
+ }
+
+ static public function delete_by_pid($portable_id, $ltype = 0) {
+ return q("delete from listeners where portable_id = '%s' and ltype = %d",
+ dbesc($portable_id),
+ intval($ltype)
+ );
+ }
+
+}
diff --git a/Zotlabs/Lib/ZotURL.php b/Zotlabs/Lib/ZotURL.php
new file mode 100644
index 000000000..d1c705fcb
--- /dev/null
+++ b/Zotlabs/Lib/ZotURL.php
@@ -0,0 +1,91 @@
+<?php
+
+namespace Zotlabs\Lib;
+
+use Zotlabs\Zot6\HTTPSig;
+
+
+class ZotURL {
+
+ static public function fetch($url,$channel) {
+
+ $ret = [ 'success' => false ];
+
+ if(strpos($url,'x-zot:') !== 0) {
+ return $ret;
+ }
+
+
+ if(! $url) {
+ return $ret;
+ }
+
+ $portable_url = substr($url,6);
+ $u = explode('/',$portable_url);
+ $portable_id = $u[0];
+
+ $hosts = self::lookup($portable_id);
+
+ if(! $hosts) {
+ return $ret;
+ }
+
+ foreach($hosts as $h) {
+ $newurl = $h . '/id/' . $portable_url;
+
+ $m = parse_url($newurl);
+
+ $data = json_encode([ 'zot_token' => random_string() ]);
+
+ if($channel && $m) {
+
+ $headers = [
+ 'Accept' => 'application/x-zot+json',
+ 'Content-Type' => 'application/x-zot+json',
+ 'X-Zot-Token' => random_string(),
+ 'Digest' => HTTPSig::generate_digest_header($data),
+ 'Host' => $m['host'],
+ '(request-target)' => 'post ' . get_request_string($newurl)
+ ];
+ $h = HTTPSig::create_sig($headers,$channel['channel_prvkey'],channel_url($channel),false);
+ }
+ else {
+ $h = [ 'Accept: application/x-zot+json' ];
+ }
+
+ $result = [];
+
+ $redirects = 0;
+ $x = z_post_url($newurl,$data,$redirects, [ 'headers' => $h ] );
+ if($x['success']) {
+ return $x;
+ }
+ }
+
+ return $ret;
+
+ }
+
+ static public function is_zoturl($s) {
+
+ if(strpos($url,'x-zot:') === 0) {
+ return true;
+ }
+ return false;
+ }
+
+
+ static public function lookup($portable_id) {
+
+ $r = q("select * from hubloc left join site on hubloc_url = site_url where hubloc_hash = '%s' and site_dead = 0 order by hubloc_primary desc",
+ dbesc($portable_id)
+ );
+
+ if(! $r) {
+ // extend to network lookup
+ return false;
+ }
+ return ids_to_array($r,'hubloc_url');
+ }
+
+} \ No newline at end of file
diff --git a/Zotlabs/Lib/Zotfinger.php b/Zotlabs/Lib/Zotfinger.php
index 537e440d4..d094fdc8d 100644
--- a/Zotlabs/Lib/Zotfinger.php
+++ b/Zotlabs/Lib/Zotfinger.php
@@ -2,7 +2,7 @@
namespace Zotlabs\Lib;
-use Zotlabs\Web\HTTPSig;
+use Zotlabs\Zot6\HTTPSig;
class Zotfinger {
@@ -12,10 +12,19 @@ class Zotfinger {
return false;
}
- if($channel) {
+ $m = parse_url($resource);
+
+ $data = json_encode([ 'zot_token' => random_string() ]);
+
+ if($channel && $m) {
+
$headers = [
- 'Accept' => 'application/x-zot+json',
- 'X-Zot-Token' => random_string(),
+ 'Accept' => 'application/x-zot+json',
+ 'Content-Type' => 'application/x-zot+json',
+ 'X-Zot-Token' => random_string(),
+ 'Digest' => HTTPSig::generate_digest_header($data),
+ 'Host' => $m['host'],
+ '(request-target)' => 'post ' . get_request_string($resource)
];
$h = HTTPSig::create_sig($headers,$channel['channel_prvkey'],channel_url($channel),false);
}
@@ -27,7 +36,9 @@ class Zotfinger {
$redirects = 0;
- $x = z_fetch_url($resource,false,$redirects, [ 'headers' => $h ] );
+ $x = z_post_url($resource,$data,$redirects, [ 'headers' => $h ] );
+
+ logger('fetch: ' . print_r($x,true));
if($x['success']) {
@@ -39,6 +50,8 @@ class Zotfinger {
$result['data'] = json_decode(crypto_unencapsulate($result['data'],get_config('system','prvkey')),true);
}
+ logger('decrypted: ' . print_r($result,true));
+
return $result;
}
diff --git a/Zotlabs/Module/Admin.php b/Zotlabs/Module/Admin.php
index 8ccdaf4f5..88b84b9d2 100644
--- a/Zotlabs/Module/Admin.php
+++ b/Zotlabs/Module/Admin.php
@@ -86,7 +86,7 @@ class Admin extends \Zotlabs\Web\Controller {
// list total user accounts, expirations etc.
$accounts = array();
- $r = q("SELECT COUNT(*) AS total, COUNT(CASE WHEN account_expires > %s THEN 1 ELSE NULL END) AS expiring, COUNT(CASE WHEN account_expires < %s AND account_expires > '%s' THEN 1 ELSE NULL END) AS expired, COUNT(CASE WHEN (account_flags & %d)>0 THEN 1 ELSE NULL END) AS blocked FROM account",
+ $r = q("SELECT COUNT(CASE WHEN account_id > 0 THEN 1 ELSE NULL END) AS total, COUNT(CASE WHEN account_expires > %s THEN 1 ELSE NULL END) AS expiring, COUNT(CASE WHEN account_expires < %s AND account_expires > '%s' THEN 1 ELSE NULL END) AS expired, COUNT(CASE WHEN (account_flags & %d)>0 THEN 1 ELSE NULL END) AS blocked FROM account",
db_utcnow(),
db_utcnow(),
dbesc(NULL_DATE),
diff --git a/Zotlabs/Module/Admin/Addons.php b/Zotlabs/Module/Admin/Addons.php
index b35922aef..b8e3e3a2e 100644
--- a/Zotlabs/Module/Admin/Addons.php
+++ b/Zotlabs/Module/Admin/Addons.php
@@ -375,6 +375,9 @@ class Addons {
if($files) {
foreach($files as $file) {
if (is_dir($file)){
+ if($file == 'addon/addon_common/')
+ continue;
+
list($tmp, $id) = array_map('trim', explode('/', $file));
$info = get_plugin_info($id);
$enabled = in_array($id,\App::$plugins);
@@ -476,4 +479,4 @@ class Addons {
return(strcmp(strtolower($a[2]['name']),strtolower($b[2]['name'])));
}
-} \ No newline at end of file
+}
diff --git a/Zotlabs/Module/Admin/Site.php b/Zotlabs/Module/Admin/Site.php
index 09b038729..55c8ca928 100644
--- a/Zotlabs/Module/Admin/Site.php
+++ b/Zotlabs/Module/Admin/Site.php
@@ -119,7 +119,7 @@ class Site {
del_config('system', 'admininfo');
} else {
require_once('include/text.php');
- linkify_tags($a, $admininfo, local_channel());
+ linkify_tags($admininfo, local_channel());
set_config('system', 'admininfo', $admininfo);
}
set_config('system','siteinfo',$siteinfo);
diff --git a/Zotlabs/Module/Affinity.php b/Zotlabs/Module/Affinity.php
new file mode 100644
index 000000000..f0d99f1e7
--- /dev/null
+++ b/Zotlabs/Module/Affinity.php
@@ -0,0 +1,94 @@
+<?php
+
+namespace Zotlabs\Module;
+
+use App;
+use Zotlabs\Lib\Apps;
+use Zotlabs\Lib\Libsync;
+
+class Affinity extends \Zotlabs\Web\Controller {
+
+ function post() {
+
+ if(! local_channel())
+ return;
+
+ if(! Apps::system_app_installed(local_channel(),'Affinity Tool'))
+ return;
+
+ check_form_security_token_redirectOnErr('affinity', 'affinity');
+
+ $cmax = intval($_POST['affinity_cmax']);
+ if($cmax < 0 || $cmax > 99)
+ $cmax = 99;
+
+ $cmin = intval($_POST['affinity_cmin']);
+ if($cmin < 0 || $cmin > 99)
+ $cmin = 0;
+
+ $lock = intval($_POST['affinity_lock']);
+
+ set_pconfig(local_channel(),'affinity','cmin',$cmin);
+ set_pconfig(local_channel(),'affinity','cmax',$cmax);
+ set_pconfig(local_channel(),'affinity','lock',$lock);
+
+ info( t('Affinity Tool settings updated.') . EOL);
+
+ Libsync::build_sync_packet();
+
+ }
+
+
+ function get() {
+
+ if(! local_channel())
+ return;
+
+ $desc = t('This app presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship (affinity) with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream.');
+ if(! Apps::system_app_installed(local_channel(),'Affinity Tool')) {
+ //Do not display any associated widgets at this point
+ App::$pdl = '';
+
+ $o = '<b>' . t('Affinity Tool App') . ' (' . t('Not Installed') . '):</b><br>';
+ $o .= $desc;
+ return $o;
+ }
+
+ $text = t('The numbers below represent the minimum and maximum slider default positions for your network/stream page as a percentage.');
+
+ $content = '<div class="section-content-info-wrapper">' . $text . '</div>';
+
+ $cmax = intval(get_pconfig(local_channel(),'affinity','cmax'));
+ $cmax = (($cmax) ? $cmax : 99);
+ $content .= replace_macros(get_markup_template('field_input.tpl'), array(
+ '$field' => array('affinity_cmax', t('Default maximum affinity level'), $cmax, t('0-99 default 99'))
+ ));
+
+ $cmin = intval(get_pconfig(local_channel(),'affinity','cmin'));
+ $cmin = (($cmin) ? $cmin : 0);
+ $content .= replace_macros(get_markup_template('field_input.tpl'), array(
+ '$field' => array('affinity_cmin', t('Default minimum affinity level'), $cmin, t('0-99 - default 0'))
+ ));
+
+ $lock = intval(get_pconfig(local_channel(),'affinity','lock',1));
+
+ $content .= replace_macros(get_markup_template('field_checkbox.tpl'), array(
+ '$field' => array('affinity_lock', t('Persistent affinity levels'), $lock, t('If disabled the max and min levels will be reset to default after page reload'), ['No','Yes'])
+ ));
+
+ $tpl = get_markup_template("settings_addon.tpl");
+
+ $o = replace_macros($tpl, array(
+ '$action_url' => 'affinity',
+ '$form_security_token' => get_form_security_token("affinity"),
+ '$title' => t('Affinity Tool Settings'),
+ '$content' => $content,
+ '$baseurl' => z_root(),
+ '$submit' => t('Submit'),
+ ));
+
+ return $o;
+ }
+
+
+}
diff --git a/Zotlabs/Module/Cards.php b/Zotlabs/Module/Cards.php
index b66de158b..3f0e93de5 100644
--- a/Zotlabs/Module/Cards.php
+++ b/Zotlabs/Module/Cards.php
@@ -10,9 +10,13 @@ require_once('include/channel.php');
require_once('include/conversation.php');
require_once('include/acl_selectors.php');
+/**
+ * @brief Provides the Cards module.
+ *
+ */
class Cards extends Controller {
- function init() {
+ public function init() {
if(argc() > 1)
$which = argv(1);
@@ -20,14 +24,15 @@ class Cards extends Controller {
return;
profile_load($which);
-
}
/**
* {@inheritDoc}
- * @see \Zotlabs\Web\Controller::get()
+ * @see \\Zotlabs\\Web\\Controller::get()
+ *
+ * @return string Parsed HTML from template 'cards.tpl'
*/
- function get($update = 0, $load = false) {
+ public function get($update = 0, $load = false) {
if(observer_prohibited(true)) {
return login();
@@ -99,7 +104,6 @@ class Cards extends Controller {
}
-
if(perm_is_allowed($owner, $ob_hash, 'write_pages')) {
$x = [
@@ -110,7 +114,7 @@ class Cards extends Controller {
'nickname' => $channel['channel_address'],
'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid']
|| $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
- 'acl' => (($is_owner) ? populate_acl($channel_acl, false,
+ 'acl' => (($is_owner) ? populate_acl($channel_acl, false,
PermissionDescription::fromGlobalPermission('view_pages')) : ''),
'permissions' => $channel_acl,
'showacl' => (($is_owner) ? true : false),
diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php
index 5f221ef20..5fdefd805 100644
--- a/Zotlabs/Module/Channel.php
+++ b/Zotlabs/Module/Channel.php
@@ -6,6 +6,8 @@ namespace Zotlabs\Module;
use App;
use Zotlabs\Web\Controller;
use Zotlabs\Lib\PermissionDescription;
+use Zotlabs\Zot6\HTTPSig;
+use Zotlabs\Lib\Libzot;
require_once('include/items.php');
require_once('include/security.php');
@@ -44,6 +46,48 @@ class Channel extends Controller {
$channel = App::get_channel();
if((local_channel()) && (argc() > 2) && (argv(2) === 'view')) {
+ $which = $channel['channel_address'];
+ $profile = argv(1);
+ }
+
+ $channel = channelx_by_nick($which);
+ if(! $channel) {
+ http_status_exit(404, 'Not found');
+ }
+
+ // handle zot6 channel discovery
+
+ if(Libzot::is_zot_request()) {
+
+ $sigdata = HTTPSig::verify(file_get_contents('php://input'));
+
+ if($sigdata && $sigdata['signer'] && $sigdata['header_valid']) {
+ $data = json_encode(Libzot::zotinfo([ 'address' => $channel['channel_address'], 'target_url' => $sigdata['signer'] ]));
+ $s = q("select site_crypto, hubloc_sitekey from site left join hubloc on hubloc_url = site_url where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1",
+ dbesc($sigdata['signer'])
+ );
+
+ if($s) {
+ $data = json_encode(crypto_encapsulate($data,$s[0]['hubloc_sitekey'],Libzot::best_algorithm($s[0]['site_crypto'])));
+ }
+ }
+ else {
+ $data = json_encode(Libzot::zotinfo([ 'address' => $channel['channel_address'] ]));
+ }
+
+ $headers = [
+ 'Content-Type' => 'application/x-zot+json',
+ 'Digest' => HTTPSig::generate_digest_header($data),
+ '(request-target)' => strtolower($_SERVER['REQUEST_METHOD']) . ' ' . $_SERVER['REQUEST_URI']
+ ];
+ $h = HTTPSig::create_sig($headers,$channel['channel_prvkey'],channel_url($channel));
+ HTTPSig::set_headers($h);
+ echo $data;
+ killme();
+ }
+
+
+ if((local_channel()) && (argc() > 2) && (argv(2) === 'view')) {
$which = $channel['channel_address'];
$profile = argv(1);
}
diff --git a/Zotlabs/Module/Chanview.php b/Zotlabs/Module/Chanview.php
index 779c7e646..2e653d030 100644
--- a/Zotlabs/Module/Chanview.php
+++ b/Zotlabs/Module/Chanview.php
@@ -106,7 +106,7 @@ class Chanview extends \Zotlabs\Web\Controller {
if (\App::$poi) {
$url = \App::$poi['xchan_url'];
- if(\App::$poi['xchan_network'] === 'zot') {
+ if(in_array(\App::$poi['xchan_network'], ['zot', 'zot6'])) {
$is_zot = true;
}
if(local_channel()) {
diff --git a/Zotlabs/Module/Connedit.php b/Zotlabs/Module/Connedit.php
index 3d7ee449a..a587324df 100644
--- a/Zotlabs/Module/Connedit.php
+++ b/Zotlabs/Module/Connedit.php
@@ -8,6 +8,7 @@ namespace Zotlabs\Module;
*/
use Zotlabs\Lib\Apps;
+use Zotlabs\Lib\Libzot;
require_once('include/socgraph.php');
require_once('include/selectors.php');
@@ -100,7 +101,8 @@ class Connedit extends \Zotlabs\Web\Controller {
}
- $profile_id = $_POST['profile_assign'];
+ $profile_id = ((array_key_exists('profile_assign',$_POST)) ? $_POST['profile_assign'] : $orig_record[0]['abook_profile']);
+
if($profile_id) {
$r = q("SELECT profile_guid FROM profile WHERE profile_guid = '%s' AND uid = %d LIMIT 1",
dbesc($profile_id),
@@ -112,18 +114,23 @@ class Connedit extends \Zotlabs\Web\Controller {
}
}
- $abook_incl = escape_tags($_POST['abook_incl']);
- $abook_excl = escape_tags($_POST['abook_excl']);
-
+ $abook_incl = ((array_key_exists('abook_incl',$_POST)) ? escape_tags($_POST['abook_incl']) : $orig_record[0]['abook_incl']);
+ $abook_excl = ((array_key_exists('abook_excl',$_POST)) ? escape_tags($_POST['abook_excl']) : $orig_record[0]['abook_excl']);
+
+
$hidden = intval($_POST['hidden']);
$priority = intval($_POST['poll']);
if($priority > 5 || $priority < 0)
$priority = 0;
+ if(! array_key_exists('closeness',$_POST)) {
+ $_POST['closeness'] = 80;
+ }
$closeness = intval($_POST['closeness']);
- if($closeness < 0)
- $closeness = 99;
+ if($closeness < 0 || $closeness > 99) {
+ $closeness = 80;
+ }
$rating = intval($_POST['rating']);
if($rating < (-10))
@@ -230,6 +237,8 @@ class Connedit extends \Zotlabs\Web\Controller {
}
$abook_pending = (($new_friend) ? 0 : $orig_record[0]['abook_pending']);
+
+
$r = q("UPDATE abook SET abook_profile = '%s', abook_closeness = %d, abook_pending = %d,
abook_incl = '%s', abook_excl = '%s'
@@ -475,6 +484,10 @@ class Connedit extends \Zotlabs\Web\Controller {
if(! zot_refresh($orig_record[0],\App::get_channel()))
notice( t('Refresh failed - channel is currently unavailable.') );
}
+ elseif($orig_record[0]['xchan_network'] === 'zot6') {
+ if(! Libzot::refresh($orig_record[0],\App::get_channel()))
+ notice( t('Refresh failed - channel is currently unavailable.') );
+ }
else {
// if you are on a different network we'll force a refresh of the connection basic info
@@ -697,7 +710,7 @@ class Connedit extends \Zotlabs\Web\Controller {
$tpl = get_markup_template("abook_edit.tpl");
- if(feature_enabled(local_channel(),'affinity')) {
+ if(Apps::system_app_installed(local_channel(),'Affinity Tool')) {
$sections['affinity'] = [
'label' => t('Affinity'),
@@ -728,9 +741,12 @@ class Connedit extends \Zotlabs\Web\Controller {
}
$slider_tpl = get_markup_template('contact_slider.tpl');
+
+ $slideval = intval($contact['abook_closeness']);
+
$slide = replace_macros($slider_tpl,array(
'$min' => 1,
- '$val' => (($contact['abook_closeness']) ? $contact['abook_closeness'] : 99),
+ '$val' => $slideval,
'$labels' => $label_str,
));
}
@@ -887,7 +903,7 @@ class Connedit extends \Zotlabs\Web\Controller {
'$inherited' => t('inherited'),
'$submit' => t('Submit'),
'$lbl_vis2' => sprintf( t('Please choose the profile you would like to display to %s when viewing your profile securely.'), $contact['xchan_name']),
- '$close' => $contact['abook_closeness'],
+ '$close' => (($contact['abook_closeness']) ? $contact['abook_closeness'] : 80),
'$them' => t('Their Settings'),
'$me' => t('My Settings'),
'$perms' => $perms,
diff --git a/Zotlabs/Module/Display.php b/Zotlabs/Module/Display.php
index e3691702d..04e5f9fce 100644
--- a/Zotlabs/Module/Display.php
+++ b/Zotlabs/Module/Display.php
@@ -178,8 +178,7 @@ class Display extends \Zotlabs\Web\Controller {
$static = ((array_key_exists('static',$_REQUEST)) ? intval($_REQUEST['static']) : 0);
-
-
+
$simple_update = (($update) ? " AND item_unseen = 1 " : '');
if($update && $_SESSION['loadtime'])
@@ -314,7 +313,7 @@ class Display extends \Zotlabs\Web\Controller {
}
}
- if(! $r) {
+ if($r === null) {
// in case somebody turned off public access to sys channel content using permissions
// make that content unsearchable by ensuring the owner_xchan can't match
if(! perm_is_allowed($sysid,$observer_hash,'view_stream'))
diff --git a/Zotlabs/Module/Dreport.php b/Zotlabs/Module/Dreport.php
index 76e07b147..2c125b7a9 100644
--- a/Zotlabs/Module/Dreport.php
+++ b/Zotlabs/Module/Dreport.php
@@ -17,9 +17,17 @@ class Dreport extends \Zotlabs\Web\Controller {
$mid = ((argc() > 1) ? argv(1) : '');
+ if(strpos($mid,'b64.') === 0)
+ $mid = @base64url_decode(substr($mid,4));
+
+
if($mid === 'push') {
$table = 'push';
$mid = ((argc() > 2) ? argv(2) : '');
+
+ if(strpos($mid,'b64.') === 0)
+ $mid = @base64url_decode(substr($mid,4));
+
if($mid) {
$i = q("select id from item where mid = '%s' and uid = %d and ( author_xchan = '%s' or ( owner_xchan = '%s' and item_wall = 1 )) ",
dbesc($mid),
@@ -38,6 +46,9 @@ class Dreport extends \Zotlabs\Web\Controller {
if($mid === 'mail') {
$table = 'mail';
$mid = ((argc() > 2) ? argv(2) : '');
+ if(strpos($mid,'b64.') === 0)
+ $mid = @base64url_decode(substr($mid,4));
+
}
@@ -69,8 +80,9 @@ class Dreport extends \Zotlabs\Web\Controller {
return;
}
- $r = q("select * from dreport where dreport_xchan = '%s' and dreport_mid = '%s'",
+ $r = q("select * from dreport where (dreport_xchan = '%s' or dreport_xchan = '%s') and dreport_mid = '%s'",
dbesc($channel['channel_hash']),
+ dbesc($channel['channel_portable_id']),
dbesc($mid)
);
@@ -80,7 +92,6 @@ class Dreport extends \Zotlabs\Web\Controller {
}
for($x = 0; $x < count($r); $x++ ) {
- $r[$x]['name'] = escape_tags(substr($r[$x]['dreport_recip'],strpos($r[$x]['dreport_recip'],' ')));
// This has two purposes: 1. make the delivery report strings translateable, and
// 2. assign an ordering to item delivery results so we can group them and provide
@@ -138,14 +149,14 @@ class Dreport extends \Zotlabs\Web\Controller {
$entries = array();
foreach($r as $rr) {
$entries[] = [
- 'name' => $rr['name'],
+ 'name' => escape_tags($rr['dreport_name'] ?: $rr['dreport_recip']),
'result' => escape_tags($rr['dreport_result']),
'time' => escape_tags(datetime_convert('UTC',date_default_timezone_get(),$rr['dreport_time']))
];
}
$o = replace_macros(get_markup_template('dreport.tpl'), array(
- '$title' => sprintf( t('Delivery report for %1$s'),substr($mid,0,32)) . '...',
+ '$title' => sprintf( t('Delivery report for %1$s'),basename($mid)) . '...',
'$table' => $table,
'$mid' => urlencode($mid),
'$options' => t('Options'),
@@ -162,9 +173,9 @@ class Dreport extends \Zotlabs\Web\Controller {
private static function dreport_gravity_sort($a,$b) {
if($a['gravity'] == $b['gravity']) {
- if($a['name'] === $b['name'])
+ if($a['dreport_name'] === $b['dreport_name'])
return strcmp($a['dreport_time'],$b['dreport_time']);
- return strcmp($a['name'],$b['name']);
+ return strcmp($a['dreport_name'],$b['dreport_name']);
}
return (($a['gravity'] > $b['gravity']) ? 1 : (-1));
}
diff --git a/Zotlabs/Module/Embed.php b/Zotlabs/Module/Embed.php
new file mode 100644
index 000000000..77b9254dd
--- /dev/null
+++ b/Zotlabs/Module/Embed.php
@@ -0,0 +1,22 @@
+<?php
+namespace Zotlabs\Module;
+
+require_once('include/security.php');
+require_once('include/bbcode.php');
+
+
+class Embed extends \Zotlabs\Web\Controller {
+
+ function init() {
+
+ $post_id = ((argc() > 1) ? intval(argv(1)) : 0);
+
+ if(! $post_id)
+ killme();
+
+ echo '[share=' . $post_id . '][/share]';
+ killme();
+
+ }
+
+}
diff --git a/Zotlabs/Module/Embedphotos.php b/Zotlabs/Module/Embedphotos.php
index bcbb0e116..2df14c239 100644
--- a/Zotlabs/Module/Embedphotos.php
+++ b/Zotlabs/Module/Embedphotos.php
@@ -3,8 +3,10 @@
namespace Zotlabs\Module;
/**
- * @brief
+ * @brief Embedphoto endpoint.
*
+ * Provide an AJAX endpoint to fill the embedPhotoModal with folders and photos
+ * selection.
*/
class Embedphotos extends \Zotlabs\Web\Controller {
@@ -13,42 +15,42 @@ class Embedphotos extends \Zotlabs\Web\Controller {
}
/**
+ * @brief This is the POST destination for the embedphotos button.
*
- * This is the POST destination for the embedphotos button
- *
+ * @return string A JSON string.
*/
- function post() {
+ public function post() {
if (argc() > 1 && argv(1) === 'album') {
// API: /embedphotos/album
- $name = (x($_POST,'name') ? $_POST['name'] : null );
- if(!$name) {
+ $name = (x($_POST, 'name') ? $_POST['name'] : null );
+ if (!$name) {
json_return_and_die(array('errormsg' => 'Error retrieving album', 'status' => false));
}
$album = $this->embedphotos_widget_album(array('channel' => \App::get_channel(), 'album' => $name));
json_return_and_die(array('status' => true, 'content' => $album));
}
- if(argc() > 1 && argv(1) === 'albumlist') {
+ if (argc() > 1 && argv(1) === 'albumlist') {
// API: /embedphotos/albumlist
- $album_list = $this->embedphotos_album_list($a);
+ $album_list = $this->embedphotos_album_list();
json_return_and_die(array('status' => true, 'albumlist' => $album_list));
}
- if(argc() > 1 && argv(1) === 'photolink') {
+ if (argc() > 1 && argv(1) === 'photolink') {
// API: /embedphotos/photolink
- $href = (x($_POST,'href') ? $_POST['href'] : null );
- if(!$href) {
+ $href = (x($_POST, 'href') ? $_POST['href'] : null );
+ if (!$href) {
json_return_and_die(array('errormsg' => 'Error retrieving link ' . $href, 'status' => false));
}
- $resource_id = array_pop(explode("/", $href));
+ $resource_id = array_pop(explode('/', $href));
$r = q("SELECT obj from item where resource_type = 'photo' and resource_id = '%s' limit 1",
dbesc($resource_id)
);
- if(!$r) {
+ if (!$r) {
json_return_and_die(array('errormsg' => 'Error retrieving resource ' . $resource_id, 'status' => false));
}
$obj = json_decode($r[0]['obj'], true);
- if(x($obj,'body')) {
+ if (x($obj, 'body')) {
$photolink = $obj['body'];
- } elseif (x($obj,'bbcode')) {
+ } elseif (x($obj, 'bbcode')) {
$photolink = $obj['bbcode'];
} else {
json_return_and_die(array('errormsg' => 'Error retrieving resource ' . $resource_id, 'status' => false));
@@ -58,48 +60,51 @@ class Embedphotos extends \Zotlabs\Web\Controller {
}
/**
- * Copied from include/widgets.php::widget_album() with a modification to get the profile_uid from
- * the input array as in widget_item()
+ * @brief Get photos from an album.
+ *
+ * @see \\Zotlabs\\Widget\\Album::widget()
*
- * @param array $args
- * @return string with HTML
+ * @param array $args associative array with
+ * * \e array \b channel
+ * * \e string \b album
+ * @return string with HTML code from 'photo_album.tpl'
*/
- function embedphotos_widget_album($args) {
-
+ protected function embedphotos_widget_album($args) {
$channel_id = 0;
- if(array_key_exists('channel', $args))
+
+ if (array_key_exists('channel', $args)) {
$channel = $args['channel'];
- $channel_id = intval($channel['channel_id']);
- if(! $channel_id)
+ $channel_id = intval($channel['channel_id']);
+ }
+ if (! $channel_id)
$channel_id = \App::$profile_uid;
- if(! $channel_id)
+ if (! $channel_id)
return '';
- $owner_uid = $channel_id;
require_once('include/security.php');
$sql_extra = permissions_sql($channel_id);
- if(! perm_is_allowed($channel_id,get_observer_hash(),'view_storage'))
+ if (! perm_is_allowed($channel_id, get_observer_hash(), 'view_storage'))
return '';
- if($args['album'])
+ if (isset($args['album']))
$album = (($args['album'] === '/') ? '' : $args['album']);
- if($args['title'])
+ if (isset($args['title']))
$title = $args['title'];
/**
- * This may return incorrect permissions if you have multiple directories of the same name.
+ * @note This may return incorrect permissions if you have multiple directories of the same name.
* It is a limitation of the photo table using a name for a photo album instead of a folder hash
*/
- if($album) {
+ if ($album) {
require_once('include/attach.php');
$x = q("select hash from attach where filename = '%s' and uid = %d limit 1",
dbesc($album),
- intval($owner_uid)
+ intval($channel_id)
);
- if($x) {
- $y = attach_can_view_folder($owner_uid,get_observer_hash(),$x[0]['hash']);
- if(! $y)
+ if ($x) {
+ $y = attach_can_view_folder($channel_id, get_observer_hash(), $x[0]['hash']);
+ if (! $y)
return '';
}
}
@@ -110,30 +115,33 @@ class Embedphotos extends \Zotlabs\Web\Controller {
(SELECT resource_id, max(imgscale) imgscale FROM photo WHERE uid = %d AND album = '%s' AND imgscale <= 4 AND photo_usage IN ( %d, %d ) $sql_extra GROUP BY resource_id) ph
ON (p.resource_id = ph.resource_id AND p.imgscale = ph.imgscale)
ORDER BY created $order",
- intval($owner_uid),
+ intval($channel_id),
dbesc($album),
intval(PHOTO_NORMAL),
intval(PHOTO_PROFILE)
);
- $photos = array();
- if(count($r)) {
+ $photos = [];
+ if (count($r)) {
$twist = 'rotright';
- foreach($r as $rr) {
- if($twist == 'rotright')
+ foreach ($r as $rr) {
+ if ($twist == 'rotright')
$twist = 'rotleft';
else
$twist = 'rotright';
+ $ph = photo_factory('');
+ $phototypes = $ph->supportedTypes();
+
$ext = $phototypes[$rr['mimetype']];
$imgalt_e = $rr['filename'];
$desc_e = $rr['description'];
- $imagelink = (z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/image/' . $rr['resource_id']
+ $imagelink = (z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $rr['resource_id']
. (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''));
- $photos[] = array(
+ $photos[] = [
'id' => $rr['id'],
'twist' => ' ' . $twist . rand(2,4),
'link' => $imagelink,
@@ -143,35 +151,43 @@ class Embedphotos extends \Zotlabs\Web\Controller {
'desc'=> $desc_e,
'ext' => $ext,
'hash'=> $rr['resource_id'],
- 'unknown' => t('Unknown')
- );
+ 'unknown' => t('Unknown'),
+ ];
}
}
$tpl = get_markup_template('photo_album.tpl');
- $o .= replace_macros($tpl, array(
+ $o = replace_macros($tpl, [
'$photos' => $photos,
'$album' => (($title) ? $title : $album),
'$album_id' => rand(),
- '$album_edit' => array(t('Edit Album'), $album_edit),
+ '$album_edit' => array(t('Edit Album'), false),
'$can_post' => false,
'$upload' => array(t('Upload'), z_root() . '/photos/' . \App::$profile['channel_address'] . '/upload/' . bin2hex($album)),
'$order' => false,
- '$upload_form' => $upload_form,
- '$no_fullscreen_btn' => true
- ));
+ '$upload_form' => '',
+ '$no_fullscreen_btn' => true,
+ ]);
return $o;
}
- function embedphotos_album_list($a) {
+ /**
+ * @brief Get albums observer is allowed to see.
+ *
+ * @see photos_albums_list()
+ *
+ * @return NULL|array
+ */
+ protected function embedphotos_album_list() {
require_once('include/photos.php');
$p = photos_albums_list(\App::get_channel(), \App::get_observer());
- if($p['success']) {
+
+ if ($p['success']) {
return $p['albums'];
- } else {
- return null;
}
+
+ return null;
}
}
diff --git a/Zotlabs/Module/Events.php b/Zotlabs/Module/Events.php
index 7e5204e62..e883db49f 100644
--- a/Zotlabs/Module/Events.php
+++ b/Zotlabs/Module/Events.php
@@ -97,8 +97,8 @@ class Events extends \Zotlabs\Web\Controller {
$type = escape_tags(trim($_POST['type']));
require_once('include/text.php');
- linkify_tags($a, $desc, local_channel());
- linkify_tags($a, $location, local_channel());
+ linkify_tags($desc, local_channel());
+ linkify_tags($location, local_channel());
//$action = ($event_hash == '') ? 'new' : "event/" . $event_hash;
diff --git a/Zotlabs/Module/Filestorage.php b/Zotlabs/Module/Filestorage.php
index 23bd63f95..2c247cd65 100644
--- a/Zotlabs/Module/Filestorage.php
+++ b/Zotlabs/Module/Filestorage.php
@@ -5,6 +5,8 @@ namespace Zotlabs\Module;
*
*/
+
+
class Filestorage extends \Zotlabs\Web\Controller {
function post() {
@@ -71,14 +73,6 @@ class Filestorage extends \Zotlabs\Web\Controller {
return;
}
- // Since we have ACL'd files in the wild, but don't have ACL here yet, we
- // need to return for anyone other than the owner, despite the perms check for now.
-
- $is_owner = (((local_channel()) && ($owner == local_channel())) ? true : false);
- if(! ($is_owner || is_site_admin())){
- info( t('Permission Denied.') . EOL );
- return;
- }
if(argc() > 3 && argv(3) === 'delete') {
@@ -101,18 +95,31 @@ class Filestorage extends \Zotlabs\Web\Controller {
}
$file = intval(argv(2));
- $r = q("SELECT hash FROM attach WHERE id = %d AND uid = %d LIMIT 1",
+ $r = q("SELECT hash, creator FROM attach WHERE id = %d AND uid = %d LIMIT 1",
dbesc($file),
intval($owner)
);
if(! $r) {
+ notice( t('File not found.') . EOL);
+
if($json_return)
json_return_and_die([ 'success' => false ]);
- notice( t('File not found.') . EOL);
goaway(z_root() . '/cloud/' . $which);
}
+ if(local_channel() !== $owner) {
+ if($r[0]['creator'] && $r[0]['creator'] !== $ob_hash) {
+ notice( t('Permission denied.') . EOL);
+
+ if($json_return)
+ json_return_and_die([ 'success' => false ]);
+
+ goaway(z_root() . '/cloud/' . $which);
+ }
+ }
+
+
$f = $r[0];
$channel = channelx_by_n($owner);
@@ -134,6 +141,19 @@ class Filestorage extends \Zotlabs\Web\Controller {
goaway(dirname($url));
}
+
+
+
+ // Since we have ACL'd files in the wild, but don't have ACL here yet, we
+ // need to return for anyone other than the owner, despite the perms check for now.
+
+ $is_owner = (((local_channel()) && ($owner == local_channel())) ? true : false);
+ if(! ($is_owner || is_site_admin())){
+ info( t('Permission Denied.') . EOL );
+ return;
+ }
+
+
if(argc() > 3 && argv(3) === 'edit') {
require_once('include/acl_selectors.php');
if(! $perms['write_storage']) {
diff --git a/Zotlabs/Module/Group.php b/Zotlabs/Module/Group.php
index c8ccaa2cb..12edf8428 100644
--- a/Zotlabs/Module/Group.php
+++ b/Zotlabs/Module/Group.php
@@ -66,6 +66,9 @@ class Group extends Controller {
$groupname = notags(trim($_POST['groupname']));
$public = intval($_POST['public']);
+ $hookinfo = [ 'pgrp_extras' => '', 'group'=>$group['id'] ];
+ call_hooks ('privacygroup_extras_post',$hookinfo);
+
if((strlen($groupname)) && (($groupname != $group['gname']) || ($public != $group['visible']))) {
$r = q("UPDATE pgrp SET gname = '%s', visible = %d WHERE uid = %d AND id = %d",
dbesc($groupname),
@@ -75,6 +78,8 @@ class Group extends Controller {
);
if($r)
info( t('Privacy group updated.') . EOL );
+
+
build_sync_packet(local_channel(),null,true);
}
@@ -127,6 +132,10 @@ class Group extends Controller {
$i++;
}
+ $hookinfo = [ 'pgrp_extras' => '', 'group'=>argv(1) ];
+ call_hooks ('privacygroup_extras',$hookinfo);
+ $pgrp_extras = $hookinfo['pgrp_extras'];
+
$tpl = get_markup_template('privacy_groups.tpl');
$o = replace_macros($tpl, [
'$title' => t('Privacy Groups'),
@@ -136,6 +145,7 @@ class Group extends Controller {
// new group form
'$gname' => array('groupname',t('Privacy group name')),
'$public' => array('public',t('Members are visible to other channels'), false),
+ '$pgrp_extras' => $pgrp_extras,
'$form_security_token' => get_form_security_token("group_edit"),
'$submit' => t('Submit'),
@@ -166,8 +176,11 @@ class Group extends Controller {
);
if($r)
$result = group_rmv(local_channel(),$r[0]['gname']);
- if($result)
+ if($result) {
+ $hookinfo = [ 'pgrp_extras' => '', 'group'=>$argv(2) ];
+ call_hooks ('privacygroup_extras_drop',$hookinfo);
info( t('Privacy group removed.') . EOL);
+ }
else
notice( t('Unable to remove privacy group.') . EOL);
}
@@ -230,6 +243,10 @@ class Group extends Controller {
}
}
+ $hookinfo = [ 'pgrp_extras' => '', 'group'=>$group['id'] ];
+ call_hooks ('privacygroup_extras',$hookinfo);
+ $pgrp_extras = $hookinfo['pgrp_extras'];
+
$context = $context + array(
'$title' => sprintf(t('Privacy Group: %s'), $group['gname']),
'$details_label' => t('Edit'),
@@ -240,6 +257,7 @@ class Group extends Controller {
'$form_security_token_edit' => get_form_security_token('group_edit'),
'$delete' => t('Delete Group'),
'$form_security_token_drop' => get_form_security_token("group_drop"),
+ '$pgrp_extras' => $pgrp_extras,
);
}
@@ -283,6 +301,7 @@ class Group extends Controller {
$context['$groupeditor'] = $groupeditor;
$context['$desc'] = t('Click a channel to toggle membership');
+ $context['$pgrp_extras'] = $pgrp_extras;
if($change) {
$tpl = get_markup_template('groupeditor.tpl');
diff --git a/Zotlabs/Module/Id.php b/Zotlabs/Module/Id.php
new file mode 100644
index 000000000..15abfa2a3
--- /dev/null
+++ b/Zotlabs/Module/Id.php
@@ -0,0 +1,119 @@
+<?php
+
+namespace Zotlabs\Module;
+
+/**
+ *
+ * Controller for responding to x-zot: protocol requests
+ * x-zot:_jkfRG85nJ-714zn-LW_VbTFW8jSjGAhAydOcJzHxqHkvEHWG2E0RbA_pbch-h4R63RG1YJZifaNzgccoLa3MQ/453c1678-1a79-4af7-ab65-6b012f6cab77
+ *
+ */
+
+use Zotlabs\Lib\Activity;
+use Zotlabs\Lib\ActivityStreams;
+use Zotlabs\Lib\LDSignatures;
+use Zotlabs\Zot6\HTTPSig;
+use Zotlabs\Web\Controller;
+use Zotlabs\Lib\Libzot;
+use Zotlabs\Lib\ThreadListener;
+use Zotlabs\Lib\IConfig;
+use Zotlabs\Lib\Enotify;
+use App;
+
+require_once('include/attach.php');
+require_once('include/bbcode.php');
+require_once('include/security.php');
+
+
+class Id extends Controller {
+
+ function init() {
+
+ if(Libzot::is_zot_request()) {
+
+ $conversation = false;
+
+ $request_portable_id = argv(1);
+ if(argc() > 2) {
+ $item_id = argv(2);
+ }
+
+ $portable_id = EMPTY_STR;
+
+ $sigdata = HTTPSig::verify(EMPTY_STR);
+ if($sigdata['portable_id'] && $sigdata['header_valid']) {
+ $portable_id = $sigdata['portable_id'];
+ }
+
+
+ $chan = channelx_by_hash($request_portable_id);
+
+ if($chan) {
+ $channel_id = $chan['channel_id'];
+ if(! $item_id) {
+ $handler = new Channel();
+ App::$argc = 2;
+ App::$argv[0] = 'channel';
+ App::$argv[1] = $chan['channel_address'];
+ $handler->init();
+ }
+ }
+ else {
+ http_status_exit(404, 'Not found');
+ }
+
+
+ $item_normal = " and item.item_hidden = 0 and item.item_type = 0 and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_blocked = 0 ";
+
+ $sql_extra = item_permissions_sql(0);
+
+ $r = q("select * from item where uuid = '%s' $item_normal $sql_extra and uid = %d limit 1",
+ dbesc($item_id),
+ intval($channel_id)
+ );
+ if(! $r) {
+
+ $r = q("select * from item where uuid = '%s' $item_normal and uid = %d limit 1",
+ dbesc($item_id),
+ intval($channel_id)
+ );
+ if($r) {
+ http_status_exit(403, 'Forbidden');
+ }
+ http_status_exit(404, 'Not found');
+ }
+
+ if(! perm_is_allowed($chan['channel_id'],get_observer_hash(),'view_stream'))
+ http_status_exit(403, 'Forbidden');
+
+ xchan_query($r,true);
+ $items = fetch_post_tags($r,true);
+
+ $i = Activity::encode_item($items[0]);
+
+ if(! $i)
+ http_status_exit(404, 'Not found');
+
+ $x = array_merge(['@context' => [
+ ACTIVITYSTREAMS_JSONLD_REV,
+ 'https://w3id.org/security/v1',
+ z_root() . ZOT_APSCHEMA_REV
+ ]], $i);
+
+ $headers = [];
+ $headers['Content-Type'] = 'application/x-zot+json' ;
+ $ret = json_encode($x, JSON_UNESCAPED_SLASHES);
+ $headers['Digest'] = HTTPSig::generate_digest_header($ret);
+ $headers['(request-target)'] = strtolower($_SERVER['REQUEST_METHOD']) . ' ' . $_SERVER['REQUEST_URI'];
+ $h = HTTPSig::create_sig($headers,$chan['channel_prvkey'],channel_url($chan));
+ HTTPSig::set_headers($h);
+ echo $ret;
+ killme();
+
+ }
+
+ }
+
+}
+
+
diff --git a/Zotlabs/Module/Impel.php b/Zotlabs/Module/Impel.php
index 0c372bd96..e05027d9f 100644
--- a/Zotlabs/Module/Impel.php
+++ b/Zotlabs/Module/Impel.php
@@ -133,9 +133,11 @@ class Impel extends \Zotlabs\Web\Controller {
$arr['author_xchan'] = (($j['author_xchan']) ? $j['author_xchan'] : get_observer_hash());
$arr['mimetype'] = (($j['mimetype']) ? $j['mimetype'] : 'text/bbcode');
- if(! $j['mid'])
- $j['mid'] = item_message_id();
-
+ if(! $j['mid']) {
+ $j['uuid'] = item_message_id();
+ $j['mid'] = z_root() . '/item/' . $j['uuid'];
+ }
+ $arr['uuid'] = $j['uuid'];
$arr['mid'] = $arr['parent_mid'] = $j['mid'];
diff --git a/Zotlabs/Module/Item.php b/Zotlabs/Module/Item.php
index 2ee639874..ebcf632ef 100644
--- a/Zotlabs/Module/Item.php
+++ b/Zotlabs/Module/Item.php
@@ -2,6 +2,23 @@
namespace Zotlabs\Module;
+use Zotlabs\Lib\IConfig;
+use Zotlabs\Lib\Enotify;
+use Zotlabs\Web\Controller;
+use Zotlabs\Daemon\Master;
+use Zotlabs\Lib\Activity;
+use Zotlabs\Lib\ActivityStreams;
+use Zotlabs\Lib\LDSignatures;
+use Zotlabs\Zot6\HTTPSig;
+use Zotlabs\Lib\Libzot;
+use Zotlabs\Lib\ThreadListener;
+use App;
+
+require_once('include/crypto.php');
+require_once('include/items.php');
+require_once('include/security.php');
+
+
/**
*
* This is the POST destination for most all locally posted
@@ -17,16 +34,146 @@ namespace Zotlabs\Module;
*
*/
-require_once('include/crypto.php');
-require_once('include/items.php');
-require_once('include/attach.php');
-require_once('include/bbcode.php');
-require_once('include/security.php');
+class Item extends Controller {
+
+
+ function init() {
+
+ if(Libzot::is_zot_request()) {
+
+ $conversation = false;
+
+ $item_id = argv(1);
+
+ if(! $item_id)
+ http_status_exit(404, 'Not found');
+
+
+ $portable_id = EMPTY_STR;
+
+ $sigdata = HTTPSig::verify(EMPTY_STR);
+ if($sigdata['portable_id'] && $sigdata['header_valid']) {
+ $portable_id = $sigdata['portable_id'];
+ }
+
+ $item_normal = " and item.item_hidden = 0 and item.item_type = 0 and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_blocked = 0 ";
+
+ $sql_extra = item_permissions_sql(0);
+
+ $r = q("select * from item where mid = '%s' $item_normal $sql_extra limit 1",
+ dbesc(z_root() . '/item/' . $item_id)
+ );
+ if(! $r) {
+
+
+ $r = q("select * from item where mid = '%s' $item_normal limit 1",
+ dbesc(z_root() . '/item/' . $item_id)
+ );
+ if($r) {
+ http_status_exit(403, 'Forbidden');
+ }
+ http_status_exit(404, 'Not found');
+ }
+
+
+ $items = q("select parent as item_id from item where mid = '%s' and uid = %d $item_normal $sql_extra ",
+ dbesc($r[0]['parent_mid']),
+ intval($r[0]['uid'])
+ );
+ if(! $items) {
+ http_status_exit(404, 'Not found');
+ }
+
+ $r = $items;
+
+ $parents_str = ids_to_querystr($r,'item_id');
+
+ $items = q("SELECT item.*, item.id AS item_id FROM item WHERE item.parent IN ( %s ) $item_normal $sql_extra ",
+ dbesc($parents_str)
+ );
+
+ if(! $items) {
+ http_status_exit(404, 'Not found');
+ }
+
+ $r = $items;
+ xchan_query($r,true);
+ $items = fetch_post_tags($r,true);
+
+ $observer = App::get_observer();
+ $parent = $items[0];
+ $recips = (($parent['owner']['xchan_network'] === 'activitypub') ? get_iconfig($parent['id'],'activitypub','recips', []) : []);
+ $to = (($recips && array_key_exists('to',$recips) && is_array($recips['to'])) ? $recips['to'] : null);
+ $nitems = [];
+ foreach($items as $i) {
+
+ $mids = [];
+
+ if(intval($i['item_private'])) {
+ if(! $observer) {
+ continue;
+ }
+ // ignore private reshare, possibly from hubzilla
+ if($i['verb'] === 'Announce') {
+ if(! in_array($i['thr_parent'],$mids)) {
+ $mids[] = $i['thr_parent'];
+ }
+ continue;
+ }
+ // also ignore any children of the private reshares
+ if(in_array($i['thr_parent'],$mids)) {
+ continue;
+ }
+
+ if((! $to) || (! in_array($observer['xchan_url'],$to))) {
+ continue;
+ }
+
+ }
+ $nitems[] = $i;
+ }
+
+ if(! $nitems)
+ http_status_exit(404, 'Not found');
+
+ $chan = channelx_by_n($nitems[0]['uid']);
+
+ if(! $chan)
+ http_status_exit(404, 'Not found');
+
+ if(! perm_is_allowed($chan['channel_id'],get_observer_hash(),'view_stream'))
+ http_status_exit(403, 'Forbidden');
+
+ $i = Activity::encode_item_collection($nitems,'conversation/' . $item_id,'OrderedCollection',( defined('NOMADIC') ? false : true));
+ if($portable_id) {
+ ThreadListener::store(z_root() . '/item/' . $item_id,$portable_id);
+ }
+
+ if(! $i)
+ http_status_exit(404, 'Not found');
+
+ $x = array_merge(['@context' => [
+ ACTIVITYSTREAMS_JSONLD_REV,
+ 'https://w3id.org/security/v1',
+ z_root() . ZOT_APSCHEMA_REV
+ ]], $i);
+
+ $headers = [];
+ $headers['Content-Type'] = 'application/x-zot+json' ;
+ $x['signature'] = LDSignatures::sign($x,$chan);
+ $ret = json_encode($x, JSON_UNESCAPED_SLASHES);
+ $headers['Digest'] = HTTPSig::generate_digest_header($ret);
+ $headers['(request-target)'] = strtolower($_SERVER['REQUEST_METHOD']) . ' ' . $_SERVER['REQUEST_URI'];
+ $h = HTTPSig::create_sig($headers,$chan['channel_prvkey'],channel_url($chan));
+ HTTPSig::set_headers($h);
+ echo $ret;
+ killme();
+
+ }
+ }
-use \Zotlabs\Lib as Zlib;
-class Item extends \Zotlabs\Web\Controller {
function post() {
@@ -392,6 +539,7 @@ class Item extends \Zotlabs\Web\Controller {
$verb = $orig_post['verb'];
$app = $orig_post['app'];
$title = escape_tags(trim($_REQUEST['title']));
+ $summary = trim($_REQUEST['summary']);
$body = trim($_REQUEST['body']);
$item_flags = $orig_post['item_flags'];
@@ -454,6 +602,7 @@ class Item extends \Zotlabs\Web\Controller {
$coord = notags(trim($_REQUEST['coord']));
$verb = notags(trim($_REQUEST['verb']));
$title = escape_tags(trim($_REQUEST['title']));
+ $summary = trim($_REQUEST['summary']);
$body = trim($_REQUEST['body']);
$body .= trim($_REQUEST['attachment']);
$postopts = '';
@@ -505,12 +654,14 @@ class Item extends \Zotlabs\Web\Controller {
&& ($channel['channel_pageflags'] & PAGE_ALLOWCODE)) ? true : false);
if($preview) {
+ $summary = z_input_filter($summary,$mimetype,$execflag);
$body = z_input_filter($body,$mimetype,$execflag);
}
- $arr = [ 'profile_uid' => $profile_uid, 'content' => $body, 'mimetype' => $mimetype ];
+ $arr = [ 'profile_uid' => $profile_uid, 'summary' => $summary, 'content' => $body, 'mimetype' => $mimetype ];
call_hooks('post_content',$arr);
+ $summary = $arr['summary'];
$body = $arr['content'];
$mimetype = $arr['mimetype'];
@@ -531,10 +682,24 @@ class Item extends \Zotlabs\Web\Controller {
// we may need virtual or template classes to implement the possible alternatives
+ if(strpos($body,'[/summary]') !== false) {
+ $match = '';
+ $cnt = preg_match("/\[summary\](.*?)\[\/summary\]/ism",$body,$match);
+ if($cnt) {
+ $summary .= $match[1];
+ }
+ $body_content = preg_replace("/^(.*?)\[summary\](.*?)\[\/summary\](.*?)$/ism", '',$body);
+ $body = trim($body_content);
+ }
+
+ $summary = cleanup_bbcode($summary);
+
$body = cleanup_bbcode($body);
// Look for tags and linkify them
- $results = linkify_tags($a, $body, ($uid) ? $uid : $profile_uid);
+
+ $results = linkify_tags($summary, ($uid) ? $uid : $profile_uid);
+ $results = linkify_tags($body, ($uid) ? $uid : $profile_uid);
if($results) {
@@ -579,6 +744,9 @@ class Item extends \Zotlabs\Web\Controller {
if(! $preview) {
fix_attached_photo_permissions($profile_uid,$owner_xchan['xchan_hash'],((strpos($body,'[/crypt]')) ? $_POST['media_str'] : $body),$str_contact_allow,$str_group_allow,$str_contact_deny,$str_group_deny);
+ fix_attached_photo_permissions($profile_uid,$owner_xchan['xchan_hash'],((strpos($summary,'[/crypt]')) ? $_POST['media_str'] : $summary),$str_contact_allow,$str_group_allow,$str_contact_deny,$str_group_deny);
+
+
fix_attached_file_permissions($channel,$observer['xchan_hash'],((strpos($body,'[/crypt]')) ? $_POST['media_str'] : $body),$str_contact_allow,$str_group_allow,$str_contact_deny,$str_group_deny);
}
@@ -616,9 +784,9 @@ class Item extends \Zotlabs\Web\Controller {
if(preg_match_all('/(\[share=(.*?)\](.*?)\[\/share\])/',$body,$match)) {
+
// process share by id
- $verb = ACTIVITY_SHARE;
$i = 0;
foreach($match[2] as $mtch) {
$reshare = new \Zotlabs\Lib\Share($mtch);
@@ -711,7 +879,8 @@ class Item extends \Zotlabs\Web\Controller {
$notify_type = (($parent) ? 'comment-new' : 'wall-new' );
if(! $mid) {
- $mid = (($message_id) ? $message_id : item_message_id());
+ $uuid = (($message_id) ? $message_id : item_message_id());
+ $mid = z_root() . '/item/' . $uuid;
}
@@ -736,7 +905,7 @@ class Item extends \Zotlabs\Web\Controller {
// fix permalinks for cards
if($webpage == ITEM_TYPE_CARD) {
- $plink = z_root() . '/cards/' . $channel['channel_address'] . '/' . (($pagetitle) ? $pagetitle : substr($mid,0,16));
+ $plink = z_root() . '/cards/' . $channel['channel_address'] . '/' . (($pagetitle) ? $pagetitle : $uuid);
}
if(($parent_item) && ($parent_item['item_type'] == ITEM_TYPE_CARD)) {
$r = q("select v from iconfig where iconfig.cat = 'system' and iconfig.k = 'CARD' and iconfig.iid = %d limit 1",
@@ -748,7 +917,7 @@ class Item extends \Zotlabs\Web\Controller {
}
if($webpage == ITEM_TYPE_ARTICLE) {
- $plink = z_root() . '/articles/' . $channel['channel_address'] . '/' . (($pagetitle) ? $pagetitle : substr($mid,0,16));
+ $plink = z_root() . '/articles/' . $channel['channel_address'] . '/' . (($pagetitle) ? $pagetitle : $uuid);
}
if(($parent_item) && ($parent_item['item_type'] == ITEM_TYPE_ARTICLE)) {
$r = q("select v from iconfig where iconfig.cat = 'system' and iconfig.k = 'ARTICLE' and iconfig.iid = %d limit 1",
@@ -760,12 +929,13 @@ class Item extends \Zotlabs\Web\Controller {
}
if ((! $plink) && ($item_thread_top)) {
- $plink = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $mid;
+ $plink = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . gen_link_id($mid);
$plink = substr($plink,0,190);
}
$datarray['aid'] = $channel['channel_account_id'];
$datarray['uid'] = $profile_uid;
+ $datarray['uuid'] = $uuid;
$datarray['owner_xchan'] = (($owner_hash) ? $owner_hash : $owner_xchan['xchan_hash']);
$datarray['author_xchan'] = $observer['xchan_hash'];
$datarray['created'] = $created;
@@ -778,6 +948,7 @@ class Item extends \Zotlabs\Web\Controller {
$datarray['parent_mid'] = $parent_mid;
$datarray['mimetype'] = $mimetype;
$datarray['title'] = $title;
+ $datarray['summary'] = $summary;
$datarray['body'] = $body;
$datarray['app'] = $app;
$datarray['location'] = $location;
@@ -887,12 +1058,12 @@ class Item extends \Zotlabs\Web\Controller {
$datarray['title'] = mb_substr($datarray['title'],0,191);
if($webpage) {
- Zlib\IConfig::Set($datarray,'system', webpage_to_namespace($webpage),
- (($pagetitle) ? $pagetitle : substr($datarray['mid'],0,16)),true);
+ IConfig::Set($datarray,'system', webpage_to_namespace($webpage),
+ (($pagetitle) ? $pagetitle : basename($datarray['mid'])), true);
}
elseif($namespace) {
- Zlib\IConfig::Set($datarray,'system', $namespace,
- (($remote_id) ? $remote_id : substr($datarray['mid'],0,16)),true);
+ IConfig::Set($datarray,'system', $namespace,
+ (($remote_id) ? $remote_id : basename($datarray['mid'])), true);
}
@@ -924,7 +1095,7 @@ class Item extends \Zotlabs\Web\Controller {
}
}
if(! $nopush)
- \Zotlabs\Daemon\Master::Summon(array('Notifier', 'edit_post', $post_id));
+ Master::Summon([ 'Notifier', 'edit_post', $post_id ]);
if($api_source)
@@ -959,7 +1130,7 @@ class Item extends \Zotlabs\Web\Controller {
// otherwise it will happen during delivery
if(($datarray['owner_xchan'] != $datarray['author_xchan']) && (intval($parent_item['item_wall']))) {
- Zlib\Enotify::submit(array(
+ Enotify::submit(array(
'type' => NOTIFY_COMMENT,
'from_xchan' => $datarray['author_xchan'],
'to_xchan' => $datarray['owner_xchan'],
@@ -977,7 +1148,7 @@ class Item extends \Zotlabs\Web\Controller {
$parent = $post_id;
if(($datarray['owner_xchan'] != $datarray['author_xchan']) && ($datarray['item_type'] == ITEM_TYPE_POST)) {
- Zlib\Enotify::submit(array(
+ Enotify::submit(array(
'type' => NOTIFY_WALL,
'from_xchan' => $datarray['author_xchan'],
'to_xchan' => $datarray['owner_xchan'],
@@ -1039,7 +1210,7 @@ class Item extends \Zotlabs\Web\Controller {
call_hooks('post_local_end', $datarray);
if(! $nopush)
- \Zotlabs\Daemon\Master::Summon(array('Notifier', $notify_type, $post_id));
+ Master::Summon([ 'Notifier', $notify_type, $post_id ]);
logger('post_complete');
diff --git a/Zotlabs/Module/Like.php b/Zotlabs/Module/Like.php
index fd192538e..3d1f503b6 100644
--- a/Zotlabs/Module/Like.php
+++ b/Zotlabs/Module/Like.php
@@ -1,6 +1,8 @@
<?php
namespace Zotlabs\Module;
+use Zotlabs\Lib\Activity;
+
require_once('include/security.php');
require_once('include/bbcode.php');
require_once('include/items.php');
@@ -374,10 +376,13 @@ class Like extends \Zotlabs\Web\Controller {
}
}
- $mid = item_message_id();
+ $uuid = item_message_id();
$arr = array();
+ $arr['uuid'] = $uuid;
+ $arr['mid'] = z_root() . '/item/' . $uuid;
+
if($extended_like) {
$arr['item_thread_top'] = 1;
$arr['item_origin'] = 1;
@@ -400,6 +405,7 @@ class Like extends \Zotlabs\Web\Controller {
$object = json_encode(array(
'type' => $objtype,
'id' => $item['mid'],
+ 'asld' => Activity::fetch_item( [ 'id' => $item['mid'] ] ),
'parent' => (($item['thr_parent']) ? $item['thr_parent'] : $item['parent_mid']),
'link' => $links,
'title' => $item['title'],
@@ -479,7 +485,6 @@ class Like extends \Zotlabs\Web\Controller {
}
- $arr['mid'] = $mid;
$arr['aid'] = (($extended_like) ? $ch[0]['channel_account_id'] : $owner_aid);
$arr['uid'] = $owner_uid;
diff --git a/Zotlabs/Module/Mail.php b/Zotlabs/Module/Mail.php
index d38c1d88c..3202d38a5 100644
--- a/Zotlabs/Module/Mail.php
+++ b/Zotlabs/Module/Mail.php
@@ -34,7 +34,7 @@ class Mail extends \Zotlabs\Web\Controller {
}
else {
$body = cleanup_bbcode($body);
- $results = linkify_tags($a, $body, local_channel());
+ $results = linkify_tags($body, local_channel());
if(preg_match_all('/(\[attachment\](.*?)\[\/attachment\])/',$body,$match)) {
$attachments = array();
@@ -111,7 +111,7 @@ class Mail extends \Zotlabs\Web\Controller {
}
require_once('include/text.php');
- linkify_tags($a, $body, local_channel());
+ linkify_tags($body, local_channel());
if(! $recipient) {
diff --git a/Zotlabs/Module/Mood.php b/Zotlabs/Module/Mood.php
index 16ef0b171..453f08f9f 100644
--- a/Zotlabs/Module/Mood.php
+++ b/Zotlabs/Module/Mood.php
@@ -70,7 +70,8 @@ class Mood extends Controller {
$poster = App::get_observer();
- $mid = item_message_id();
+ $uuid = item_message_id();
+ $mid = z_root() . '/item/' . $uuid;
$action = sprintf( t('%1$s is %2$s','mood'), '[zrl=' . $poster['xchan_url'] . ']' . $poster['xchan_name'] . '[/zrl]' , $verbs[$verb]);
@@ -78,6 +79,7 @@ class Mood extends Controller {
$arr['aid'] = get_account_id();
$arr['uid'] = $uid;
+ $arr['uuid'] = $uuid;
$arr['mid'] = $mid;
$arr['parent_mid'] = (($parent_mid) ? $parent_mid : $mid);
$arr['author_xchan'] = $poster['xchan_hash'];
diff --git a/Zotlabs/Module/Network.php b/Zotlabs/Module/Network.php
index b93faa612..2019082ed 100644
--- a/Zotlabs/Module/Network.php
+++ b/Zotlabs/Module/Network.php
@@ -1,6 +1,8 @@
<?php
namespace Zotlabs\Module;
+use Zotlabs\Lib\Group;
+use Zotlabs\Lib\Apps;
use App;
require_once('include/items.php');
@@ -114,8 +116,8 @@ class Network extends \Zotlabs\Web\Controller {
$def_acl = array('allow_gid' => '<' . $r[0]['hash'] . '>');
}
- $default_cmin = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmin',0) : (-1));
- $default_cmax = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmax',99) : (-1));
+ $default_cmin = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmin',0) : (-1));
+ $default_cmax = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmax',99) : (-1));
$cid = ((x($_GET,'cid')) ? intval($_GET['cid']) : 0);
$star = ((x($_GET,'star')) ? intval($_GET['star']) : 0);
@@ -132,6 +134,13 @@ class Network extends \Zotlabs\Web\Controller {
$deftag = '';
+ if (Apps::system_app_installed(local_channel(),'Affinity Tool')) {
+ $affinity_locked = intval(get_pconfig(local_channel(),'affinity','lock',1));
+ if ($affinity_locked) {
+ set_pconfig(local_channel(),'affinity','cmin',$cmin);
+ set_pconfig(local_channel(),'affinity','cmax',$cmax);
+ }
+ }
if(x($_GET,'search') || $file || (!$pf && $cid) || $hashtags || $verb || $category || $conv || $unseen)
$nouveau = true;
diff --git a/Zotlabs/Module/Nojs.php b/Zotlabs/Module/Nojs.php
deleted file mode 100644
index 5f3d80ecd..000000000
--- a/Zotlabs/Module/Nojs.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-namespace Zotlabs\Module;
-
-
-class Nojs extends \Zotlabs\Web\Controller {
-
- function init() {
- $n = ((argc() > 1) ? intval(argv(1)) : 1);
- setcookie('jsdisabled', $n, 0, '/');
- $p = hex2bin($_GET['redir']);
- $hasq = strpbrk($p,'?&');
- goaway(z_root() . (($p) ? '/' . $p : '') . (($hasq) ? '' : '?f=' ) . '&jsdisabled=' . $n);
-
- }
-}
diff --git a/Zotlabs/Module/Notes.php b/Zotlabs/Module/Notes.php
index 178a6bce0..7572f7420 100644
--- a/Zotlabs/Module/Notes.php
+++ b/Zotlabs/Module/Notes.php
@@ -1,28 +1,31 @@
<?php
-namespace Zotlabs\Module; /** @file */
+namespace Zotlabs\Module;
use App;
use Zotlabs\Web\Controller;
use Zotlabs\Lib\Apps;
+/**
+ * @brief Notes Module controller.
+ */
class Notes extends Controller {
function post() {
-
+
if(! local_channel())
return EMPTY_STR;
if(! Apps::system_app_installed(local_channel(), 'Notes'))
return EMPTY_STR;
-
+
$ret = array('success' => true);
if(array_key_exists('note_text',$_REQUEST)) {
$body = escape_tags($_REQUEST['note_text']);
-
+
// I've had my notes vanish into thin air twice in four years.
- // Provide a backup copy if there were contents previously
+ // Provide a backup copy if there were contents previously
// and there are none being saved now.
-
+
if(! $body) {
$old_text = get_pconfig(local_channel(),'notes','text');
if($old_text)
@@ -40,11 +43,9 @@ class Notes extends Controller {
logger('notes saved.', LOGGER_DEBUG);
json_return_and_die($ret);
-
}
function get() {
-
if(! local_channel())
return EMPTY_STR;
@@ -61,7 +62,6 @@ class Notes extends Controller {
$arr = ['app' => true];
return $w->widget($arr);
-
}
-
+
}
diff --git a/Zotlabs/Module/Oep.php b/Zotlabs/Module/Oep.php
index c0d8e15e5..3977ac8dd 100644
--- a/Zotlabs/Module/Oep.php
+++ b/Zotlabs/Module/Oep.php
@@ -456,7 +456,7 @@ class Oep extends \Zotlabs\Web\Controller {
if(preg_match('|//(.*?)/(.*?)/(.*?)/album/|',$url,$matches)) {
$chn = $matches[3];
- $res = hex2bin(basename($url));
+ $res = basename($url);
}
if(! ($chn && $res))
diff --git a/Zotlabs/Module/Pconfig.php b/Zotlabs/Module/Pconfig.php
index bf8e32dff..06b94b34f 100644
--- a/Zotlabs/Module/Pconfig.php
+++ b/Zotlabs/Module/Pconfig.php
@@ -24,7 +24,7 @@ class Pconfig extends \Zotlabs\Web\Controller {
$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)) {
+ if (preg_match('|^a:[0-9]+:{.*}$|s',$v) || preg_match('|O:8:"stdClass":[0-9]+:{.*}$|s',$v)) {
return;
}
@@ -48,7 +48,7 @@ class Pconfig extends \Zotlabs\Web\Controller {
}
- function get() {
+ function get() {
if(! local_channel()) {
return login();
diff --git a/Zotlabs/Module/Photo.php b/Zotlabs/Module/Photo.php
index 30e8340e2..96a4e1f40 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' => false,
+ '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,42 @@ 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, 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) {
+ // Validate cache
+ $cache = array(
+ 'resid' => $photo,
+ 'status' => false
+ );
+ if($cache_mode['on'])
+ call_hooks('cache_url_hook', $cache);
+ if(! $cache['status']) {
+ $url = htmlspecialchars_decode($r[0]['display_path']);
+ if(strpos(z_root(),'https:') !== false && strpos($url,'https:') === false)
+ $url = z_root() . '/sslify/' . $filename . '?f=&url=' . urlencode($url);
+ header("Location: " . $url);
+ killme();
+ }
+ }
}
- if($allowed === (-1)) {
+ if($allowed === (-1))
$allowed = attach_can_view($r[0]['uid'],$observer_xchan,$photo);
- }
$channel = channelx_by_n($r[0]['uid']);
@@ -158,18 +183,21 @@ class Photo extends \Zotlabs\Web\Controller {
dbesc($photo),
intval($resolution)
);
-
+
$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 +208,9 @@ class Photo extends \Zotlabs\Web\Controller {
}
}
- } else {
+ }
+ else
http_status_exit(404,'not found');
- }
}
header_remove('Pragma');
@@ -225,24 +253,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 +273,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 3833d5088..a761dbd14 100644
--- a/Zotlabs/Module/Photos.php
+++ b/Zotlabs/Module/Photos.php
@@ -422,7 +422,7 @@ class Photos extends \Zotlabs\Web\Controller {
require_once('include/text.php');
$profile_uid = \App::$profile['profile_uid'];
- $results = linkify_tags($a, $rawtags, (local_channel()) ? local_channel() : $profile_uid);
+ $results = linkify_tags($rawtags, (local_channel()) ? local_channel() : $profile_uid);
$success = $results['success'];
$post_tags = array();
diff --git a/Zotlabs/Module/Profiles.php b/Zotlabs/Module/Profiles.php
index de4075ba9..33e7d8a9d 100644
--- a/Zotlabs/Module/Profiles.php
+++ b/Zotlabs/Module/Profiles.php
@@ -354,20 +354,20 @@ class Profiles extends \Zotlabs\Web\Controller {
require_once('include/text.php');
- linkify_tags($a, $likes, local_channel());
- linkify_tags($a, $dislikes, local_channel());
- linkify_tags($a, $about, local_channel());
- linkify_tags($a, $interest, local_channel());
- linkify_tags($a, $interest, local_channel());
- linkify_tags($a, $contact, local_channel());
- linkify_tags($a, $channels, local_channel());
- linkify_tags($a, $music, local_channel());
- linkify_tags($a, $book, local_channel());
- linkify_tags($a, $tv, local_channel());
- linkify_tags($a, $film, local_channel());
- linkify_tags($a, $romance, local_channel());
- linkify_tags($a, $work, local_channel());
- linkify_tags($a, $education, local_channel());
+ linkify_tags($likes, local_channel());
+ linkify_tags($dislikes, local_channel());
+ linkify_tags($about, local_channel());
+ linkify_tags($interest, local_channel());
+ linkify_tags($interest, local_channel());
+ linkify_tags($contact, local_channel());
+ linkify_tags($channels, local_channel());
+ linkify_tags($music, local_channel());
+ linkify_tags($book, local_channel());
+ linkify_tags($tv, local_channel());
+ linkify_tags($film, local_channel());
+ linkify_tags($romance, local_channel());
+ linkify_tags($work, local_channel());
+ linkify_tags($education, local_channel());
$with = ((x($_POST,'with')) ? escape_tags(trim($_POST['with'])) : '');
diff --git a/Zotlabs/Module/React.php b/Zotlabs/Module/React.php
index fbb760786..3920301f5 100644
--- a/Zotlabs/Module/React.php
+++ b/Zotlabs/Module/React.php
@@ -44,6 +44,7 @@ class React extends \Zotlabs\Web\Controller {
return;
}
+ $uuid = item_message_id();
$n = array();
$n['aid'] = $channel['channel_account_id'];
@@ -52,7 +53,8 @@ class React extends \Zotlabs\Web\Controller {
$n['item_type'] = $i[0]['item_type'];
$n['parent'] = $postid;
$n['parent_mid'] = $i[0]['mid'];
- $n['mid'] = item_message_id();
+ $n['uuid'] = $uuid;
+ $n['mid'] = z_root() . '/item/' . $uuid;
$n['verb'] = ACTIVITY_REACT . '#' . $emoji;
$n['body'] = "\n\n[zmg=32x32]" . z_root() . '/images/emoji/' . $emoji . '.png[/zmg]' . "\n\n";
$n['author_xchan'] = $channel['channel_hash'];
diff --git a/Zotlabs/Module/Rmagic.php b/Zotlabs/Module/Rmagic.php
index 33a6689ca..8c1e5cdab 100644
--- a/Zotlabs/Module/Rmagic.php
+++ b/Zotlabs/Module/Rmagic.php
@@ -14,6 +14,15 @@ class Rmagic extends \Zotlabs\Web\Controller {
$r = q("select hubloc_url from hubloc where hubloc_addr = '%s' limit 1",
dbesc($me)
);
+ if(! $r) {
+ $w = discover_by_webbie($me);
+ if($w) {
+ $r = q("select hubloc_url from hubloc where hubloc_addr = '%s' limit 1",
+ dbesc($me)
+ );
+ }
+ }
+
if($r) {
if($r[0]['hubloc_url'] === z_root())
goaway(z_root() . '/login');
@@ -49,7 +58,16 @@ class Rmagic extends \Zotlabs\Web\Controller {
$r = q("select hubloc_url from hubloc where hubloc_addr = '%s' limit 1",
dbesc($address)
);
+ if(! $r) {
+ $w = discover_by_webbie($address);
+ if($w) {
+ $r = q("select hubloc_url from hubloc where hubloc_addr = '%s' limit 1",
+ dbesc($address)
+ );
+ }
+ }
}
+
if($r) {
$url = $r[0]['hubloc_url'];
}
diff --git a/Zotlabs/Module/Settings/Featured.php b/Zotlabs/Module/Settings/Featured.php
index 542a05363..d5d740aff 100644
--- a/Zotlabs/Module/Settings/Featured.php
+++ b/Zotlabs/Module/Settings/Featured.php
@@ -10,20 +10,6 @@ class Featured {
call_hooks('feature_settings_post', $_POST);
- if($_POST['affinity_slider-submit']) {
- $cmax = intval($_POST['affinity_cmax']);
- if($cmax < 0 || $cmax > 99)
- $cmax = 99;
- $cmin = intval($_POST['affinity_cmin']);
- if($cmin < 0 || $cmin > 99)
- $cmin = 0;
- set_pconfig(local_channel(),'affinity','cmin',$cmin);
- set_pconfig(local_channel(),'affinity','cmax',$cmax);
-
- info( t('Affinity Slider settings updated.') . EOL);
-
- }
-
build_sync_packet();
return;
}
@@ -37,30 +23,10 @@ class Featured {
if(! $r)
$settings_addons = t('No feature settings configured');
- if(feature_enabled(local_channel(),'affinity')) {
-
- $cmax = intval(get_pconfig(local_channel(),'affinity','cmax'));
- $cmax = (($cmax) ? $cmax : 99);
- $setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array(
- '$field' => array('affinity_cmax', t('Default maximum affinity level'), $cmax, t('0-99 default 99'))
- ));
- $cmin = intval(get_pconfig(local_channel(),'affinity','cmin'));
- $cmin = (($cmin) ? $cmin : 0);
- $setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array(
- '$field' => array('affinity_cmin', t('Default minimum affinity level'), $cmin, t('0-99 - default 0'))
- ));
-
- $settings_addons .= replace_macros(get_markup_template('generic_addon_settings.tpl'), array(
- '$addon' => array('affinity_slider', '' . t('Affinity Slider Settings'), '', t('Submit')),
- '$content' => $setting_fields
- ));
- }
-
call_hooks('feature_settings', $settings_addons);
$this->sortpanels($settings_addons);
-
$tpl = get_markup_template("settings_addons.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_featured"),
diff --git a/Zotlabs/Module/Setup.php b/Zotlabs/Module/Setup.php
index c0716ca7c..ce0538099 100644
--- a/Zotlabs/Module/Setup.php
+++ b/Zotlabs/Module/Setup.php
@@ -39,12 +39,12 @@ class Setup extends \Zotlabs\Web\Controller {
ini_set('display_errors', '1');
// $baseurl/setup/testrewrite to test if rewrite in .htaccess is working
- if (argc() == 2 && argv(1) == "testrewrite") {
+ if(argc() == 2 && argv(1) == 'testrewrite') {
echo 'ok';
killme();
}
- if (x($_POST, 'pass')) {
+ if(x($_POST, 'pass')) {
$this->install_wizard_pass = intval($_POST['pass']);
} else {
$this->install_wizard_pass = 1;
@@ -63,7 +63,6 @@ class Setup extends \Zotlabs\Web\Controller {
return;
// implied break;
case 3:
- $urlpath = \App::get_path();
$dbhost = trim($_POST['dbhost']);
$dbport = intval(trim($_POST['dbport']));
$dbuser = trim($_POST['dbuser']);
@@ -89,7 +88,6 @@ class Setup extends \Zotlabs\Web\Controller {
return;
// implied break;
case 4:
- $urlpath = \App::get_path();
$dbhost = trim($_POST['dbhost']);
$dbport = intval(trim($_POST['dbport']));
$dbuser = trim($_POST['dbuser']);
@@ -162,7 +160,6 @@ class Setup extends \Zotlabs\Web\Controller {
*
* @return string parsed HTML output
*/
-
function get() {
$o = '';
@@ -213,10 +210,10 @@ class Setup extends \Zotlabs\Web\Controller {
}
if(x(\App::$data, 'txt') && strlen(\App::$data['txt'])) {
- $db_return_text .= $this->manual_config($a);
+ $db_return_text .= $this->manual_config();
}
- if ($db_return_text != "") {
+ if($db_return_text != '') {
$tpl = get_markup_template('install.tpl');
return replace_macros($tpl, array(
'$title' => $install_title,
@@ -242,7 +239,7 @@ class Setup extends \Zotlabs\Web\Controller {
$this->check_keys($checks);
- if (x($_POST, 'phpath'))
+ if(x($_POST, 'phpath'))
$phpath = notags(trim($_POST['phpath']));
$this->check_php($phpath, $checks);
@@ -278,7 +275,6 @@ class Setup extends \Zotlabs\Web\Controller {
$dbtype = intval(trim($_POST['dbtype']));
$phpath = trim($_POST['phpath']);
$adminmail = trim($_POST['adminmail']);
- $siteurl = trim($_POST['siteurl']);
$tpl = get_markup_template('install_db.tpl');
$o .= replace_macros($tpl, array(
@@ -320,7 +316,6 @@ class Setup extends \Zotlabs\Web\Controller {
$phpath = trim($_POST['phpath']);
$adminmail = trim($_POST['adminmail']);
- $siteurl = trim($_POST['siteurl']);
$timezone = ((x($_POST,'timezone')) ? ($_POST['timezone']) : 'America/Los_Angeles');
@@ -363,12 +358,12 @@ class Setup extends \Zotlabs\Web\Controller {
* @param string $help optional help string
*/
function check_add(&$checks, $title, $status, $required, $help = '') {
- $checks[] = array(
+ $checks[] = [
'title' => $title,
'status' => $status,
'required' => $required,
'help' => $help
- );
+ ];
}
/**
@@ -380,12 +375,12 @@ class Setup extends \Zotlabs\Web\Controller {
function check_php(&$phpath, &$checks) {
$help = '';
- if(version_compare(PHP_VERSION, '5.5') < 0) {
- $help .= t('PHP version 5.5 or greater is required.');
+ if(version_compare(PHP_VERSION, '7.1') < 0) {
+ $help .= t('PHP version 7.1 or greater is required.');
$this->check_add($checks, t('PHP version'), false, false, $help);
}
- if (strlen($phpath)) {
+ if(strlen($phpath)) {
$passed = file_exists($phpath);
}
elseif(function_exists('shell_exec')) {
@@ -419,6 +414,7 @@ class Setup extends \Zotlabs\Web\Controller {
$result = trim(shell_exec($cmd));
else
$help .= t('Unable to check command line PHP, as shell_exec() is disabled. This is required.') . EOL;
+
$passed2 = (($result == $str) ? true : false);
if(!$passed2) {
$help .= t('The command line version of PHP on your system does not have "register_argc_argv" enabled.'). EOL;
@@ -441,13 +437,18 @@ class Setup extends \Zotlabs\Web\Controller {
require_once 'include/environment.php';
$help = '';
+ $mem_warning = '';
$result = getPhpiniUploadLimits();
+ if($result['post_max_size'] < 4194304 || $result['max_upload_filesize'] < 4194304) {
+ $mem_warning = '<strong>' .t('This is not sufficient to upload larger images or files. You should be able to upload at least 4 MB at once.') . '</strong>';
+ }
$help = sprintf(t('Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once.'),
userReadableSize($result['post_max_size']),
userReadableSize($result['max_upload_filesize']),
$result['max_file_uploads']
);
+ $help .= $mem_warning;
$help .= '<br><br>' . t('You can adjust these settings in the server php.ini file.');
$this->check_add($checks, t('PHP upload limits'), true, false, $help);
@@ -462,7 +463,7 @@ class Setup extends \Zotlabs\Web\Controller {
$help = '';
$res = false;
- if (function_exists('openssl_pkey_new')) {
+ if(function_exists('openssl_pkey_new')) {
$res = openssl_pkey_new(array(
'digest_alg' => 'sha1',
'private_key_bits' => 4096,
@@ -472,7 +473,7 @@ class Setup extends \Zotlabs\Web\Controller {
// Get private key
- if (! $res) {
+ if(! $res) {
$help .= t('Error: the "openssl_pkey_new" function on this system is not able to generate encryption keys'). EOL;
$help .= t('If running under Windows, please see "http://www.php.net/manual/en/openssl.installation.php".');
}
@@ -503,7 +504,7 @@ class Setup extends \Zotlabs\Web\Controller {
$this->check_add($ck_funcs, t('zip PHP module'), true, true);
if(function_exists('apache_get_modules')){
- if (! in_array('mod_rewrite', apache_get_modules())) {
+ if(! in_array('mod_rewrite', apache_get_modules())) {
$this->check_add($ck_funcs, t('Apache mod_rewrite module'), false, true, t('Error: Apache webserver mod-rewrite module is required but not installed.'));
} else {
$this->check_add($ck_funcs, t('Apache mod_rewrite module'), true, true);
@@ -572,7 +573,7 @@ class Setup extends \Zotlabs\Web\Controller {
$fname = '.htconfig.php';
- if((file_exists($fname) && is_writable($fname)) ||
+ if((file_exists($fname) && is_writable($fname)) ||
(! (file_exists($fname) && is_writable('.')))) {
$this->check_add($checks, t('.htconfig.php is writable'), $status, true, $help);
return;
@@ -638,7 +639,7 @@ class Setup extends \Zotlabs\Web\Controller {
$url = z_root() . '/setup/testrewrite';
- if (function_exists('curl_init')){
+ if(function_exists('curl_init')){
$test = z_fetch_url($url);
if(! $test['success']) {
if(strstr($url,'https://')) {
@@ -661,14 +662,13 @@ class Setup extends \Zotlabs\Web\Controller {
$help .= t('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.') . EOL;
$help .= t('This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement.') .EOL;
$help .= t('Providers are available that issue free certificates which are browser-valid.'). EOL;
-
$help .= t('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.') . EOL;
$this->check_add($checks, t('SSL certificate validation'), false, true, $help);
}
}
- if ((! $test['success']) || ($test['body'] != "ok")) {
+ if((! $test['success']) || ($test['body'] != "ok")) {
$status = false;
$help = t('Url rewrite in .htaccess is not working. Check your server configuration.'.'Test: '.var_export($test,true));
}
@@ -682,10 +682,9 @@ class Setup extends \Zotlabs\Web\Controller {
/**
* @brief
*
- * @param App &$a
* @return string with paresed HTML
*/
- function manual_config(&$a) {
+ function manual_config() {
$data = htmlspecialchars(\App::$data['txt'], ENT_COMPAT, 'UTF-8');
$o = t('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.');
$o .= "<textarea rows=\"24\" cols=\"80\" >$data</textarea>";
@@ -695,14 +694,19 @@ class Setup extends \Zotlabs\Web\Controller {
function load_database_rem($v, $i){
$l = trim($i);
- if (strlen($l)>1 && ($l[0]=="-" || ($l[0]=="/" && $l[1]=="*"))){
+ if(strlen($l)>1 && ($l[0]=="-" || ($l[0]=="/" && $l[1]=="*"))){
return $v;
} else {
return $v."\n".$i;
}
}
-
+ /**
+ * @brief Executes the SQL install script and create database tables.
+ *
+ * @param dba_driver $db (unused)
+ * @return boolean|string false on success or error message as string
+ */
function load_database($db) {
$str = file_get_contents(\DBA::$dba->get_install_script());
$arr = explode(';', $str);
@@ -762,12 +766,12 @@ class Setup extends \Zotlabs\Web\Controller {
/**
* @brief
*
- * @param unknown $v
+ * @param array $v
* @param array $c
* @return array
*/
static private function check_passed($v, $c) {
- if ($c['required'])
+ if($c['required'])
$v = $v && $c['status'];
return $v;
diff --git a/Zotlabs/Module/Share.php b/Zotlabs/Module/Share.php
index c6d0be051..53a06b072 100644
--- a/Zotlabs/Module/Share.php
+++ b/Zotlabs/Module/Share.php
@@ -1,6 +1,11 @@
<?php
namespace Zotlabs\Module;
+use App;
+use Zotlabs\Daemon\Master;
+use Zotlabs\Lib\Activity;
+
+
require_once('include/security.php');
require_once('include/bbcode.php');
@@ -14,23 +19,23 @@ class Share extends \Zotlabs\Web\Controller {
if(! $post_id)
killme();
- echo '[share=' . $post_id . '][/share]';
- killme();
+ if(! local_channel()) {
+ killme();
+ }
+ $observer = App::get_observer();
- /**
- * The remaining code is deprecated and handled in Zotlabs/Lib/Share.php at post
- * submission time.
- */
+ $channel = App::get_channel();
- if(! (local_channel() || remote_channel()))
- killme();
-
$r = q("SELECT * from item left join xchan on author_xchan = xchan_hash WHERE id = %d LIMIT 1",
intval($post_id)
);
if(! $r)
killme();
+
+
+
+
if(($r[0]['item_private']) && ($r[0]['xchan_network'] !== 'rss'))
killme();
@@ -46,59 +51,86 @@ class Share extends \Zotlabs\Web\Controller {
if($r[0]['mimetype'] !== 'text/bbcode')
killme();
-
- /** @FIXME eventually we want to post remotely via rpost on your home site */
- // When that works remove this next bit:
-
- if(! local_channel())
- killme();
-
+
xchan_query($r);
- $is_photo = (($r[0]['obj_type'] === ACTIVITY_OBJ_PHOTO) ? true : false);
- if($is_photo) {
- $object = json_decode($r[0]['obj'],true);
- $photo_bb = $object['body'];
- }
-
- if (strpos($r[0]['body'], "[/share]") !== false) {
- $pos = strpos($r[0]['body'], "[share");
- $o = substr($r[0]['body'], $pos);
- } else {
- $o = "[share author='" . urlencode($r[0]['author']['xchan_name']) .
- "' profile='" . $r[0]['author']['xchan_url'] .
- "' avatar='" . $r[0]['author']['xchan_photo_s'] .
- "' link='" . $r[0]['plink'] .
- "' auth='" . (($r[0]['author']['network'] === 'zot') ? 'true' : 'false') .
- "' posted='" . $r[0]['created'] .
- "' message_id='" . $r[0]['mid'] .
- "']";
- if($r[0]['title'])
- $o .= '[b]'.$r[0]['title'].'[/b]'."\r\n";
- $o .= (($is_photo) ? $photo_bb . "\r\n" . $r[0]['body'] : $r[0]['body']);
- $o .= "[/share]";
- }
-
- if(local_channel()) {
- echo $o;
+ $arr = [];
+
+ $item = $r[0];
+
+ $owner_uid = $r[0]['uid'];
+ $owner_aid = $r[0]['aid'];
+
+ $can_comment = false;
+ if((array_key_exists('owner',$item)) && intval($item['owner']['abook_self']))
+ $can_comment = perm_is_allowed($item['uid'],$observer['xchan_hash'],'post_comments');
+ else
+ $can_comment = can_comment_on_post($observer['xchan_hash'],$item);
+
+ if(! $can_comment) {
+ notice( t('Permission denied') . EOL);
killme();
}
+
+ $r = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($item['owner_xchan'])
+ );
+
+ if($r)
+ $thread_owner = $r[0];
+ else
+ killme();
- $observer = \App::get_observer();
- $parsed = $observer['xchan_url'];
- if($parsed) {
- $post_url = $parsed['scheme'] . '://' . $parsed['host'] . (($parsed['port']) ? ':' . $parsed['port'] : '')
- . '/rpost';
+ $r = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($item['author_xchan'])
+ );
+ if($r)
+ $item_author = $r[0];
+ else
+ killme();
- /**
- * @FIXME we were probably called from JS so we don't know the return page.
- * In fact we won't be able to load the remote page.
- * we might need an iframe
- */
+
+ $arr['aid'] = $owner_aid;
+ $arr['uid'] = $owner_uid;
+
+ $arr['item_origin'] = 1;
+ $arr['item_wall'] = $item['item_wall'];
+ $arr['uuid'] = item_message_id();
+ $arr['mid'] = z_root() . '/activity/' . $arr['uuid'];
+ $arr['parent_mid'] = $item['mid'];
+
+ $mention = '@[zrl=' . $item['author']['xchan_url'] . ']' . $item['author']['xchan_name'] . '[/zrl]';
+ $arr['body'] = sprintf( t('&#x1f501; Repeated %1$s\'s %2$s'), $mention, Activity::activity_obj_mapper($item['obj_type']));
+
+ $arr['author_xchan'] = $channel['channel_hash'];
+ $arr['owner_xchan'] = $item['author_xchan'];
+ $arr['obj'] = Activity::encode_item($item);
+ $arr['obj_type'] = $item['obj_type'];
+ $arr['verb'] = 'Announce';
+
+ $post = item_store($arr);
+
+ $post_id = $post['item_id'];
+
+ $arr['id'] = $post_id;
- $x = z_post_url($post_url, array('f' => '', 'body' => $o ));
- killme();
+ call_hooks('post_local_end', $arr);
+
+ info( t('Post repeated') . EOL);
+
+ $r = q("select * from item where id = %d",
+ intval($post_id)
+ );
+ if($r) {
+ xchan_query($r);
+ $sync_item = fetch_post_tags($r);
+ build_sync_packet($channel['channel_id'], [ 'item' => [ encode_item($sync_item[0],true) ] ]);
}
+
+ Master::Summon([ 'Notifier','like',$post_id ]);
+
+ killme();
+
}
}
diff --git a/Zotlabs/Module/Sslify.php b/Zotlabs/Module/Sslify.php
index 2891f3691..37be4423b 100644
--- a/Zotlabs/Module/Sslify.php
+++ b/Zotlabs/Module/Sslify.php
@@ -12,10 +12,16 @@ class Sslify extends \Zotlabs\Web\Controller {
list($k,$v) = array_map("trim", explode(":", trim($l), 2));
$hdrs[strtolower($k)] = $v;
}
- if (array_key_exists('content-type', $hdrs)) {
- $type = $hdrs['content-type'];
- header('Content-Type: ' . $type);
- }
+
+ if (array_key_exists('content-type', $hdrs))
+ header('Content-Type: ' . $hdrs['content-type']);
+ if (array_key_exists('last-modified', $hdrs))
+ header('Last-Modified: ' . $hdrs['last-modified']);
+ if (array_key_exists('cache-control', $hdrs))
+ header('Cache-Control: ' . $hdrs['cache-control']);
+ if (array_key_exists('expires', $hdrs))
+ header('Expires: ' . $hdrs['expires']);
+
echo $x['body'];
killme();
diff --git a/Zotlabs/Module/Subthread.php b/Zotlabs/Module/Subthread.php
index 1a9caff6c..54343fdfa 100644
--- a/Zotlabs/Module/Subthread.php
+++ b/Zotlabs/Module/Subthread.php
@@ -106,8 +106,9 @@ class Subthread extends \Zotlabs\Web\Controller {
- $mid = item_message_id();
-
+ $uuid = item_message_id();
+ $mid = z_root() . '/item/' . $uuid;
+
$post_type = (($item['resource_type'] === 'photo') ? t('photo') : t('status'));
$links = array(array('rel' => 'alternate','type' => 'text/html', 'href' => $item['plink']));
@@ -145,6 +146,7 @@ class Subthread extends \Zotlabs\Web\Controller {
$arr = array();
+ $arr['uuid'] = $uuid;
$arr['mid'] = $mid;
$arr['aid'] = $owner_aid;
$arr['uid'] = $owner_uid;
diff --git a/Zotlabs/Module/Viewsrc.php b/Zotlabs/Module/Viewsrc.php
index 119990b57..3e49b9db4 100644
--- a/Zotlabs/Module/Viewsrc.php
+++ b/Zotlabs/Module/Viewsrc.php
@@ -25,10 +25,10 @@ class Viewsrc extends \Zotlabs\Web\Controller {
notice( t('Item not found.') . EOL);
}
- $item_normal = item_normal();
+ $item_normal = item_normal_search();
if(local_channel() && $item_id) {
- $r = q("select id, item_flags, mimetype, item_obscured, body, llink, plink from item where uid in (%d , %d) and id = %d $item_normal limit 1",
+ $r = q("select id, mid, item_flags, mimetype, item_obscured, body, llink, plink from item where uid in (%d , %d) and id = %d $item_normal limit 1",
intval(local_channel()),
intval($sys['channel_id']),
intval($item_id)
@@ -53,7 +53,7 @@ class Viewsrc extends \Zotlabs\Web\Controller {
if(is_ajax()) {
echo '<div class="p-1">';
- echo '<div>id: ' . $r[0]['id'] . ' | <a href="' . $r[0]['plink'] . '" target="_blank">plink</a> | <a href="' . $r[0]['llink'] . '" target="_blank">llink</a></div>';
+ echo '<div>id: ' . $r[0]['id'] . ' | <a href="' . $r[0]['plink'] . '" target="_blank">plink</a> | <a href="' . $r[0]['llink'] . '" target="_blank">llink</a><br>mid: ' . $r[0]['mid'] . '</div>';
echo '<hr>';
echo '<pre class="p-1">' . $o . '</pre>';
echo '</div>';
diff --git a/Zotlabs/Module/Wfinger.php b/Zotlabs/Module/Wfinger.php
index 1866bce40..03275abbc 100644
--- a/Zotlabs/Module/Wfinger.php
+++ b/Zotlabs/Module/Wfinger.php
@@ -43,6 +43,9 @@ class Wfinger extends \Zotlabs\Web\Controller {
if(strpos($resource,'acct:') === 0) {
$channel = str_replace('acct:','',$resource);
+ if(substr($channel,0,1) === '@' && strpos(substr($channel,1),'@')) {
+ $channel = substr($channel,1);
+ }
if(strpos($channel,'@') !== false) {
$host = substr($channel,strpos($channel,'@')+1);
@@ -205,6 +208,12 @@ class Wfinger extends \Zotlabs\Web\Controller {
],
[
+ 'rel' => 'http://purl.org/zot/protocol/6.0',
+ 'type' => 'application/x-zot+json',
+ 'href' => channel_url($r[0])
+ ],
+
+ [
'rel' => 'http://purl.org/openwebauth/v1',
'type' => 'application/x-zot+json',
'href' => z_root() . '/owa',
diff --git a/Zotlabs/Photo/PhotoDriver.php b/Zotlabs/Photo/PhotoDriver.php
new file mode 100644
index 000000000..c47a7c3b2
--- /dev/null
+++ b/Zotlabs/Photo/PhotoDriver.php
@@ -0,0 +1,498 @@
+<?php
+
+namespace Zotlabs\Photo;
+
+/**
+ * @brief Abstract photo driver class.
+ *
+ * Inheritance seems not to be the best design pattern for such photo drivers.
+ */
+abstract class PhotoDriver {
+
+ /**
+ * @brief This variable keeps the image.
+ *
+ * For GD it is a PHP image resource.
+ * For ImageMagick it is an \Imagick object.
+ *
+ * @var resource|\Imagick
+ */
+ protected $image;
+
+ /**
+ * @var integer
+ */
+ protected $width;
+
+ /**
+ * @var integer
+ */
+ protected $height;
+
+ /**
+ * @var boolean
+ */
+ protected $valid;
+
+ /**
+ * @brief The mimetype of the image.
+ *
+ * @var string
+ */
+ protected $type;
+
+ /**
+ * @brief Supported mimetypes by the used photo driver.
+ *
+ * @var array
+ */
+ protected $types;
+
+ /**
+ * @brief Return an array with supported mimetypes.
+ *
+ * @return array
+ * Associative array with mimetype as key and file extension as value.
+ */
+ abstract public function supportedTypes();
+
+ abstract protected function load($data, $type);
+
+ abstract protected function destroy();
+
+ abstract protected function setDimensions();
+
+ /**
+ * @brief Return the current image.
+ *
+ * @fixme Shouldn't his method be protected, because outside of the current
+ * driver it makes no sense at all because of the different return values.
+ *
+ * @return boolean|resource|\Imagick
+ * false on failure, a PHP image resource for GD driver, an \Imagick object
+ * for ImageMagick driver.
+ */
+ abstract public function getImage();
+
+ abstract public function doScaleImage($new_width, $new_height);
+
+ abstract public function rotate($degrees);
+
+ abstract public function flip($horiz = true, $vert = false);
+
+ /**
+ * @brief Crops the image.
+ *
+ * @param int $maxx width of the new image
+ * @param int $maxy height of the new image
+ * @param int $x x-offset for region
+ * @param int $y y-offset for region
+ * @param int $w width of region
+ * @param int $h height of region
+ *
+ * @return boolean|void false on failure
+ */
+ abstract public function cropImageRect($maxx, $maxy, $x, $y, $w, $h);
+
+ /**
+ * @brief Return a binary string from the image resource.
+ *
+ * @return string A Binary String.
+ */
+ abstract public function imageString();
+
+ abstract public function clearexif();
+
+
+ /**
+ * @brief PhotoDriver constructor.
+ *
+ * @param string $data Image
+ * @param string $type mimetype
+ */
+ public function __construct($data, $type = '') {
+ $this->types = $this->supportedTypes();
+ if(! array_key_exists($type, $this->types)) {
+ $type = 'image/jpeg';
+ }
+ $this->type = $type;
+ $this->valid = false;
+ $this->load($data, $type);
+ }
+
+ public function __destruct() {
+ if($this->is_valid())
+ $this->destroy();
+ }
+
+ /**
+ * @brief Is it a valid image object.
+ *
+ * @return boolean
+ */
+ public function is_valid() {
+ return $this->valid;
+ }
+
+ /**
+ * @brief Get the width of the image.
+ *
+ * @return boolean|number Width of image in pixels, or false on failure
+ */
+ public function getWidth() {
+ if(! $this->is_valid())
+ return false;
+
+ return $this->width;
+ }
+
+ /**
+ * @brief Get the height of the image.
+ *
+ * @return boolean|number Height of image in pixels, or false on failure
+ */
+ public function getHeight() {
+ if(! $this->is_valid())
+ return false;
+
+ return $this->height;
+ }
+
+ /**
+ * @brief Saves the image resource to a file in filesystem.
+ *
+ * @param string $path Path and filename where to save the image
+ * @return boolean False on failure, otherwise true
+ */
+ public function saveImage($path) {
+ if(! $this->is_valid())
+ return false;
+
+ return (file_put_contents($path, $this->imageString()) ? true : false);
+ }
+
+ /**
+ * @brief Return mimetype of the image resource.
+ *
+ * @return boolean|string False on failure, otherwise mimetype.
+ */
+ public function getType() {
+ if(! $this->is_valid())
+ return false;
+
+ return $this->type;
+ }
+
+ /**
+ * @brief Return file extension of the image resource.
+ *
+ * @return boolean|string False on failure, otherwise file extension.
+ */
+ public function getExt() {
+ if(! $this->is_valid())
+ return false;
+
+ return $this->types[$this->getType()];
+ }
+
+ /**
+ * @brief Scale image to max pixel size in either dimension.
+ *
+ * @param int $max maximum pixel size in either dimension
+ * @param boolean $float_height (optional)
+ * If true allow height to float to any length on tall images, constraining
+ * only the width
+ * @return boolean|void false on failure, otherwise void
+ */
+ public function scaleImage($max, $float_height = true) {
+ if(! $this->is_valid())
+ return false;
+
+ $width = $this->width;
+ $height = $this->height;
+
+ $dest_width = $dest_height = 0;
+
+ if((! $width) || (! $height))
+ return false;
+
+ if($width > $max && $height > $max) {
+
+ // very tall image (greater than 16:9)
+ // constrain the width - let the height float.
+
+ if(((($height * 9) / 16) > $width) && ($float_height)) {
+ $dest_width = $max;
+ $dest_height = intval(($height * $max) / $width);
+ } // else constrain both dimensions
+ elseif($width > $height) {
+ $dest_width = $max;
+ $dest_height = intval(($height * $max) / $width);
+ } else {
+ $dest_width = intval(($width * $max) / $height);
+ $dest_height = $max;
+ }
+ } else {
+ if($width > $max) {
+ $dest_width = $max;
+ $dest_height = intval(($height * $max) / $width);
+ } else {
+ if($height > $max) {
+
+ // very tall image (greater than 16:9)
+ // but width is OK - don't do anything
+
+ if(((($height * 9) / 16) > $width) && ($float_height)) {
+ $dest_width = $width;
+ $dest_height = $height;
+ } else {
+ $dest_width = intval(($width * $max) / $height);
+ $dest_height = $max;
+ }
+ } else {
+ $dest_width = $width;
+ $dest_height = $height;
+ }
+ }
+ }
+ $this->doScaleImage($dest_width, $dest_height);
+ }
+
+ public function scaleImageUp($min) {
+ if(! $this->is_valid()) {
+ return false;
+ }
+
+ $width = $this->width;
+ $height = $this->height;
+
+ $dest_width = $dest_height = 0;
+
+ if((! $width) || (! $height))
+ return false;
+
+ if($width < $min && $height < $min) {
+ if($width > $height) {
+ $dest_width = $min;
+ $dest_height = intval(($height * $min) / $width);
+ } else {
+ $dest_width = intval(($width * $min) / $height);
+ $dest_height = $min;
+ }
+ } else {
+ if($width < $min) {
+ $dest_width = $min;
+ $dest_height = intval(($height * $min) / $width);
+ } else {
+ if($height < $min) {
+ $dest_width = intval(($width * $min) / $height);
+ $dest_height = $min;
+ } else {
+ $dest_width = $width;
+ $dest_height = $height;
+ }
+ }
+ }
+ $this->doScaleImage($dest_width, $dest_height);
+ }
+
+ /**
+ * @brief Scales image to a square.
+ *
+ * @param int $dim Pixel of square image
+ * @return boolean|void false on failure, otherwise void
+ */
+ public function scaleImageSquare($dim) {
+ if(! $this->is_valid())
+ return false;
+
+ $this->doScaleImage($dim, $dim);
+ }
+
+ /**
+ * @brief Crops a square image.
+ *
+ * @see cropImageRect()
+ *
+ * @param int $max size of the new image
+ * @param int $x x-offset for region
+ * @param int $y y-offset for region
+ * @param int $w width of region
+ * @param int $h height of region
+ *
+ * @return boolean|void false on failure
+ */
+ public function cropImage($max, $x, $y, $w, $h) {
+ if(! $this->is_valid())
+ return false;
+
+ $this->cropImageRect($max, $max, $x, $y, $w, $h);
+ }
+
+ /**
+ * @brief Reads exif data from a given filename.
+ *
+ * @param string $filename
+ * @return boolean|array
+ */
+ public function exif($filename) {
+ if((! function_exists('exif_read_data'))
+ || (! in_array($this->getType(), ['image/jpeg', 'image/tiff'])))
+ {
+ return false;
+ }
+
+ /*
+ * PHP 7.2 allows you to use a stream resource, which should reduce/avoid
+ * memory exhaustion on large images.
+ */
+
+ if(version_compare(PHP_VERSION, '7.2.0') >= 0) {
+ $f = @fopen($filename, 'rb');
+ } else {
+ $f = $filename;
+ }
+
+ if($f) {
+ return @exif_read_data($f, null, true);
+ }
+
+ return false;
+ }
+
+ /**
+ * @brief Orients current image based on exif orientation information.
+ *
+ * @param array $exif
+ * @return boolean true if oriented, otherwise false
+ */
+ public function orient($exif) {
+ if(! ($this->is_valid() && $exif)) {
+ return false;
+ }
+
+ $ort = ((array_key_exists('IFD0', $exif)) ? $exif['IFD0']['Orientation'] : $exif['Orientation']);
+
+ if(! $ort) {
+ return false;
+ }
+
+ switch($ort) {
+ case 1 : // nothing
+ break;
+ case 2 : // horizontal flip
+ $this->flip();
+ break;
+ case 3 : // 180 rotate left
+ $this->rotate(180);
+ break;
+ case 4 : // vertical flip
+ $this->flip(false, true);
+ break;
+ case 5 : // vertical flip + 90 rotate right
+ $this->flip(false, true);
+ $this->rotate(-90);
+ break;
+ case 6 : // 90 rotate right
+ $this->rotate(-90);
+ break;
+ case 7 : // horizontal flip + 90 rotate right
+ $this->flip();
+ $this->rotate(-90);
+ break;
+ case 8 : // 90 rotate left
+ $this->rotate(90);
+ break;
+ default :
+ break;
+ }
+
+ return true;
+ }
+
+ /**
+ * @brief Save photo to database.
+ *
+ * @param array $arr
+ * @param boolean $skipcheck (optional) default false
+ * @return boolean|array
+ */
+ public function save($arr, $skipcheck = false) {
+ if(! ($skipcheck || $this->is_valid())) {
+ logger('Attempt to store invalid photo.');
+ return false;
+ }
+
+ $p = [];
+
+ $p['aid'] = ((intval($arr['aid'])) ? intval($arr['aid']) : 0);
+ $p['uid'] = ((intval($arr['uid'])) ? intval($arr['uid']) : 0);
+ $p['xchan'] = (($arr['xchan']) ? $arr['xchan'] : '');
+ $p['resource_id'] = (($arr['resource_id']) ? $arr['resource_id'] : '');
+ $p['filename'] = (($arr['filename']) ? $arr['filename'] : '');
+ $p['mimetype'] = (($arr['mimetype']) ? $arr['mimetype'] : $this->getType());
+ $p['album'] = (($arr['album']) ? $arr['album'] : '');
+ $p['imgscale'] = ((intval($arr['imgscale'])) ? intval($arr['imgscale']) : 0);
+ $p['allow_cid'] = (($arr['allow_cid']) ? $arr['allow_cid'] : '');
+ $p['allow_gid'] = (($arr['allow_gid']) ? $arr['allow_gid'] : '');
+ $p['deny_cid'] = (($arr['deny_cid']) ? $arr['deny_cid'] : '');
+ $p['deny_gid'] = (($arr['deny_gid']) ? $arr['deny_gid'] : '');
+ $p['edited'] = (($arr['edited']) ? $arr['edited'] : datetime_convert());
+ $p['title'] = (($arr['title']) ? $arr['title'] : '');
+ $p['description'] = (($arr['description']) ? $arr['description'] : '');
+ $p['photo_usage'] = intval($arr['photo_usage']);
+ $p['os_storage'] = intval($arr['os_storage']);
+ $p['os_path'] = $arr['os_path'];
+ $p['os_syspath'] = ((array_key_exists('os_syspath', $arr)) ? $arr['os_syspath'] : '');
+ $p['display_path'] = (($arr['display_path']) ? $arr['display_path'] : '');
+ $p['width'] = (($arr['width']) ? $arr['width'] : $this->getWidth());
+ $p['height'] = (($arr['height']) ? $arr['height'] : $this->getHeight());
+ $p['expires'] = (($arr['expires']) ? $arr['expires'] : gmdate('Y-m-d H:i:s', time() + get_config('system', 'photo_cache_time', 86400)));
+
+ if(! intval($p['imgscale']))
+ logger('save: ' . print_r($arr, true), LOGGER_DATA);
+
+ $x = q("select id, created from photo where resource_id = '%s' and uid = %d and xchan = '%s' and imgscale = %d limit 1", dbesc($p['resource_id']), intval($p['uid']), dbesc($p['xchan']), intval($p['imgscale']));
+
+ if($x) {
+ $p['created'] = (($x['created']) ? $x['created'] : $p['edited']);
+ $r = q("UPDATE photo set
+ aid = %d,
+ uid = %d,
+ xchan = '%s',
+ resource_id = '%s',
+ created = '%s',
+ edited = '%s',
+ filename = '%s',
+ mimetype = '%s',
+ album = '%s',
+ height = %d,
+ width = %d,
+ content = '%s',
+ os_storage = %d,
+ filesize = %d,
+ imgscale = %d,
+ photo_usage = %d,
+ title = '%s',
+ description = '%s',
+ os_path = '%s',
+ display_path = '%s',
+ allow_cid = '%s',
+ allow_gid = '%s',
+ deny_cid = '%s',
+ deny_gid = '%s',
+ expires = '%s'
+ where id = %d",
+ intval($p['aid']), intval($p['uid']), dbesc($p['xchan']), dbesc($p['resource_id']), dbescdate($p['created']), dbescdate($p['edited']), dbesc(basename($p['filename'])), dbesc($p['mimetype']), dbesc($p['album']), intval($p['height']), intval($p['width']), (intval($p['os_storage']) ? dbescbin($p['os_syspath']) : dbescbin($this->imageString())), intval($p['os_storage']), (intval($p['os_storage']) ? @filesize($p['os_syspath']) : strlen($this->imageString())), intval($p['imgscale']), intval($p['photo_usage']), dbesc($p['title']), dbesc($p['description']), dbesc($p['os_path']), dbesc($p['display_path']), dbesc($p['allow_cid']), dbesc($p['allow_gid']), dbesc($p['deny_cid']), dbesc($p['deny_gid']), dbescdate($p['expires']), intval($x[0]['id']));
+ } else {
+ $p['created'] = (($arr['created']) ? $arr['created'] : $p['edited']);
+ $r = q("INSERT INTO photo
+ ( aid, uid, xchan, resource_id, created, edited, filename, mimetype, album, height, width, content, os_storage, filesize, imgscale, photo_usage, title, description, os_path, display_path, allow_cid, allow_gid, deny_cid, deny_gid, expires )
+ VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )", intval($p['aid']), intval($p['uid']), dbesc($p['xchan']), dbesc($p['resource_id']), dbescdate($p['created']), dbescdate($p['edited']), dbesc(basename($p['filename'])), dbesc($p['mimetype']), dbesc($p['album']), intval($p['height']), intval($p['width']), (intval($p['os_storage']) ? dbescbin($p['os_syspath']) : dbescbin($this->imageString())), intval($p['os_storage']), (intval($p['os_storage']) ? @filesize($p['os_syspath']) : strlen($this->imageString())), intval($p['imgscale']), intval($p['photo_usage']), dbesc($p['title']), dbesc($p['description']), dbesc($p['os_path']), dbesc($p['display_path']), dbesc($p['allow_cid']), dbesc($p['allow_gid']), dbesc($p['deny_cid']), dbesc($p['deny_gid']), dbescdate($p['expires']));
+ }
+ logger('Photo save imgscale ' . $p['imgscale'] . ' returned ' . intval($r));
+
+ return $r;
+ }
+
+}
diff --git a/Zotlabs/Photo/PhotoGd.php b/Zotlabs/Photo/PhotoGd.php
new file mode 100644
index 000000000..4054e1866
--- /dev/null
+++ b/Zotlabs/Photo/PhotoGd.php
@@ -0,0 +1,176 @@
+<?php
+
+namespace Zotlabs\Photo;
+
+/**
+ * @brief GD photo driver.
+ *
+ */
+class PhotoGd extends PhotoDriver {
+
+ /**
+ * {@inheritDoc}
+ * @see \Zotlabs\Photo\PhotoDriver::supportedTypes()
+ */
+ public function supportedTypes() {
+ $t = [];
+ $t['image/jpeg'] = 'jpg';
+ if(imagetypes() & IMG_PNG)
+ $t['image/png'] = 'png';
+ if(imagetypes() & IMG_GIF)
+ $t['image/gif'] = 'gif';
+
+ return $t;
+ }
+
+ protected function load($data, $type) {
+ $this->valid = false;
+ if(! $data)
+ return;
+
+ $this->image = @imagecreatefromstring($data);
+ if($this->image !== false) {
+ $this->valid = true;
+ $this->setDimensions();
+ imagealphablending($this->image, false);
+ imagesavealpha($this->image, true);
+ }
+ }
+
+ protected function setDimensions() {
+ $this->width = imagesx($this->image);
+ $this->height = imagesy($this->image);
+ }
+
+ /**
+ * @brief GD driver does not preserve EXIF, so not need to clear it.
+ *
+ * @return void
+ */
+ public function clearexif() {
+ return;
+ }
+
+ protected function destroy() {
+ if($this->is_valid()) {
+ imagedestroy($this->image);
+ }
+ }
+
+ /**
+ * @brief Return a PHP image resource of the current image.
+ *
+ * @see \Zotlabs\Photo\PhotoDriver::getImage()
+ *
+ * @return boolean|resource
+ */
+ public function getImage() {
+ if(! $this->is_valid())
+ return false;
+
+ return $this->image;
+ }
+
+ public function doScaleImage($dest_width, $dest_height) {
+
+ $dest = imagecreatetruecolor($dest_width, $dest_height);
+ $width = imagesx($this->image);
+ $height = imagesy($this->image);
+
+ imagealphablending($dest, false);
+ imagesavealpha($dest, true);
+ if($this->type == 'image/png')
+ imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
+
+ imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
+ if($this->image)
+ imagedestroy($this->image);
+
+ $this->image = $dest;
+ $this->setDimensions();
+ }
+
+ public function rotate($degrees) {
+ if(! $this->is_valid())
+ return false;
+
+ $this->image = imagerotate($this->image, $degrees, 0);
+ $this->setDimensions();
+ }
+
+ public function flip($horiz = true, $vert = false) {
+ if(! $this->is_valid())
+ return false;
+
+ $w = imagesx($this->image);
+ $h = imagesy($this->image);
+ $flipped = imagecreate($w, $h);
+ if($horiz) {
+ for($x = 0; $x < $w; $x++) {
+ imagecopy($flipped, $this->image, $x, 0, $w - $x - 1, 0, 1, $h);
+ }
+ }
+ if($vert) {
+ for($y = 0; $y < $h; $y++) {
+ imagecopy($flipped, $this->image, 0, $y, 0, $h - $y - 1, $w, 1);
+ }
+ }
+ $this->image = $flipped;
+ $this->setDimensions(); // Shouldn't really be necessary
+ }
+
+ public function cropImageRect($maxx, $maxy, $x, $y, $w, $h) {
+ if(! $this->is_valid())
+ return false;
+
+ $dest = imagecreatetruecolor($maxx, $maxy);
+ imagealphablending($dest, false);
+ imagesavealpha($dest, true);
+ if($this->type == 'image/png')
+ imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
+
+ imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $maxx, $maxy, $w, $h);
+ if($this->image)
+ imagedestroy($this->image);
+
+ $this->image = $dest;
+ $this->setDimensions();
+ }
+
+ /**
+ * {@inheritDoc}
+ * @see \Zotlabs\Photo\PhotoDriver::imageString()
+ */
+ public function imageString() {
+ if(! $this->is_valid())
+ return false;
+
+ $quality = false;
+
+ ob_start();
+
+ switch($this->getType()){
+ case 'image/png':
+ $quality = get_config('system', 'png_quality');
+ if((! $quality) || ($quality > 9))
+ $quality = PNG_QUALITY;
+
+ \imagepng($this->image, NULL, $quality);
+ break;
+ case 'image/jpeg':
+ // gd can lack imagejpeg(), but we verify during installation it is available
+ default:
+ $quality = get_config('system', 'jpeg_quality');
+ if((! $quality) || ($quality > 100))
+ $quality = JPEG_QUALITY;
+
+ \imagejpeg($this->image, NULL, $quality);
+ break;
+ }
+ $string = ob_get_contents();
+ ob_end_clean();
+
+ return $string;
+ }
+
+}
diff --git a/include/photo/photo_imagick.php b/Zotlabs/Photo/PhotoImagick.php
index cb3ad27fb..a7026e8ca 100644
--- a/include/photo/photo_imagick.php
+++ b/Zotlabs/Photo/PhotoImagick.php
@@ -1,45 +1,44 @@
-<?php /** @file */
+<?php
+namespace Zotlabs\Photo;
-require_once('include/photo/photo_driver.php');
+/**
+ * @brief ImageMagick photo driver.
+ */
+class PhotoImagick extends PhotoDriver {
-
-class photo_imagick extends photo_driver {
-
-
- function supportedTypes() {
- return array(
+ public function supportedTypes() {
+ return [
'image/jpeg' => 'jpg',
'image/png' => 'png',
- 'image/gif' => 'gif'
- );
+ 'image/gif' => 'gif',
+ ];
}
- public function get_FormatsMap() {
- return array(
+ private function get_FormatsMap() {
+ return [
'image/jpeg' => 'JPG',
'image/png' => 'PNG',
- 'image/gif' => 'GIF'
- );
+ 'image/gif' => 'GIF',
+ ];
}
- function load($data, $type) {
+ protected function load($data, $type) {
$this->valid = false;
- $this->image = new Imagick();
+ $this->image = new \Imagick();
if(! $data)
return;
try {
$this->image->readImageBlob($data);
- }
- catch (Exception $e) {
- logger('imagick readImageBlob() exception:' . print_r($e,true));
+ } catch(\Exception $e) {
+ logger('Imagick readImageBlob() exception:' . print_r($e, true));
return;
}
- /**
+ /*
* Setup the image to the format it will be saved to
*/
@@ -52,19 +51,18 @@ class photo_imagick extends photo_driver {
// Always coalesce, if it is not a multi-frame image it won't hurt anyway
$this->image = $this->image->coalesceImages();
-
$this->valid = true;
$this->setDimensions();
- /**
+ /*
* setup the compression here, so we'll do it only once
*/
switch($this->getType()) {
- case "image/png":
- $quality = get_config('system','png_quality');
+ case 'image/png':
+ $quality = get_config('system', 'png_quality');
if((! $quality) || ($quality > 9))
$quality = PNG_QUALITY;
- /**
+ /*
* From http://www.imagemagick.org/script/command-line-options.php#quality:
*
* 'For the MNG and PNG image formats, the quality value sets
@@ -75,56 +73,64 @@ class photo_imagick extends photo_driver {
$quality = $quality * 10;
$this->image->setCompressionQuality($quality);
break;
- case "image/jpeg":
- $quality = get_config('system','jpeg_quality');
+ case 'image/jpeg':
+ $quality = get_config('system', 'jpeg_quality');
if((! $quality) || ($quality > 100))
$quality = JPEG_QUALITY;
$this->image->setCompressionQuality($quality);
default:
break;
-
}
}
}
- public function destroy() {
+ protected function destroy() {
if($this->is_valid()) {
$this->image->clear();
$this->image->destroy();
}
}
-
- public function setDimensions() {
+ protected function setDimensions() {
$this->width = $this->image->getImageWidth();
$this->height = $this->image->getImageHeight();
}
-
+ /**
+ * @brief Strips the image of all profiles and comments.
+ *
+ * Keep ICC profile for better colors.
+ *
+ * @see \Zotlabs\Photo\PhotoDriver::clearexif()
+ */
public function clearexif() {
-
- $profiles = $this->image->getImageProfiles("icc", true);
+ $profiles = $this->image->getImageProfiles('icc', true);
$this->image->stripImage();
- if(!empty($profiles)) {
- $this->image->profileImage("icc", $profiles['icc']);
+ if(! empty($profiles)) {
+ $this->image->profileImage('icc', $profiles['icc']);
}
}
-
+ /**
+ * @brief Return a \Imagick object of the current image.
+ *
+ * @see \Zotlabs\Photo\PhotoDriver::getImage()
+ *
+ * @return boolean|\Imagick
+ */
public function getImage() {
- if(!$this->is_valid())
- return FALSE;
+ if(! $this->is_valid())
+ return false;
$this->image = $this->image->deconstructImages();
return $this->image;
}
- public function doScaleImage($dest_width,$dest_height) {
-
- /**
+ public function doScaleImage($dest_width, $dest_height) {
+ /*
* If it is not animated, there will be only one iteration here,
* so don't bother checking
*/
@@ -132,82 +138,63 @@ class photo_imagick extends photo_driver {
$this->image->setFirstIterator();
do {
$this->image->scaleImage($dest_width, $dest_height);
- } while ($this->image->nextImage());
+ } while($this->image->nextImage());
$this->setDimensions();
}
public function rotate($degrees) {
- if(!$this->is_valid())
- return FALSE;
+ if(! $this->is_valid())
+ return false;
$this->image->setFirstIterator();
do {
// ImageMagick rotates in the opposite direction of imagerotate()
- $this->image->rotateImage(new ImagickPixel(), -$degrees);
- } while ($this->image->nextImage());
+ $this->image->rotateImage(new \ImagickPixel(), -$degrees);
+ } while($this->image->nextImage());
$this->setDimensions();
}
public function flip($horiz = true, $vert = false) {
- if(!$this->is_valid())
- return FALSE;
+ if(! $this->is_valid())
+ return false;
$this->image->setFirstIterator();
do {
if($horiz) $this->image->flipImage();
if($vert) $this->image->flopImage();
- } while ($this->image->nextImage());
+ } while($this->image->nextImage());
$this->setDimensions(); // Shouldn't really be necessary
}
- public function cropImage($max,$x,$y,$w,$h) {
- if(!$this->is_valid())
- return FALSE;
-
- $this->image->setFirstIterator();
- do {
- $this->image->cropImage($w, $h, $x, $y);
- /**
- * We need to remove the canvas,
- * or the image is not resized to the crop:
- * http://php.net/manual/en/imagick.cropimage.php#97232
- */
- $this->image->setImagePage(0, 0, 0, 0);
- } while ($this->image->nextImage());
-
- $this->doScaleImage($max,$max);
- }
-
- public function cropImageRect($maxx,$maxy,$x,$y,$w,$h) {
- if(!$this->is_valid())
- return FALSE;
+ public function cropImageRect($maxx, $maxy, $x, $y, $w, $h) {
+ if(! $this->is_valid())
+ return false;
$this->image->setFirstIterator();
do {
$this->image->cropImage($w, $h, $x, $y);
- /**
+ /*
* We need to remove the canvas,
* or the image is not resized to the crop:
* http://php.net/manual/en/imagick.cropimage.php#97232
*/
$this->image->setImagePage(0, 0, 0, 0);
- } while ($this->image->nextImage());
+ } while($this->image->nextImage());
- $this->doScaleImage($maxx,$maxy);
+ $this->doScaleImage($maxx, $maxy);
}
public function imageString() {
- if(!$this->is_valid())
- return FALSE;
+ if(! $this->is_valid())
+ return false;
/* Clean it */
$this->image = $this->image->deconstructImages();
+
return $this->image->getImagesBlob();
}
-
-
}
diff --git a/Zotlabs/Storage/Browser.php b/Zotlabs/Storage/Browser.php
index c2d70b854..fde66efcd 100644
--- a/Zotlabs/Storage/Browser.php
+++ b/Zotlabs/Storage/Browser.php
@@ -205,17 +205,21 @@ class Browser extends DAV\Browser\Plugin {
// upload access. system.thumbnail_security should be set to 1 if you want to include these
// types
+ $is_creator = false;
$photo_icon = '';
$preview_style = intval(get_config('system','thumbnail_security',0));
- $r = q("select content from attach where hash = '%s' and uid = %d limit 1",
+ $r = q("select content, creator from attach where hash = '%s' and uid = %d limit 1",
dbesc($attachHash),
intval($owner)
);
- if($r && file_exists(dbunescbin($r[0]['content']) . '.thumb')) {
- $photo_icon = 'data:image/jpeg;base64,' . base64_encode(file_get_contents(dbunescbin($r[0]['content']) . '.thumb'));
-// logger('found thumb: ' . $photo_icon);
+ if($r) {
+ $is_creator = (($r[0]['creator'] === get_observer_hash()) ? true : false);
+ if(file_exists(dbunescbin($r[0]['content']) . '.thumb')) {
+ $photo_icon = 'data:image/jpeg;base64,' . base64_encode(file_get_contents(dbunescbin($r[0]['content']) . '.thumb'));
+// logger('found thumb: ' . $photo_icon);
+ }
}
if(strpos($type,'image/') === 0 && $attachHash) {
@@ -247,6 +251,7 @@ class Browser extends DAV\Browser\Plugin {
$ft['attachIcon'] = (($size) ? $attachIcon : '');
// @todo Should this be an item value, not a global one?
$ft['is_owner'] = $is_owner;
+ $ft['is_creator'] = $is_creator;
$ft['fullPath'] = $fullPath;
$ft['displayName'] = $displayName;
$ft['type'] = $type;
@@ -256,6 +261,7 @@ class Browser extends DAV\Browser\Plugin {
$ft['iconFromType'] = getIconFromType($type);
$f[] = $ft;
+
}
diff --git a/Zotlabs/Storage/Directory.php b/Zotlabs/Storage/Directory.php
index 642af6300..b30aecf92 100644
--- a/Zotlabs/Storage/Directory.php
+++ b/Zotlabs/Storage/Directory.php
@@ -224,7 +224,7 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota, DAV\IMo
}
$filesize = 0;
- $hash = random_string();
+ $hash = new_uuid();
$f = 'store/' . $this->auth->owner_nick . '/' . (($this->os_path) ? $this->os_path . '/' : '') . $hash;
diff --git a/Zotlabs/Update/_1226.php b/Zotlabs/Update/_1226.php
new file mode 100644
index 000000000..6e5a0e319
--- /dev/null
+++ b/Zotlabs/Update/_1226.php
@@ -0,0 +1,78 @@
+<?php
+
+namespace Zotlabs\Update;
+
+use Zotlabs\Lib\Libzot;
+
+class _1226 {
+
+ function run() {
+
+ q("START TRANSACTION");
+
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $r1 = q("ALTER TABLE channel ADD channel_portable_id text NOT NULL DEFAULT '' ");
+ $r2 = q("create index \"channel_portable_id_idx\" on channel (\"channel_portable_id\")");
+
+ $r = ($r1 && $r2);
+ }
+ else {
+ $r = q("ALTER TABLE `channel` ADD `channel_portable_id` char(191) NOT NULL DEFAULT '' ,
+ ADD INDEX `channel_portable_id` (`channel_portable_id`)");
+ }
+
+ if($r) {
+ q("COMMIT");
+ self::upgrade();
+ return UPDATE_SUCCESS;
+ }
+
+ q("ROLLBACK");
+ return UPDATE_FAILED;
+ }
+
+
+ static function upgrade() {
+
+ $r = q("select * from channel where channel_portable_id = '' ");
+
+ if($r) {
+ foreach($r as $rv) {
+
+ $zhash = Libzot::make_xchan_hash($rv['channel_guid'],$rv['channel_pubkey']);
+ q("update channel set channel_portable_id = '%s' where channel_id = %d",
+ dbesc($zhash),
+ intval($rv['channel_id'])
+ );
+ $x = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($rv['channel_hash'])
+ );
+ if($x) {
+ $rec = $x[0];
+ $rec['xchan_hash'] = $zhash;
+ $rec['xchan_guid_sig'] = 'sha256.' . $rec['xchan_guid_sig'];
+ $rec['xchan_network'] = 'zot6';
+
+ xchan_store_lowlevel($rec);
+ }
+ $x = q("select * from hubloc where hubloc_hash = '%s' and hubloc_url = '%s' limit 1",
+ dbesc($rv['channel_hash']),
+ dbesc(z_root())
+ );
+ if($x) {
+ $rec = $x[0];
+ $rec['hubloc_hash'] = $zhash;
+ $rec['hubloc_guid_sig'] = 'sha256.' . $rec['hubloc_guid_sig'];
+ $rec['hubloc_network'] = 'zot6';
+ $rec['hubloc_url_sig'] = 'sha256.' . $rec['hubloc_url_sig'];
+ $rec['hubloc_callback'] = z_root() . '/zot';
+ $rec['hubloc_id_url'] = channel_url($rv);
+ $rec['hubloc_site_id'] = Libzot::make_xchan_hash(z_root(),get_config('system','pubkey'));
+ hubloc_store_lowlevel($rec);
+ }
+ }
+ }
+ }
+}
+
+
diff --git a/Zotlabs/Update/_1227.php b/Zotlabs/Update/_1227.php
new file mode 100644
index 000000000..b5dbb2286
--- /dev/null
+++ b/Zotlabs/Update/_1227.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Zotlabs\Update;
+
+
+class _1227 {
+
+ function run() {
+
+ q("START TRANSACTION");
+
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $r = q("ALTER TABLE dreport ADD dreport_name text NOT NULL DEFAULT '' ");
+ }
+ else {
+ $r = q("ALTER TABLE `dreport` ADD `dreport_name` char(191) NOT NULL DEFAULT ''");
+ }
+
+ if($r) {
+ q("COMMIT");
+ return UPDATE_SUCCESS;
+ }
+
+ q("ROLLBACK");
+ return UPDATE_FAILED;
+ }
+
+}
+
+
diff --git a/Zotlabs/Update/_1228.php b/Zotlabs/Update/_1228.php
new file mode 100644
index 000000000..9e6bf8047
--- /dev/null
+++ b/Zotlabs/Update/_1228.php
@@ -0,0 +1,36 @@
+<?php
+
+namespace Zotlabs\Update;
+
+
+class _1228 {
+
+ function run() {
+
+ q("START TRANSACTION");
+
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $r1 = q("ALTER TABLE item ADD uuid text NOT NULL DEFAULT '' ");
+ $r2 = q("create index \"uuid_idx\" on item (\"uuid\")");
+ $r3 = q("ALTER TABLE item add summary TEXT NOT NULL DEFAULT ''");
+
+ $r = ($r1 && $r2 && $r3);
+ }
+ else {
+ $r1 = q("ALTER TABLE `item` ADD `uuid` char(191) NOT NULL DEFAULT '' ,
+ ADD INDEX `uuid` (`uuid`)");
+ $r2 = q("ALTER TABLE `item` ADD `summary` mediumtext NOT NULL");
+ $r = ($r1 && $r2);
+ }
+
+ if($r) {
+ q("COMMIT");
+ return UPDATE_SUCCESS;
+ }
+
+ q("ROLLBACK");
+ return UPDATE_FAILED;
+ }
+
+}
+
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/Update/_1230.php b/Zotlabs/Update/_1230.php
new file mode 100644
index 000000000..fe59f2e08
--- /dev/null
+++ b/Zotlabs/Update/_1230.php
@@ -0,0 +1,12 @@
+<?php
+
+namespace Zotlabs\Update;
+
+class _1230 {
+
+ function run() {
+ q("update abook set abook_closeness = 80 where abook_closeness = 0 and abook_self = 0");
+ return UPDATE_SUCCESS;
+
+ }
+} \ No newline at end of file
diff --git a/Zotlabs/Web/CheckJS.php b/Zotlabs/Web/CheckJS.php
deleted file mode 100644
index e83ccf27b..000000000
--- a/Zotlabs/Web/CheckJS.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Zotlabs\Web;
-
-
-class CheckJS {
-
- private static $jsdisabled = 0;
-
- function __construct($test = 0) {
- if(intval($_REQUEST['jsdisabled']))
- $this->jsdisabled = 1;
- else
- $this->jsdisabled = 0;
- if(intval($_COOKIE['jsdisabled']))
- $this->jsdisabled = 1;
- else
- $this->jsdisabled = 0;
-
- $page = bin2hex(\App::$query_string);
-
- if(! $this->jsdisabled) {
- if($test) {
- $this->jsdisabled = 1;
- if(array_key_exists('jsdisabled',$_COOKIE))
- $this->jsdisabled = $_COOKIE['jsdisabled'];
-
- if(! array_key_exists('jsdisabled',$_COOKIE)) {
- \App::$page['htmlhead'] .= "\r\n" . '<script>document.cookie="jsdisabled=0; path=/"; var jsMatch = /\&jsdisabled=0/; if (!jsMatch.exec(location.href)) { location.href = "' . z_root() . '/nojs/0?f=&redir=' . $page . '" ; }</script>' . "\r\n";
- /* emulate JS cookie if cookies are not accepted */
- if (array_key_exists('jsdisabled',$_GET)) {
- $_COOKIE['jsdisabled'] = $_GET['jsdisabled'];
- }
- }
- }
- else {
- \App::$page['htmlhead'] .= "\r\n" . '<noscript><meta http-equiv="refresh" content="0; url=' . z_root() . '/nojs?f=&redir=' . $page . '"></noscript>' . "\r\n";
- }
- }
-
- }
-
- function disabled() {
- return $this->jsdisabled;
- }
-
-
-}
-
-
diff --git a/Zotlabs/Web/HTTPSig.php b/Zotlabs/Web/HTTPSig.php
index f27aa0556..fe0b9428f 100644
--- a/Zotlabs/Web/HTTPSig.php
+++ b/Zotlabs/Web/HTTPSig.php
@@ -342,6 +342,10 @@ class HTTPSig {
*/
static function parse_sigheader($header) {
+ if(is_array($header)) {
+ btlogger('is_array: ' . print_r($header,true));
+ }
+
$ret = [];
$matches = [];
@@ -397,7 +401,7 @@ class HTTPSig {
$data = $matches[1];
if($iv && $key && $alg && $data) {
- return crypto_unencapsulate([ 'iv' => $iv, 'key' => $key, 'alg' => $alg, 'data' => $data ] , $prvkey);
+ return crypto_unencapsulate([ 'encrypted' => true, 'iv' => $iv, 'key' => $key, 'alg' => $alg, 'data' => $data ] , $prvkey);
}
return '';
diff --git a/Zotlabs/Web/Session.php b/Zotlabs/Web/Session.php
index 4f2a3f1f7..fe0a3fbf9 100644
--- a/Zotlabs/Web/Session.php
+++ b/Zotlabs/Web/Session.php
@@ -15,7 +15,7 @@ class Session {
private $handler = null;
private $session_started = false;
-
+ private $custom_handler = false;
public function init() {
$gc_probability = 50;
@@ -23,25 +23,46 @@ class Session {
ini_set('session.gc_probability', $gc_probability);
ini_set('session.use_only_cookies', 1);
ini_set('session.cookie_httponly', 1);
-
+
+ $this->custom_handler = boolval(get_config('system', 'session_custom', false));
+
/*
* Set our session storage functions.
*/
+
+ if($this->custom_handler) {
+ /* Custom handler (files, memached, redis..) */
+
+ $session_save_handler = strval(get_config('system', 'session_save_handler', Null));
+ $session_save_path = strval(get_config('system', 'session_save_path', Null));
+ $session_gc_probability = intval(get_config('system', 'session_gc_probability', 1));
+ $session_gc_divisor = intval(get_config('system', 'session_gc_divisor', 100));
+ if(!$session_save_handler || !$session_save_path) {
+ logger('Session save handler or path not set.',LOGGER_NORMAL,LOG_ERR);
+ }
+ else {
+ ini_set('session.save_handler', $session_save_handler);
+ ini_set('session.save_path', $session_save_path);
+ ini_set('session.gc_probability', $session_gc_probability);
+ ini_set('session.gc_divisor', $session_gc_divisor);
+ }
+ }
+ else {
+ $handler = new \Zotlabs\Web\SessionHandler();
- $handler = new \Zotlabs\Web\SessionHandler();
-
- $this->handler = $handler;
+ $this->handler = $handler;
- $x = session_set_save_handler($handler,false);
- if(! $x)
- logger('Session save handler initialisation failed.',LOGGER_NORMAL,LOG_ERR);
+ $x = session_set_save_handler($handler,false);
+ if(! $x)
+ logger('Session save handler initialisation failed.',LOGGER_NORMAL,LOG_ERR);
+ }
// Force cookies to be secure (https only) if this site is SSL enabled.
// Must be done before session_start().
$arr = session_get_cookie_params();
-
+
// Note when setting cookies: set the domain to false which creates a single domain
// cookie. If you use a hostname it will create a .domain.com wildcard which will
// have some nasty side effects if you have any other subdomains running hubzilla.
@@ -86,14 +107,15 @@ class Session {
$arr = session_get_cookie_params();
- if($this->handler && $this->session_started) {
+ if(($this->handler || $this->custom_handler) && $this->session_started) {
session_regenerate_id(true);
// force SessionHandler record creation with the new session_id
// which occurs as a side effect of read()
-
- $this->handler->read(session_id());
+ if (! $this->custom_handler) {
+ $this->handler->read(session_id());
+ }
}
else
logger('no session handler');
diff --git a/Zotlabs/Widget/Affinity.php b/Zotlabs/Widget/Affinity.php
index 4fb2874ae..572af0503 100644
--- a/Zotlabs/Widget/Affinity.php
+++ b/Zotlabs/Widget/Affinity.php
@@ -2,55 +2,65 @@
namespace Zotlabs\Widget;
+use Zotlabs\Lib\Apps;
+
class Affinity {
function widget($arr) {
if(! local_channel())
- return '';
-
- $default_cmin = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmin',0) : 0);
- $default_cmax = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmax',99) : 99);
+ return;
+
+ if(! Apps::system_app_installed(local_channel(),'Affinity Tool'))
+ return;
+
+ $default_cmin = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmin',0) : 0);
+ $default_cmax = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmax',99) : 99);
$cmin = ((x($_REQUEST,'cmin')) ? intval($_REQUEST['cmin']) : $default_cmin);
$cmax = ((x($_REQUEST,'cmax')) ? intval($_REQUEST['cmax']) : $default_cmax);
+ $affinity_locked = intval(get_pconfig(local_channel(),'affinity','lock',1));
+ if ($affinity_locked) {
+ set_pconfig(local_channel(),'affinity','cmin',$cmin);
+ set_pconfig(local_channel(),'affinity','cmax',$cmax);
+ }
+
+ $labels = array(
+ t('Me'),
+ t('Family'),
+ t('Friends'),
+ t('Acquaintances'),
+ t('All')
+ );
+ call_hooks('affinity_labels',$labels);
+
+ $label_str = '';
- if(feature_enabled(local_channel(),'affinity')) {
-
- $labels = array(
- t('Me'),
- t('Family'),
- t('Friends'),
- t('Acquaintances'),
- t('All')
- );
- call_hooks('affinity_labels',$labels);
- $label_str = '';
-
- if($labels) {
- foreach($labels as $l) {
- if($label_str) {
- $label_str .= ", '|'";
- $label_str .= ", '" . $l . "'";
- }
- else
- $label_str .= "'" . $l . "'";
+ if($labels) {
+ foreach($labels as $l) {
+ if($label_str) {
+ $label_str .= ", '|'";
+ $label_str .= ", '" . $l . "'";
}
+ else
+ $label_str .= "'" . $l . "'";
}
-
- $tpl = get_markup_template('main_slider.tpl');
- $x = replace_macros($tpl,array(
- '$val' => $cmin . ',' . $cmax,
- '$refresh' => t('Refresh'),
- '$labels' => $label_str,
- ));
-
- $arr = array('html' => $x);
- call_hooks('main_slider',$arr);
- return $arr['html'];
}
- return '';
+
+ $tpl = get_markup_template('main_slider.tpl');
+ $x = replace_macros($tpl,array(
+ '$val' => $cmin . ',' . $cmax,
+ '$refresh' => t('Refresh'),
+ '$labels' => $label_str,
+ ));
+
+ $arr = array('html' => $x);
+ call_hooks('main_slider',$arr);
+
+ return $arr['html'];
+
+
}
}
- \ No newline at end of file
+
diff --git a/Zotlabs/Widget/Settings_menu.php b/Zotlabs/Widget/Settings_menu.php
index c537c3835..25b80a4b4 100644
--- a/Zotlabs/Widget/Settings_menu.php
+++ b/Zotlabs/Widget/Settings_menu.php
@@ -42,19 +42,12 @@ class Settings_menu {
);
-
$tabs[] = array(
'label' => t('Display settings'),
'url' => z_root().'/settings/display',
'selected' => ((argv(1) === 'display') ? 'active' : ''),
);
- $tabs[] = array(
- 'label' => t('Addon settings'),
- 'url' => z_root().'/settings/featured',
- 'selected' => ((argv(1) === 'featured') ? 'active' : ''),
- );
-
if($hublocs) {
$tabs[] = array(
'label' => t('Manage locations'),
diff --git a/Zotlabs/Zot/Finger.php b/Zotlabs/Zot/Finger.php
index 77634777a..cb38c7f2b 100644
--- a/Zotlabs/Zot/Finger.php
+++ b/Zotlabs/Zot/Finger.php
@@ -55,7 +55,7 @@ class Finger {
$r = q("select xchan.*, hubloc.* from xchan
left join hubloc on xchan_hash = hubloc_hash
- where xchan_addr = '%s' and hubloc_primary = 1 and hubloc_deleted = 0 limit 1",
+ where xchan_addr = '%s' and hubloc_primary = 1 and hubloc_deleted = 0 and hubloc_network = 'zot' limit 1",
dbesc($xchan_addr)
);
diff --git a/Zotlabs/Zot6/HTTPSig.php b/Zotlabs/Zot6/HTTPSig.php
index a0f0d3500..72785b1e9 100644
--- a/Zotlabs/Zot6/HTTPSig.php
+++ b/Zotlabs/Zot6/HTTPSig.php
@@ -48,12 +48,14 @@ class HTTPSig {
$h = new HTTPHeaders($data['header']);
$headers = $h->fetcharr();
$body = $data['body'];
+ $headers['(request-target)'] = $data['request_target'];
}
else {
$headers = [];
$headers['(request-target)'] = strtolower($_SERVER['REQUEST_METHOD']) . ' ' . $_SERVER['REQUEST_URI'];
$headers['content-type'] = $_SERVER['CONTENT_TYPE'];
+ $headers['content-length'] = $_SERVER['CONTENT_LENGTH'];
foreach($_SERVER as $k => $v) {
if(strpos($k,'HTTP_') === 0) {
@@ -121,6 +123,17 @@ class HTTPSig {
if(array_key_exists($h,$headers)) {
$signed_data .= $h . ': ' . $headers[$h] . "\n";
}
+ if($h === 'date') {
+ $d = new \DateTime($headers[$h]);
+ $d->setTimeZone(new \DateTimeZone('UTC'));
+ $dplus = datetime_convert('UTC','UTC','now + 1 day');
+ $dminus = datetime_convert('UTC','UTC','now - 1 day');
+ $c = $d->format('Y-m-d H:i:s');
+ if($c > $dplus || $c < $dminus) {
+ logger('bad time: ' . $c);
+ return $result;
+ }
+ }
}
$signed_data = rtrim($signed_data,"\n");
@@ -147,8 +160,15 @@ class HTTPSig {
logger('verified: ' . $x, LOGGER_DEBUG);
- if(! $x)
+ if(! $x) {
+ logger('verify failed for ' . $result['signer'] . ' alg=' . $algorithm . (($key['public_key']) ? '' : ' no key'));
+ $sig_block['signature'] = base64_encode($sig_block['signature']);
+ logger('affected sigblock: ' . print_r($sig_block,true));
+ logger('signed_data: ' . print_r($signed_data,true));
+ logger('headers: ' . print_r($headers,true));
+ logger('server: ' . print_r($_SERVER,true));
return $result;
+ }
$result['portable_id'] = $key['portable_id'];
$result['header_valid'] = true;
@@ -180,7 +200,9 @@ class HTTPSig {
return [ 'public_key' => $key ];
}
- $key = self::get_webfinger_key($id);
+ if(strpos($id,'#') === false) {
+ $key = self::get_webfinger_key($id);
+ }
if(! $key) {
$key = self::get_activitystreams_key($id);
@@ -216,25 +238,29 @@ class HTTPSig {
function get_activitystreams_key($id) {
+ // remove fragment
+
+ $url = ((strpos($id,'#')) ? substr($id,0,strpos($id,'#')) : $id);
+
$x = q("select * from xchan left join hubloc on xchan_hash = hubloc_hash where hubloc_addr = '%s' or hubloc_id_url = '%s' limit 1",
- dbesc(str_replace('acct:','',$id)),
- dbesc($id)
+ dbesc(str_replace('acct:','',$url)),
+ dbesc($url)
);
if($x && $x[0]['xchan_pubkey']) {
return [ 'portable_id' => $x[0]['xchan_hash'], 'public_key' => $x[0]['xchan_pubkey'] , 'hubloc' => $x[0] ];
}
- $r = ActivityStreams::fetch_property($id);
+ $r = ActivityStreams::fetch($id);
if($r) {
- if(array_key_exists('publicKey',$j) && array_key_exists('publicKeyPem',$j['publicKey']) && array_key_exists('id',$j['publicKey'])) {
- if($j['publicKey']['id'] === $id || $j['id'] === $id) {
- return [ 'public_key' => self::convertKey($j['publicKey']['publicKeyPem']), 'portable_id' => '', 'hubloc' => [] ];
+ if(array_key_exists('publicKey',$r) && array_key_exists('publicKeyPem',$r['publicKey']) && array_key_exists('id',$r['publicKey'])) {
+ if($r['publicKey']['id'] === $id || $r['id'] === $id) {
+ $portable_id = ((array_key_exists('owner',$r['publicKey'])) ? $r['publicKey']['owner'] : EMPTY_STR);
+ return [ 'public_key' => self::convertKey($r['publicKey']['publicKeyPem']), 'portable_id' => $portable_id, 'hubloc' => [] ];
}
}
}
-
return false;
}
@@ -409,6 +435,8 @@ class HTTPSig {
$headers = '';
$fields = '';
+ logger('signing: ' . print_r($head,true), LOGGER_DATA);
+
if($head) {
foreach($head as $k => $v) {
$headers .= strtolower($k) . ': ' . trim($v) . "\n";
diff --git a/Zotlabs/Zot6/Receiver.php b/Zotlabs/Zot6/Receiver.php
index 4f26e2b0c..66559c9a5 100644
--- a/Zotlabs/Zot6/Receiver.php
+++ b/Zotlabs/Zot6/Receiver.php
@@ -4,7 +4,7 @@ namespace Zotlabs\Zot6;
use Zotlabs\Lib\Config;
use Zotlabs\Lib\Libzot;
-use Zotlabs\Web\HTTPSig;
+
class Receiver {
diff --git a/Zotlabs/Zot6/Zot6Handler.php b/Zotlabs/Zot6/Zot6Handler.php
index 5597921cc..8f8957037 100644
--- a/Zotlabs/Zot6/Zot6Handler.php
+++ b/Zotlabs/Zot6/Zot6Handler.php
@@ -29,7 +29,7 @@ class Zot6Handler implements IHandler {
// Implementation of specific methods follows;
- // These generally do a small amout of validation and call Libzot
+ // These generally do a small amout of validation and call Libzot
// to do any heavy lifting
static function reply_notify($data,$hub) {
@@ -40,7 +40,7 @@ class Zot6Handler implements IHandler {
$x = Libzot::fetch($data);
$ret['delivery_report'] = $x;
-
+
$ret['success'] = true;
return $ret;
@@ -58,11 +58,11 @@ class Zot6Handler implements IHandler {
*
* @param array $sender
* @param array $recipients
+ * @param array $hub
*
- * @return json_return_and_die()
+ * @return array
*/
-
- static function reply_refresh($sender, $recipients,$hub) {
+ static function reply_refresh($sender, $recipients, $hub) {
$ret = array('success' => false);
if($recipients) {
@@ -71,17 +71,17 @@ class Zot6Handler implements IHandler {
foreach ($recipients as $recip) {
$r = q("select channel.*,xchan.* from channel
- left join xchan on channel_hash = xchan_hash
- where channel_hash ='%s' limit 1",
+ left join xchan on channel_portable_id = xchan_hash
+ where xchan_hash ='%s' limit 1",
dbesc($recip)
);
-
+ /// @FIXME $msgtype is undefined
$x = Libzot::refresh( [ 'hubloc_id_url' => $hub['hubloc_id_url'] ], $r[0], (($msgtype === 'force_refresh') ? true : false));
}
}
else {
// system wide refresh
-
+ /// @FIXME $msgtype is undefined
$x = Libzot::refresh( [ 'hubloc_id_url' => $hub['hubloc_id_url'] ], null, (($msgtype === 'force_refresh') ? true : false));
}
@@ -99,17 +99,16 @@ class Zot6Handler implements IHandler {
* for that packet. We will create a message_list array of the entire conversation starting with
* the missing parent and invoke delivery to the sender of the packet.
*
- * Zotlabs/Daemon/Deliver.php (for local delivery) and
+ * Zotlabs/Daemon/Deliver.php (for local delivery) and
* mod/post.php???? @fixme (for web delivery) detect the existence of
* this 'message_list' at the destination and split it into individual messages which are
* processed/delivered in order.
*
- *
* @param array $data
+ * @param array $hub
* @return array
*/
-
- static function reply_message_request($data,$hub) {
+ static function reply_message_request($data, $hub) {
$ret = [ 'success' => false ];
$message_id = EMPTY_STR;
@@ -140,7 +139,7 @@ class Zot6Handler implements IHandler {
$arr = $data['recipients'][0];
- $c = q("select * from channel left join xchan on channel_hash = xchan_hash where channel_hash = '%s' limit 1",
+ $c = q("select * from channel left join xchan on channel_portable_id = xchan_hash where channel_portable_id = '%s' limit 1",
dbesc($arr['portable_id'])
);
if (! $c) {
@@ -152,11 +151,10 @@ class Zot6Handler implements IHandler {
/*
* fetch the requested conversation
*/
-
+ /// @FIXME $sender_hash is undefined
$messages = zot_feed($c[0]['channel_id'],$sender_hash, [ 'message_id' => $data['message_id'], 'encoding' => 'activitystreams' ]);
return (($messages) ? : [] );
-
}
static function rekey_request($sender,$data,$hub) {
@@ -182,7 +180,7 @@ class Zot6Handler implements IHandler {
dbesc($oldhash)
);
}
- else
+ else
return $ret;
@@ -218,10 +216,10 @@ class Zot6Handler implements IHandler {
*
* @param array $sender
* @param array $recipients
+ * @param array $hub
*
- * return json_return_and_die()
+ * @return array
*/
-
static function reply_purge($sender, $recipients, $hub) {
$ret = array('success' => false);
@@ -230,8 +228,8 @@ class Zot6Handler implements IHandler {
// basically this means "unfriend"
foreach ($recipients as $recip) {
$r = q("select channel.*,xchan.* from channel
- left join xchan on channel_hash = xchan_hash
- where channel_hash = '%s' and channel_guid_sig = '%s' limit 1",
+ left join xchan on channel_portable_id = xchan_hash
+ where channel_portable_id = '%s' limit 1",
dbesc($recip)
);
if ($r) {
@@ -258,9 +256,4 @@ class Zot6Handler implements IHandler {
return $ret;
}
-
-
-
-
-
}
diff --git a/app/affinity.apd b/app/affinity.apd
new file mode 100644
index 000000000..3860581aa
--- /dev/null
+++ b/app/affinity.apd
@@ -0,0 +1,7 @@
+version: 1
+url: $baseurl/affinity
+requires: local_channel
+name: Affinity Tool
+photo: icon:arrows-h
+categories: Networking
+desc: This app presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship (affinity) with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream.
diff --git a/boot.php b/boot.php
index dd1a7b86c..2c352dfae 100755
--- a/boot.php
+++ b/boot.php
@@ -50,10 +50,10 @@ require_once('include/attach.php');
require_once('include/bbcode.php');
define ( 'PLATFORM_NAME', 'hubzilla' );
-define ( 'STD_VERSION', '3.8.9' );
+define ( 'STD_VERSION', '4.0' );
define ( 'ZOT_REVISION', '6.0a' );
-define ( 'DB_UPDATE_VERSION', 1225 );
+define ( 'DB_UPDATE_VERSION', 1230 );
define ( 'PROJECT_BASE', __DIR__ );
@@ -83,8 +83,8 @@ define ( 'DIRECTORY_REALM', 'RED_GLOBAL');
define ( 'DIRECTORY_FALLBACK_MASTER', 'https://zotadel.net');
$DIRECTORY_FALLBACK_SERVERS = array(
- 'https://hubzilla.zottel.net',
- 'https://zotadel.net'
+ 'https://zotadel.net',
+ 'https://zotsite.net'
);
@@ -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 );
@@ -438,6 +439,7 @@ define ( 'TERM_OBJ_APP', 7 );
* various namespaces we may need to parse
*/
define ( 'PROTOCOL_ZOT', 'http://purl.org/zot/protocol' );
+define ( 'PROTOCOL_ZOT6', 'http://purl.org/zot/protocol/6.0' );
define ( 'NAMESPACE_ZOT', 'http://purl.org/zot' );
define ( 'NAMESPACE_DFRN' , 'http://purl.org/macgirvin/dfrn/1.0' );
define ( 'NAMESPACE_THREAD' , 'http://purl.org/syndication/thread/1.0' );
@@ -465,7 +467,7 @@ define ( 'NAMESPACE_YMEDIA', 'http://search.yahoo.com/mrss/' );
define ( 'ACTIVITYSTREAMS_JSONLD_REV', 'https://www.w3.org/ns/activitystreams' );
-define ( 'ZOT_APSCHEMA_REV', '/apschema/v1.2' );
+define ( 'ZOT_APSCHEMA_REV', '/apschema/v1.3' );
/**
* activity stream defines
*/
@@ -510,6 +512,7 @@ define ( 'ACTIVITY_MOOD', NAMESPACE_ZOT . '/activity/mood' );
define ( 'ACTIVITY_OBJ_COMMENT', NAMESPACE_ACTIVITY_SCHEMA . 'comment' );
define ( 'ACTIVITY_OBJ_ACTIVITY',NAMESPACE_ACTIVITY_SCHEMA . 'activity' );
define ( 'ACTIVITY_OBJ_NOTE', NAMESPACE_ACTIVITY_SCHEMA . 'note' );
+define ( 'ACTIVITY_OBJ_ARTICLE', NAMESPACE_ACTIVITY_SCHEMA . 'article' );
define ( 'ACTIVITY_OBJ_PERSON', NAMESPACE_ACTIVITY_SCHEMA . 'person' );
define ( 'ACTIVITY_OBJ_PHOTO', NAMESPACE_ACTIVITY_SCHEMA . 'photo' );
define ( 'ACTIVITY_OBJ_P_PHOTO', NAMESPACE_ACTIVITY_SCHEMA . 'profile-photo' );
@@ -574,6 +577,8 @@ define ( 'ITEM_TYPE_BUG', 4 );
define ( 'ITEM_TYPE_DOC', 5 );
define ( 'ITEM_TYPE_CARD', 6 );
define ( 'ITEM_TYPE_ARTICLE', 7 );
+//OSADA ITEM_TYPE_MAIL = 8
+define ( 'ITEM_TYPE_CUSTOM', 9 );
define ( 'ITEM_IS_STICKY', 1000 );
@@ -728,11 +733,11 @@ class App {
private static $perms = null; // observer permissions
private static $widgets = array(); // widgets for this page
public static $config = array(); // config cache
- public static $override_intltext_templates = array();
- public static $override_markup_templates = array();
- public static $override_templateroot = null;
- public static $override_helproot = null;
- public static $override_helpfiles = array();
+ public static $override_intltext_templates = array();
+ public static $override_markup_templates = array();
+ public static $override_templateroot = null;
+ public static $override_helproot = null;
+ public static $override_helpfiles = array();
public static $session = null;
public static $groups;
@@ -883,7 +888,7 @@ class App {
// removing trailing / - maybe a nginx problem
if (substr(self::$query_string, 0, 1) == "/")
self::$query_string = substr(self::$query_string, 1);
- // change the first & to ?
+ // change the first & to ?
self::$query_string = preg_replace('/&/','?',self::$query_string,1);
}
@@ -1574,7 +1579,7 @@ function login($register = false, $form_id = 'main-login', $hiddens = false, $lo
// Here's the current description of how the register link works (2018-05-15)
- // Register links are enabled on the site home page and login page and navbar.
+ // Register links are enabled on the site home page and login page and navbar.
// They are not shown by default on other pages which may require login.
// If the register link is enabled and registration is closed, the request is directed
@@ -1586,10 +1591,10 @@ function login($register = false, $form_id = 'main-login', $hiddens = false, $lo
// system.register_link may or may not be the same destination as system.sellpage
- // system.sellpage is the destination linked from the /pubsites page on other sites. If
+ // system.sellpage is the destination linked from the /pubsites page on other sites. If
// system.sellpage is not set, the 'register' link in /pubsites will go to 'register' on your
- // site.
-
+ // site.
+
// If system.register_link is set to the word 'none', no registration link will be shown on
// your site.
@@ -1828,8 +1833,6 @@ function proc_run(){
$args = func_get_args();
- $newargs = array();
-
if(! count($args))
return;
@@ -2277,7 +2280,7 @@ function construct_page() {
$cspheader = "Content-Security-Policy:";
foreach ($cspsettings as $cspdirective => $csp) {
if (!in_array($cspdirective,$validcspdirectives)) {
- logger("INVALID CSP DIRECTIVE: ".$cspdirective,LOGGER_DEBUG);
+ logger("INVALID CSP DIRECTIVE: ".$cspdirective,LOGGER_DEBUG);
continue;
}
$cspsettingsarray=array_unique($cspsettings[$cspdirective]);
@@ -2396,7 +2399,7 @@ function z_get_temp_dir() {
if(! $temp_dir)
$temp_dir = sys_get_temp_dir();
- return $upload_dir;
+ return $temp_dir;
}
diff --git a/composer.lock b/composer.lock
index bd95e8c78..c4fba0975 100644
--- a/composer.lock
+++ b/composer.lock
@@ -63,16 +63,16 @@
},
{
"name": "bshaffer/oauth2-server-php",
- "version": "v1.10.0",
+ "version": "v1.11.1",
"source": {
"type": "git",
"url": "https://github.com/bshaffer/oauth2-server-php.git",
- "reference": "d158878425392fe5a0cc34f15dbaf46315ae0ed9"
+ "reference": "5a0c8000d4763b276919e2106f54eddda6bc50fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bshaffer/oauth2-server-php/zipball/d158878425392fe5a0cc34f15dbaf46315ae0ed9",
- "reference": "d158878425392fe5a0cc34f15dbaf46315ae0ed9",
+ "url": "https://api.github.com/repos/bshaffer/oauth2-server-php/zipball/5a0c8000d4763b276919e2106f54eddda6bc50fa",
+ "reference": "5a0c8000d4763b276919e2106f54eddda6bc50fa",
"shasum": ""
},
"require": {
@@ -117,7 +117,7 @@
"oauth",
"oauth2"
],
- "time": "2017-11-15T01:41:02+00:00"
+ "time": "2018-12-04T00:29:32+00:00"
},
{
"name": "commerceguys/intl",
@@ -251,16 +251,16 @@
},
{
"name": "league/html-to-markdown",
- "version": "4.8.0",
+ "version": "4.8.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/html-to-markdown.git",
- "reference": "f9a879a068c68ff47b722de63f58bec79e448f9d"
+ "reference": "250d1bf45f80d15594fb6b316df777d6d4c97ad1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/f9a879a068c68ff47b722de63f58bec79e448f9d",
- "reference": "f9a879a068c68ff47b722de63f58bec79e448f9d",
+ "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/250d1bf45f80d15594fb6b316df777d6d4c97ad1",
+ "reference": "250d1bf45f80d15594fb6b316df777d6d4c97ad1",
"shasum": ""
},
"require": {
@@ -311,7 +311,7 @@
"html",
"markdown"
],
- "time": "2018-09-18T12:18:08+00:00"
+ "time": "2018-12-24T17:21:44+00:00"
},
{
"name": "lukasreschke/id3parser",
@@ -1925,32 +1925,33 @@
},
{
"name": "guzzlehttp/psr7",
- "version": "1.4.2",
+ "version": "1.5.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c"
+ "reference": "9f83dded91781a01c63574e387eaa769be769115"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
- "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/9f83dded91781a01c63574e387eaa769be769115",
+ "reference": "9f83dded91781a01c63574e387eaa769be769115",
"shasum": ""
},
"require": {
"php": ">=5.4.0",
- "psr/http-message": "~1.0"
+ "psr/http-message": "~1.0",
+ "ralouphie/getallheaders": "^2.0.5"
},
"provide": {
"psr/http-message-implementation": "1.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.0"
+ "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.4-dev"
+ "dev-master": "1.5-dev"
}
},
"autoload": {
@@ -1980,13 +1981,14 @@
"keywords": [
"http",
"message",
+ "psr-7",
"request",
"response",
"stream",
"uri",
"url"
],
- "time": "2017-03-20T17:10:46+00:00"
+ "time": "2018-12-04T20:46:45+00:00"
},
{
"name": "myclabs/deep-copy",
@@ -2571,6 +2573,7 @@
"testing",
"xunit"
],
+ "abandoned": true,
"time": "2018-02-07T06:47:59+00:00"
},
{
@@ -2827,16 +2830,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "7.4.4",
+ "version": "7.5.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "b1be2c8530c4c29c3519a052c9fb6cee55053bbd"
+ "reference": "c23d78776ad415d5506e0679723cb461d71f488f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b1be2c8530c4c29c3519a052c9fb6cee55053bbd",
- "reference": "b1be2c8530c4c29c3519a052c9fb6cee55053bbd",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c23d78776ad415d5506e0679723cb461d71f488f",
+ "reference": "c23d78776ad415d5506e0679723cb461d71f488f",
"shasum": ""
},
"require": {
@@ -2857,7 +2860,7 @@
"phpunit/php-timer": "^2.0",
"sebastian/comparator": "^3.0",
"sebastian/diff": "^3.0",
- "sebastian/environment": "^3.1 || ^4.0",
+ "sebastian/environment": "^4.0",
"sebastian/exporter": "^3.1",
"sebastian/global-state": "^2.0",
"sebastian/object-enumerator": "^3.0.3",
@@ -2881,7 +2884,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "7.4-dev"
+ "dev-master": "7.5-dev"
}
},
"autoload": {
@@ -2907,7 +2910,7 @@
"testing",
"xunit"
],
- "time": "2018-11-14T16:52:02+00:00"
+ "time": "2018-12-12T07:20:32+00:00"
},
{
"name": "psr/container",
@@ -3009,6 +3012,46 @@
"time": "2016-08-06T14:39:51+00:00"
},
{
+ "name": "ralouphie/getallheaders",
+ "version": "2.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
+ "reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~3.7.0",
+ "satooshi/php-coveralls": ">=1.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/getallheaders.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
+ }
+ ],
+ "description": "A polyfill for getallheaders.",
+ "time": "2016-02-11T07:05:27+00:00"
+ },
+ {
"name": "sebastian/code-unit-reverse-lookup",
"version": "1.0.1",
"source": {
@@ -3175,28 +3218,28 @@
},
{
"name": "sebastian/environment",
- "version": "3.1.0",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5"
+ "reference": "febd209a219cea7b56ad799b30ebbea34b71eb8f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
- "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/febd209a219cea7b56ad799b30ebbea34b71eb8f",
+ "reference": "febd209a219cea7b56ad799b30ebbea34b71eb8f",
"shasum": ""
},
"require": {
- "php": "^7.0"
+ "php": "^7.1"
},
"require-dev": {
- "phpunit/phpunit": "^6.1"
+ "phpunit/phpunit": "^7.4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1.x-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
@@ -3221,7 +3264,7 @@
"environment",
"hhvm"
],
- "time": "2017-07-01T08:51:00+00:00"
+ "time": "2018-11-25T09:31:21+00:00"
},
{
"name": "sebastian/exporter",
@@ -3573,16 +3616,16 @@
},
{
"name": "symfony/browser-kit",
- "version": "v4.1.7",
+ "version": "v4.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
- "reference": "c55fe9257003b2d95c0211b3f6941e8dfd26dffd"
+ "reference": "db7e59fec9c82d45e745eb500e6ede2d96f4a6e9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/browser-kit/zipball/c55fe9257003b2d95c0211b3f6941e8dfd26dffd",
- "reference": "c55fe9257003b2d95c0211b3f6941e8dfd26dffd",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/db7e59fec9c82d45e745eb500e6ede2d96f4a6e9",
+ "reference": "db7e59fec9c82d45e745eb500e6ede2d96f4a6e9",
"shasum": ""
},
"require": {
@@ -3599,7 +3642,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.1-dev"
+ "dev-master": "4.2-dev"
}
},
"autoload": {
@@ -3626,20 +3669,20 @@
],
"description": "Symfony BrowserKit Component",
"homepage": "https://symfony.com",
- "time": "2018-07-26T09:10:45+00:00"
+ "time": "2018-11-26T11:49:31+00:00"
},
{
"name": "symfony/class-loader",
- "version": "v3.4.18",
+ "version": "v3.4.20",
"source": {
"type": "git",
"url": "https://github.com/symfony/class-loader.git",
- "reference": "5605edec7b8f034ead2497ff4aab17bb70d558c1"
+ "reference": "420458095cf60025eb0841276717e0da7f75e50e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/class-loader/zipball/5605edec7b8f034ead2497ff4aab17bb70d558c1",
- "reference": "5605edec7b8f034ead2497ff4aab17bb70d558c1",
+ "url": "https://api.github.com/repos/symfony/class-loader/zipball/420458095cf60025eb0841276717e0da7f75e50e",
+ "reference": "420458095cf60025eb0841276717e0da7f75e50e",
"shasum": ""
},
"require": {
@@ -3682,20 +3725,20 @@
],
"description": "Symfony ClassLoader Component",
"homepage": "https://symfony.com",
- "time": "2018-10-31T09:06:03+00:00"
+ "time": "2018-11-11T19:48:54+00:00"
},
{
"name": "symfony/config",
- "version": "v4.1.7",
+ "version": "v4.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "991fec8bbe77367fc8b48ecbaa8a4bd6e905a238"
+ "reference": "005d9a083d03f588677d15391a716b1ac9b887c0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/991fec8bbe77367fc8b48ecbaa8a4bd6e905a238",
- "reference": "991fec8bbe77367fc8b48ecbaa8a4bd6e905a238",
+ "url": "https://api.github.com/repos/symfony/config/zipball/005d9a083d03f588677d15391a716b1ac9b887c0",
+ "reference": "005d9a083d03f588677d15391a716b1ac9b887c0",
"shasum": ""
},
"require": {
@@ -3718,7 +3761,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.1-dev"
+ "dev-master": "4.2-dev"
}
},
"autoload": {
@@ -3745,24 +3788,25 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
- "time": "2018-10-31T09:09:42+00:00"
+ "time": "2018-11-30T22:21:14+00:00"
},
{
"name": "symfony/console",
- "version": "v4.1.7",
+ "version": "v4.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "432122af37d8cd52fba1b294b11976e0d20df595"
+ "reference": "4dff24e5d01e713818805c1862d2e3f901ee7dd0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/432122af37d8cd52fba1b294b11976e0d20df595",
- "reference": "432122af37d8cd52fba1b294b11976e0d20df595",
+ "url": "https://api.github.com/repos/symfony/console/zipball/4dff24e5d01e713818805c1862d2e3f901ee7dd0",
+ "reference": "4dff24e5d01e713818805c1862d2e3f901ee7dd0",
"shasum": ""
},
"require": {
"php": "^7.1.3",
+ "symfony/contracts": "^1.0",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
@@ -3786,7 +3830,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.1-dev"
+ "dev-master": "4.2-dev"
}
},
"autoload": {
@@ -3813,20 +3857,88 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
- "time": "2018-10-31T09:30:44+00:00"
+ "time": "2018-11-27T07:40:44+00:00"
+ },
+ {
+ "name": "symfony/contracts",
+ "version": "v1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/contracts.git",
+ "reference": "1aa7ab2429c3d594dd70689604b5cf7421254cdf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/contracts/zipball/1aa7ab2429c3d594dd70689604b5cf7421254cdf",
+ "reference": "1aa7ab2429c3d594dd70689604b5cf7421254cdf",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3"
+ },
+ "require-dev": {
+ "psr/cache": "^1.0",
+ "psr/container": "^1.0"
+ },
+ "suggest": {
+ "psr/cache": "When using the Cache contracts",
+ "psr/container": "When using the Service contracts",
+ "symfony/cache-contracts-implementation": "",
+ "symfony/service-contracts-implementation": "",
+ "symfony/translation-contracts-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\": ""
+ },
+ "exclude-from-classmap": [
+ "**/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A set of abstractions extracted out of the Symfony components",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "time": "2018-12-05T08:06:11+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v3.4.18",
+ "version": "v3.4.20",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "3503415d4aafabc31cd08c3a4ebac7f43fde8feb"
+ "reference": "345b9a48595d1ab9630db791dbc3e721bf0233e8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/3503415d4aafabc31cd08c3a4ebac7f43fde8feb",
- "reference": "3503415d4aafabc31cd08c3a4ebac7f43fde8feb",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/345b9a48595d1ab9630db791dbc3e721bf0233e8",
+ "reference": "345b9a48595d1ab9630db791dbc3e721bf0233e8",
"shasum": ""
},
"require": {
@@ -3866,37 +3978,39 @@
],
"description": "Symfony CssSelector Component",
"homepage": "https://symfony.com",
- "time": "2018-10-02T16:33:53+00:00"
+ "time": "2018-11-11T19:48:54+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v4.1.7",
+ "version": "v4.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "e72ee2c23d952e4c368ee98610fa22b79b89b483"
+ "reference": "e4adc57a48d3fa7f394edfffa9e954086d7740e5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e72ee2c23d952e4c368ee98610fa22b79b89b483",
- "reference": "e72ee2c23d952e4c368ee98610fa22b79b89b483",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e4adc57a48d3fa7f394edfffa9e954086d7740e5",
+ "reference": "e4adc57a48d3fa7f394edfffa9e954086d7740e5",
"shasum": ""
},
"require": {
"php": "^7.1.3",
- "psr/container": "^1.0"
+ "psr/container": "^1.0",
+ "symfony/contracts": "^1.0"
},
"conflict": {
- "symfony/config": "<4.1.1",
+ "symfony/config": "<4.2",
"symfony/finder": "<3.4",
"symfony/proxy-manager-bridge": "<3.4",
"symfony/yaml": "<3.4"
},
"provide": {
- "psr/container-implementation": "1.0"
+ "psr/container-implementation": "1.0",
+ "symfony/service-contracts-implementation": "1.0"
},
"require-dev": {
- "symfony/config": "~4.1",
+ "symfony/config": "~4.2",
"symfony/expression-language": "~3.4|~4.0",
"symfony/yaml": "~3.4|~4.0"
},
@@ -3910,7 +4024,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.1-dev"
+ "dev-master": "4.2-dev"
}
},
"autoload": {
@@ -3937,20 +4051,20 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
- "time": "2018-10-31T10:54:16+00:00"
+ "time": "2018-12-02T15:59:36+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v4.1.7",
+ "version": "v4.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "80e60271bb288de2a2259662cff125cff4f93f95"
+ "reference": "7438a32108fdd555295f443605d6de2cce473159"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/80e60271bb288de2a2259662cff125cff4f93f95",
- "reference": "80e60271bb288de2a2259662cff125cff4f93f95",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/7438a32108fdd555295f443605d6de2cce473159",
+ "reference": "7438a32108fdd555295f443605d6de2cce473159",
"shasum": ""
},
"require": {
@@ -3967,7 +4081,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.1-dev"
+ "dev-master": "4.2-dev"
}
},
"autoload": {
@@ -3994,24 +4108,25 @@
],
"description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com",
- "time": "2018-10-02T12:40:59+00:00"
+ "time": "2018-11-26T10:55:26+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v4.1.7",
+ "version": "v4.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "552541dad078c85d9414b09c041ede488b456cd5"
+ "reference": "921f49c3158a276d27c0d770a5a347a3b718b328"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/552541dad078c85d9414b09c041ede488b456cd5",
- "reference": "552541dad078c85d9414b09c041ede488b456cd5",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/921f49c3158a276d27c0d770a5a347a3b718b328",
+ "reference": "921f49c3158a276d27c0d770a5a347a3b718b328",
"shasum": ""
},
"require": {
- "php": "^7.1.3"
+ "php": "^7.1.3",
+ "symfony/contracts": "^1.0"
},
"conflict": {
"symfony/dependency-injection": "<3.4"
@@ -4030,7 +4145,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.1-dev"
+ "dev-master": "4.2-dev"
}
},
"autoload": {
@@ -4057,20 +4172,20 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
- "time": "2018-10-10T13:52:42+00:00"
+ "time": "2018-12-01T08:52:38+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v4.1.7",
+ "version": "v4.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "fd7bd6535beb1f0a0a9e3ee960666d0598546981"
+ "reference": "2f4c8b999b3b7cadb2a69390b01af70886753710"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/fd7bd6535beb1f0a0a9e3ee960666d0598546981",
- "reference": "fd7bd6535beb1f0a0a9e3ee960666d0598546981",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/2f4c8b999b3b7cadb2a69390b01af70886753710",
+ "reference": "2f4c8b999b3b7cadb2a69390b01af70886753710",
"shasum": ""
},
"require": {
@@ -4080,7 +4195,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.1-dev"
+ "dev-master": "4.2-dev"
}
},
"autoload": {
@@ -4107,7 +4222,7 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
- "time": "2018-10-30T13:18:25+00:00"
+ "time": "2018-11-11T19:52:12+00:00"
},
{
"name": "symfony/polyfill-mbstring",
@@ -4170,20 +4285,21 @@
},
{
"name": "symfony/translation",
- "version": "v4.1.7",
+ "version": "v4.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "aa04dc1c75b7d3da7bd7003104cd0cfc5dff635c"
+ "reference": "c0e2191e9bed845946ab3d99767513b56ca7dcd6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/aa04dc1c75b7d3da7bd7003104cd0cfc5dff635c",
- "reference": "aa04dc1c75b7d3da7bd7003104cd0cfc5dff635c",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/c0e2191e9bed845946ab3d99767513b56ca7dcd6",
+ "reference": "c0e2191e9bed845946ab3d99767513b56ca7dcd6",
"shasum": ""
},
"require": {
"php": "^7.1.3",
+ "symfony/contracts": "^1.0.2",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
@@ -4191,6 +4307,9 @@
"symfony/dependency-injection": "<3.4",
"symfony/yaml": "<3.4"
},
+ "provide": {
+ "symfony/translation-contracts-implementation": "1.0"
+ },
"require-dev": {
"psr/log": "~1.0",
"symfony/config": "~3.4|~4.0",
@@ -4208,7 +4327,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.1-dev"
+ "dev-master": "4.2-dev"
}
},
"autoload": {
@@ -4235,20 +4354,20 @@
],
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
- "time": "2018-10-28T18:38:52+00:00"
+ "time": "2018-12-06T10:45:32+00:00"
},
{
"name": "symfony/yaml",
- "version": "v4.1.7",
+ "version": "v4.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "367e689b2fdc19965be435337b50bc8adf2746c9"
+ "reference": "c41175c801e3edfda90f32e292619d10c27103d7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/367e689b2fdc19965be435337b50bc8adf2746c9",
- "reference": "367e689b2fdc19965be435337b50bc8adf2746c9",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/c41175c801e3edfda90f32e292619d10c27103d7",
+ "reference": "c41175c801e3edfda90f32e292619d10c27103d7",
"shasum": ""
},
"require": {
@@ -4267,7 +4386,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.1-dev"
+ "dev-master": "4.2-dev"
}
},
"autoload": {
@@ -4294,7 +4413,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
- "time": "2018-10-02T16:36:10+00:00"
+ "time": "2018-11-11T19:52:12+00:00"
},
{
"name": "theseer/tokenizer",
@@ -4338,20 +4457,21 @@
},
{
"name": "webmozart/assert",
- "version": "1.3.0",
+ "version": "1.4.0",
"source": {
"type": "git",
"url": "https://github.com/webmozart/assert.git",
- "reference": "0df1908962e7a3071564e857d86874dad1ef204a"
+ "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a",
- "reference": "0df1908962e7a3071564e857d86874dad1ef204a",
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9",
+ "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9",
"shasum": ""
},
"require": {
- "php": "^5.3.3 || ^7.0"
+ "php": "^5.3.3 || ^7.0",
+ "symfony/polyfill-ctype": "^1.8"
},
"require-dev": {
"phpunit/phpunit": "^4.6",
@@ -4384,7 +4504,7 @@
"check",
"validate"
],
- "time": "2018-01-29T19:49:41+00:00"
+ "time": "2018-12-25T11:19:39+00:00"
}
],
"aliases": [],
diff --git a/doc/admin/administrator_guide.md b/doc/admin/administrator_guide.md
index 5f1d40428..2b1c84180 100644
--- a/doc/admin/administrator_guide.md
+++ b/doc/admin/administrator_guide.md
@@ -95,7 +95,7 @@ PHP might differ from the _webserver_ version
php.ini file * and with no hosting provider restrictions on the use of
exec() and proc_open().
-* curl, gd (with at least jpeg and png support), mysqli, mbstring, mcrypt,
+* curl, gd (with at least jpeg and png support), mysqli, mbstring, mcrypt, zip,
and openssl extensions. The imagick extension is not required but desirable.
* xml extension is required if you want webdav to work.
diff --git a/doc/bugs.bb b/doc/bugs.bb
index f773da025..3bf2a0e29 100644
--- a/doc/bugs.bb
+++ b/doc/bugs.bb
@@ -21,7 +21,7 @@ If you get a blank white screen when doing something, this is almost always a co
[h3]I'm stumped. I can't figure out what is wrong.[/h3]
-At this point it might be worthwhile discussing the issue on one of the online forums. There may be several of these and some may be more suited to your spoken language. At this time, the 'Hubzilla Support' channel (support@gravizot.de) is the recommended forum for discussing bugs.
+At this point it might be worthwhile discussing the issue on one of the online forums. There may be several of these and some may be more suited to your spoken language. At this time, the 'Hubzilla Support' channel (support@zotadel.net) is the recommended forum for discussing bugs.
If community members with software engineering training/expertise can't help you right away, understand that they are volunteers and may have a lot of other work and demands on their time. At this point you need to file a bug report. You will need an account on framagit.org to do this. So register, and then visit https://framagit.org/hubzilla/core/issues . Create an issue here and provide all the same information that you provided online. Don't leave out anything.
@@ -29,4 +29,4 @@ Then you wait. If it's a high profile issue, it may get fixed quickly. But nobod
Other people working to fix the problem may need to find out more, so do your homework and document what is happening and everything you've tried. Don't say "I did xyz and it didn't work." That doesn't tell us anything. Tell us precisely what steps you took and what you expected the result to be, and precisely what happened as a result. What page/URL were you looking at or what form were you filling in? If there were any error messages, don't say "there was an error message". Tell us exactly what the message said. Also tell us what hub you are using, what software version you're running and any other details that may be unique about your site configuration. It is understood that you might wish to keep some information and your connections private, however if you aren't willing to share the information other people need to reproduce/fix the problem, it may not get fixed.
- \ No newline at end of file
+
diff --git a/doc/hook/collect_public_recipients.bb b/doc/hook/collect_public_recipients.bb
new file mode 100644
index 000000000..de3f4049e
--- /dev/null
+++ b/doc/hook/collect_public_recipients.bb
@@ -0,0 +1,42 @@
+[h2]collect_public_recipients[/h2]
+
+Replace the default list of public recipients (i.e., all contacts).
+
+Allow plugins to create a list of recipients for public messages instead of the default
+of all channel connections.
+
+Called with the following array:
+ [
+ 'recipients' => [],
+ 'item' => $item,
+ 'private_envelope' => $private_envelope,
+ 'include_groups' => $include_groups
+ ];
+
+[code]
+ if(array_key_exists('public_policy',$item) && $item['public_policy'] !== 'self') {
+
+ $hookinfo = [
+ 'recipients' => [],
+ 'item' => $item,
+ 'private_envelope' => $private_envelope,
+ 'include_groups' => $include_groups
+ ];
+
+ call_hooks('collect_public_recipients',$hookinfo);
+
+ if ($hookinfo['recipients']) {
+ $r = $hookinfo['recipients'];
+ } else {
+ $r = q("select abook_xchan, xchan_network from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and abook_self = 0 and abook_pending = 0 and abook_archived = 0 ",
+ intval($item['uid'])
+ );
+ }
+
+ if($r) {
+
+ . . .
+
+[/code]
+
+see: include/item.php
diff --git a/doc/hook/daemon_master_release.bb b/doc/hook/daemon_master_release.bb
new file mode 100644
index 000000000..a17216d48
--- /dev/null
+++ b/doc/hook/daemon_master_release.bb
@@ -0,0 +1,5 @@
+[h2]daemon_master_release[/h2]
+
+Permit filtering or alternate methods of processing of background processes when [code] \Zotlabs\Daemon\Master::Release() [/code] is called.
+
+Default behavior is for a new PHP process to fire immediately upon a call to Master::Summon(). This hook permits pre-emption and the ability to provide queuing or other alternatives to this procedure.
diff --git a/doc/hook/item_custom.bb b/doc/hook/item_custom.bb
new file mode 100644
index 000000000..d20c7d76c
--- /dev/null
+++ b/doc/hook/item_custom.bb
@@ -0,0 +1,24 @@
+[h2]item_custom[/h2]
+
+Allow addons to create and process custom item types.
+
+Addon authors will need to use iconfig meta data (with sharing on) or some other method
+to specify and determine whether the custom item is destined for their addon.
+
+It is fed an array of ['item' => ${item_array}, 'allow_exec' => {true/false}]
+
+By default $arr['item']['cancel'] is set to TRUE which will abort storage of the
+custom item in the item table unless the addon unsets it or sets it to false.
+
+[code]
+ if ($arr['item_type']==ITEM_TYPE_CUSTOM) {
+ /* Custom items are not stored by default
+ because they require an addon to process. */
+ $d['item']['cancel']=true;
+
+ call_hooks('item_custom',$d);
+ }
+
+[/code]
+
+see: include/items.php
diff --git a/doc/hook/item_stored.bb b/doc/hook/item_stored.bb
new file mode 100644
index 000000000..8d706cb4e
--- /dev/null
+++ b/doc/hook/item_stored.bb
@@ -0,0 +1,18 @@
+[h2]item_stored[/h2]
+
+Allow addons to continue processing after an item has been stored in the event
+that they need access to the item_id or other data that gets assigned during
+the storage process.
+
+It is fed an array of type item (including terms and iconfig data).
+
+[code]
+ /**
+ * @hooks item_stored
+ * Called after new item is stored in the database.
+ * (By this time we have an item_id and other frequently needed info.)
+ */
+ call_hooks('item_stored',$arr);
+[/code]
+
+see: include/items.php
diff --git a/doc/hook/item_stored_update.bb b/doc/hook/item_stored_update.bb
new file mode 100644
index 000000000..4532a347c
--- /dev/null
+++ b/doc/hook/item_stored_update.bb
@@ -0,0 +1,15 @@
+[h2]item_stored_update[/h2]
+
+Allow addons to continue processing after an item update has been stored
+
+It is fed an array of type item (including terms and iconfig data).
+
+[code]
+ /**
+ * @hooks item_stored_update
+ * Called after updated item is stored in the database.
+ */
+ call_hooks('item_stored_update',$arr);
+[/code]
+
+see: include/items.php
diff --git a/doc/hook/jot_header_tpl_filter.bb b/doc/hook/jot_header_tpl_filter.bb
new file mode 100644
index 000000000..b17d81d03
--- /dev/null
+++ b/doc/hook/jot_header_tpl_filter.bb
@@ -0,0 +1,5 @@
+[h2]jot_header_tpl_filter[/h2]
+
+Allows addon developers to modify the values of replacements fed into jot-header.tpl
+
+cxref: include/conversation.php
diff --git a/doc/hook/jot_tpl_filter.bb b/doc/hook/jot_tpl_filter.bb
new file mode 100644
index 000000000..426da3c56
--- /dev/null
+++ b/doc/hook/jot_tpl_filter.bb
@@ -0,0 +1,5 @@
+[h2]jot_tpl_filter[/h2]
+
+Allows addon developers to alter the macro replacements prior to being fed into jot.tpl
+
+cxref: include/conversation.php
diff --git a/doc/hook/privacygroup_extras.bb b/doc/hook/privacygroup_extras.bb
new file mode 100644
index 000000000..bd67f2470
--- /dev/null
+++ b/doc/hook/privacygroup_extras.bb
@@ -0,0 +1,12 @@
+[h2]privacygroup_extras[/h2]
+
+Add items to the Privacy Group edit form
+
+[code]
+ $hookinfo = [ 'pgrp_extras' => '', 'group'=>$argv(1) ];
+ call_hooks ('privacygroup_extras',$hookinfo);
+ $pgrp_extras = $hookinfo['pgrp_extras'];
+[/code]
+
+see: Zotlabs/Module/Group.php
+see: view/tpl/privacy_groups.tpl
diff --git a/doc/hook/privacygroup_extras_drop.bb b/doc/hook/privacygroup_extras_drop.bb
new file mode 100644
index 000000000..fd27ab255
--- /dev/null
+++ b/doc/hook/privacygroup_extras_drop.bb
@@ -0,0 +1,11 @@
+[h2]privacygroup_extras_drop[/h2]
+
+Called after privacy group is dropped
+
+[code]
+ $hookinfo = [ 'pgrp_extras' => '', 'group'=>$argv(2) ];
+ call_hooks ('privacygroup_extras_drop',$hookinfo);
+[/code]
+
+see: Zotlabs/Module/Group.php
+see: view/tpl/privacy_groups.tpl
diff --git a/doc/hook/privacygroup_extras_post.bb b/doc/hook/privacygroup_extras_post.bb
new file mode 100644
index 000000000..704db1997
--- /dev/null
+++ b/doc/hook/privacygroup_extras_post.bb
@@ -0,0 +1,11 @@
+[h2]privacygroup_extras_post[/h2]
+
+Called as privacy group edit form is edited.
+
+[code]
+ $hookinfo = [ 'pgrp_extras' => '', 'group'=>$group['id'] ];
+ call_hooks ('privacygroup_extras_post',$hookinfo);
+[/code]
+
+see: Zotlabs/Module/Group.php
+see: view/tpl/privacy_groups.tpl
diff --git a/doc/hooklist.bb b/doc/hooklist.bb
index 5d12a139e..5a804c819 100644
--- a/doc/hooklist.bb
+++ b/doc/hooklist.bb
@@ -136,6 +136,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/check_siteallowed]check_siteallowed[/zrl]
Used to over-ride or bypass the site black/white block lists
+[zrl=[baseurl]/help/hook/collect_public_recipients]collect_public_recipients[/zrl]
+ Used to establish a list of recipients to send a public message to.
+
[zrl=[baseurl]/help/hook/comment_buttons]comment_buttons[/zrl]
Called when rendering the edit buttons for comments
@@ -190,6 +193,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/daemon_addon]daemon_addon[/zrl]
Called when invoking the extensible background daemon
+[zrl=[baseurl]/help/hook/daemon_master_release]daemon_master_release[/zrl]
+ Called at the start of processing \Zotlabs\Daemon\Master::Release()
+
[zrl=[baseurl]/help/hook/directory_item]directory_item[/zrl]
Called when generating a directory listing for display
@@ -343,9 +349,18 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/item_store]item_store[/zrl]
Called when item_store() stores a record of type item
+[zrl=[baseurl]/help/hook/item_stored]item_stored[/zrl]
+ Called after item_store() has stored a record of type item in the database.
+
+[zrl=[baseurl]/help/hook/item_custom]item_custom[/zrl]
+ Called before item_store() stores a record of type item (allowing addons to process ITEM_TYPE_CUSTOM items).
+
[zrl=[baseurl]/help/hook/item_store_update]item_store_update[/zrl]
Called when item_store_update() is called to update a stored item.
+[zrl=[baseurl]/help/hook/item_stored_update]item_stored_update[/zrl]
+ Called after item_store_update() has updated a stored item.
+
[zrl=[baseurl]/help/hook/item_translate]item_translate[/zrl]
Called from item_store and item_store_update after the post language has been autodetected
@@ -355,6 +370,12 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/jot_tool]jot_tool[/zrl]
Deprecated and possibly obsolete. Allows one to add action buttons to the post editor.
+[zrl=[baseurl]/help/hook/jot_tpl_filter]jot_tpl_filter[/zrl]
+ Called to filter template vars before replacement in jot.tpl.
+
+[zrl=[baseurl]/help/hook/jot_header_tpl_filter]jot_header_tpl_filter[/zrl]
+ Called to filter template vars before replacement in jot_header.tpl.
+
[zrl=[baseurl]/help/hook/legal_webbie]legal_webbie[/zrl]
Called to validate a channel address
@@ -544,6 +565,15 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/prepare_body_init]prepare_body_init[/zrl]
Called before generating the HTML for a displayed conversation item
+[zrl=[baseurl]/help/hook/privacygroup_extras]privacygroup_extras[/zrl]
+ Called before generating the HTML for the Privacy Group edit options
+
+[zrl=[baseurl]/help/hook/privacygroup_extras_delete]privacygroup_extras_delete[/zrl]
+ Called after privacy group is dropped.
+
+[zrl=[baseurl]/help/hook/privacygroup_extras_post]privacygroup_extras_post[/zrl]
+ Called when privacy group edit form is submitted.
+
[zrl=[baseurl]/help/hook/proc_run]proc_run[/zrl]
Called when invoking PHP sub processes
diff --git a/include/activities.php b/include/activities.php
index 9b83f7a5c..68c995338 100644
--- a/include/activities.php
+++ b/include/activities.php
@@ -16,7 +16,8 @@ function profile_activity($changed, $value) {
return;
$arr = array();
- $arr['mid'] = $arr['parent_mid'] = item_message_id();
+ $arr['uuid'] = item_message_id();
+ $arr['mid'] = $arr['parent_mid'] = z_root() . '/item/' . $arr['uuid'];
$arr['uid'] = local_channel();
$arr['aid'] = $self['channel_account_id'];
$arr['owner_xchan'] = $arr['author_xchan'] = $self['xchan_hash'];
diff --git a/include/api_zot.php b/include/api_zot.php
index 6a5b9a268..b332aea71 100644
--- a/include/api_zot.php
+++ b/include/api_zot.php
@@ -6,6 +6,8 @@
api_register_func('api/export/basic','api_export_basic', true);
api_register_func('api/red/channel/export/basic','api_export_basic', true);
api_register_func('api/z/1.0/channel/export/basic','api_export_basic', true);
+ api_register_func('api/red/item/export/page','api_item_export_page', true);
+ api_register_func('api/z/1.0/item/export/page','api_item_export_page', true);
api_register_func('api/red/channel/list','api_channel_list', true);
api_register_func('api/z/1.0/channel/list','api_channel_list', true);
api_register_func('api/red/channel/stream','api_channel_stream', true);
@@ -80,6 +82,26 @@
json_return_and_die(identity_basic_export(api_user(),$sections));
}
+ function api_item_export_page($type) {
+ if(api_user() === false) {
+ logger('api_item_export_page: no user');
+ return false;
+ }
+ $page = intval($_REQUEST['page']);
+ $records = intval($_REQUEST['records']);
+ if(! $records) {
+ $records = 50;
+ }
+ if(! $_REQUEST['since'])
+ $start = NULL_DATE;
+ else {
+ $start = datetime_convert(date_default_timezone_get(),'UTC', $_REQUEST['since']);
+ }
+ $finish = datetime_convert(date_default_timezone_get(),'UTC', (($_REQUEST['until']) ? $_REQUEST['until'] : 'now'));
+
+ json_return_and_die(channel_export_items_page(api_user(),$start,$finish,$page,$records));
+ }
+
function api_network_stream($type) {
if(api_user() === false) {
diff --git a/include/attach.php b/include/attach.php
index 4db5bc435..17a47d9ac 100644
--- a/include/attach.php
+++ b/include/attach.php
@@ -137,7 +137,7 @@ function z_mime_content_type($filename) {
* @param string $hash (optional)
* @param string $filename (optional)
* @param string $filetype (optional)
- * @return associative array with:
+ * @return array Associative array with:
* * \e boolean \b success
* * \e int|boolean \b results amount of found results, or false
* * \e string \b message with error messages if any
@@ -176,15 +176,17 @@ function attach_count_files($channel_id, $observer, $hash = '', $filename = '',
/**
* @brief Returns a list of files/attachments.
*
- * @param $channel_id
- * @param $observer
- * @param $hash (optional)
- * @param $filename (optional)
- * @param $filetype (optional)
- * @param $orderby
- * @param $start
- * @param $entries
- * @return associative array with:
+ * @param int $channel_id
+ * @param string $observer
+ * @param string $hash (optional)
+ * @param string $filename (optional)
+ * @param string $filetype (optional)
+ * @param string $orderby (optional)
+ * @param int $start (optional)
+ * @param int $entries (optional)
+ * @param string $since (optional)
+ * @param string $until (optional)
+ * @return array an associative array with:
* * \e boolean \b success
* * \e array|boolean \b results array with results, or false
* * \e string \b message with error messages if any
@@ -739,7 +741,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
}
if(! $hash)
- $hash = random_string();
+ $hash = new_uuid();
// Check storage limits
if($options !== 'update') {
@@ -1122,7 +1124,7 @@ function attach_mkdir($channel, $observer_hash, $arr = null) {
return $ret;
}
- $arr['hash'] = (($arr['hash']) ? $arr['hash'] : random_string());
+ $arr['hash'] = (($arr['hash']) ? $arr['hash'] : new_uuid());
// Check for duplicate name.
// Check both the filename and the hash as we will be making use of both.
@@ -1428,8 +1430,17 @@ function attach_delete($channel_id, $resource, $is_photo = 0) {
if(! $r) {
attach_drop_photo($channel_id,$resource);
- $arr = ['channel_id' => $channel_id, 'resource' => $resource, 'is_photo'=>$is_photo];
- call_hooks("attach_delete",$arr);
+ $arr = ['channel_id' => $channel_id, 'resource' => $resource, 'is_photo' => $is_photo];
+
+ /**
+ * @hooks attach_delete
+ * Called when deleting an attachment from channel.
+ * * \e int \b channel_id - the channel_id
+ * * \e string \b resource
+ * * \e int \b is_photo
+ */
+ call_hooks('attach_delete', $arr);
+
return;
}
@@ -1488,8 +1499,15 @@ function attach_delete($channel_id, $resource, $is_photo = 0) {
intval($channel_id)
);
- $arr = ['channel_id' => $channel_id, 'resource' => $resource, 'is_photo'=>$is_photo];
- call_hooks("attach_delete",$arr);
+ $arr = ['channel_id' => $channel_id, 'resource' => $resource, 'is_photo' => $is_photo];
+ /**
+ * @hooks attach_delete
+ * Called when deleting an attachment from channel.
+ * * \e int \b channel_id - the channel_id
+ * * \e string \b resource
+ * * \e int \b is_photo
+ */
+ call_hooks('attach_delete', $arr);
file_activity($channel_id, $object, $object['allow_cid'], $object['allow_gid'], $object['deny_cid'], $object['deny_gid'], 'update', true);
@@ -1759,16 +1777,18 @@ function file_activity($channel_id, $object, $allow_cid, $allow_gid, $deny_cid,
$arr_allow_cid = check_list_permissions($channel_id, $arr_allow_cid, 'view_storage');
}
- $mid = item_message_id();
+ $uuid = item_message_id();
+ $mid = z_root() . '/item/' . $uuid;
$objtype = ACTIVITY_OBJ_FILE;
$arr = array();
$arr['aid'] = get_account_id();
$arr['uid'] = $channel_id;
- $arr['item_wall'] = 1;
- $arr['item_origin'] = 1;
- $arr['item_unseen'] = 1;
+ $arr['uuid'] = $uuid;
+ $arr['item_wall'] = 1;
+ $arr['item_origin'] = 1;
+ $arr['item_unseen'] = 1;
$arr['author_xchan'] = $poster['xchan_hash'];
$arr['owner_xchan'] = $poster['xchan_hash'];
$arr['title'] = '';
@@ -1813,8 +1833,10 @@ function file_activity($channel_id, $object, $allow_cid, $allow_gid, $deny_cid,
$private = (($u_arr_allow_cid[0] || $u_arr_allow_gid[0] || $u_arr_deny_cid[0] || $u_arr_deny_gid[0]) ? 1 : 0);
- $u_mid = item_message_id();
+ $uuid = item_message_id();
+ $u_mid = z_root() . '/item/' . $uuid;
+ $arr['uuid'] = $uuid;
$arr['mid'] = $u_mid;
$arr['parent_mid'] = $u_mid;
$arr['allow_cid'] = perms2str($u_arr_allow_cid);
@@ -1864,7 +1886,7 @@ function file_activity($channel_id, $object, $allow_cid, $allow_gid, $deny_cid,
* @param int $channel_id
* @param string $hash
* @param string $url
- * @return array An associative array for the specified file.
+ * @return array Associative array for the specified file.
*/
function get_file_activity_object($channel_id, $hash, $url) {
@@ -2106,7 +2128,7 @@ function attach_export_data($channel, $resource_id, $deleted = false) {
if($attach_ptr['is_photo']) {
- // This query could potentially result in a few megabytes of data use.
+ // This query could potentially result in a few megabytes of data use.
$r = q("select * from photo where resource_id = '%s' and uid = %d order by imgscale asc",
dbesc($resource_id),
@@ -2348,7 +2370,7 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) {
$filename = $r[0]['filename'];
- // don't do duplicate check unless our parent folder has changed.
+ // don't do duplicate check unless our parent folder has changed.
if($r[0]['folder'] !== $new_folder_hash) {
@@ -2464,7 +2486,7 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) {
/**
- * Used to generate a select input box of all your folders
+ * Used to generate a select input box of all your folders
*/
@@ -2547,10 +2569,10 @@ function attach_syspaths($channel_id,$attach_hash) {
/**
* in earlier releases we did not fill in os_path and display_path in the attach DB structure.
- * (It was not needed or used). Going forward we intend to make use of these fields.
+ * (It was not needed or used). Going forward we intend to make use of these fields.
* A cron task checks for empty values (as older attachments may have arrived at our site
- * in a clone operation) and executes attach_syspaths() to generate these field values and correct
- * the attach table entry. The operation is limited to 100 DB entries at a time so as not to
+ * in a clone operation) and executes attach_syspaths() to generate these field values and correct
+ * the attach table entry. The operation is limited to 100 DB entries at a time so as not to
* overload the system in any cron run. Eventually it will catch up with old attach structures
* and switch into maintenance mode to correct any that might arrive in clone packets from older
* sites.
diff --git a/include/bbcode.php b/include/bbcode.php
index 817986da0..7531bd774 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -326,22 +326,11 @@ function bb_ShareAttributes($match) {
$auth = is_matrix_url($profile);
}
- // message_id is never used, do we still need it?
- $message_id = "";
- preg_match("/message_id='(.*?)'/ism", $attributes, $matches);
- if ($matches[1] != "")
- $message_id = $matches[1];
-
- if(! $message_id) {
- preg_match("/guid='(.*?)'/ism", $attributes, $matches);
- if ($matches[1] != "")
- $message_id = $matches[1];
- }
-
+ $rnd = mt_rand();
$reldate = '<span class="autotime" title="' . datetime_convert('UTC', date_default_timezone_get(), $posted, 'c') . '" >' . datetime_convert('UTC', date_default_timezone_get(), $posted, 'r') . '</span>';
- $headline = '<div class="shared_container"> <div class="shared_header">';
+ $headline = '<div id="shared_container_' . $rnd . '" class="shared_container"> <div id="shared_header_' . $rnd . '" class="shared_header">';
if ($avatar != "")
$headline .= '<a href="' . (($auth) ? zid($profile) : $profile) . '" ><img src="' . $avatar . '" alt="' . $author . '" height="32" width="32" /></a>';
@@ -363,7 +352,7 @@ function bb_ShareAttributes($match) {
$headline .= '<span>' . $fmt . '</span></div>';
- $text = $headline . '<div class="reshared-content">' . trim($match[2]) . '</div></div>';
+ $text = $headline . '<div id="reshared-content-' . $rnd . '" class="reshared-content">' . trim($match[2]) . '</div></div>';
return $text;
}
diff --git a/include/channel.php b/include/channel.php
index 22cdb9fe7..f705ba4d2 100644
--- a/include/channel.php
+++ b/include/channel.php
@@ -10,6 +10,7 @@ use Zotlabs\Access\Permissions;
use Zotlabs\Daemon\Master;
use Zotlabs\Lib\System;
use Zotlabs\Render\Comanche;
+use Zotlabs\Lib\Libzot;
require_once('include/zot.php');
require_once('include/crypto.php');
@@ -232,6 +233,7 @@ function create_identity($arr) {
$sig = base64url_encode(rsa_sign($guid,$key['prvkey']));
$hash = make_xchan_hash($guid,$sig);
+ $zhash = Libzot::make_xchan_hash($guid,$key['pubkey']);
// Force a few things on the short term until we can provide a theme or app with choice
@@ -265,6 +267,7 @@ function create_identity($arr) {
'channel_guid' => $guid,
'channel_guid_sig' => $sig,
'channel_hash' => $hash,
+ 'channel_portable_id' => $zhash,
'channel_prvkey' => $key['prvkey'],
'channel_pubkey' => $key['pubkey'],
'channel_pageflags' => intval($pageflags),
@@ -345,30 +348,76 @@ function create_identity($arr) {
if(! $r)
logger('Unable to store hub location');
+ $r = hubloc_store_lowlevel(
+ [
+ 'hubloc_guid' => $guid,
+ 'hubloc_guid_sig' => 'sha256.' . $sig,
+ 'hubloc_hash' => $zhash,
+ 'hubloc_id_url' => channel_url($ret['channel']),
+ 'hubloc_addr' => channel_reddress($ret['channel']),
+ 'hubloc_primary' => intval($primary),
+ 'hubloc_url' => z_root(),
+ 'hubloc_url_sig' => 'sha256.' . base64url_encode(rsa_sign(z_root(),$ret['channel']['channel_prvkey'])),
+ 'hubloc_site_id' => Libzot::make_xchan_hash(z_root(),get_config('system','pubkey')),
+ 'hubloc_host' => App::get_hostname(),
+ 'hubloc_callback' => z_root() . '/zot',
+ 'hubloc_sitekey' => get_config('system','pubkey'),
+ 'hubloc_network' => 'zot6',
+ 'hubloc_updated' => datetime_convert()
+ ]
+ );
+ if(! $r)
+ logger('Unable to store hub location');
+
+
$newuid = $ret['channel']['channel_id'];
$r = xchan_store_lowlevel(
[
- 'xchan_hash' => $hash,
- 'xchan_guid' => $guid,
- 'xchan_guid_sig' => $sig,
- 'xchan_pubkey' => $key['pubkey'],
+ 'xchan_hash' => $hash,
+ 'xchan_guid' => $guid,
+ 'xchan_guid_sig' => $sig,
+ 'xchan_pubkey' => $key['pubkey'],
+ 'xchan_photo_mimetype' => (($photo_type) ? $photo_type : 'image/png'),
+ 'xchan_photo_l' => z_root() . "/photo/profile/l/{$newuid}",
+ 'xchan_photo_m' => z_root() . "/photo/profile/m/{$newuid}",
+ 'xchan_photo_s' => z_root() . "/photo/profile/s/{$newuid}",
+ 'xchan_addr' => channel_reddress($ret['channel']),
+ 'xchan_url' => z_root() . '/channel/' . $ret['channel']['channel_address'],
+ 'xchan_follow' => z_root() . '/follow?f=&url=%s',
+ 'xchan_connurl' => z_root() . '/poco/' . $ret['channel']['channel_address'],
+ 'xchan_name' => $ret['channel']['channel_name'],
+ 'xchan_network' => 'zot',
+ 'xchan_photo_date' => datetime_convert(),
+ 'xchan_name_date' => datetime_convert(),
+ 'xchan_system' => $system
+ ]
+ );
+
+ $r = xchan_store_lowlevel(
+ [
+ 'xchan_hash' => $zhash,
+ 'xchan_guid' => $guid,
+ 'xchan_guid_sig' => 'sha256.' . $sig,
+ 'xchan_pubkey' => $key['pubkey'],
'xchan_photo_mimetype' => (($photo_type) ? $photo_type : 'image/png'),
- 'xchan_photo_l' => z_root() . "/photo/profile/l/{$newuid}",
- 'xchan_photo_m' => z_root() . "/photo/profile/m/{$newuid}",
- 'xchan_photo_s' => z_root() . "/photo/profile/s/{$newuid}",
- 'xchan_addr' => channel_reddress($ret['channel']),
- 'xchan_url' => z_root() . '/channel/' . $ret['channel']['channel_address'],
- 'xchan_follow' => z_root() . '/follow?f=&url=%s',
- 'xchan_connurl' => z_root() . '/poco/' . $ret['channel']['channel_address'],
- 'xchan_name' => $ret['channel']['channel_name'],
- 'xchan_network' => 'zot',
- 'xchan_photo_date' => datetime_convert(),
- 'xchan_name_date' => datetime_convert(),
- 'xchan_system' => $system
+ 'xchan_photo_l' => z_root() . "/photo/profile/l/{$newuid}",
+ 'xchan_photo_m' => z_root() . "/photo/profile/m/{$newuid}",
+ 'xchan_photo_s' => z_root() . "/photo/profile/s/{$newuid}",
+ 'xchan_addr' => channel_reddress($ret['channel']),
+ 'xchan_url' => z_root() . '/channel/' . $ret['channel']['channel_address'],
+ 'xchan_follow' => z_root() . '/follow?f=&url=%s',
+ 'xchan_connurl' => z_root() . '/poco/' . $ret['channel']['channel_address'],
+ 'xchan_name' => $ret['channel']['channel_name'],
+ 'xchan_network' => 'zot6',
+ 'xchan_photo_date' => datetime_convert(),
+ 'xchan_name_date' => datetime_convert(),
+ 'xchan_system' => $system
]
);
+
+
// Not checking return value.
// It's ok for this to fail if it's an imported channel, and therefore the hash is a duplicate
@@ -1031,6 +1080,7 @@ function identity_basic_export($channel_id, $sections = null) {
return $ret;
}
+
/**
* @brief Export items for a year, or a month of a year.
*
@@ -1053,23 +1103,50 @@ function identity_export_year($channel_id, $year, $month = 0) {
else
$target_month = '01';
+ $mindate = datetime_convert('UTC', 'UTC', $year . '-' . $target_month . '-01 00:00:00');
+ if($month && $month < 12)
+ $maxdate = datetime_convert('UTC', 'UTC', $year . '-' . $target_month_plus . '-01 00:00:00');
+ else
+ $maxdate = datetime_convert('UTC', 'UTC', $year+1 . '-01-01 00:00:00');
+
+ return channel_export_items_date($channel_id,$mindate,$maxdate);
+
+}
+
+/**
+ * @brief Export items within an arbitrary date range.
+ *
+ * Date/time is in UTC.
+ *
+ * @param int $channel_id The channel ID
+ * @param string $start
+ * @param string $finish
+ * @return array
+ */
+
+function channel_export_items_date($channel_id, $start, $finish) {
+
+ if(! $start)
+ return array();
+ else
+ $start = datetime_convert('UTC', 'UTC', $start);
+
+ $finish = datetime_convert('UTC', 'UTC', (($finish) ? $finish : 'now'));
+ if($finish < $start)
+ return array();
+
$ret = array();
$ch = channelx_by_n($channel_id);
if($ch) {
$ret['relocate'] = [ 'channel_address' => $ch['channel_address'], 'url' => z_root()];
}
- $mindate = datetime_convert('UTC', 'UTC', $year . '-' . $target_month . '-01 00:00:00');
- if($month && $month < 12)
- $maxdate = datetime_convert('UTC', 'UTC', $year . '-' . $target_month_plus . '-01 00:00:00');
- else
- $maxdate = datetime_convert('UTC', 'UTC', $year+1 . '-01-01 00:00:00');
- $r = q("select * from item where ( item_wall = 1 or item_type != %d ) and item_deleted = 0 and uid = %d and created >= '%s' and created < '%s' and resource_type = '' order by created",
+ $r = q("select * from item where ( item_wall = 1 or item_type != %d ) and item_deleted = 0 and uid = %d and created >= '%s' and created <= '%s' and resource_type = '' order by created",
intval(ITEM_TYPE_POST),
intval($channel_id),
- dbesc($mindate),
- dbesc($maxdate)
+ dbesc($start),
+ dbesc($finish)
);
if($r) {
@@ -1083,39 +1160,57 @@ function identity_export_year($channel_id, $year, $month = 0) {
return $ret;
}
+
+
/**
- * @brief Export items within an arbitrary date range.
+ * @brief Export items with pagination
*
- * Date/time is in UTC.
*
* @param int $channel_id The channel ID
- * @param string $start
- * @param string $finish
+ * @param int $page
+ * @param int $limit (default 50)
* @return array
*/
-function channel_export_items($channel_id, $start, $finish) {
+
+function channel_export_items_page($channel_id, $start, $finish, $page = 0, $limit = 50) {
+
+ if(intval($page) < 1) {
+ $page = 0;
+ }
+
+ if(intval($limit) < 1) {
+ $limit = 1;
+ }
+
+ if(intval($limit) > 5000) {
+ $limit = 5000;
+ }
if(! $start)
- return array();
+ $start = NULL_DATE;
else
$start = datetime_convert('UTC', 'UTC', $start);
$finish = datetime_convert('UTC', 'UTC', (($finish) ? $finish : 'now'));
if($finish < $start)
- return array();
+ return [];
- $ret = array();
+ $offset = intval($limit) * intval($page);
+
+ $ret = [];
$ch = channelx_by_n($channel_id);
if($ch) {
$ret['relocate'] = [ 'channel_address' => $ch['channel_address'], 'url' => z_root()];
}
- $r = q("select * from item where ( item_wall = 1 or item_type != %d ) and item_deleted = 0 and uid = %d and created >= '%s' and created <= '%s' and resource_type = '' order by created",
+ $r = q("select * from item where ( item_wall = 1 or item_type != %d ) and item_deleted = 0 and uid = %d and resource_type = '' and created >= '%s' and created <= '%s' order by created limit %d offset %d",
intval(ITEM_TYPE_POST),
intval($channel_id),
dbesc($start),
- dbesc($finish)
+ dbesc($finish),
+ intval($limit),
+ intval($offset)
);
if($r) {
@@ -1130,6 +1225,7 @@ function channel_export_items($channel_id, $start, $finish) {
}
+
/**
* @brief Loads a profile into the App structure.
*
@@ -1740,6 +1836,7 @@ function zat_init() {
);
if($r) {
$xchan = atoken_xchan($r[0]);
+ atoken_create_xchan($xchan);
atoken_login($xchan);
}
}
@@ -2284,6 +2381,21 @@ function channelx_by_hash($hash) {
return(($r) ? $r[0] : false);
}
+
+/**
+ * @brief Get a channel array by a channel_hash.
+ *
+ * @param string $hash
+ * @return array|boolean false if channel ID not found, otherwise the channel array
+ */
+function channelx_by_portid($hash) {
+ $r = q("SELECT * FROM channel left join xchan on channel_portable_id = xchan_hash WHERE channel_portable_id = '%s' and channel_removed = 0 LIMIT 1",
+ dbesc($hash)
+ );
+
+ return(($r) ? $r[0] : false);
+}
+
/**
* @brief Get a channel array by a channel ID.
*
@@ -2355,6 +2467,7 @@ function channel_store_lowlevel($arr) {
'channel_guid' => ((array_key_exists('channel_guid',$arr)) ? $arr['channel_guid'] : ''),
'channel_guid_sig' => ((array_key_exists('channel_guid_sig',$arr)) ? $arr['channel_guid_sig'] : ''),
'channel_hash' => ((array_key_exists('channel_hash',$arr)) ? $arr['channel_hash'] : ''),
+ 'channel_portable_id' => ((array_key_exists('channel_portable_id',$arr)) ? $arr['channel_portable_id'] : ''),
'channel_timezone' => ((array_key_exists('channel_timezone',$arr)) ? $arr['channel_timezone'] : 'UTC'),
'channel_location' => ((array_key_exists('channel_location',$arr)) ? $arr['channel_location'] : ''),
'channel_theme' => ((array_key_exists('channel_theme',$arr)) ? $arr['channel_theme'] : ''),
diff --git a/include/contact_widgets.php b/include/contact_widgets.php
index a105bca19..6ad276b00 100644
--- a/include/contact_widgets.php
+++ b/include/contact_widgets.php
@@ -7,14 +7,14 @@ function findpeople_widget() {
if(get_config('system','invitation_only')) {
$x = get_pconfig(local_channel(),'system','invites_remaining');
if($x || is_site_admin()) {
- App::$page['aside'] .= '<div class="side-link" id="side-invite-remain">'
- . sprintf( tt('%d invitation available','%d invitations available',$x), $x)
- . '</div>' . $inv;
+ App::$page['aside'] .= '<div class="side-link" id="side-invite-remain">'
+ . sprintf( tt('%d invitation available','%d invitations available',$x), $x)
+ . '</div>';
}
}
$advanced_search = ((local_channel() && feature_enabled(local_channel(),'advanced_dirsearch')) ? t('Advanced') : false);
-
+
return replace_macros(get_markup_template('peoplefind.tpl'),array(
'$findpeople' => t('Find Channels'),
'$desc' => t('Enter name or interest'),
@@ -22,7 +22,7 @@ function findpeople_widget() {
'$hint' => t('Examples: Robert Morgenstein, Fishing'),
'$findthem' => t('Find'),
'$suggest' => t('Channel Suggestions'),
- '$similar' => '', // FIXME and uncomment when mod/match working // t('Similar Interests'),
+ '$similar' => '', /// @FIXME fixme and uncomment when mod/match working // t('Similar Interests'),
'$random' => t('Random Profile'),
'$inv' => t('Invite Friends'),
'$advanced_search' => $advanced_search,
@@ -56,12 +56,11 @@ function fileas_widget($baseurl,$selected = '') {
'$all' => t('Everything'),
'$terms' => $terms,
'$base' => $baseurl,
-
));
}
function categories_widget($baseurl,$selected = '') {
-
+
if(! feature_enabled(App::$profile['profile_uid'],'categories'))
return '';
@@ -100,14 +99,13 @@ function categories_widget($baseurl,$selected = '') {
'$all' => t('Everything'),
'$terms' => $terms,
'$base' => $baseurl,
-
));
}
return '';
}
function cardcategories_widget($baseurl,$selected = '') {
-
+
if(! feature_enabled(App::$profile['profile_uid'],'categories'))
return '';
@@ -128,7 +126,7 @@ function cardcategories_widget($baseurl,$selected = '') {
$item_normal
$sql_extra
order by term.term asc",
- intval(App::$profile['profile_uid']),
+ intval(App::$profile['profile_uid']),
intval(TERM_CATEGORY),
intval(TERM_OBJ_POST),
dbesc(App::$profile['channel_hash'])
@@ -144,15 +142,15 @@ function cardcategories_widget($baseurl,$selected = '') {
'$all' => t('Everything'),
'$terms' => $terms,
'$base' => $baseurl,
-
));
}
+
return '';
}
function articlecategories_widget($baseurl,$selected = '') {
-
+
if(! feature_enabled(App::$profile['profile_uid'],'categories'))
return '';
@@ -173,7 +171,7 @@ function articlecategories_widget($baseurl,$selected = '') {
$item_normal
$sql_extra
order by term.term asc",
- intval(App::$profile['profile_uid']),
+ intval(App::$profile['profile_uid']),
intval(TERM_CATEGORY),
intval(TERM_OBJ_POST),
dbesc(App::$profile['channel_hash'])
@@ -189,17 +187,14 @@ function articlecategories_widget($baseurl,$selected = '') {
'$all' => t('Everything'),
'$terms' => $terms,
'$base' => $baseurl,
-
));
}
+
return '';
}
-
-
-
function common_friends_visitor_widget($profile_uid,$cnt = 25) {
if(local_channel() == $profile_uid)
@@ -218,17 +213,14 @@ function common_friends_visitor_widget($profile_uid,$cnt = 25) {
return;
$r = common_friends($profile_uid,$observer_hash,0,$cnt,true);
-
- return replace_macros(get_markup_template('remote_friends_common.tpl'), array(
+
+ return replace_macros(get_markup_template('remote_friends_common.tpl'), [
'$desc' => t('Common Connections'),
'$base' => z_root(),
'$uid' => $profile_uid,
- '$cid' => $observer,
'$linkmore' => (($t > $cnt) ? 'true' : ''),
'$more' => sprintf( t('View all %d common connections'), $t),
- '$items' => $r
- ));
+ '$items' => $r,
+ ]);
};
-
-
diff --git a/include/conversation.php b/include/conversation.php
index 041994b90..e2dd02ffc 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1328,7 +1328,7 @@ function hz_status_editor($a, $x, $popup = false) {
$tpl = get_markup_template('jot-header.tpl');
- App::$page['htmlhead'] .= replace_macros($tpl, array(
+ $tplmacros = [
'$baseurl' => z_root(),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$pretext' => ((x($x,'pretext')) ? $x['pretext'] : ''),
@@ -1349,7 +1349,10 @@ function hz_status_editor($a, $x, $popup = false) {
'$nocomment_disabled' => t('Comments disabled'),
'$auto_save_draft' => $feature_auto_save_draft,
'$reset' => $reset
- ));
+ ];
+
+ call_hooks('jot_header_tpl_filter',$tplmacros);
+ App::$page['htmlhead'] .= replace_macros($tpl, $tplmacros);
$tpl = get_markup_template('jot.tpl');
@@ -1389,7 +1392,7 @@ function hz_status_editor($a, $x, $popup = false) {
$sharebutton = (x($x,'button') ? $x['button'] : t('Share'));
$placeholdtext = (x($x,'content_label') ? $x['content_label'] : $sharebutton);
- $o .= replace_macros($tpl, array(
+ $tplmacros = [
'$return_path' => ((x($x, 'return_path')) ? $x['return_path'] : App::$query_string),
'$action' => z_root() . '/item',
'$share' => $sharebutton,
@@ -1463,9 +1466,15 @@ function hz_status_editor($a, $x, $popup = false) {
'$bbcode' => ((x($x, 'bbcode')) ? $x['bbcode'] : false),
'$parent' => ((array_key_exists('parent',$x) && $x['parent']) ? $x['parent'] : 0),
'$reset' => $reset,
- '$is_owner' => ((local_channel() && (local_channel() == $x['profile_uid'])) ? true : false)
- ));
+ '$is_owner' => ((local_channel() && (local_channel() == $x['profile_uid'])) ? true : false),
+ '$custommoretoolsdropdown' => '',
+ '$custommoretoolsbuttons' => '',
+ '$customsubmitright' => []
+ ];
+
+ call_hooks('jot_tpl_filter',$tplmacros);
+ $o .= replace_macros($tpl, $tplmacros);
if ($popup === true) {
$o = '<div id="jot-popup" style="display:none">' . $o . '</div>';
}
diff --git a/include/crypto.php b/include/crypto.php
index 1040ac29b..39bfd8d43 100644
--- a/include/crypto.php
+++ b/include/crypto.php
@@ -225,9 +225,14 @@ function crypto_unencapsulate($data,$prvkey) {
if(! $data)
return;
- $alg = ((array_key_exists('alg',$data)) ? $data['alg'] : 'aes256cbc');
- if($alg === 'aes256cbc')
+ $alg = ((is_array($data) && (array_key_exists('encrypted',$data) || array_key_exists('iv',$data))) ? $data['alg'] : '');
+ if(! $alg) {
+ return $data;
+ }
+
+ if($alg === 'aes256cbc') {
return aes_unencapsulate($data,$prvkey);
+ }
return other_unencapsulate($data,$prvkey,$alg);
diff --git a/include/event.php b/include/event.php
index 84a16e8be..fdb9e1415 100644
--- a/include/event.php
+++ b/include/event.php
@@ -6,6 +6,10 @@
use Sabre\VObject;
+use Ramsey\Uuid\Uuid;
+use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
+
+
require_once('include/bbcode.php');
/**
@@ -463,8 +467,13 @@ function event_store_event($arr) {
$hash = $arr['external_id'];
elseif(array_key_exists('event_hash',$arr))
$hash = $arr['event_hash'];
- else
- $hash = random_string() . '@' . App::get_hostname();
+ else {
+ try {
+ $hash = Uuid::uuid4()->toString();
+ } catch (UnsatisfiedDependencyException $e) {
+ $hash = random_string(48);
+ }
+ }
$r = q("INSERT INTO event ( uid,aid,event_xchan,event_hash,created,edited,dtstart,dtend,summary,description,location,etype,
adjust,nofinish, event_status, event_status_date, event_percent, event_repeat, event_sequence, event_priority, event_vdata, allow_cid,allow_gid,deny_cid,deny_gid)
@@ -1125,11 +1134,14 @@ function event_store_item($arr, $event) {
}
}
- if(! $arr['mid'])
- $arr['mid'] = item_message_id();
+ if(! $arr['mid']) {
+ $arr['uuid'] = $event['event_hash'];
+ $arr['mid'] = z_root() . '/event/' . $event['event_hash'];
+ }
$item_arr['aid'] = $z[0]['channel_account_id'];
$item_arr['uid'] = $arr['uid'];
+ $item_arr['uuid'] = $arr['uuid'];
$item_arr['author_xchan'] = $arr['event_xchan'];
$item_arr['mid'] = $arr['mid'];
$item_arr['parent_mid'] = $arr['mid'];
diff --git a/include/features.php b/include/features.php
index 05ce3db32..35a4c0dd4 100644
--- a/include/features.php
+++ b/include/features.php
@@ -361,14 +361,6 @@ function get_features($filtered = true, $level = (-1)) {
],
[
- 'affinity',
- t('Affinity Tool'),
- t('Filter stream activity by depth of relationships'),
- false,
- get_config('feature_lock','affinity')
- ],
-
- [
'suggest',
t('Suggest Channels'),
t('Show friend and connection suggestions'),
diff --git a/include/feedutils.php b/include/feedutils.php
index afbe4229e..5e52828c3 100644
--- a/include/feedutils.php
+++ b/include/feedutils.php
@@ -261,13 +261,13 @@ function construct_activity_target($item) {
* @param SimplePie $item
* @return array $author
*/
-
function get_atom_author($feed, $item) {
$author = [];
$found_author = $item->get_author();
if($found_author) {
+ /// @FIXME $rawauthor is undefined here
if($rawauthor) {
if($rawauthor[0]['child'][NAMESPACE_POCO]['displayName'][0]['data'])
$author['full_name'] = unxmlify($rawauthor[0]['child'][NAMESPACE_POCO]['displayName'][0]['data']);
@@ -398,10 +398,10 @@ function get_atom_author($feed, $item) {
'author' => $author
];
/**
- * @hooks parse_atom
+ * @hooks parse_atom_author
* * \e SimplePie \b feed - The original SimplePie feed
* * \e SimplePie \b item
- * * \e array \b result - the result array that will also get returned
+ * * \e array \b author - the result array that will also get returned
*/
call_hooks('parse_atom_author', $arr);
@@ -416,10 +416,8 @@ function get_atom_author($feed, $item) {
*
* @param SimplePie $feed
* @param SimplePie $item
- * @param[out] array $author
* @return array Associative array with the parsed item data
*/
-
function get_atom_elements($feed, $item) {
require_once('include/html2bbcode.php');
@@ -669,10 +667,10 @@ function get_atom_elements($feed, $item) {
$termterm = notags(trim(unxmlify($term)));
// Mastodon auto generates an nsfw category tag for any 'content-warning' message.
- // Most people use CW and use both summary/content as a spoiler and we honour that
- // construct so the post will already be collapsed. The generated tag is almost
+ // Most people use CW and use both summary/content as a spoiler and we honour that
+ // construct so the post will already be collapsed. The generated tag is almost
// always wrong and even if it isn't we would already be doing the right thing.
-
+
if($mastodon && $termterm === 'nsfw' && $summary && $res['body'])
continue;
@@ -1336,7 +1334,7 @@ function consume_feed($xml, $importer, &$contact, $pass = 0) {
if( ! \Zotlabs\Lib\MessageFilter::evaluate($datarray,get_config('system','pubstream_incl'),get_config('system','pubstream_excl'))) {
continue;
}
- }
+ }
if(! post_is_importable($datarray, $contact))
continue;
@@ -1492,7 +1490,7 @@ function consume_feed($xml, $importer, &$contact, $pass = 0) {
if( ! \Zotlabs\Lib\MessageFilter::evaluate($datarray,get_config('system','pubstream_incl'),get_config('system','pubstream_excl'))) {
continue;
}
- }
+ }
if(! post_is_importable($datarray, $contact))
continue;
@@ -1900,7 +1898,7 @@ function atom_entry($item, $type, $author, $owner, $comment = false, $cid = 0, $
$body = $item['body'];
- if($summary)
+ if($summary)
$body = preg_replace('|^(.*?)\[summary\](.*?)\[/summary\](.*?)$|ism','$1$3',$item['body']);
if($compat)
diff --git a/include/follow.php b/include/follow.php
index 964c43ff2..db77a0160 100644
--- a/include/follow.php
+++ b/include/follow.php
@@ -190,7 +190,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
return $result;
}
- $allowed = (($is_zot || $r[0]['xchan_network'] === 'rss') ? 1 : 0);
+ $allowed = (($is_zot || in_array($r[0]['xchan_network'],['rss','zot6'])) ? 1 : 0);
$x = array('channel_id' => $uid, 'follow_address' => $url, 'xchan' => $r[0], 'allowed' => $allowed, 'singleton' => 0);
@@ -266,9 +266,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
}
}
else {
- $closeness = get_pconfig($uid,'system','new_abook_closeness');
- if($closeness === false)
- $closeness = 80;
+ $closeness = get_pconfig($uid,'system','new_abook_closeness',80);
$r = abook_store_lowlevel(
[
diff --git a/include/help.php b/include/help.php
index 3b56a7238..e82fa96da 100644
--- a/include/help.php
+++ b/include/help.php
@@ -7,17 +7,18 @@ use \Michelf\MarkdownExtra;
* @brief
*
* @param string $path
- * @return string|unknown
+ * @param string $suffix (optional) default null
+ * @return string
*/
-function get_help_fullpath($path,$suffix=null) {
+function get_help_fullpath($path, $suffix = null) {
$docroot = (\App::$override_helproot) ? \App::$override_helproot : 'doc/';
- $docroot = (substr($docroot,-1)!='/') ? $docroot .= '/' : $docroot;
+ $docroot = (substr($docroot,-1)!='/') ? $docroot .= '/' : $docroot;
// Determine the language and modify the path accordingly
$x = determine_help_language();
$lang = $x['language'];
- $url_idx = ($x['from_url'] ? 1 : 0);
+
// The English translation is at the root of /doc/. Other languages are in
// subfolders named by the language code such as "de", "es", etc.
if($lang !== 'en') {
@@ -49,19 +50,18 @@ function get_help_fullpath($path,$suffix=null) {
/**
* @brief
*
- * @param string $tocpath
- * @return string|unknown
+ * @param string $tocpath (optional) default false
+ * @return string
*/
function get_help_content($tocpath = false) {
- global $lang;
$doctype = 'markdown';
$text = '';
$path = (($tocpath !== false) ? $tocpath : '');
- $docroot = (\App::$override_helproot) ? \App::$override_helproot : 'doc/';
- $docroot = (substr($docroot,-1)!='/') ? $docroot .= '/' : $docroot;
+ $docroot = (\App::$override_helproot) ? \App::$override_helproot : 'doc/';
+ $docroot = (substr($docroot,-1)!='/') ? $docroot .= '/' : $docroot;
if($tocpath === false && argc() > 1) {
$path = '';
@@ -74,7 +74,7 @@ function get_help_content($tocpath = false) {
if($path) {
- $fullpath = get_help_fullpath($path);
+ $fullpath = get_help_fullpath($path);
$title = basename($path);
if(! $tocpath)
\App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('-',' ',notags($title)));
@@ -88,10 +88,10 @@ function get_help_content($tocpath = false) {
load_doc_file($fullpath . '.md') === '' &&
load_doc_file($fullpath . '.bb') === '' &&
load_doc_file($fullpath . '.html') === ''
- ) {
+ ) {
$path = $title;
}
- $fullpath = get_help_fullpath($path);
+ $fullpath = get_help_fullpath($path);
$text = load_doc_file($fullpath . '.md');
if(! $text) {
@@ -111,15 +111,15 @@ function get_help_content($tocpath = false) {
if($tocpath === false) {
if(! $text) {
- $path = 'Site';
- $fullpath = get_help_fullpath($path,'.md');
+ $path = 'Site';
+ $fullpath = get_help_fullpath($path,'.md');
$text = load_doc_file($fullpath . '.md');
\App::$page['title'] = t('Help');
}
if(! $text) {
$doctype = 'bbcode';
- $path = 'main';
- $fullpath = get_help_fullpath($path,'.md');
+ $path = 'main';
+ $fullpath = get_help_fullpath($path,'.md');
$text = load_doc_file($fullpath . '.bb');
goaway('/help/about/about');
\App::$page['title'] = t('Help');
@@ -172,16 +172,20 @@ function preg_callback_help_include($matches) {
}
/**
- * @brief
+ * @brief Determines help language.
+ *
+ * If the language was specified in the URL, override the language preference
+ * of the browser. Default to English if both of these are absent.
*
- * @return boolean|array
+ * @return array Associative array with:
+ * * \e string \b language - 2-letter ISO 639-1 code ("en")
+ * * \e boolean \b from_url - true if language from URL overrides browser default
*/
function determine_help_language() {
$lang_detect = new Text_LanguageDetect();
// Set this mode to recognize language by the short code like "en", "ru", etc.
$lang_detect->setNameMode(2);
- // If the language was specified in the URL, override the language preference
- // of the browser. Default to English if both of these are absent.
+
if($lang_detect->languageExists(argv(1))) {
$lang = argv(1);
$from_url = true;
@@ -212,14 +216,13 @@ function find_doc_file($s) {
}
/**
- * @brief
+ * @brief Search in doc files.
*
- * @param string $s
- * @return number|mixed|unknown|boolean
+ * @param string $s The search string to search for
+ * @return array
*/
function search_doc_files($s) {
-
\App::set_pager_itemspage(60);
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(\App::$pager['itemspage']), intval(\App::$pager['start']));
@@ -277,7 +280,6 @@ function doc_rank_sort($s1, $s2) {
*
* @return string
*/
-
function load_context_help() {
$path = App::$cmd;
@@ -307,7 +309,7 @@ function load_context_help() {
* @brief
*
* @param string $s
- * @return void|boolean[]|number[]|string[]|unknown[]
+ * @return void|array
*/
function store_doc_file($s) {
@@ -351,7 +353,8 @@ function store_doc_file($s) {
$x = item_store_update($item);
}
else {
- $item['mid'] = $item['parent_mid'] = item_message_id();
+ $item['uuid'] = item_message_id();
+ $item['mid'] = $item['parent_mid'] = z_root() . '/item/' . $item['uuid'];
$x = item_store($item);
}
diff --git a/include/import.php b/include/import.php
index 5c0cb9bed..f391400bd 100644
--- a/include/import.php
+++ b/include/import.php
@@ -12,6 +12,7 @@ require_once('include/perm_upgrade.php');
* @param array $channel
* @param int $account_id
* @param int $seize
+ * @param string $newname (optional)
* @return boolean|array
*/
function import_channel($channel, $account_id, $seize, $newname = '') {
@@ -650,7 +651,7 @@ function import_items($channel, $items, $sync = false, $relocate = null) {
// preserve conversations you've been involved in from being expired
$stored = $item_result['item'];
- if((is_array($stored)) && ($stored['id'] != $stored['parent'])
+ if((is_array($stored)) && ($stored['id'] != $stored['parent'])
&& ($stored['author_xchan'] === $channel['channel_hash'])) {
retain_item($stored['item']['parent']);
}
@@ -672,7 +673,7 @@ function import_items($channel, $items, $sync = false, $relocate = null) {
/**
* @brief Sync items to channel.
*
- * @see import_items
+ * @see import_items()
*
* @param array $channel where to import to
* @param array $items
@@ -1049,7 +1050,7 @@ function import_mail($channel, $mails, $sync = false) {
/**
* @brief Synchronise mails.
*
- * @see import_mail
+ * @see import_mail()
* @param array $channel
* @param array $mails
*/
@@ -1337,7 +1338,7 @@ function sync_files($channel, $files) {
if($str)
$str .= ",";
-
+
$str .= " " . TQUOT . $k . TQUOT . " = '" . (($k === 'content') ? dbescbin($v) : dbesc($v)) . "' ";
}
$r = dbq("update photo set " . $str . " where id = " . intval($exists[0]['id']) );
@@ -1521,7 +1522,8 @@ function import_webpage_element($element, $channel, $type) {
}
else { // otherwise, generate the creation times and unique id
$arr['created'] = datetime_convert('UTC', 'UTC');
- $arr['mid'] = $arr['parent_mid'] = item_message_id();
+ $arr['uuid'] = item_message_id();
+ $arr['mid'] = $arr['parent_mid'] = z_root() . '/item/' . $arr['uuid'];
}
// Update the edited time whether or not the element already exists
$arr['edited'] = datetime_convert('UTC', 'UTC');
diff --git a/include/items.php b/include/items.php
index 72bb1dca4..51aa81017 100755
--- a/include/items.php
+++ b/include/items.php
@@ -7,6 +7,7 @@
use Zotlabs\Lib\Enotify;
use Zotlabs\Lib\MarkdownSoap;
use Zotlabs\Lib\MessageFilter;
+use Zotlabs\Lib\ThreadListener;
use Zotlabs\Lib\IConfig;
use Zotlabs\Access\PermissionLimits;
use Zotlabs\Access\AccessList;
@@ -25,7 +26,7 @@ require_once('include/permissions.php');
*
* @param array $item
* @param[out] boolean $private_envelope
- * @param boolean $include_groups
+ * @param boolean $include_groups
* @return array containing the recipients
*/
function collect_recipients($item, &$private_envelope,$include_groups = true) {
@@ -95,9 +96,24 @@ function collect_recipients($item, &$private_envelope,$include_groups = true) {
//$sys = get_sys_channel();
if(array_key_exists('public_policy',$item) && $item['public_policy'] !== 'self') {
- $r = q("select abook_xchan, xchan_network from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and abook_self = 0 and abook_pending = 0 and abook_archived = 0 ",
+
+ $hookinfo = [
+ 'recipients' => [],
+ 'item' => $item,
+ 'private_envelope' => $private_envelope,
+ 'include_groups' => $include_groups
+ ];
+
+ call_hooks('collect_public_recipients',$hookinfo);
+
+ if ($hookinfo['recipients']) {
+ $r = $hookinfo['recipients'];
+ } else {
+ $r = q("select abook_xchan, xchan_network from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and abook_self = 0 and abook_pending = 0 and abook_archived = 0 ",
intval($item['uid'])
- );
+ );
+ }
+
if($r) {
// filter out restrictive public_policy settings from remote networks
@@ -126,6 +142,22 @@ function collect_recipients($item, &$private_envelope,$include_groups = true) {
// $recipients[] = $sys['xchan_hash'];
}
+
+ // Forward to thread listeners, *unless* there is even a remote hint that the item
+ // might have some privacy attached. This could be (for instance) an ActivityPub DM
+ // in the middle of a public thread. Unless we can guarantee beyond all doubt that
+ // this is public, don't allow it to go to thread listeners.
+
+ if(! intval($item['item_private'])) {
+ $r = ThreadListener::fetch_by_target($item['parent_mid']);
+ if($r) {
+ foreach($r as $rv) {
+ $recipients[] = $rv['portable_id'];
+ }
+ }
+ }
+
+
// Add the authors of any posts in this thread, if they are known to us.
// This is specifically designed to forward wall-to-wall posts to the original author,
// in case they aren't a connection but have permission to write on our wall.
@@ -393,7 +425,11 @@ function post_activity_item($arr, $allow_code = false, $deliver = true) {
if(! array_key_exists('mimetype',$arr))
$arr['mimetype'] = 'text/bbcode';
- $arr['mid'] = ((x($arr,'mid')) ? $arr['mid'] : item_message_id());
+
+ if(! $arr['mid']) {
+ $arr['uuid'] = ((x($arr,'uuid')) ? $arr['uuid'] : item_message_id());
+ }
+ $arr['mid'] = ((x($arr,'mid')) ? $arr['mid'] : z_root() . '/item/' . $arr['uuid']);
$arr['parent_mid'] = ((x($arr,'parent_mid')) ? $arr['parent_mid'] : $arr['mid']);
$arr['thr_parent'] = ((x($arr,'thr_parent')) ? $arr['thr_parent'] : $arr['mid']);
@@ -416,7 +452,7 @@ function post_activity_item($arr, $allow_code = false, $deliver = true) {
$arr['comment_policy'] = map_scope(PermissionLimits::Get($channel['channel_id'],'post_comments'));
if ((! $arr['plink']) && (intval($arr['item_thread_top']))) {
- $arr['plink'] = substr(z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . urlencode($arr['mid']),0,190);
+ $arr['plink'] = substr(z_root() . '/channel/' . $channel['channel_address'] . '/' . (filter_var($arr['mid'], FILTER_VALIDATE_URL) === false ? '?f=&mid=' : '') . urlencode($arr['mid']),0,190);
}
@@ -450,6 +486,8 @@ function post_activity_item($arr, $allow_code = false, $deliver = true) {
*/
call_hooks('post_local_end', $ret['activity']);
}
+ else
+ return $ret;
if($post_id && $deliver) {
Master::Summon([ 'Notifier','activity',$post_id ]);
@@ -597,6 +635,7 @@ function get_item_elements($x,$allow_code = false) {
$arr = array();
$arr['body'] = $x['body'];
+ $arr['summary'] = $x['summary'];
$maxlen = get_max_import_size();
@@ -605,6 +644,11 @@ function get_item_elements($x,$allow_code = false) {
logger('get_item_elements: message length exceeds max_import_size: truncated');
}
+ if($maxlen && mb_strlen($arr['summary']) > $maxlen) {
+ $arr['summary'] = mb_substr($arr['summary'],0,$maxlen,'UTF-8');
+ logger('get_item_elements: message summary length exceeds max_import_size: truncated');
+ }
+
$arr['created'] = datetime_convert('UTC','UTC',$x['created']);
$arr['edited'] = datetime_convert('UTC','UTC',$x['edited']);
@@ -627,6 +671,7 @@ function get_item_elements($x,$allow_code = false) {
if(mb_strlen($arr['title']) > 255)
$arr['title'] = mb_substr($arr['title'],0,255);
+ $arr['uuid'] = (($x['uuid']) ? htmlspecialchars($x['uuid'], ENT_COMPAT,'UTF-8',false) : '');
$arr['app'] = (($x['app']) ? htmlspecialchars($x['app'], ENT_COMPAT,'UTF-8',false) : '');
$arr['route'] = (($x['route']) ? htmlspecialchars($x['route'], ENT_COMPAT,'UTF-8',false) : '');
$arr['mid'] = (($x['message_id']) ? htmlspecialchars($x['message_id'], ENT_COMPAT,'UTF-8',false) : '');
@@ -747,9 +792,10 @@ function get_item_elements($x,$allow_code = false) {
// Do this after signature checking as the original signature
// was generated on the escaped content.
- if($arr['mimetype'] === 'text/markdown')
+ if($arr['mimetype'] === 'text/markdown') {
+ $arr['summary'] = MarkdownSoap::unescape($arr['summary']);
$arr['body'] = MarkdownSoap::unescape($arr['body']);
-
+ }
if(array_key_exists('revision',$x)) {
// extended export encoding
@@ -1061,6 +1107,7 @@ function encode_item($item,$mirror = false) {
$x['item_blocked'] = $item['item_blocked'];
}
+ $x['uuid'] = $item['uuid'];
$x['message_id'] = $item['mid'];
$x['message_top'] = $item['parent_mid'];
$x['message_parent'] = $item['thr_parent'];
@@ -1071,6 +1118,7 @@ function encode_item($item,$mirror = false) {
$x['commented'] = $item['commented'];
$x['mimetype'] = $item['mimetype'];
$x['title'] = $item['title'];
+ $x['summary'] = $item['summary'];
$x['body'] = $item['body'];
$x['app'] = $item['app'];
$x['verb'] = $item['verb'];
@@ -1577,6 +1625,14 @@ function item_store($arr, $allow_exec = false, $deliver = true) {
'item' => $arr,
'allow_exec' => $allow_exec
];
+
+ if ($arr['item_type']==ITEM_TYPE_CUSTOM) {
+ /* Custom items are not stored by default
+ because they require an addon to process. */
+ $d['item']['cancel']=true;
+
+ call_hooks('item_custom',$d);
+ }
/**
* @hooks item_store
* Called when item_store() stores a record of type item.
@@ -1629,6 +1685,7 @@ function item_store($arr, $allow_exec = false, $deliver = true) {
}
$arr['title'] = ((array_key_exists('title',$arr) && strlen($arr['title'])) ? trim($arr['title']) : '');
+ $arr['summary'] = ((array_key_exists('summary',$arr) && strlen($arr['summary'])) ? trim($arr['summary']) : '');
$arr['body'] = ((array_key_exists('body',$arr) && strlen($arr['body'])) ? trim($arr['body']) : '');
$arr['allow_cid'] = ((x($arr,'allow_cid')) ? trim($arr['allow_cid']) : '');
@@ -1637,6 +1694,7 @@ function item_store($arr, $allow_exec = false, $deliver = true) {
$arr['deny_gid'] = ((x($arr,'deny_gid')) ? trim($arr['deny_gid']) : '');
$arr['postopts'] = ((x($arr,'postopts')) ? trim($arr['postopts']) : '');
$arr['route'] = ((x($arr,'route')) ? trim($arr['route']) : '');
+ $arr['uuid'] = ((x($arr,'uuid')) ? trim($arr['uuid']) : '');
$arr['item_private'] = ((x($arr,'item_private')) ? intval($arr['item_private']) : 0 );
$arr['item_wall'] = ((x($arr,'item_wall')) ? intval($arr['item_wall']) : 0 );
$arr['item_type'] = ((x($arr,'item_type')) ? intval($arr['item_type']) : 0 );
@@ -1649,6 +1707,7 @@ function item_store($arr, $allow_exec = false, $deliver = true) {
// apply the input filter here
+ $arr['summary'] = trim(z_input_filter($arr['summary'],$arr['mimetype'],$allow_exec));
$arr['body'] = trim(z_input_filter($arr['body'],$arr['mimetype'],$allow_exec));
item_sign($arr);
@@ -1999,8 +2058,20 @@ function item_store($arr, $allow_exec = false, $deliver = true) {
*/
call_hooks('post_remote_end', $arr);
+ /**
+ * @hooks item_stored
+ * Called after new item is stored in the database.
+ * (By this time we have an item_id and other frequently needed info.)
+ */
+ call_hooks('item_stored',$arr);
+
item_update_parent_commented($arr);
+
+ if(strpos($arr['body'],'[embed]') !== false) {
+ Master::Summon([ 'Cache_embeds', $current_post ]);
+ }
+
// If _creating_ a deleted item, don't propagate it further or send out notifications.
// We need to store the item details just in case the delete came in before the original post,
// so that we have an item in the DB that's marked deleted and won't store a fresh post
@@ -2032,6 +2103,15 @@ function item_store_update($arr, $allow_exec = false, $deliver = true) {
'item' => $arr,
'allow_exec' => $allow_exec
];
+
+ if ($arr['item_type']==ITEM_TYPE_CUSTOM) {
+ /* Custom items are not stored by default
+ because they require an addon to process. */
+ $d['item']['cancel']=true;
+
+ call_hooks('item_custom_update',$d);
+ }
+
/**
* @hooks item_store_update
* Called when item_store_update() is called to update a stored item. It
@@ -2094,6 +2174,7 @@ function item_store_update($arr, $allow_exec = false, $deliver = true) {
// apply the input filter here
+ $arr['summary'] = trim(z_input_filter($arr['summary'],$arr['mimetype'],$allow_exec));
$arr['body'] = trim(z_input_filter($arr['body'],$arr['mimetype'],$allow_exec));
item_sign($arr);
@@ -2170,6 +2251,7 @@ function item_store_update($arr, $allow_exec = false, $deliver = true) {
$arr['route'] = ((array_key_exists('route',$arr)) ? trim($arr['route']) : $orig[0]['route']);
$arr['location'] = ((x($arr,'location')) ? notags(trim($arr['location'])) : $orig[0]['location']);
+ $arr['uuid'] = ((x($arr,'uuid')) ? notags(trim($arr['uuid'])) : $orig[0]['uuid']);
$arr['coord'] = ((x($arr,'coord')) ? notags(trim($arr['coord'])) : $orig[0]['coord']);
$arr['verb'] = ((x($arr,'verb')) ? notags(trim($arr['verb'])) : $orig[0]['verb']);
$arr['obj_type'] = ((x($arr,'obj_type')) ? notags(trim($arr['obj_type'])) : $orig[0]['obj_type']);
@@ -2320,6 +2402,19 @@ function item_store_update($arr, $allow_exec = false, $deliver = true) {
*/
call_hooks('post_remote_update_end', $arr);
+ /**
+ * @hooks item_stored_update
+ * Called after updated item is stored in the database.
+ */
+ call_hooks('item_stored_update',$arr);
+
+ if(strpos($arr['body'],'[embed]') !== false) {
+ Master::Summon([ 'Cache_embeds', $orig_post_id ]);
+ }
+
+
+
+
if($deliver) {
send_status_notifications($orig_post_id,$arr);
tag_deliver($uid,$orig_post_id);
@@ -2336,15 +2431,15 @@ function item_update_parent_commented($item) {
$update_parent = true;
- // update the commented timestamp on the parent
+ // update the commented timestamp on the parent
// - unless this is a moderated comment or a potential clone of an older item
- // which we don't wish to bring to the surface. As the queue only holds deliveries
- // for 3 days, it's suspected of being an older cloned item if the creation time
+ // which we don't wish to bring to the surface. As the queue only holds deliveries
+ // for 3 days, it's suspected of being an older cloned item if the creation time
//is older than that.
if(intval($item['item_blocked']) === ITEM_MODERATED)
$update_parent = false;
-
+
if($item['created'] < datetime_convert('','','now - 4 days'))
$update_parent = false;
@@ -2940,7 +3035,9 @@ function tgroup_check($uid, $item) {
* @param array $channel
* @param array $item
* @param int $item_id
- * @param boolean $parent
+ * @param array $parent
+ * @param boolean $edit (optional) default false
+ * @return void
*/
function start_delivery_chain($channel, $item, $item_id, $parent, $edit = false) {
@@ -2975,7 +3072,7 @@ function start_delivery_chain($channel, $item, $item_id, $parent, $edit = false)
}
// This will change the author to the post owner. Useful for RSS feeds which are to be syndicated
- // to federated platforms which can't verify the identity of the author.
+ // to federated platforms which can't verify the identity of the author.
// This MAY cause you to run afoul of copyright law.
$rewrite_author = intval(get_abconfig($channel['channel_id'],$item['owner_xchan'],'system','rself'));
@@ -3488,7 +3585,7 @@ function item_expire($uid,$days,$comment_days = 7) {
if(! $comment_days)
$comment_days = 7;
-
+
// $expire_network_only = save your own wall posts
// and just expire conversations started by others
// do not enable this until we can pass bulk delete messages through zot
@@ -3789,6 +3886,8 @@ function delete_item_lowlevel($item, $stage = DROPITEM_NORMAL, $force = false) {
intval(TERM_OBJ_POST)
);
+ ThreadListener::delete_by_target($item['mid']);
+
/** @FIXME remove notifications for this item */
return true;
@@ -4483,7 +4582,7 @@ function set_linkified_perms($linkified, &$str_contact_allow, &$str_group_allow,
$first_access_tag = true;
foreach($linkified as $x) {
- $access_tag = $x['access_tag'];
+ $access_tag = $x['success']['access_tag'];
if(($access_tag) && (! $parent_item)) {
logger('access_tag: ' . $tag . ' ' . print_r($access_tag,true), LOGGER_DATA);
if ($first_access_tag && (! get_pconfig($profile_uid,'system','no_private_mention_acl_override'))) {
@@ -4589,7 +4688,7 @@ function sync_an_item($channel_id,$item_id) {
if($r) {
xchan_query($r);
$sync_item = fetch_post_tags($r);
- build_sync_packet($channel_d,array('item' => array(encode_item($sync_item[0],true))));
+ build_sync_packet($channel_id, array('item' => array(encode_item($sync_item[0],true))));
}
}
@@ -4746,7 +4845,8 @@ function item_create_edit_activity($post) {
$new_item['id'] = 0;
$new_item['parent'] = 0;
- $new_item['mid'] = item_message_id();
+ $new_item['uuid'] = item_message_id();
+ $new_item['mid'] = z_root() . '/item/' . $new_item['uuid'];
$new_item['body'] = sprintf( t('[Edited %s]'), (($update_item['item_thread_top']) ? t('Post','edit_activity') : t('Comment','edit_activity')));
@@ -4827,7 +4927,7 @@ function copy_of_pubitem($channel,$mid) {
dbesc($mid),
intval($syschan['channel_id'])
);
-
+
if($r) {
$items = fetch_post_tags($r,true);
foreach($items as $rv) {
@@ -4853,5 +4953,5 @@ function copy_of_pubitem($channel,$mid) {
}
}
- return $result;
+ return $result;
}
diff --git a/include/message.php b/include/message.php
index 936c01631..037c59c60 100644
--- a/include/message.php
+++ b/include/message.php
@@ -44,7 +44,7 @@ function send_message($uid = 0, $recipient = '', $body = '', $subject = '', $rep
$body = cleanup_bbcode($body);
- $results = linkify_tags($a, $body, $uid);
+ $results = linkify_tags($body, $uid);
if(! $raw) {
if(preg_match_all("/\[attachment\](.*?)\[\/attachment\]/",((strpos($body,'[/crypt]')) ? $_POST['media_str'] : $body),$match)) {
diff --git a/include/network.php b/include/network.php
index 63fe9d9c4..12f2ad4e9 100644
--- a/include/network.php
+++ b/include/network.php
@@ -1,4 +1,8 @@
<?php
+
+use Zotlabs\Lib\Zotfinger;
+use Zotlabs\Lib\Libzot;
+
/**
* @file include/network.php
* @brief Network related functions.
@@ -110,6 +114,13 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
@curl_setopt($ch, CURLOPT_TIMEOUT, (($curl_time !== false) ? $curl_time : 60));
}
+ if(x($opts,'connecttimeout') && intval($opts['connecttimeout'])) {
+ @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, intval($opts['connecttimeout']));
+ }
+ else {
+ $curl_contime = intval(@get_config('system','curl_connecttimeout'));
+ @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, (($curl_contime !== false) ? $curl_contime : 30));
+ }
if(x($opts,'http_auth')) {
// "username" . ':' . "password"
@@ -324,6 +335,7 @@ function z_post_url($url, $params, $redirects = 0, $opts = array()) {
// Pull out multiple headers, e.g. proxy and continuation headers
// allow for HTTP/2.x without fixing code
+
while(preg_match('/^HTTP\/[1-3](\.\d)? [1-5][0-9][0-9]/',$base)) {
$chunk = substr($base,0,strpos($base,"\r\n\r\n")+4);
$header .= $chunk;
@@ -1108,6 +1120,31 @@ function discover_by_webbie($webbie, $protocol = '') {
}
}
}
+
+ foreach($x['links'] as $link) {
+ if(array_key_exists('rel',$link)) {
+ if($link['rel'] === PROTOCOL_ZOT6 && ((! $protocol) || (strtolower($protocol) === 'zot6'))) {
+ logger('zot6 found for ' . $webbie, LOGGER_DEBUG);
+ $record = Zotfinger::exec($link['href']);
+
+ // Check the HTTP signature
+
+ $hsig = $record['signature'];
+ if($hsig && ($hsig['signer'] === $url || $hsig['signer'] === $link['href']) && $hsig['header_valid'] === true && $hsig['content_valid'] === true)
+ $hsig_valid = true;
+
+ if(! $hsig_valid) {
+ logger('http signature not valid: ' . print_r($hsig,true));
+ continue;
+ }
+
+ $x = Libzot::import_xchan($record['data']);
+ if($x['success']) {
+ return $x['hash'];
+ }
+ }
+ }
+ }
}
logger('webfinger: ' . print_r($x,true), LOGGER_DATA, LOG_INFO);
diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php
index b70a13622..c11580bdc 100644
--- a/include/photo/photo_driver.php
+++ b/include/photo/photo_driver.php
@@ -1,18 +1,34 @@
-<?php /** @file */
+<?php
+use Zotlabs\Photo\PhotoDriver;
+use Zotlabs\Photo\PhotoGd;
+use Zotlabs\Photo\PhotoImagick;
+
+/**
+ * @brief Return a PhotoDriver object.
+ *
+ * Use this factory when manipulating images.
+ *
+ * Return a photo driver object implementing ImageMagick or GD.
+ *
+ * @param string $data Image data
+ * @param string $type Mimetype
+ * @return null|PhotoDriver
+ * NULL if unsupported image type or failure, otherwise photo driver object
+ */
function photo_factory($data, $type = null) {
$ph = null;
+ $m = null;
-
- $unsupported_types = array(
+ $unsupported_types = [
'image/bmp',
'image/vnd.microsoft.icon',
'image/tiff',
- 'image/svg+xml'
- );
+ 'image/svg+xml',
+ ];
- if($type && in_array(strtolower($type),$unsupported_types)) {
- logger('photo_factory: unsupported image type');
+ if($type && in_array(strtolower($type), $unsupported_types)) {
+ logger('Unsupported image type ' . $type);
return null;
}
@@ -21,481 +37,62 @@ function photo_factory($data, $type = null) {
if(class_exists('Imagick') && !$ignore_imagick) {
$v = Imagick::getVersion();
preg_match('/ImageMagick ([0-9]+\.[0-9]+\.[0-9]+)/', $v['versionString'], $m);
- if(version_compare($m[1],'6.6.7') >= 0) {
- require_once('include/photo/photo_imagick.php');
- $ph = new photo_imagick($data,$type);
- }
- else {
+ if(version_compare($m[1], '6.6.7') >= 0) {
+ $ph = new PhotoImagick($data, $type);
+ } else {
// earlier imagick versions have issues with scaling png's
// don't log this because it will just fill the logfile.
- // leave this note here so those who are looking for why
+ // leave this note here so those who are looking for why
// we aren't using imagick can find it
}
}
if(! $ph) {
- require_once('include/photo/photo_gd.php');
- $ph = new photo_gd($data,$type);
+ $ph = new PhotoGd($data, $type);
}
return $ph;
}
-
-
-abstract class photo_driver {
-
- protected $image;
- protected $width;
- protected $height;
- protected $valid;
- protected $type;
- protected $types;
-
- abstract function supportedTypes();
-
- abstract function load($data,$type);
-
- abstract function destroy();
-
- abstract function setDimensions();
-
- abstract function getImage();
-
- abstract function doScaleImage($new_width,$new_height);
-
- abstract function rotate($degrees);
-
- abstract function flip($horiz = true, $vert = false);
-
- abstract function cropImage($max,$x,$y,$w,$h);
-
- abstract function cropImageRect($maxx,$maxy,$x,$y,$w,$h);
-
- abstract function imageString();
-
- abstract function clearexif();
-
- public function __construct($data, $type='') {
- $this->types = $this->supportedTypes();
- if (! array_key_exists($type,$this->types)){
- $type='image/jpeg';
- }
- $this->type = $type;
- $this->valid = false;
- $this->load($data,$type);
- }
-
- public function __destruct() {
- if($this->is_valid())
- $this->destroy();
- }
-
- public function is_valid() {
- return $this->valid;
- }
-
- public function getWidth() {
- if(!$this->is_valid())
- return FALSE;
- return $this->width;
- }
-
- public function getHeight() {
- if(!$this->is_valid())
- return FALSE;
- return $this->height;
- }
-
-
- public function saveImage($path) {
- if(!$this->is_valid())
- return FALSE;
- file_put_contents($path, $this->imageString());
- }
-
-
- public function getType() {
- if(!$this->is_valid())
- return FALSE;
-
- return $this->type;
- }
-
- public function getExt() {
- if(!$this->is_valid())
- return FALSE;
-
- return $this->types[$this->getType()];
- }
-
- /**
- * @brief scale image
- * int $max maximum pixel size in either dimension
- * boolean $float_height - if true allow height to float to any length on tall images,
- * constraining only the width
- */
-
- public function scaleImage($max, $float_height = true) {
- if(!$this->is_valid())
- return FALSE;
-
- $width = $this->width;
- $height = $this->height;
-
- $dest_width = $dest_height = 0;
-
- if((! $width)|| (! $height))
- return FALSE;
-
- if($width > $max && $height > $max) {
-
- // very tall image (greater than 16:9)
- // constrain the width - let the height float.
-
- if(((($height * 9) / 16) > $width) && ($float_height)) {
- $dest_width = $max;
- $dest_height = intval(( $height * $max ) / $width);
- }
-
- // else constrain both dimensions
-
- elseif($width > $height) {
- $dest_width = $max;
- $dest_height = intval(( $height * $max ) / $width);
- }
- else {
- $dest_width = intval(( $width * $max ) / $height);
- $dest_height = $max;
- }
- }
- else {
- if( $width > $max ) {
- $dest_width = $max;
- $dest_height = intval(( $height * $max ) / $width);
- }
- else {
- if( $height > $max ) {
-
- // very tall image (greater than 16:9)
- // but width is OK - don't do anything
-
- if(((($height * 9) / 16) > $width) && ($float_height)) {
- $dest_width = $width;
- $dest_height = $height;
- }
- else {
- $dest_width = intval(( $width * $max ) / $height);
- $dest_height = $max;
- }
- }
- else {
- $dest_width = $width;
- $dest_height = $height;
- }
- }
- }
- $this->doScaleImage($dest_width,$dest_height);
- }
-
- public function scaleImageUp($min) {
- if(!$this->is_valid())
- return FALSE;
-
-
- $width = $this->width;
- $height = $this->height;
-
- $dest_width = $dest_height = 0;
-
- if((! $width)|| (! $height))
- return FALSE;
-
- if($width < $min && $height < $min) {
- if($width > $height) {
- $dest_width = $min;
- $dest_height = intval(( $height * $min ) / $width);
- }
- else {
- $dest_width = intval(( $width * $min ) / $height);
- $dest_height = $min;
- }
- }
- else {
- if( $width < $min ) {
- $dest_width = $min;
- $dest_height = intval(( $height * $min ) / $width);
- }
- else {
- if( $height < $min ) {
- $dest_width = intval(( $width * $min ) / $height);
- $dest_height = $min;
- }
- else {
- $dest_width = $width;
- $dest_height = $height;
- }
- }
- }
- $this->doScaleImage($dest_width,$dest_height);
- }
-
-
- public function scaleImageSquare($dim) {
- if(!$this->is_valid())
- return FALSE;
- $this->doScaleImage($dim,$dim);
- }
-
-
- /**
- * @brief reads exif data from filename
- */
-
- public function exif($filename) {
-
-
- if((! function_exists('exif_read_data'))
- || (! in_array($this->getType(), [ 'image/jpeg' , 'image/tiff'] ))) {
- return false;
- }
-
- /*
- * PHP 7.2 allows you to use a stream resource, which should reduce/avoid
- * memory exhaustion on large images.
- */
-
- if(version_compare(PHP_VERSION,'7.2.0') >= 0) {
- $f = @fopen($filename,'rb');
- }
- else {
- $f = $filename;
- }
-
- if($f) {
- return @exif_read_data($f,null,true);
- }
-
- return false;
- }
-
- /**
- * @brief orients current image based on exif orientation information
- */
-
- public function orient($exif) {
-
- if(! ($this->is_valid() && $exif)) {
- return false;
- }
-
- $ort = ((array_key_exists('IFD0',$exif)) ? $exif['IFD0']['Orientation'] : $exif['Orientation']);
-
- if(! $ort) {
- return false;
- }
-
- switch($ort) {
- case 1: // nothing
- break;
- case 2: // horizontal flip
- $this->flip();
- break;
- case 3: // 180 rotate left
- $this->rotate(180);
- break;
- case 4: // vertical flip
- $this->flip(false, true);
- break;
- case 5: // vertical flip + 90 rotate right
- $this->flip(false, true);
- $this->rotate(-90);
- break;
- case 6: // 90 rotate right
- $this->rotate(-90);
- break;
- case 7: // horizontal flip + 90 rotate right
- $this->flip();
- $this->rotate(-90);
- break;
- case 8: // 90 rotate left
- $this->rotate(90);
- break;
- default:
- break;
- }
-
- return true;
- }
-
-
- public function save($arr) {
-
- if(! $this->is_valid()) {
- logger('attempt to store invalid photo.');
- return false;
- }
-
- $p = array();
-
- $p['aid'] = ((intval($arr['aid'])) ? intval($arr['aid']) : 0);
- $p['uid'] = ((intval($arr['uid'])) ? intval($arr['uid']) : 0);
- $p['xchan'] = (($arr['xchan']) ? $arr['xchan'] : '');
- $p['resource_id'] = (($arr['resource_id']) ? $arr['resource_id'] : '');
- $p['filename'] = (($arr['filename']) ? $arr['filename'] : '');
- $p['album'] = (($arr['album']) ? $arr['album'] : '');
- $p['imgscale'] = ((intval($arr['imgscale'])) ? intval($arr['imgscale']) : 0);
- $p['allow_cid'] = (($arr['allow_cid']) ? $arr['allow_cid'] : '');
- $p['allow_gid'] = (($arr['allow_gid']) ? $arr['allow_gid'] : '');
- $p['deny_cid'] = (($arr['deny_cid']) ? $arr['deny_cid'] : '');
- $p['deny_gid'] = (($arr['deny_gid']) ? $arr['deny_gid'] : '');
- $p['edited'] = (($arr['edited']) ? $arr['edited'] : datetime_convert());
- $p['title'] = (($arr['title']) ? $arr['title'] : '');
- $p['description'] = (($arr['description']) ? $arr['description'] : '');
- $p['photo_usage'] = intval($arr['photo_usage']);
- $p['os_storage'] = intval($arr['os_storage']);
- $p['os_path'] = $arr['os_path'];
- $p['os_syspath'] = ((array_key_exists('os_syspath',$arr)) ? $arr['os_syspath'] : '');
- $p['display_path'] = (($arr['display_path']) ? $arr['display_path'] : '');
- $p['width'] = (($arr['width']) ? $arr['width'] : $this->getWidth());
- $p['height'] = (($arr['height']) ? $arr['height'] : $this->getHeight());
-
- if(! intval($p['imgscale']))
- logger('save: ' . print_r($arr,true), LOGGER_DATA);
-
- $x = q("select id, created from photo where resource_id = '%s' and uid = %d and xchan = '%s' and imgscale = %d limit 1",
- dbesc($p['resource_id']),
- intval($p['uid']),
- dbesc($p['xchan']),
- intval($p['imgscale'])
- );
-
- if($x) {
- $p['created'] = (($x['created']) ? $x['created'] : $p['edited']);
- $r = q("UPDATE photo set
- aid = %d,
- uid = %d,
- xchan = '%s',
- resource_id = '%s',
- created = '%s',
- edited = '%s',
- filename = '%s',
- mimetype = '%s',
- album = '%s',
- height = %d,
- width = %d,
- content = '%s',
- os_storage = %d,
- filesize = %d,
- imgscale = %d,
- photo_usage = %d,
- title = '%s',
- description = '%s',
- os_path = '%s',
- display_path = '%s',
- allow_cid = '%s',
- allow_gid = '%s',
- deny_cid = '%s',
- deny_gid = '%s'
- where id = %d",
-
- intval($p['aid']),
- intval($p['uid']),
- dbesc($p['xchan']),
- dbesc($p['resource_id']),
- dbesc($p['created']),
- dbesc($p['edited']),
- dbesc(basename($p['filename'])),
- dbesc($this->getType()),
- dbesc($p['album']),
- intval($p['height']),
- intval($p['width']),
- (intval($p['os_storage']) ? dbescbin($p['os_syspath']) : dbescbin($this->imageString())),
- intval($p['os_storage']),
- (intval($p['os_storage']) ? @filesize($p['os_syspath']) : strlen($this->imageString())),
- intval($p['imgscale']),
- intval($p['photo_usage']),
- dbesc($p['title']),
- dbesc($p['description']),
- dbesc($p['os_path']),
- dbesc($p['display_path']),
- dbesc($p['allow_cid']),
- dbesc($p['allow_gid']),
- dbesc($p['deny_cid']),
- dbesc($p['deny_gid']),
- 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' )",
- intval($p['aid']),
- intval($p['uid']),
- dbesc($p['xchan']),
- dbesc($p['resource_id']),
- dbesc($p['created']),
- dbesc($p['edited']),
- dbesc(basename($p['filename'])),
- dbesc($this->getType()),
- dbesc($p['album']),
- intval($p['height']),
- intval($p['width']),
- (intval($p['os_storage']) ? dbescbin($p['os_syspath']) : dbescbin($this->imageString())),
- intval($p['os_storage']),
- (intval($p['os_storage']) ? @filesize($p['os_syspath']) : strlen($this->imageString())),
- intval($p['imgscale']),
- intval($p['photo_usage']),
- dbesc($p['title']),
- dbesc($p['description']),
- dbesc($p['os_path']),
- dbesc($p['display_path']),
- dbesc($p['allow_cid']),
- dbesc($p['allow_gid']),
- dbesc($p['deny_cid']),
- dbesc($p['deny_gid'])
- );
- }
- logger('photo save ' . $p['imgscale'] . ' returned ' . intval($r));
- return $r;
- }
-
-}
-
-
-
/**
- * Guess image mimetype from filename or from Content-Type header
+ * @brief Guess image mimetype from filename or from Content-Type header.
*
- * @arg $filename string Image filename
- * @arg $headers string Headers to check for Content-Type (from curl request)
+ * @param string $filename
+ * Image filename
+ * @param string $headers (optional)
+ * Headers to check for Content-Type (from curl request)
+ * @return null|string Guessed mimetype
*/
-
function guess_image_type($filename, $headers = '') {
// logger('Photo: guess_image_type: '.$filename . ($headers?' from curl headers':''), LOGGER_DEBUG);
$type = null;
- if ($headers) {
+ $m = null;
- $hdrs=array();
- $h = explode("\n",$headers);
+ if($headers) {
+ $hdrs = [];
+ $h = explode("\n", $headers);
foreach ($h as $l) {
- list($k,$v) = array_map("trim", explode(":", trim($l), 2));
+ list($k, $v) = array_map('trim', explode(':', trim($l), 2));
$hdrs[strtolower($k)] = $v;
}
- logger('Curl headers: '.var_export($hdrs, true), LOGGER_DEBUG);
- if (array_key_exists('content-type', $hdrs))
- $type = $hdrs['content-type'];
+ logger('Curl headers: ' .var_export($hdrs, true), LOGGER_DEBUG);
+ if(array_key_exists('content-type', $hdrs)) {
+ $ph = photo_factory('');
+ $types = $ph->supportedTypes();
+
+ if(array_key_exists($hdrs['content-type'], $types))
+ $type = $hdrs['content-type'];
+ }
}
- if (is_null($type)){
+ if(is_null($type)){
$ignore_imagick = get_config('system', 'ignore_imagick');
// Guessing from extension? Isn't that... dangerous?
if(class_exists('Imagick') && file_exists($filename) && is_readable($filename) && !$ignore_imagick) {
$v = Imagick::getVersion();
preg_match('/ImageMagick ([0-9]+\.[0-9]+\.[0-9]+)/', $v['versionString'], $m);
- if(version_compare($m[1],'6.6.7') >= 0) {
+ if(version_compare($m[1], '6.6.7') >= 0) {
/**
* Well, this not much better,
* but at least it comes from the data inside the image,
@@ -507,7 +104,7 @@ function guess_image_type($filename, $headers = '') {
else {
// earlier imagick versions have issues with scaling png's
// don't log this because it will just fill the logfile.
- // leave this note here so those who are looking for why
+ // leave this note here so those who are looking for why
// we aren't using imagick can find it
}
}
@@ -523,7 +120,7 @@ function guess_image_type($filename, $headers = '') {
}
}
- if(is_null($type) && (strpos($filename,'http') === false)) {
+ if(is_null($type) && (strpos($filename, 'http') === false)) {
$size = getimagesize($filename);
$ph = photo_factory('');
$types = $ph->supportedTypes();
@@ -542,33 +139,36 @@ function guess_image_type($filename, $headers = '') {
}
logger('Photo: guess_image_type: filename = ' . $filename . ' type = ' . $type, LOGGER_DEBUG);
- return $type;
+ return $type;
}
-
-function delete_thing_photo($url,$ob_hash) {
+/**
+ * @brief Delete thing photo from database.
+ *
+ * @param string $url
+ * @param string $ob_hash
+ * @return void
+ */
+function delete_thing_photo($url, $ob_hash) {
$hash = basename($url);
- $hash = substr($hash,0,strpos($hash,'-'));
+ $hash = substr($hash, 0, strpos($hash, '-'));
- // hashes should be 32 bytes.
+ // hashes should be 32 bytes.
if((! $ob_hash) || (strlen($hash) < 16))
- return;
+ return;
- $r = q("delete from photo where xchan = '%s' and photo_usage = %d and resource_id = '%s'",
+ q("delete from photo where xchan = '%s' and photo_usage = %d and resource_id = '%s'",
dbesc($ob_hash),
intval(PHOTO_THING),
dbesc($hash)
);
-
}
-
-
/**
- * @brief fetches an photo from external site and prepares its miniatures.
+ * @brief Fetches a photo from external site and prepares its miniatures.
*
* @param string $photo
* external URL to fetch base image
@@ -587,224 +187,215 @@ function delete_thing_photo($url,$ob_hash) {
* * \e boolean \b 4 => TRUE if fetch failure
* * \e string \b 5 => modification date
*/
+function import_xchan_photo($photo, $xchan, $thing = false, $force = false) {
+ $modified = '';
+ $o = null;
+
+ $flags = (($thing) ? PHOTO_THING : PHOTO_XCHAN);
+ $album = (($thing) ? 'Things' : 'Contact Photos');
+
+ logger('Updating channel photo from ' . $photo . ' for ' . $xchan, LOGGER_DEBUG);
+
+ if($thing) {
+ $hash = photo_new_resource();
+ } else {
+ $r = q("select resource_id, edited, mimetype from photo where xchan = '%s' and photo_usage = %d and imgscale = 4 limit 1", dbesc($xchan), intval(PHOTO_XCHAN));
+ if($r) {
+ $hash = $r[0]['resource_id'];
+ $modified = $r[0]['edited'];
+ $type = $r[0]['mimetype'];
+ } else {
+ $hash = photo_new_resource();
+ }
+ }
-function import_xchan_photo($photo,$xchan,$thing = false,$force = false) {
-
- $modified = '';
-
- $flags = (($thing) ? PHOTO_THING : PHOTO_XCHAN);
- $album = (($thing) ? 'Things' : 'Contact Photos');
-
- logger('import_xchan_photo: updating channel photo from ' . $photo . ' for ' . $xchan, LOGGER_DEBUG);
-
- if($thing) {
- $hash = photo_new_resource();
- }
- else {
- $r = q("select resource_id, edited, mimetype from photo where xchan = '%s' and photo_usage = %d and imgscale = 4 limit 1",
- dbesc($xchan),
- intval(PHOTO_XCHAN)
- );
- if($r) {
- $hash = $r[0]['resource_id'];
- $modified = $r[0]['edited'];
- $type = $r[0]['mimetype'];
- }
- else {
- $hash = photo_new_resource();
- }
- }
-
- $photo_failure = false;
- $img_str = '';
-
- if($photo) {
- $filename = basename($photo);
-
- if($force || $modified == '') {
- $result = z_fetch_url($photo,true);
- }
- else {
- $h = array('headers' => array("If-Modified-Since: " . gmdate("D, d M Y H:i:s", strtotime($modified . "Z")) . " GMT"));
- $result = z_fetch_url($photo,true,0,$h);
- }
-
- if($result['success']) {
- $img_str = $result['body'];
- $type = guess_image_type($photo, $result['header']);
- $modified = gmdate('Y-m-d H:i:s', (preg_match('/last-modified: (.+) \S+/i', $result['header'], $o) ? strtotime($o[1] . 'Z') : time()));
-
- if(is_null($type))
- $photo_failure = true;
- }
- elseif($result['return_code'] == 304) {
- $photo = z_root() . '/photo/' . $hash . '-4';
- $thumb = z_root() . '/photo/' . $hash . '-5';
- $micro = z_root() . '/photo/' . $hash . '-6';
- }
- else {
- $photo_failure = true;
- }
-
- }
- else
- $photo_failure = true;
-
- if(! $photo_failure && $result['return_code'] != 304) {
- $img = photo_factory($img_str, $type);
- if($img->is_valid()) {
- $width = $img->getWidth();
- $height = $img->getHeight();
-
- if($width && $height) {
- if(($width / $height) > 1.2) {
- // crop out the sides
- $margin = $width - $height;
- $img->cropImage(300,($margin / 2),0,$height,$height);
- }
- elseif(($height / $width) > 1.2) {
- // crop out the bottom
- $margin = $height - $width;
- $img->cropImage(300,0,0,$width,$width);
-
- }
- else {
- $img->scaleImageSquare(300);
- }
-
- }
- else
- $photo_failure = true;
-
- $p = array(
- 'xchan' => $xchan,
- 'resource_id' => $hash,
- 'filename' => basename($photo),
- 'album' => $album,
- 'photo_usage' => $flags,
- 'imgscale' => 4,
- 'edited' => $modified
- );
-
- $r = $img->save($p);
-
- if($r === false)
- $photo_failure = true;
-
- $img->scaleImage(80);
- $p['imgscale'] = 5;
-
- $r = $img->save($p);
-
- if($r === false)
- $photo_failure = true;
-
- $img->scaleImage(48);
- $p['imgscale'] = 6;
-
- $r = $img->save($p);
-
- if($r === false)
- $photo_failure = true;
-
- $photo = z_root() . '/photo/' . $hash . '-4';
- $thumb = z_root() . '/photo/' . $hash . '-5';
- $micro = z_root() . '/photo/' . $hash . '-6';
- }
- else {
- logger('import_xchan_photo: invalid image from ' . $photo);
- $photo_failure = true;
- }
- }
- if($photo_failure) {
- $default = get_default_profile_photo();
- $photo = z_root() . '/' . $default;
- $thumb = z_root() . '/' . get_default_profile_photo(80);
- $micro = z_root() . '/' . get_default_profile_photo(48);
- $type = 'image/png';
- $modified = gmdate('Y-m-d H:i:s', filemtime($default));
- }
-
- logger('HTTP code: ' . $result['return_code'] . '; modified: ' . $modified . '; failure: ' . ($photo_failure ? 'yes' : 'no') . '; URL: ' . $photo, LOGGER_DEBUG);
- return(array($photo,$thumb,$micro,$type,$photo_failure,$modified));
-
-}
-
-function import_channel_photo_from_url($photo,$aid,$uid) {
+ $photo_failure = false;
+ $img_str = '';
if($photo) {
- $filename = basename($photo);
- $result = z_fetch_url($photo,true);
+ if($force || $modified == '') {
+ $result = z_fetch_url($photo, true);
+ } else {
+ $h = [
+ 'headers' => [
+ 'If-Modified-Since: ' . gmdate('D, d M Y H:i:s', strtotime($modified . 'Z')) . ' GMT'
+ ]
+ ];
+ $result = z_fetch_url($photo, true, 0, $h);
+ }
if($result['success']) {
$img_str = $result['body'];
$type = guess_image_type($photo, $result['header']);
+ $modified = gmdate('Y-m-d H:i:s', (preg_match('/last-modified: (.+) \S+/i', $result['header'], $o) ? strtotime($o[1] . 'Z') : time()));
+ if(is_null($type))
+ $photo_failure = true;
+ } elseif($result['return_code'] == 304) {
+ $photo = z_root() . '/photo/' . $hash . '-4';
+ $thumb = z_root() . '/photo/' . $hash . '-5';
+ $micro = z_root() . '/photo/' . $hash . '-6';
+ } else {
+ $photo_failure = true;
+ }
+ } else {
+ $photo_failure = true;
+ }
- if(is_null($type))
- $photo_failure = true;
+ if(!$photo_failure && $result['return_code'] != 304) {
+ $img = photo_factory($img_str, $type);
+ if($img->is_valid()) {
+ $width = $img->getWidth();
+ $height = $img->getHeight();
+
+ if($width && $height) {
+ if(($width / $height) > 1.2) {
+ // crop out the sides
+ $margin = $width - $height;
+ $img->cropImage(300, ($margin / 2), 0, $height, $height);
+ } elseif(($height / $width) > 1.2) {
+ // crop out the bottom
+ $margin = $height - $width;
+ $img->cropImage(300, 0, 0, $width, $width);
+ } else {
+ $img->scaleImageSquare(300);
+ }
+ } else {
+ $photo_failure = true;
+ }
+
+ $p = [
+ 'xchan' => $xchan,
+ 'resource_id' => $hash,
+ 'filename' => basename($photo),
+ 'album' => $album,
+ 'photo_usage' => $flags,
+ 'imgscale' => 4,
+ 'edited' => $modified,
+ ];
+
+ $r = $img->save($p);
+ if($r === false)
+ $photo_failure = true;
+
+ $img->scaleImage(80);
+ $p['imgscale'] = 5;
+ $r = $img->save($p);
+ if($r === false)
+ $photo_failure = true;
+
+ $img->scaleImage(48);
+ $p['imgscale'] = 6;
+ $r = $img->save($p);
+ if($r === false)
+ $photo_failure = true;
+
+ $photo = z_root() . '/photo/' . $hash . '-4';
+ $thumb = z_root() . '/photo/' . $hash . '-5';
+ $micro = z_root() . '/photo/' . $hash . '-6';
+ } else {
+ logger('Invalid image from ' . $photo);
+ $photo_failure = true;
}
}
- else {
- $photo_failure = true;
+ if($photo_failure) {
+ $default = get_default_profile_photo();
+ $photo = z_root() . '/' . $default;
+ $thumb = z_root() . '/' . get_default_profile_photo(80);
+ $micro = z_root() . '/' . get_default_profile_photo(48);
+ $type = 'image/png';
+ $modified = gmdate('Y-m-d H:i:s', filemtime($default));
}
- import_channel_photo($img_str,$type,$aid,$uid);
+ logger('HTTP code: ' . $result['return_code'] . '; modified: ' . $modified
+ . '; failure: ' . ($photo_failure ? 'yes' : 'no') . '; URL: ' . $photo, LOGGER_DEBUG);
- return $type;
+ return([$photo, $thumb, $micro, $type, $photo_failure, $modified]);
}
+/**
+ * @brief Import channel photo from a URL.
+ *
+ * @param string $photo URL to a photo
+ * @param int $aid
+ * @param int $uid channel_id
+ * @return null|string Guessed image mimetype or null.
+ */
+function import_channel_photo_from_url($photo, $aid, $uid) {
+ $type = null;
-function import_channel_photo($photo,$type,$aid,$uid) {
+ if($photo) {
+ $result = z_fetch_url($photo, true);
+
+ if($result['success']) {
+ $img_str = $result['body'];
+ $type = guess_image_type($photo, $result['header']);
- logger('import_channel_photo: importing channel photo for ' . $uid, LOGGER_DEBUG);
+ import_channel_photo($img_str, $type, $aid, $uid);
+ }
+ }
- $hash = photo_new_resource();
+ return $type;
+}
- $photo_failure = false;
+/**
+ * @brief Import a channel photo and prepare its miniatures.
+ *
+ * @param string $photo Image data
+ * @param string $type
+ * @param int $aid
+ * @param int $uid channel_id
+ * @return boolean|string false on failure, otherwise resource_id of photo
+ */
+function import_channel_photo($photo, $type, $aid, $uid) {
+ logger('Importing channel photo for ' . $uid, LOGGER_DEBUG);
+ $photo_failure = false;
+ $hash = photo_new_resource();
$filename = $hash;
$img = photo_factory($photo, $type);
if($img->is_valid()) {
+ // config array for image save method
+ $p = [
+ 'aid' => $aid,
+ 'uid' => $uid,
+ 'resource_id' => $hash,
+ 'filename' => $filename,
+ 'album' => t('Profile Photos'),
+ 'photo_usage' => PHOTO_PROFILE,
+ 'imgscale' => 4,
+ ];
+
+ // photo size
$img->scaleImageSquare(300);
-
- $p = array('aid' => $aid, 'uid' => $uid, 'resource_id' => $hash, 'filename' => $filename, 'album' => t('Profile Photos'), 'photo_usage' => PHOTO_PROFILE, 'imgscale' => 4);
-
$r = $img->save($p);
-
if($r === false)
$photo_failure = true;
+ // thumb size
$img->scaleImage(80);
$p['imgscale'] = 5;
-
$r = $img->save($p);
-
if($r === false)
$photo_failure = true;
+ // micro size
$img->scaleImage(48);
$p['imgscale'] = 6;
-
$r = $img->save($p);
-
if($r === false)
$photo_failure = true;
- }
- else {
- logger('import_channel_photo: invalid image.');
+ } else {
+ logger('Invalid image.');
$photo_failure = true;
}
- //return(($photo_failure)? false : true);
-
if($photo_failure)
return false;
else
return $hash;
-
}
diff --git a/include/photo/photo_gd.php b/include/photo/photo_gd.php
deleted file mode 100644
index e98ac2827..000000000
--- a/include/photo/photo_gd.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php /** @file */
-
-
-require_once('include/photo/photo_driver.php');
-
-
-class photo_gd extends photo_driver {
-
- function supportedTypes() {
- $t = array();
- $t['image/jpeg'] ='jpg';
- if (imagetypes() & IMG_PNG) $t['image/png'] = 'png';
- if (imagetypes() & IMG_GIF) $t['image/gif'] = 'gif';
- return $t;
-
- }
-
- function load($data, $type) {
- $this->valid = false;
- if(! $data)
- return;
-
- $this->image = @imagecreatefromstring($data);
- if($this->image !== FALSE) {
- $this->valid = true;
- $this->setDimensions();
- imagealphablending($this->image, false);
- imagesavealpha($this->image, true);
- }
- }
-
- function setDimensions() {
- $this->width = imagesx($this->image);
- $this->height = imagesy($this->image);
- }
-
-
- public function clearexif() {
- return;
- }
-
-
- public function destroy() {
- if($this->is_valid()) {
- imagedestroy($this->image);
- }
- }
-
- public function getImage() {
- if(!$this->is_valid())
- return FALSE;
-
- return $this->image;
- }
-
- public function doScaleImage($dest_width,$dest_height) {
-
- $dest = imagecreatetruecolor( $dest_width, $dest_height );
- $width = imagesx($this->image);
- $height = imagesy($this->image);
-
- imagealphablending($dest, false);
- imagesavealpha($dest, true);
- if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
- imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
- if($this->image)
- imagedestroy($this->image);
- $this->image = $dest;
- $this->setDimensions();
- }
-
- public function rotate($degrees) {
- if(!$this->is_valid())
- return FALSE;
-
- $this->image = imagerotate($this->image,$degrees,0);
- $this->setDimensions();
- }
-
- public function flip($horiz = true, $vert = false) {
- if(!$this->is_valid())
- return FALSE;
-
- $w = imagesx($this->image);
- $h = imagesy($this->image);
- $flipped = imagecreate($w, $h);
- if($horiz) {
- for ($x = 0; $x < $w; $x++) {
- imagecopy($flipped, $this->image, $x, 0, $w - $x - 1, 0, 1, $h);
- }
- }
- if($vert) {
- for ($y = 0; $y < $h; $y++) {
- imagecopy($flipped, $this->image, 0, $y, 0, $h - $y - 1, $w, 1);
- }
- }
- $this->image = $flipped;
- $this->setDimensions(); // Shouldn't really be necessary
- }
-
- public function cropImage($max,$x,$y,$w,$h) {
- if(!$this->is_valid())
- return FALSE;
-
- $dest = imagecreatetruecolor( $max, $max );
- imagealphablending($dest, false);
- imagesavealpha($dest, true);
- if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
- imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $max, $max, $w, $h);
- if($this->image)
- imagedestroy($this->image);
- $this->image = $dest;
- $this->setDimensions();
- }
-
- public function cropImageRect($maxx,$maxy,$x,$y,$w,$h) {
- if(!$this->is_valid())
- return FALSE;
-
- $dest = imagecreatetruecolor( $maxx, $maxy );
- imagealphablending($dest, false);
- imagesavealpha($dest, true);
- if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
- imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $maxx, $maxy, $w, $h);
- if($this->image)
- imagedestroy($this->image);
- $this->image = $dest;
- $this->setDimensions();
- }
-
-
-
- public function imageString() {
- if(!$this->is_valid())
- return FALSE;
-
- $quality = FALSE;
-
- ob_start();
-
- switch($this->getType()){
- case "image/png":
- $quality = get_config('system','png_quality');
- if((! $quality) || ($quality > 9))
- $quality = PNG_QUALITY;
- imagepng($this->image,NULL, $quality);
- break;
- case "image/jpeg":
- default:
- $quality = get_config('system','jpeg_quality');
- if((! $quality) || ($quality > 100))
- $quality = JPEG_QUALITY;
- imagejpeg($this->image,NULL,$quality);
- break;
- }
- $string = ob_get_contents();
- ob_end_clean();
-
- return $string;
- }
-
-}
diff --git a/include/photos.php b/include/photos.php
index d5553b495..44406e0b0 100644
--- a/include/photos.php
+++ b/include/photos.php
@@ -356,7 +356,7 @@ function photo_upload($channel, $observer, $args) {
$large_photos = feature_enabled($channel['channel_id'], 'large_photos');
- linkify_tags($a, $args['body'], $channel_id);
+ linkify_tags($args['body'], $channel_id);
if($large_photos) {
$scale = 1;
@@ -441,11 +441,13 @@ function photo_upload($channel, $observer, $args) {
}
}
else {
- $mid = item_message_id();
+ $uuid = item_message_id();
+ $mid = z_root() . '/item/' . $uuid;
$arr = [
'aid' => $account_id,
'uid' => $channel_id,
+ 'uuid' => $uuid,
'mid' => $mid,
'parent_mid' => $mid,
'item_hidden' => $item_hidden,
@@ -827,12 +829,14 @@ function photos_create_item($channel, $creator_hash, $photo, $visible = false) {
$item_hidden = (($visible) ? 0 : 1 );
- $mid = item_message_id();
+ $uuid = item_message_id();
+ $mid = z_root() . '/item/' . $uuid;
$arr = array();
$arr['aid'] = $channel['channel_account_id'];
$arr['uid'] = $channel['channel_id'];
+ $arr['uuid'] = $uuid;
$arr['mid'] = $mid;
$arr['parent_mid'] = $mid;
$arr['item_wall'] = 1;
diff --git a/include/plugin.php b/include/plugin.php
index 8ceb6417e..c789ad522 100755
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -7,13 +7,15 @@
/**
- * @brief Handle errors in plugin calls
+ * @brief Handle errors in plugin calls.
*
* @param string $plugin name of the addon
- * @param string $error_text text of error
- * @param bool $uninstall uninstall plugin
+ * @param string $notice UI visible text of error
+ * @param string $log technical error message for logging
+ * @param bool $uninstall (optional) default false
+ * uninstall plugin on error
*/
-function handleerrors_plugin($plugin,$notice,$log,$uninstall=false){
+function handleerrors_plugin($plugin, $notice, $log, $uninstall = false){
logger("Addons: [" . $plugin . "] Error: ".$log, LOGGER_ERROR);
if ($notice != '') {
notice("[" . $plugin . "] Error: ".$notice, LOGGER_ERROR);
@@ -23,7 +25,7 @@ function handleerrors_plugin($plugin,$notice,$log,$uninstall=false){
$idx = array_search($plugin, \App::$plugins);
unset(\App::$plugins[$idx]);
uninstall_plugin($plugin);
- set_config("system","addon", implode(", ",\App::$plugins));
+ set_config("system", "addon", implode(", ", \App::$plugins));
}
}
@@ -213,8 +215,8 @@ function reload_plugins() {
try {
$func();
} catch (Exception $e) {
- handleerrors_plugin($plugin,"","UNLOAD FAILED (uninstalling) : ".$e->getMessage(),true);
- continue;
+ handleerrors_plugin($pl, '', 'UNLOAD FAILED (uninstalling) : ' . $e->getMessage(),true);
+ continue;
}
}
if(function_exists($pl . '_load')) {
@@ -222,8 +224,8 @@ function reload_plugins() {
try {
$func();
} catch (Exception $e) {
- handleerrors_plugin($plugin,"","LOAD FAILED (uninstalling): ".$e->getMessage(),true);
- continue;
+ handleerrors_plugin($pl, '', 'LOAD FAILED (uninstalling): ' . $e->getMessage(),true);
+ continue;
}
}
q("UPDATE addon SET tstamp = %d WHERE id = %d",
@@ -305,7 +307,7 @@ function plugins_sync() {
* @return array
*/
function visible_plugin_list() {
-
+
$r = q("select * from addon where hidden = 0 order by aname asc");
$x = (($r) ? ids_to_array($r,'aname') : array());
$y = [];
@@ -315,7 +317,7 @@ function visible_plugin_list() {
$y[] = $xv;
}
}
- }
+ }
return $y;
}
@@ -381,8 +383,6 @@ function unregister_hook($hook, $file, $function) {
* array in their theme_init() and use this to customise the app behaviour.
* use insert_hook($hookname,$function_name) to do this.
*/
-
-
function load_hooks() {
App::$hooks = [];
@@ -456,21 +456,21 @@ function insert_hook($hook, $fn, $version = 0, $priority = 0) {
function call_hooks($name, &$data = null) {
$a = 0;
- if (isset(App::$hooks[$name])) {
+ if (isset(App::$hooks[$name])) {
foreach(App::$hooks[$name] as $hook) {
if ($name != 'permit_hook') { // avoid looping
$checkhook = [
- 'name'=>$name,
- 'hook'=>$hook,
- 'data'=>$data,
+ 'name'=>$name,
+ 'hook'=>$hook,
+ 'data'=>$data,
// Note: Since PHP uses COPY-ON-WRITE
- // for variables, there is no cost to
+ // for variables, there is no cost to
// passing the $data structure (unless
// the permit_hook processors change the
// information it contains.
- 'permit'=>true
- ];
+ 'permit'=>true
+ ];
call_hooks('permit_hook',$checkhook);
if (!$checkhook['permit']) {
continue;
@@ -618,7 +618,7 @@ function get_widget_info($widget){
}
}
- if(! ($widget_found && $f))
+ if(! ($widget_found && $f))
return $info;
$f = escape_tags($f);
@@ -736,8 +736,8 @@ function get_theme_info($theme){
'description' => '',
'author' => array(),
'version' => '',
- 'minversion' => '',
- 'maxversion' => '',
+ 'minversion' => STD_VERSION,
+ 'maxversion' => STD_VERSION,
'compat' => '',
'credits' => '',
'maintainer' => array(),
@@ -1041,7 +1041,7 @@ function get_intltext_template($s, $root = '') {
if (isset(\App::$override_intltext_templates[$testroot][$s]["content"])) {
return \App::$override_intltext_templates[$testroot][$s]["content"];
} else {
- if (isset(\App::$override_intltext_templates[$testroot][$s]["root"]) &&
+ if (isset(\App::$override_intltext_templates[$testroot][$s]["root"]) &&
isset(\App::$override_intltext_templates[$testroot][$s]["file"])) {
$s = \App::$override_intltext_templates[$testroot][$s]["file"];
$root = \App::$override_intltext_templates[$testroot][$s]["root"];
@@ -1058,37 +1058,38 @@ function get_intltext_template($s, $root = '') {
}
function get_markup_template($s, $root = '') {
- $testroot = ($root=='') ? $testroot = "ROOT" : $root;
+ $testroot = ($root=='') ? $testroot = "ROOT" : $root;
- $t = App::template_engine();
+ $t = App::template_engine();
- if (isset(\App::$override_markup_templates[$testroot][$s]["content"])) {
- return \App::$override_markup_templates[$testroot][$s]["content"];
- } else {
- if (isset(\App::$override_markup_templates[$testroot][$s]["root"]) &&
- isset(\App::$override_markup_templates[$testroot][$s]["file"])) {
- $root = \App::$override_markup_templates[$testroot][$s]["root"];
- $s = \App::$override_markup_templates[$testroot][$s]["file"];
- $template = $t->get_markup_template($s, $root);
- } elseif (\App::$override_templateroot) {
- $newroot = \App::$override_templateroot;
- if ($newroot != '' && substr($newroot,-1) != '/' ) {
- $newroot .= '/';
- }
- $newroot .= $root;
- $template = $t->get_markup_template($s, $newroot);
- } else {
- $template = $t->get_markup_template($s, $root);
+ if (isset(\App::$override_markup_templates[$testroot][$s]["content"])) {
+ return \App::$override_markup_templates[$testroot][$s]["content"];
+ } else {
+ if (isset(\App::$override_markup_templates[$testroot][$s]["root"]) &&
+ isset(\App::$override_markup_templates[$testroot][$s]["file"])) {
+ $root = \App::$override_markup_templates[$testroot][$s]["root"];
+ $s = \App::$override_markup_templates[$testroot][$s]["file"];
+ $template = $t->get_markup_template($s, $root);
+ } elseif (\App::$override_templateroot) {
+ $newroot = \App::$override_templateroot;
+ if ($newroot != '' && substr($newroot,-1) != '/' ) {
+ $newroot .= '/';
+ }
+ $newroot .= $root;
+ $template = $t->get_markup_template($s, $newroot);
+ } else {
+ $template = $t->get_markup_template($s, $root);
}
- return $template;
- }
+ return $template;
+ }
}
/**
- * @brief
+ * @brief Test if a folder exists.
*
* @param string $folder
* @return boolean|string
+ * False if folder does not exist, or canonicalized absolute pathname
*/
function folder_exists($folder) {
// Get canonicalized absolute pathname
diff --git a/include/queue_fn.php b/include/queue_fn.php
index f05bac5b0..85f98aaf9 100644
--- a/include/queue_fn.php
+++ b/include/queue_fn.php
@@ -1,5 +1,9 @@
<?php /** @file */
+use Zotlabs\Lib\Libzot;
+use Zotlabs\Zot6\Receiver;
+use Zotlabs\Zot6\Zot6Handler;
+
function update_queue_item($id, $add_priority = 0) {
logger('queue: requeue item ' . $id,LOGGER_DEBUG);
$x = q("select outq_created, outq_posturl from outq where outq_hash = '%s' limit 1",
@@ -9,7 +13,7 @@ function update_queue_item($id, $add_priority = 0) {
return;
- $y = q("select min(outq_created) as earliest from outq where outq_posturl = '%s'",
+ $y = q("select outq_created as earliest from outq where outq_posturl = '%s' order by earliest limit 1",
dbesc($x[0]['outq_posturl'])
);
@@ -226,37 +230,85 @@ function queue_deliver($outq, $immediate = false) {
logger('deliver: dest: ' . $outq['outq_posturl'], LOGGER_DEBUG);
- $channel = null;
+ if($outq['outq_driver'] === 'zot6') {
+
+ if($outq['outq_posturl'] === z_root() . '/zot') {
+ // local delivery
+ $zot = new Receiver(new Zot6Handler(),$outq['outq_notify']);
+ $result = $zot->run(true);
+ logger('returned_json: ' . json_encode($result,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES), LOGGER_DATA);
+ logger('deliver: local zot6 delivery succeeded to ' . $outq['outq_posturl']);
+ Libzot::process_response($outq['outq_posturl'],[ 'success' => true, 'body' => json_encode($result) ], $outq);
+ }
+ else {
+ logger('remote');
+ $channel = null;
+
+ if($outq['outq_channel']) {
+ $channel = channelx_by_n($outq['outq_channel']);
+ }
+
+ $host_crypto = null;
+ if($channel && $base) {
+ $h = q("select hubloc_sitekey, site_crypto from hubloc left join site on hubloc_url = site_url where site_url = '%s' and hubloc_network = 'zot6' order by hubloc_id desc limit 1",
+ dbesc($base)
+ );
+ if($h) {
+ $host_crypto = $h[0];
+ }
+ }
+
+ $msg = $outq['outq_notify'];
+
+ $result = Libzot::zot($outq['outq_posturl'],$msg,$channel,$host_crypto);
+
+ if($result['success']) {
+ logger('deliver: remote zot6 delivery succeeded to ' . $outq['outq_posturl']);
+ Libzot::process_response($outq['outq_posturl'],$result, $outq);
+ }
+ else {
+ logger('deliver: remote zot6 delivery failed to ' . $outq['outq_posturl']);
+ logger('deliver: remote zot6 delivery fail data: ' . print_r($result,true), LOGGER_DATA);
+ update_queue_item($outq['outq_hash'],10);
+ }
- if($outq['outq_msg'] && $outq['outq_channel']) {
- $channel = channelx_by_n($outq['outq_channel']);
+ }
+ return;
}
+ else {
- $host_crypto = null;
+ $channel = null;
- if($channel && $base) {
- $h = q("select hubloc_sitekey, site_crypto from hubloc left join site on hubloc_url = site_url where site_url = '%s' order by hubloc_id desc limit 1",
- dbesc($base)
- );
- if($h) {
- $host_crypto = $h[0];
+ if($outq['outq_msg'] && $outq['outq_channel']) {
+ $channel = channelx_by_n($outq['outq_channel']);
+ }
+
+ $host_crypto = null;
+
+ if($channel && $base) {
+ $h = q("select hubloc_sitekey, site_crypto from hubloc left join site on hubloc_url = site_url where site_url = '%s' order by hubloc_id desc limit 1",
+ dbesc($base)
+ );
+ if($h) {
+ $host_crypto = $h[0];
+ }
}
- }
- $msg = $outq['outq_notify'];
+ $msg = $outq['outq_notify'];
- $result = zot_zot($outq['outq_posturl'],$msg,$channel,$host_crypto);
+ $result = zot_zot($outq['outq_posturl'],$msg,$channel,$host_crypto);
- if($result['success']) {
- logger('deliver: remote zot delivery succeeded to ' . $outq['outq_posturl']);
- zot_process_response($outq['outq_posturl'],$result, $outq);
- }
- else {
- logger('deliver: remote zot delivery failed to ' . $outq['outq_posturl']);
- logger('deliver: remote zot delivery fail data: ' . print_r($result,true), LOGGER_DATA);
- update_queue_item($outq['outq_hash'],10);
+ if($result['success']) {
+ logger('deliver: remote zot delivery succeeded to ' . $outq['outq_posturl']);
+ zot_process_response($outq['outq_posturl'],$result, $outq);
+ }
+ else {
+ logger('deliver: remote zot delivery failed to ' . $outq['outq_posturl']);
+ logger('deliver: remote zot delivery fail data: ' . print_r($result,true), LOGGER_DATA);
+ update_queue_item($outq['outq_hash'],10);
+ }
+ return;
}
- return;
-}
+}
diff --git a/include/text.php b/include/text.php
index 5add633a2..80ed7d6db 100644
--- a/include/text.php
+++ b/include/text.php
@@ -3,8 +3,11 @@
* @file include/text.php
*/
-use \Zotlabs\Lib as Zlib;
-use \Michelf\MarkdownExtra;
+use Zotlabs\Lib as Zlib;
+
+use Michelf\MarkdownExtra;
+use Ramsey\Uuid\Uuid;
+use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
require_once("include/bbcode.php");
@@ -38,12 +41,12 @@ function replace_macros($s, $r) {
$t = App::template_engine();
- try {
- $output = $t->replace_macros($arr['template'], $arr['params']);
- } catch (Exception $e) {
- logger("Unable to render template: ".$e->getMessage());
- $output = "<h3>ERROR: there was an error creating the output.</h3>";
- }
+ try {
+ $output = $t->replace_macros($arr['template'], $arr['params']);
+ } catch (Exception $e) {
+ logger('Unable to render template: ' . $e->getMessage());
+ $output = '<h3>ERROR: there was an error creating the output.</h3>';
+ }
return $output;
}
@@ -536,7 +539,14 @@ function paginate(&$a) {
return $o;
}
-
+/**
+ * @brief
+ *
+ * @param int $i
+ * @param string $more
+ * @param string $less
+ * @return string Parsed HTML from template 'alt_pager.tpl'
+ */
function alt_pager($i, $more = '', $less = '') {
if(! $more)
@@ -571,18 +581,9 @@ function alt_pager($i, $more = '', $less = '') {
* @return string a unique id
*/
function item_message_id() {
- do {
- $dups = false;
- $hash = random_string();
- $mid = $hash . '@' . App::get_hostname();
- $r = q("SELECT id FROM item WHERE mid = '%s' LIMIT 1",
- dbesc($mid));
- if($r)
- $dups = true;
- } while($dups == true);
+ return new_uuid();
- return $mid;
}
/**
@@ -593,17 +594,9 @@ function item_message_id() {
* @return string a uniqe hash
*/
function photo_new_resource() {
- do {
- $found = false;
- $resource = hash('md5', uniqid(mt_rand(), true));
- $r = q("SELECT id FROM photo WHERE resource_id = '%s' LIMIT 1",
- dbesc($resource));
- if($r)
- $found = true;
- } while($found === true);
+ return new_uuid();
- return $resource;
}
/**
@@ -824,7 +817,7 @@ function activity_match($haystack,$needle) {
* and strip the period from any tags which end with one.
*
* @param string $s
- * @return Returns array of tags found, or empty array.
+ * @return array Returns an array of tags found, or empty array.
*/
function get_tags($s) {
$ret = array();
@@ -840,6 +833,9 @@ function get_tags($s) {
// ignore anything in [color= ], because it may contain color codes which are mistaken for tags
$s = preg_replace('/\[color=(.*?)\]/sm','',$s);
+ // skip anchors in URL
+ $s = preg_replace('/\[url=(.*?)\]/sm','',$s);
+
// match any double quoted tags
if(preg_match_all('/([@#\!]\&quot\;.*?\&quot\;)/',$s,$match)) {
@@ -911,6 +907,7 @@ function tag_sort_length($a,$b) {
function total_sort($a,$b) {
if($a['total'] == $b['total'])
return 0;
+
return(($b['total'] > $a['total']) ? 1 : (-1));
}
@@ -997,7 +994,7 @@ function contact_block() {
// There is no setting to discover if you are bi-directionally connected
// Use the ability to post comments as an indication that this relationship is more
- // than wishful thinking; even though soapbox channels and feeds will disable it.
+ // than wishful thinking; even though soapbox channels and feeds will disable it.
if(! intval(get_abconfig(App::$profile['uid'],$rr['xchan_hash'],'their_perms','post_comments'))) {
$rr['oneway'] = true;
@@ -1015,9 +1012,15 @@ function contact_block() {
'$micropro' => $micropro,
));
- $arr = array('contacts' => $r, 'output' => $o);
-
+ $arr = ['contacts' => $r, 'output' => $o];
+ /**
+ * @hooks contact_block_end
+ * Called at the end of contact_block(), but can not manipulate the output.
+ * * \e array \b contacts - Result array from database
+ * * \e string \b output - the generated output
+ */
call_hooks('contact_block_end', $arr);
+
return $o;
}
@@ -1104,7 +1107,7 @@ function searchbox($s,$id='search-box',$url='/search',$save = false) {
* @return string
*/
function linkify($s, $me = false) {
- $s = preg_replace("/(https?\:\/\/[a-zA-Z0-9\pL\:\/\-\?\&\;\.\=\_\@\~\#\'\%\$\!\+\,\@]*)/u", (($me) ? ' <a href="$1" rel="me" >$1</a>' : ' <a href="$1" >$1</a>'), $s);
+ $s = preg_replace("/(https?\:\/\/[a-zA-Z0-9\pL\:\/\-\?\&\;\.\=\_\@\~\#\'\%\$\!\+\,\@]*)/u", (($me) ? ' <a href="$1" rel="me nofollow" >$1</a>' : ' <a href="$1" >$1</a>'), $s);
$s = preg_replace("/\<(.*?)(src|href)=(.*?)\&amp\;(.*?)\>/ism",'<$1$2=$3&$4>',$s);
return($s);
@@ -1122,6 +1125,21 @@ function linkify($s, $me = false) {
* @returns string
*/
function sslify($s) {
+
+ // Local photo cache
+ $str = [
+ 'body' => $s,
+ 'uid' => local_channel()
+ ];
+ /**
+ * @hooks cache_body_hook
+ * * \e string \b body The content to parse and also the return value
+ * * \e int|bool \b uid
+ */
+ call_hooks('cache_body_hook', $str);
+
+ $s = $str['body'];
+
if (strpos(z_root(),'https:') === false)
return $s;
@@ -1131,11 +1149,10 @@ function sslify($s) {
// 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) );
@@ -1223,7 +1240,11 @@ function get_mood_verbs() {
/**
* @brief Function to list all smilies, both internal and from addons.
*
- * @return Returns array with keys 'texts' and 'icons'
+ * @param boolean $default_only (optional) default false
+ * true will prevent that plugins can add smilies
+ * @return array Returns an associative array with:
+ * * \e array \b texts
+ * * \e array \b icons
*/
function list_smilies($default_only = false) {
@@ -1301,6 +1322,11 @@ function list_smilies($default_only = false) {
if($default_only)
return $params;
+ /**
+ * @hooks smile
+ * * \e array \b texts - default values and also return value
+ * * \e array \b icons - default values and also return value
+ */
call_hooks('smilie', $params);
return $params;
@@ -1456,7 +1482,7 @@ function theme_attachments(&$item) {
foreach($arr as $r) {
$icon = getIconFromType($r['type']);
-
+
if($r['title'])
$label = urldecode(htmlspecialchars($r['title'], ENT_COMPAT, 'UTF-8'));
@@ -1626,6 +1652,10 @@ function generate_named_map($location) {
function prepare_body(&$item,$attach = false,$opts = false) {
+ /**
+ * @hooks prepare_body_init
+ * * \e array \b item
+ */
call_hooks('prepare_body_init', $item);
$s = '';
@@ -1652,18 +1682,29 @@ function prepare_body(&$item,$attach = false,$opts = false) {
$s .= prepare_binary($item);
}
else {
- $s .= prepare_text($item['body'],$item['mimetype'], $opts);
+ if($item['summary']) {
+ $s .= prepare_text('[summary]' . $item['summary'] . '[/summary]' . $item['body'],$item['mimetype'],$opts);
+ }
+ else {
+ $s .= prepare_text($item['body'],$item['mimetype'], $opts);
+ }
}
$event = (($item['obj_type'] === ACTIVITY_OBJ_EVENT) ? format_event_obj($item['obj']) : false);
- $prep_arr = array(
+ $prep_arr = [
'item' => $item,
'html' => $event ? $event['content'] : $s,
'event' => $event['header'],
'photo' => $photo
- );
-
+ ];
+ /**
+ * @hooks prepare_body
+ * * \e array \b item
+ * * \e string \b html - the parsed HTML to return
+ * * \e string \b event - the event header to return
+ * * \e string \b photo - the photo to return
+ */
call_hooks('prepare_body', $prep_arr);
$s = $prep_arr['html'];
@@ -1695,7 +1736,14 @@ function prepare_body(&$item,$attach = false,$opts = false) {
if(local_channel() == $item['uid'])
$filer = format_filer($item);
- $s = sslify($s);
+ if($s)
+ $s = sslify($s);
+
+ if($photo)
+ $photo = sslify($photo);
+
+ if($event)
+ $event = sslify($event);
$prep_arr = array(
'item' => $item,
@@ -1726,17 +1774,24 @@ function prepare_binary($item) {
/**
- * @brief Given a text string, convert from bbcode to html and add smilie icons.
+ * @brief Given a text string, convert from content_type to HTML.
*
- * @param string $text
- * @param string $content_type (optional) default text/bbcode
- * @param boolean $cache (optional) default false
+ * Take a text in plain text, html, markdown, bbcode, PDL or PHP and prepare
+ * it to return HTML.
+ *
+ * In bbcode this function will add smilie icons.
*
+ * @param string $text
+ * @param string $content_type (optional)
+ * default 'text/bbcode', other values are 'text/plain', 'text/html',
+ * 'text/markdown', 'application/x-pdl', 'application/x-php'
+ * @param boolean|array $opts (optional)
+ * default false, otherwise configuration array for bbcode()
* @return string
+ * The parsed $text as prepared HTML.
*/
function prepare_text($text, $content_type = 'text/bbcode', $opts = false) {
-
switch($content_type) {
case 'text/plain':
$s = escape_tags($text);
@@ -1776,8 +1831,8 @@ function prepare_text($text, $content_type = 'text/bbcode', $opts = false) {
default:
require_once('include/bbcode.php');
- if(stristr($text,'[nosmile]'))
- $s = bbcode($text, [ 'cache' => $cache ]);
+ if(stristr($text, '[nosmile]'))
+ $s = bbcode($text, ((is_array($opts)) ? $opts : [] ));
else
$s = smilies(bbcode($text, ((is_array($opts)) ? $opts : [] )));
@@ -2137,7 +2192,7 @@ function legal_webbie($s) {
return '';
// WARNING: This regex may not work in a federated environment.
- // You will probably want something like
+ // You will probably want something like
// preg_replace('/([^a-z0-9\_])/','',strtolower($s));
$r = preg_replace('/([^a-z0-9\-\_])/','',strtolower($s));
@@ -2236,19 +2291,24 @@ function ids_to_querystr($arr,$idx = 'id',$quote = false) {
}
/**
- * @brief array_elm_to_str($arr,$elm,$delim = ',') extract unique individual elements from an array of arrays and return them as a string separated by a delimiter
- * similar to ids_to_querystr, but allows a different delimiter instead of a db-quote option
- * empty elements (evaluated after trim()) are ignored.
- * @param $arr array
- * @param $elm array key to extract from sub-array
- * @param $delim string default ','
- * @param $each filter function to apply to each element before evaluation, default is 'trim'.
+ * @brief Extract unique individual elements from an array of arrays and return
+ * them as a string separated by a delimiter.
+ *
+ * Similar to ids_to_querystr, but allows a different delimiter instead of a
+ * db-quote option empty elements (evaluated after trim()) are ignored.
+ *
+ * @see ids_to_querystr()
+ *
+ * @param array $arr
+ * @param string $elm key to extract from sub-array
+ * @param string $delim (optional) default ','
+ * @param string $each (optional) default is 'trim'
+ * Filter function to apply to each element before evaluation.
* @returns string
*/
-
-function array_elm_to_str($arr,$elm,$delim = ',',$each = 'trim') {
-
+function array_elm_to_str($arr, $elm, $delim = ',', $each = 'trim') {
$tmp = [];
+
if($arr && is_array($arr)) {
foreach($arr as $x) {
if(is_array($x) && array_key_exists($elm,$x)) {
@@ -2259,7 +2319,8 @@ function array_elm_to_str($arr,$elm,$delim = ',',$each = 'trim') {
}
}
}
- return implode($delim,$tmp);
+
+ return implode($delim, $tmp);
}
function trim_and_unpunify($s) {
@@ -2483,9 +2544,9 @@ function design_tools() {
}
/**
- * @brief Creates website portation tools menu
+ * @brief Creates website portation tools menu.
*
- * @return string
+ * @return string Parsed HTML code from template 'website_portation_tools.tpl'
*/
function website_portation_tools() {
@@ -2498,7 +2559,7 @@ function website_portation_tools() {
$sys = true;
}
- return replace_macros(get_markup_template('website_portation_tools.tpl'), array(
+ return replace_macros(get_markup_template('website_portation_tools.tpl'), [
'$title' => t('Import'),
'$import_label' => t('Import website...'),
'$import_placeholder' => t('Select folder to import'),
@@ -2515,7 +2576,7 @@ function website_portation_tools() {
'$cloud_export_desc' => t('/path/to/export/folder'),
'$cloud_export_hint' => t('Enter a path to a cloud files destination.'),
'$cloud_export_select' => t('Specify folder'),
- ));
+ ]);
}
/**
@@ -2575,8 +2636,9 @@ function extra_query_args() {
* @param boolean $in_network default true
* @return boolean true if replaced, false if not replaced
*/
-function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $in_network = true) {
+function handle_tag(&$body, &$str_tags, $profile_uid, $tag, $in_network = true) {
+ $channel = App::get_channel();
$replaced = false;
$r = null;
$match = array();
@@ -2632,21 +2694,20 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
$str_tags .= $newtag;
}
- return [
- 'replaced' => $replaced,
- 'termtype' => $termtype,
- 'term' => $basetag,
- 'url' => $url,
- 'contact' => []
- ];
-
+ return [ [
+ 'replaced' => $replaced,
+ 'termtype' => $termtype,
+ 'term' => $basetag,
+ 'url' => $url,
+ 'contact' => [],
+ 'access_tag' => '',
+ ]];
}
// END hashtags
// BEGIN mentions
-
if ( in_array($termtype, [ TERM_MENTION, TERM_FORUM ] )) {
// The @! tag and !! tag will alter permissions
@@ -2657,13 +2718,13 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
$exclusive = (((strpos(substr($tag,1), '!') === 0) && $in_network) ? true : false);
//is it already replaced?
- if(strpos($tag,'[zrl=') || strpos($tag,'[url='))
+ if(strpos($tag,"[zrl=") || strpos($tag,"[url="))
return $replaced;
// get the channel name
// First extract the name or name fragment we are going to replace
- $name = substr($tag,(($exclusive) ? 2 : 1));
+ $name = substr($tag,(($exclusive) ? 2 : 1));
$newname = $name; // make a copy that we can mess with
$tagcid = 0;
@@ -2675,7 +2736,7 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
$newname = substr($name,1);
$newname = substr($newname,0,-1);
- $r = q("select * from xchan where xchan_addr = '%s' or xchan_url = '%s' limit 1",
+ $r = q("select * from xchan where xchan_addr = '%s' or xchan_url = '%s'",
dbesc($newname),
dbesc($newname)
);
@@ -2698,7 +2759,7 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
// select someone from this user's contacts by name
$r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE xchan_name = '%s' AND abook_channel = %d LIMIT 1",
+ WHERE xchan_name = '%s' AND abook_channel = %d ",
dbesc($newname),
intval($profile_uid)
);
@@ -2706,8 +2767,8 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
// select anybody by full hubloc_addr
if((! $r) && strpos($newname,'@')) {
- $r = q("SELECT * FROM xchan left join hubloc on xchan_hash = hubloc_hash
- WHERE hubloc_addr = '%s' LIMIT 1",
+ $r = q("SELECT * FROM xchan left join hubloc on xchan_hash = hubloc_hash
+ WHERE hubloc_addr = '%s' ",
dbesc($newname)
);
}
@@ -2716,7 +2777,7 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
if(! $r) {
$r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE xchan_addr like ('%s') AND abook_channel = %d LIMIT 1",
+ WHERE xchan_addr like ('%s') AND abook_channel = %d ",
dbesc(((strpos($newname,'@')) ? $newname : $newname . '@%')),
intval($profile_uid)
);
@@ -2724,17 +2785,62 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
}
+
+
+
+
+ $fn_results = [];
+ $access_tag = EMPTY_STR;
+
+
// $r is set if we found something
- $channel = App::get_channel();
-
if($r) {
- $profile = $r[0]['xchan_url'];
- $newname = $r[0]['xchan_name'];
- // add the channel's xchan_hash to $access_tag if exclusive
- if($exclusive) {
- $access_tag .= 'cid:' . $r[0]['xchan_hash'];
+ foreach($r as $xc) {
+ $profile = $xc['xchan_url'];
+ $newname = $xc['xchan_name'];
+ // add the channel's xchan_hash to $access_tag if exclusive
+ if($exclusive) {
+ $access_tag = 'cid:' . $xc['xchan_hash'];
+ }
+
+ // if there is a url for this channel
+
+ if(isset($profile)) {
+ $replaced = true;
+ //create profile link
+ $profile = str_replace(',','%2c',$profile);
+ $url = $profile;
+ if($termtype === TERM_FORUM) {
+ $newtag = '!' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
+ $body = str_replace('!' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
+ }
+ else {
+ // ( $termtype === TERM_MENTION )
+ $newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
+ $body = str_replace('@' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
+ }
+
+ // append tag to str_tags
+ if(! stristr($str_tags,$newtag)) {
+ if(strlen($str_tags))
+ $str_tags .= ',';
+ $str_tags .= $newtag;
+ }
+ }
+
+
+ $fn_results[] = [
+ 'replaced' => $replaced,
+ 'termtype' => $termtype,
+ 'term' => $newname,
+ 'url' => $url,
+ 'access_tag' => $access_tag,
+ 'contact' => (($r) ? $xc : []),
+ ];
+
}
+
}
else {
@@ -2746,7 +2852,6 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
// weird - as all the other tags are linked to something.
if(local_channel() && local_channel() == $profile_uid) {
- require_once('include/group.php');
$grp = group_byname($profile_uid,$name);
if($grp) {
@@ -2763,58 +2868,62 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
}
}
}
- }
- // if there is a url for this channel
- if(isset($profile)) {
- $replaced = true;
- //create profile link
- $profile = str_replace(',','%2c',$profile);
- $url = $profile;
- if($termtype === TERM_FORUM) {
- $newtag = '!' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
- $body = str_replace('!' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
- }
- else {
- // ( $termtype === TERM_MENTION )
- $newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
- $body = str_replace('@' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
- }
+ // if there is a url for this channel
+
+ if(isset($profile)) {
+ $replaced = true;
+ //create profile link
+ $profile = str_replace(',','%2c',$profile);
+ $url = $profile;
+ if($termtype === TERM_FORUM) {
+ $newtag = '!' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
+ $body = str_replace('!' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
+ }
+ else {
+ // ( $termtype === TERM_MENTION )
+ $newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
+ $body = str_replace('@' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
+ }
- // append tag to str_tags
- if(! stristr($str_tags,$newtag)) {
- if(strlen($str_tags))
- $str_tags .= ',';
- $str_tags .= $newtag;
+ // append tag to str_tags
+ if(! stristr($str_tags,$newtag)) {
+ if(strlen($str_tags))
+ $str_tags .= ',';
+ $str_tags .= $newtag;
+ }
}
+
+ $fn_results[] = [
+ 'replaced' => $replaced,
+ 'termtype' => $termtype,
+ 'term' => $newname,
+ 'url' => $url,
+ 'access_tag' => $access_tag,
+ 'contact' => [],
+ ];
}
}
+
+ return $fn_results;
- return [
- 'replaced' => $replaced,
- 'termtype' => $termtype,
- 'term' => $newname,
- 'url' => $url,
- 'contact' => (($r) ? $r[0] : [])
- ];
}
-function linkify_tags($a, &$body, $uid, $in_network = true) {
+function linkify_tags(&$body, $uid, $in_network = true) {
$str_tags = EMPTY_STR;
- $tagged = [];
$results = [];
$tags = get_tags($body);
if(count($tags)) {
foreach($tags as $tag) {
- $access_tag = '';
- $success = handle_tag($a, $body, $access_tag, $str_tags, ($uid) ? $uid : App::$profile_uid , $tag, $in_network);
+ $success = handle_tag($body, $str_tags, ($uid) ? $uid : App::$profile_uid , $tag, $in_network);
- $results[] = array('success' => $success, 'access_tag' => $access_tag);
- if($success['replaced']) $tagged[] = $tag;
+ foreach($success as $handled_tag) {
+ $results[] = [ 'success' => $handled_tag ];
+ }
}
}
@@ -2872,7 +2981,7 @@ function getIconFromType($type) {
'video/x-matroska' => 'fa-file-video-o'
);
- $catMap = [
+ $catMap = [
'application' => 'fa-file-code-o',
'multipart' => 'fa-folder',
'audio' => 'fa-file-audio-o',
@@ -2880,7 +2989,7 @@ function getIconFromType($type) {
'text' => 'fa-file-text-o',
'image' => 'fa=file-picture-o',
'message' => 'fa-file-text-o'
- ];
+ ];
$iconFromType = '';
@@ -2890,7 +2999,7 @@ function getIconFromType($type) {
}
else {
$parts = explode('/',$type);
- if($parts[0] && $catMap[$parts[0]]) {
+ if($parts[0] && $catMap[$parts[0]]) {
$iconFromType = $catMap[$parts[0]];
}
}
@@ -2978,9 +3087,9 @@ function item_url_replace($channel,&$item,$old,$new,$oldnick = '') {
json_url_replace('/' . $oldnick . '/' ,'/' . $channel['channel_address'] . '/' ,$item['target']);
}
- $x = preg_replace("/".preg_quote($old,'/')."\/(search|\w+\/".$channel['channel_address'].")/", $new.'/${1}', $item['body']);
- if($x) {
- $item['body'] = $x;
+ $x = preg_replace("/".preg_quote($old,'/')."\/(search|\w+\/".$channel['channel_address'].")/", $new.'/${1}', $item['body']);
+ if($x) {
+ $item['body'] = $x;
$item['sig'] = base64url_encode(rsa_sign($item['body'],$channel['channel_prvkey']));
$item['item_verified'] = 1;
}
@@ -3090,7 +3199,13 @@ function pdl_selector($uid, $current='') {
intval($uid)
);
- $arr = array('channel_id' => $uid, 'current' => $current, 'entries' => $r);
+ $arr = ['channel_id' => $uid, 'current' => $current, 'entries' => $r];
+ /**
+ * @hooks pdl_selector
+ * * \e int \b channel_id
+ * * \e string \b current
+ * * \e array \b entries - Result from database query
+ */
call_hooks('pdl_selector', $arr);
$entries = $arr['entries'];
@@ -3131,7 +3246,7 @@ function flatten_array_recursive($arr) {
$ret = array_merge($ret, $tmp);
}
}
- elseif($a) {
+ elseif(isset($a)) {
$ret[] = $a;
}
}
@@ -3146,7 +3261,7 @@ function flatten_array_recursive($arr) {
* @param string $lang Which language should be highlighted
* @return string
* Important: The returned text has the text pattern 'http' translated to '%eY9-!' which should be converted back
- * after further processing. This was done to prevent oembed links from occurring inside code blocks.
+ * after further processing. This was done to prevent oembed links from occurring inside code blocks.
* See include/bbcode.php
*/
function text_highlight($s, $lang) {
@@ -3165,7 +3280,6 @@ function text_highlight($s, $lang) {
'language' => $lang,
'success' => false
];
-
/**
* @hooks text_highlight
* * \e string \b text
@@ -3388,13 +3502,17 @@ function punify($s) {
}
-// Be aware that unpunify will only convert domain names and not pathnames
-
+/**
+ * Be aware that unpunify() will only convert domain names and not pathnames.
+ *
+ * @param string $s
+ * @return string
+ */
function unpunify($s) {
require_once('vendor/simplepie/simplepie/idn/idna_convert.class.php');
$x = new idna_convert(['encoding' => 'utf8']);
- return $x->decode($s);
+ return $x->decode($s);
}
@@ -3402,7 +3520,7 @@ function unique_multidim_array($array, $key) {
$temp_array = array();
$i = 0;
$key_array = array();
-
+
foreach($array as $val) {
if (!in_array($val[$key], $key_array)) {
$key_array[$i] = $val[$key];
@@ -3430,7 +3548,7 @@ function get_forum_channels($uid) {
intval($uid)
);
- if($x2) {
+ if($x2) {
$xf = ids_to_querystr($x2,'xchan',true);
// private forums
@@ -3443,7 +3561,7 @@ function get_forum_channels($uid) {
}
}
- $sql_extra = (($xf) ? " and ( xchan_hash in (" . $xf . ") or xchan_pubforum = 1 ) " : " and xchan_pubforum = 1 ");
+ $sql_extra = (($xf) ? " and ( xchan_hash in (" . $xf . ") or xchan_pubforum = 1 ) " : " and xchan_pubforum = 1 ");
$r = q("select abook_id, xchan_hash, xchan_name, xchan_url, xchan_addr, xchan_photo_s from abook left join xchan on abook_xchan = xchan_hash where xchan_deleted = 0 and abook_channel = %d and abook_pending = 0 and abook_ignored = 0 and abook_blocked = 0 and abook_archived = 0 $sql_extra order by xchan_name",
intval($uid)
@@ -3479,14 +3597,14 @@ function print_array($arr, $level = 0) {
$o .= $tabs . '[' . $k . '] => ' . print_array($v, $level + 1) . "\n";
}
else {
- $o .= $tabs . '[' . $k . '] => ' . print_val($v) . ",\n";
+ $o .= $tabs . '[' . $k . '] => ' . print_val($v) . ",\n";
}
}
}
$o .= substr($tabs,0,-1) . ']' . (($level) ? ',' : ';' ). "\n";
return $o;
}
-
+
}
function print_val($v) {
@@ -3501,3 +3619,40 @@ function print_val($v) {
}
+function array_path_exists($str,$arr) {
+
+ $ptr = $arr;
+ $search = explode('/', $str);
+
+ if($search) {
+ foreach($search as $s) {
+ if(array_key_exists($s,$ptr)) {
+ $ptr = $ptr[$s];
+ }
+ else {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ return false;
+
+}
+
+
+/**
+ * @brief Generate a unique ID.
+ *
+ * @return string
+ */
+function new_uuid() {
+
+ try {
+ $hash = Uuid::uuid4()->toString();
+ } catch (UnsatisfiedDependencyException $e) {
+ $hash = random_string(48);
+ }
+
+ return $hash;
+}
diff --git a/include/xchan.php b/include/xchan.php
index eb5f1b4a3..4cbfb42c5 100644
--- a/include/xchan.php
+++ b/include/xchan.php
@@ -5,6 +5,11 @@ use Zotlabs\Zot6\HTTPSig;
function xchan_store_lowlevel($arr) {
+ if(! $arr['xchan_hash']) {
+ logger('No xchan_hash');
+ return false;
+ }
+
$store = [
'xchan_hash' => ((array_key_exists('xchan_hash',$arr)) ? $arr['xchan_hash'] : ''),
'xchan_guid' => ((array_key_exists('xchan_guid',$arr)) ? $arr['xchan_guid'] : ''),
diff --git a/include/zid.php b/include/zid.php
index fe06948ba..a37ebe1f6 100644
--- a/include/zid.php
+++ b/include/zid.php
@@ -70,9 +70,9 @@ function zid($s, $address = '') {
$zurl .= '#' . $fragment;
$arr = [
- 'url' => $s,
- 'zid' => urlencode($myaddr),
- 'result' => $zurl
+ 'url' => $s,
+ 'zid' => urlencode($myaddr),
+ 'result' => $zurl
];
/**
* @hooks zid
diff --git a/include/zot.php b/include/zot.php
index 3ccf0a81f..c9c01103c 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -8,6 +8,8 @@
*
*/
+use Zotlabs\Lib\DReport;
+
require_once('include/crypto.php');
require_once('include/items.php');
require_once('include/queue_fn.php');
@@ -81,7 +83,7 @@ function zot_get_hublocs($hash) {
/* Only search for active hublocs - e.g. those that haven't been marked deleted */
- $ret = q("select * from hubloc where hubloc_hash = '%s' and hubloc_deleted = 0 order by hubloc_url ",
+ $ret = q("select * from hubloc where hubloc_hash = '%s' and hubloc_deleted = 0 and hubloc_network = 'zot' order by hubloc_url ",
dbesc($hash)
);
@@ -172,7 +174,7 @@ function zot_build_packet($channel, $type = 'notify', $recipients = null, $remot
* packet type: one of 'ping', 'pickup', 'purge', 'refresh', 'keychange', 'force_refresh', 'notify', 'auth_check'
* @param array $recipients
* envelope information, array ( 'guid' => string, 'guid_sig' => string ); empty for public posts
- * @param string msg
+ * @param string $msg
* optional message
* @param string $remote_key
* optional public site key of target hub used to encrypt entire packet
@@ -654,7 +656,7 @@ function zot_gethub($arr, $multiple = false) {
$r = q("select hubloc.*, site.site_crypto from hubloc left join site on hubloc_url = site_url
where hubloc_guid = '%s' and hubloc_guid_sig = '%s'
- and hubloc_url = '%s' and hubloc_url_sig = '%s'
+ and hubloc_url = '%s' and hubloc_url_sig = '%s' and hubloc_network = 'zot'
$sitekey $limit",
dbesc($arr['guid']),
dbesc($arr['guid_sig']),
@@ -1098,6 +1100,8 @@ function zot_process_response($hub, $arr, $outq) {
return;
}
+ $dreport = true;
+
$x = json_decode($arr['body'], true);
if(! $x) {
@@ -1114,30 +1118,44 @@ function zot_process_response($hub, $arr, $outq) {
}
if(! (is_array($x['delivery_report']) && count($x['delivery_report']))) {
logger('encrypted delivery report could not be decrypted');
- return;
+ $dreport = false;
}
}
- foreach($x['delivery_report'] as $xx) {
- call_hooks('dreport_process',$xx);
- if(is_array($xx) && array_key_exists('message_id',$xx) && delivery_report_is_storable($xx)) {
- q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_result, dreport_time, dreport_xchan ) values ( '%s', '%s','%s','%s','%s','%s' ) ",
- dbesc($xx['message_id']),
- dbesc($xx['location']),
- dbesc($xx['recipient']),
- dbesc($xx['status']),
- dbesc(datetime_convert($xx['date'])),
- dbesc($xx['sender'])
- );
+ if($dreport) {
+ foreach($x['delivery_report'] as $xx) {
+ call_hooks('dreport_process',$xx);
+ if(is_array($xx) && array_key_exists('message_id',$xx) && DReport::is_storable($xx)) {
+
+ // legacy zot recipients add a space and their name to the xchan. split those if true.
+ $legacy_recipient = strpos($xx['recipient'], ' ');
+ if($legacy_recipient !== false) {
+ $legacy_recipient_parts = explode(' ', $xx['recipient'], 2);
+ $xx['recipient'] = $legacy_recipient_parts[0];
+ $xx['name'] = $legacy_recipient_parts[1];
+ }
+
+ q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_name, dreport_result, dreport_time, dreport_xchan ) values ( '%s', '%s','%s','%s','%s','%s','%s' ) ",
+ dbesc($xx['message_id']),
+ dbesc($xx['location']),
+ dbesc($xx['recipient']),
+ dbesc($xx['name']),
+ dbesc($xx['status']),
+ dbesc(datetime_convert('UTC','UTC',$xx['date'])),
+ dbesc($xx['sender'])
+ );
+ }
}
}
}
- // we have a more descriptive delivery report, so discard the per hub 'queued' report.
- q("delete from dreport where dreport_queue = '%s' ",
- dbesc($outq['outq_hash'])
- );
+ if($dreport) {
+ // we have a more descriptive delivery report, so discard the per hub 'queued' report.
+ q("delete from dreport where dreport_queue = '%s' ",
+ dbesc($outq['outq_hash'])
+ );
+ }
// update the timestamp for this site
@@ -1188,6 +1206,7 @@ function zot_fetch($arr) {
$zret = zot6_check_sig();
if($zret['success'] && $zret['hubloc'] && $zret['hubloc']['hubloc_guid'] === $arr['sender']['guid'] && $arr['msg']) {
+
logger('zot6_delivery',LOGGER_DEBUG);
logger('zot6_data: ' . print_r($arr,true),LOGGER_DATA);
@@ -1228,6 +1247,7 @@ function zot_fetch($arr) {
$datatosend = json_encode(crypto_encapsulate(json_encode($data),$hub['hubloc_sitekey'], $algorithm));
$import = zot_zot($url,$datatosend);
+
}
else {
$algorithm = zot_best_algorithm($hub['site_crypto']);
@@ -1748,7 +1768,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $
}
$channel = $r[0];
- $DR->addto_recipient($channel['channel_name'] . ' <' . channel_reddress($channel) . '>');
+ $DR->set_name($channel['channel_name'] . ' <' . channel_reddress($channel) . '>');
/* blacklisted channels get a permission denied, no special message to tip them off */
@@ -1809,7 +1829,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $
else {
$arr['item_wall'] = 0;
}
-
+
if ((! $tag_delivery) && (! $local_public)) {
$allowed = (perm_is_allowed($channel['channel_id'],$sender['hash'],$perm));
@@ -1820,10 +1840,10 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $
intval($channel['channel_id'])
);
if ($parent) {
- $allowed = can_comment_on_post($d['hash'],$parent[0]);
+ $allowed = can_comment_on_post($sender['hash'],$parent[0]);
}
}
-
+
if (! $allowed) {
logger("permission denied for delivery to channel {$channel['channel_id']} {$channel['channel_address']}");
$DR->update('permission denied');
@@ -2297,7 +2317,7 @@ function process_mail_delivery($sender, $arr, $deliveries) {
}
$channel = $r[0];
- $DR->addto_recipient($channel['channel_name'] . ' <' . channel_reddress($channel) . '>');
+ $DR->set_name($channel['channel_name'] . ' <' . channel_reddress($channel) . '>');
/* blacklisted channels get a permission denied, no special message to tip them off */
@@ -2310,7 +2330,7 @@ function process_mail_delivery($sender, $arr, $deliveries) {
if(! perm_is_allowed($channel['channel_id'],$sender['hash'],'post_mail')) {
- /*
+ /*
* Always allow somebody to reply if you initiated the conversation. It's anti-social
* and a bit rude to send a private message to somebody and block their ability to respond.
* If you are being harrassed and want to put an end to it, delete the conversation.
@@ -2338,7 +2358,7 @@ function process_mail_delivery($sender, $arr, $deliveries) {
);
if($r) {
if(intval($arr['mail_recalled'])) {
- msg_drop($r[0]['id'], $channel['channel_id'], $r[0]['conv_guid']);
+ msg_drop($r[0]['id'], $channel['channel_id'], $r[0]['conv_guid']);
$DR->update('mail recalled');
$result[] = $DR->get();
logger('mail_recalled');
@@ -3227,7 +3247,7 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) {
$channel = $r[0];
- // don't provide these in the export
+ // don't provide these in the export
unset($channel['channel_active']);
unset($channel['channel_password']);
@@ -3596,7 +3616,7 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) {
if(array_key_exists('channel_pageflags',$arr['channel']) && intval($arr['channel']['channel_pageflags'])) {
// Several pageflags are site-specific and cannot be sync'd.
- // Only allow those bits which are shareable from the remote and then
+ // Only allow those bits which are shareable from the remote and then
// logically OR with the local flags
$arr['channel']['channel_pageflags'] = $arr['channel']['channel_pageflags'] & (PAGE_HIDDEN|PAGE_AUTOCONNECT|PAGE_APPLICATION|PAGE_PREMIUM|PAGE_ADULT);
@@ -3987,7 +4007,7 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) {
if(array_key_exists('item',$arr) && is_array($arr['item'][0])) {
$DR = new Zotlabs\Lib\DReport(z_root(),$d['hash'],$d['hash'],$arr['item'][0]['message_id'],'channel sync processed');
- $DR->addto_recipient($channel['channel_name'] . ' <' . channel_reddress($channel) . '>');
+ $DR->set_name($channel['channel_name'] . ' <' . channel_reddress($channel) . '>');
}
else
$DR = new Zotlabs\Lib\DReport(z_root(),$d['hash'],$d['hash'],'sync packet','channel sync delivered');
@@ -4909,6 +4929,7 @@ function zot_reply_pickup($data) {
dbesc($data['secret']),
dbesc($data['callback'])
);
+
if(! $r) {
$ret['message'] = 'nothing to pick up';
logger('mod_zot: pickup: ' . $ret['message']);
@@ -4918,12 +4939,13 @@ function zot_reply_pickup($data) {
/*
* Everything is good if we made it here, so find all messages that are going to this location
- * and send them all.
+ * and send them all - or a reasonable number if there are a lot so we don't overflow memory.
*/
- $r = q("select * from outq where outq_posturl = '%s'",
+ $r = q("select * from outq where outq_posturl = '%s' limit 100",
dbesc($data['callback'])
);
+
if($r) {
logger('mod_zot: successful pickup message received from ' . $data['callback'] . ' ' . count($r) . ' message(s) picked up', LOGGER_DEBUG);
@@ -4949,6 +4971,19 @@ function zot_reply_pickup($data) {
}
}
+ // It's possible that we have more than 100 messages waiting to be sent.
+
+ // See if there are any more messages in the queue.
+ $x = q("select * from outq where outq_posturl = '%s' order by outq_created limit 1",
+ dbesc($data['callback'])
+ );
+
+ // If so, kick off a new delivery notification for the next batch
+ if ($x) {
+ logger("Send additional pickup request.", LOGGER_DEBUG);
+ queue_deliver($x[0],true);
+ }
+
// this is a bit of a hack because we don't have the hubloc_url here, only the callback url.
// worst case is we'll end up using aes256cbc if they've got a different post endpoint
@@ -4960,6 +4995,8 @@ function zot_reply_pickup($data) {
$encrypted = crypto_encapsulate(json_encode($ret),$sitekey,$algorithm);
json_return_and_die($encrypted);
+ // @FIXME: There is a possibility that the transmission will get interrupted
+ // and fail - in which case this packet of messages will be lost.
/* pickup: end */
}
@@ -5020,7 +5057,7 @@ function zot_reply_auth_check($data,$encrypted_packet) {
}
// There should be exactly one recipient, the original auth requestor
-
+ /// @FIXME $recipients is undefined here.
$ret['message'] .= 'recipients ' . print_r($recipients,true) . EOL;
if ($data['recipients']) {
@@ -5185,7 +5222,7 @@ function zot6_check_sig() {
$sigblock = \Zotlabs\Web\HTTPSig::parse_sigheader($_SERVER['HTTP_SIGNATURE']);
if($sigblock) {
$keyId = $sigblock['keyId'];
-
+ logger('keyID: ' . $keyId);
if($keyId) {
$r = q("select hubloc.*, site_crypto from hubloc left join site on hubloc_url = site_url
where hubloc_addr = '%s' ",
@@ -5195,6 +5232,7 @@ function zot6_check_sig() {
foreach($r as $hubloc) {
$verified = \Zotlabs\Web\HTTPSig::verify('',$hubloc['xchan_pubkey']);
if($verified && $verified['header_signed'] && $verified['header_valid'] && $verified['content_signed'] && $verified['content_valid']) {
+ logger('zot6 verified');
$ret['hubloc'] = $hubloc;
$ret['success'] = true;
return $ret;
diff --git a/install/sample-lighttpd.conf b/install/sample-lighttpd.conf
index db26c3b64..b65d86645 100644
--- a/install/sample-lighttpd.conf
+++ b/install/sample-lighttpd.conf
@@ -79,7 +79,7 @@ $HTTP["url"] =~ "\.(out|log|htaccess)$" {
url.access-deny = ("")
}
-$HTTP["url"] =~ "(^|/)\.git|(^|/)store" {
+$HTTP["url"] =~ "(^|/)\.git|(^|/)store|(^|/)util" {
url.access-deny = ("")
}
diff --git a/install/sample-nginx.conf b/install/sample-nginx.conf
index 839f208ae..6a986d426 100644
--- a/install/sample-nginx.conf
+++ b/install/sample-nginx.conf
@@ -141,5 +141,10 @@ server {
deny all;
}
+#deny access to util
+ location ~ /util {
+ deny all;
+ }
+
}
diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql
index 7b7d9cc3a..49a2c476a 100644
--- a/install/schema_mysql.sql
+++ b/install/schema_mysql.sql
@@ -247,6 +247,7 @@ CREATE TABLE IF NOT EXISTS `channel` (
`channel_guid` char(191) NOT NULL DEFAULT '',
`channel_guid_sig` text NOT NULL,
`channel_hash` char(191) NOT NULL DEFAULT '',
+ `channel_portable_id` char(191) NOT NULL DEFAULT '',
`channel_timezone` char(128) NOT NULL DEFAULT 'UTC',
`channel_location` char(191) NOT NULL DEFAULT '',
`channel_theme` char(191) NOT NULL DEFAULT '',
@@ -306,6 +307,7 @@ CREATE TABLE IF NOT EXISTS `channel` (
KEY `channel_default_gid` (`channel_default_group`),
KEY `channel_guid` (`channel_guid`),
KEY `channel_hash` (`channel_hash`),
+ KEY `channel_portable_id` (`channel_portable_id`),
KEY `channel_expire_days` (`channel_expire_days`),
KEY `channel_deleted` (`channel_deleted`),
KEY `channel_active` (`channel_active`),
@@ -403,6 +405,7 @@ CREATE TABLE IF NOT EXISTS `dreport` (
`dreport_site` char(191) NOT NULL DEFAULT '',
`dreport_recip` char(191) NOT NULL DEFAULT '',
`dreport_result` char(191) NOT NULL DEFAULT '',
+ `dreport_name` char(191) NOT NULL DEFAULT '',
`dreport_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`dreport_xchan` char(191) NOT NULL DEFAULT '',
`dreport_queue` char(191) NOT NULL DEFAULT '',
@@ -577,6 +580,7 @@ CREATE TABLE IF NOT EXISTS `issue` (
CREATE TABLE IF NOT EXISTS `item` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `uuid` char(191) NOT NULL DEFAULT '',
`mid` char(191) NOT NULL DEFAULT '',
`aid` int(10) unsigned NOT NULL DEFAULT 0 ,
`uid` int(10) unsigned NOT NULL DEFAULT 0 ,
@@ -595,6 +599,7 @@ CREATE TABLE IF NOT EXISTS `item` (
`source_xchan` char(191) NOT NULL DEFAULT '',
`mimetype` char(191) NOT NULL DEFAULT '',
`title` text NOT NULL,
+ `summary` mediumtext NOT NULL,
`body` mediumtext NOT NULL,
`html` mediumtext NOT NULL,
`app` char(191) NOT NULL DEFAULT '',
@@ -649,6 +654,7 @@ CREATE TABLE IF NOT EXISTS `item` (
`item_pending_remove` tinyint(1) NOT NULL DEFAULT 0 ,
`item_blocked` tinyint(1) NOT NULL DEFAULT 0 ,
PRIMARY KEY (`id`),
+ KEY `uuid` (`uuid`),
KEY `parent` (`parent`),
KEY `created` (`created`),
KEY `edited` (`edited`),
@@ -941,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 '',
@@ -973,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 fd827978c..1b6cab51b 100644
--- a/install/schema_postgres.sql
+++ b/install/schema_postgres.sql
@@ -242,6 +242,7 @@ CREATE TABLE "channel" (
"channel_guid" text NOT NULL DEFAULT '',
"channel_guid_sig" text NOT NULL,
"channel_hash" text NOT NULL DEFAULT '',
+ "channel_portable_id" text NOT NULL DEFAULT '',
"channel_timezone" varchar(128) NOT NULL DEFAULT 'UTC',
"channel_location" text NOT NULL DEFAULT '',
"channel_theme" text NOT NULL DEFAULT '',
@@ -284,6 +285,7 @@ create index "channel_max_friend_req" on channel ("channel_max_friend_req");
create index "channel_default_gid" on channel ("channel_default_group");
create index "channel_guid" on channel ("channel_guid");
create index "channel_hash" on channel ("channel_hash");
+create index "channel_portable_id" on channel ("channel_portable_id");
create index "channel_expire_days" on channel ("channel_expire_days");
create index "channel_deleted" on channel ("channel_deleted");
create index "channel_active" on channel ("channel_active");
@@ -375,6 +377,7 @@ CREATE TABLE IF NOT EXISTS "dreport" (
"dreport_site" varchar(255) NOT NULL DEFAULT '',
"dreport_recip" varchar(255) NOT NULL DEFAULT '',
"dreport_result" varchar(255) NOT NULL DEFAULT '',
+ "dreport_name" varchar(255) NOT NULL DEFAULT '',
"dreport_time" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
"dreport_xchan" varchar(255) NOT NULL DEFAULT '',
"dreport_queue" varchar(255) NOT NULL DEFAULT '',
@@ -548,6 +551,7 @@ create index "issue_component" on issue ("issue_component");
CREATE TABLE "item" (
"id" serial NOT NULL,
+ "uuid" text NOT NULL DEFAULT '',
"mid" text NOT NULL DEFAULT '',
"aid" bigint NOT NULL DEFAULT '0',
"uid" bigint NOT NULL DEFAULT '0',
@@ -566,6 +570,7 @@ CREATE TABLE "item" (
"source_xchan" text NOT NULL DEFAULT '',
"mimetype" text NOT NULL DEFAULT '',
"title" text NOT NULL,
+ "summary" text NOT NULL,
"body" text NOT NULL,
"html" text NOT NULL,
"app" text NOT NULL DEFAULT '',
@@ -623,6 +628,7 @@ CREATE TABLE "item" (
PRIMARY KEY ("id")
);
create index "item_uid" on item ("uid");
+create index "item_uuid" on item ("uuid");
create index "item_parent" on item ("parent");
create index "item_created" on item ("created");
create index "item_edited" on item ("edited");
@@ -922,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,
@@ -955,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/tests/phpunit-pgsql.xml b/tests/phpunit-pgsql.xml
index 078056d56..8b11aae31 100644
--- a/tests/phpunit-pgsql.xml
+++ b/tests/phpunit-pgsql.xml
@@ -1,24 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/6.0/phpunit.xsd"
+ xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/7.5/phpunit.xsd"
bootstrap="../boot.php"
forceCoversAnnotation="false"
beStrictAboutCoversAnnotation="true"
beStrictAboutOutputDuringTests="true"
beStrictAboutTodoAnnotatedTests="true"
verbose="true">
- <testsuite name="Hubzilla default Test Suite">
- <directory suffix="Test.php">./unit/</directory>
- </testsuite>
- <testsuite name="API Test Suite">
- <directory suffix="Test.php" prefix="API">./unit/</directory>
- </testsuite>
+ <testsuites>
+ <testsuite name="Hubzilla default Test Suite">
+ <directory suffix="Test.php">./unit/</directory>
+ </testsuite>
+ <testsuite name="API Test Suite">
+ <directory suffix="Test.php" prefix="API">./unit/</directory>
+ </testsuite>
+ </testsuites>
<groups>
<exclude>
<group>mysql</group>
</exclude>
</groups>
- <!--cover reporting-->
+ <!--coverage reporting-->
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">../Zotlabs/</directory>
@@ -26,21 +28,22 @@
</whitelist>
</filter>
<logging>
- <log type="junit" target="./results/junit.xml" logIncompleteSkipped="false"/>
- <log type="coverage-clover" target="./results/coverage-clover.xml"/>
+ <log type="junit" target="./results/junit.xml"/>
+ <!--<log type="coverage-clover" target="./results/coverage-clover.xml"/>-->
<log type="coverage-html" target="./results/coverage-report/" lowUpperBound="35"
highLowerBound="70"/>
- <log type="testdox-text" target="./results/testdox.txt"/>
+ <!--<log type="testdox-text" target="./results/testdox.txt"/>-->
+ <log type="testdox-html" target="./results/testdox.html"/>
</logging>
<php>
<!-- Default test database config, only used if no environment variables
with same names are set.
!!! Never run against a real database, it will truncate all tables -->
- <env name="hz_db_server" value="127.0.0.1"/>
+ <env name="hz_db_server" value="postgres"/>
<env name="hz_db_scheme" value="pgsql"/>
<env name="hz_db_port" value="5432"/>
- <env name="hz_db_user" value="travis_hz"/>
- <env name="hz_db_pass" value="hubzilla"/>
- <env name="hz_db_database" value="travis_hubzilla"/>
+ <env name="hz_db_user" value="ci-user"/>
+ <env name="hz_db_pass" value="ci-pass"/>
+ <env name="hz_db_database" value="ci-db"/>
</php>
</phpunit>
diff --git a/tests/unit/Photo/PhotoGdTest.php b/tests/unit/Photo/PhotoGdTest.php
new file mode 100644
index 000000000..1d4f9467f
--- /dev/null
+++ b/tests/unit/Photo/PhotoGdTest.php
@@ -0,0 +1,147 @@
+<?php
+
+namespace Zotlabs\Tests\Unit\Photo;
+
+use Zotlabs\Photo\PhotoGd;
+use phpmock\phpunit\PHPMock;
+use Zotlabs\Tests\Unit\UnitTestCase;
+
+/**
+ * @brief PhotoGd test case.
+ *
+ * These tests are not really useful yet, just some obvious behaviour.
+ *
+ * @todo Compare the actual results.
+ * @todo Test different image types.
+ */
+class PhotoGdTest extends UnitTestCase {
+
+ use PHPMock;
+
+ /**
+ * @var PhotoGd
+ */
+ private $photoGd;
+
+ /**
+ * Prepares the environment before running a test.
+ */
+ protected function setUp() {
+ parent::setUp();
+
+ $data = file_get_contents('images/hz-16.png');
+
+ $this->photoGd = new PhotoGd($data, 'image/png');
+ }
+
+ /**
+ * Cleans up the environment after running a test.
+ */
+ protected function tearDown() {
+ $this->photoGd = null;
+
+ parent::tearDown();
+ }
+
+ /**
+ * Tests PhotoGd->supportedTypes()
+ *
+ * Without mocking gd this check is environment dependent.
+ *
+ public function testSupportedTypes() {
+ $sft = $this->photoGd->supportedTypes();
+
+ $this->assertArrayHasKey('image/jpeg', $sft);
+ $this->assertArrayHasKey('image/gif', $sft);
+ $this->assertArrayHasKey('image/png', $sft);
+
+ $this->assertArrayNotHasKey('image/foo', $sft);
+ }
+ */
+
+ /**
+ * Tests PhotoGd->clearexif()
+ */
+ public function testClearexifIsNotImplementedInGdAndDoesNotAlterImageOrReturnSomething() {
+ $data_before = $this->photoGd->getImage();
+ $this->assertNull($this->photoGd->clearexif());
+ $this->assertSame($data_before, $this->photoGd->getImage());
+ }
+
+ /**
+ * Tests PhotoGd->getImage()
+ */
+ public function testGetimageReturnsAResource() {
+ $res = $this->photoGd->getImage();
+ $this->assertIsResource($res);
+ $this->assertEquals('gd', get_resource_type($res));
+ }
+ public function testGetimageReturnsFalseOnFailure() {
+ $this->photoGd = new PhotoGd('');
+ $this->assertFalse($this->photoGd->getImage());
+ }
+
+ /**
+ * Tests PhotoGd->doScaleImage()
+ */
+ public function testDoscaleImageSetsCorrectDimensions() {
+ $this->photoGd->doScaleImage(5, 8);
+
+ $this->assertSame(5, $this->photoGd->getWidth());
+ $this->assertSame(8, $this->photoGd->getHeight());
+ }
+
+ /**
+ * Tests PhotoGd->rotate()
+ */
+ public function testRotate360DegreesCreatesANewImage() {
+ $data = $this->photoGd->getImage();
+ $this->photoGd->rotate(360);
+ $this->assertNotEquals($data, $this->photoGd->getImage());
+ }
+
+ /**
+ * Tests PhotoGd->flip()
+ *
+ public function testFlip() {
+ // TODO Auto-generated PhotoGdTest->testFlip()
+ $this->markTestIncomplete("flip test not implemented");
+
+ $this->photoGd->flip();
+ }
+ */
+
+ /**
+ * Tests PhotoGd->cropImageRect()
+ */
+ public function testCropimagerectSetsCorrectDimensions() {
+ $this->photoGd->cropImageRect(10, 12, 1, 2, 11, 11);
+
+ $this->assertSame(10, $this->photoGd->getWidth());
+ $this->assertSame(12, $this->photoGd->getHeight());
+ }
+
+ /**
+ * Tests PhotoGd->imageString()
+ */
+ public function testImagestringReturnsABinaryString() {
+ // Create a stub for global function get_config()
+ // get_config('system', 'png_quality')
+ // get_config('system', 'jpeg_quality');
+ $gc = $this->getFunctionMock('Zotlabs\Photo', 'get_config');
+ $gc->expects($this->once())->willReturnCallback(
+ function() {
+ switch($this->photoGd->getType()){
+ case 'image/png':
+ return 7;
+ case 'image/jpeg':
+ default:
+ return 70;
+ }
+ }
+ );
+
+ $this->assertIsString($this->photoGd->imageString());
+ }
+
+}
diff --git a/tests/unit/Web/HttpSigTest.php b/tests/unit/Web/HttpSigTest.php
index 18f2ce92b..9909a9883 100644
--- a/tests/unit/Web/HttpSigTest.php
+++ b/tests/unit/Web/HttpSigTest.php
@@ -91,6 +91,7 @@ class PermissionDescriptionTest extends UnitTestCase {
function testDecrypt_sigheader() {
$header = 'Header: iv="value_iv" key="value_key" alg="value_alg" data="value_data"';
$result = [
+ 'encrypted' => true,
'iv' => 'value_iv',
'key' => 'value_key',
'alg' => 'value_alg',
@@ -109,6 +110,7 @@ class PermissionDescriptionTest extends UnitTestCase {
$header = 'Header: iv="value_iv" key="value_key" alg="value_alg" data="value_data"';
$result = [
+ 'encrypted' => true,
'iv' => 'value_iv',
'key' => 'value_key',
'alg' => 'value_alg',
diff --git a/tests/unit/get_tags_test.php b/tests/unit/get_tags_test.php
index 40f016747..bdffd8311 100644
--- a/tests/unit/get_tags_test.php
+++ b/tests/unit/get_tags_test.php
@@ -106,10 +106,9 @@ class GetTagsTest extends PHPUnit_Framework_TestCase {
$tags=get_tags($text);
- $inform='';
$str_tags='';
foreach($tags as $tag) {
- handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
+ handle_tag($text, $str_tags, 11, $tag);
}
//correct tags found?
@@ -117,7 +116,6 @@ class GetTagsTest extends PHPUnit_Framework_TestCase {
$this->assertTrue(in_array("@Mike", $tags));
//correct output from handle_tag?
- $this->assertEquals("cid:15", $inform);
$this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url]", $str_tags);
$this->assertEquals("hi @[url=http://justatest.de]Mike Lastname[/url]", $text);
}
@@ -135,9 +133,8 @@ class GetTagsTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(1, count($tags));
$this->assertTrue(in_array("@Mike.because", $tags));
- $inform='';
$str_tags='';
- handle_tag($this->a, $text, $inform, $str_tags, 11, $tags[0]);
+ handle_tag($text, $str_tags, 11, $tags[0]);
// (mike) - This is a tricky case.
// we support mentions as in @mike@example.com - which contains a period.
@@ -149,7 +146,6 @@ class GetTagsTest extends PHPUnit_Framework_TestCase {
// $this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url]", $str_tags);
// $this->assertEquals("hi @[url=http://justatest.de]Mike Lastname[/url].because", $text);
- $this->assertEquals("", $inform);
$this->assertEquals("", $str_tags);
}
@@ -195,13 +191,11 @@ class GetTagsTest extends PHPUnit_Framework_TestCase {
$this->assertTrue(in_array("@Mike This", $tags));
$this->assertTrue(in_array("#test_case", $tags));
- $inform='';
$str_tags='';
foreach($tags as $tag) {
- handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
+ handle_tag($text, $str_tags, 11, $tag);
}
- $this->assertEquals("cid:15", $inform);
$this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url],#[url=baseurl/search?tag=test%20case]test case[/url]", $str_tags);
$this->assertEquals("hi @[url=http://justatest.de]Mike Lastname[/url] This is a #[url=baseurl/search?tag=test%20case]test case[/url]", $text);
@@ -255,16 +249,13 @@ class GetTagsTest extends PHPUnit_Framework_TestCase {
//happens right now, but it shouldn't be necessary
$this->assertTrue(in_array("@mike+15 id", $tags));
- $inform='';
$str_tags='';
foreach($tags as $tag) {
- handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
+ handle_tag($text, $str_tags, 11, $tag);
}
$this->assertEquals("Test with @[url=http://justatest.de]Mike Lastname[/url] id tag", $text);
$this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url]", $str_tags);
- // this test may produce two cid:15 entries - which is OK because duplicates are pruned before delivery
- $this->assertContains("cid:15",$inform);
}
/**
diff --git a/tests/unit/includes/PhotodriverTest.php b/tests/unit/includes/PhotodriverTest.php
new file mode 100644
index 000000000..6f6ad0ffe
--- /dev/null
+++ b/tests/unit/includes/PhotodriverTest.php
@@ -0,0 +1,39 @@
+<?php
+
+namespace Zotlabs\Tests\Unit\includes;
+
+//use Zotlabs\Photo\PhotoGd;
+use Zotlabs\Tests\Unit\UnitTestCase;
+//use phpmock\phpunit\PHPMock;
+
+/**
+ * @brief Unit Test cases for include/photo/photo_driver.php file.
+ */
+class PhotodriverTest extends UnitTestCase {
+ //use PHPMock;
+
+ public function testPhotofactoryReturnsNullForUnsupportedType() {
+ // php-mock can not mock global functions which is called by a global function.
+ // If the calling function is in a namespace it would work.
+ //$logger = $this->getFunctionMock(__NAMESPACE__, 'logger');
+ //$logger->expects($this->once());
+
+ //$ph = \photo_factory('', 'image/bmp');
+ //$this->assertNull($ph);
+
+ $this->markTestIncomplete('Need to mock logger(), otherwise not unit testable.');
+ }
+
+ public function testPhotofactoryReturnsPhotogdIfConfigIgnore_imagickIsSet() {
+ // php-mock can not mock global functions which is called by a global function.
+ // If the calling function is in a namespace it would work.
+ //$gc = $this->getFunctionMock(__NAMESPACE__, 'get_config');
+ // simulate get_config('system', 'ignore_imagick') configured
+ //$gc->expects($this->once())->willReturn(1)
+
+ //$ph = \photo_factory(file_get_contents('images/hz-16.png'), 'image/png');
+ //$this->assertInstanceOf(PhotoGd::class, $ph);
+
+ $this->markTestIncomplete('Need to mock get_config(), otherwise not unit testable.');
+ }
+} \ No newline at end of file
diff --git a/util/Doxyfile b/util/Doxyfile
index 7be774a81..14464df81 100644
--- a/util/Doxyfile
+++ b/util/Doxyfile
@@ -1,7 +1,8 @@
INPUT = README.md index.php boot.php include/ install/ util/ view/ Zotlabs/
RECURSIVE = YES
PROJECT_NAME = "The Hubzilla"
-PROJECT_LOGO = images/rm-64.png
+PROJECT_LOGO = images/hz-64.png
+IMAGE_PATH = images/
EXCLUDE = .htconfig.php library/ doc/ store/ vendor/ .git/ util/zotsh/easywebdav/ util/generate-hooks-index/
EXCLUDE_PATTERNS = *smarty3* *strings.php *.out *test*
OUTPUT_DIRECTORY = doc
@@ -33,5 +34,6 @@ INTERACTIVE_SVG = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO
# fix @var (https://bugzilla.gnome.org/show_bug.cgi?id=626105)
+# Should be obsolete with doxygen >= 1.8.15
#INPUT_FILTER = "sed -e 's/@var\s/@see /'"
INPUT_FILTER = "php util/Doxygen_phpvarfilter.php"
diff --git a/util/admins b/util/admins
new file mode 100755
index 000000000..3c7f0e83e
--- /dev/null
+++ b/util/admins
@@ -0,0 +1,60 @@
+#!/usr/bin/env php
+<?php
+
+if(!file_exists('include/cli_startup.php')) {
+ echo 'Run admins from the top level Hubzilla web directory, as util/admins <args>' . PHP_EOL;
+ exit(1);
+}
+
+
+
+require_once('include/cli_startup.php');
+
+cli_startup();
+
+$helpArgs = getopt('h', array('help'));
+if (count($helpArgs) === 1) {
+ echo <<<'EndOfOutput'
+adds, removes, or lists admins
+
+Usage: util/admins
+ util/admins list
+ util/admins add <account_id>
+ util/admins remove <account_id>
+
+EndOfOutput;
+ return;
+}
+
+if($argc == 1) {
+ $r = q("select account_id, account_roles, account_email from account");
+ if($r) {
+ foreach($r as $rr) {
+ echo sprintf('%4u %s %s', $rr['account_id'], $rr['account_email'],(($rr['account_roles'] & 4096) ? '*' : '')) . PHP_EOL;
+ }
+ }
+}
+
+
+
+if($argc > 1 && $argv[1] === 'list') {
+ $r = q("select account_id, account_roles, account_email from account where (account_roles & 4096) > 0");
+ if($r) {
+ foreach($r as $rr) {
+ echo sprintf('%4u %s %s', $rr['account_id'], $rr['account_email'],(($rr['account_roles'] & 4096) ? '*' : '')) . PHP_EOL;
+ }
+ }
+}
+
+
+if($argc > 2 && $argv[1] === 'add' && intval($argv[2])) {
+ $r = q("update account set account_roles = (account_roles | 4096) where account_id = %d",
+ intval($argv[2])
+ );
+}
+
+if($argc > 2 && $argv[1] === 'remove' && intval($argv[2])) {
+ $r = q("update account set account_roles = (account_roles - 4096) where account_id = %d and (account_roles & 4096) > 0",
+ intval($argv[2])
+ );
+}
diff --git a/util/hmessages.po b/util/hmessages.po
index d09286707..a4f6dd588 100644
--- a/util/hmessages.po
+++ b/util/hmessages.po
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: 3.8.5\n"
+"Project-Id-Version: 3.9.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-12-03 12:03+0100\n"
+"POT-Creation-Date: 2019-02-19 10:11+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -150,11 +150,11 @@ msgid "Special - Group Repository"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:306
-#: ../../Zotlabs/Module/Cdav.php:1227 ../../Zotlabs/Module/Connedit.php:919
+#: ../../Zotlabs/Module/Cdav.php:1227 ../../Zotlabs/Module/Connedit.php:935
#: ../../Zotlabs/Module/Profiles.php:795 ../../include/selectors.php:60
#: ../../include/selectors.php:77 ../../include/selectors.php:115
-#: ../../include/selectors.php:151 ../../include/event.php:1315
-#: ../../include/event.php:1322 ../../include/connections.php:703
+#: ../../include/selectors.php:151 ../../include/event.php:1327
+#: ../../include/event.php:1334 ../../include/connections.php:703
#: ../../include/connections.php:710
msgid "Other"
msgstr ""
@@ -163,22 +163,22 @@ msgstr ""
msgid "Custom/Expert Mode"
msgstr ""
-#: ../../Zotlabs/Module/Blocks.php:33 ../../Zotlabs/Module/Articles.php:34
+#: ../../Zotlabs/Module/Blocks.php:33 ../../Zotlabs/Module/Articles.php:42
#: ../../Zotlabs/Module/Editlayout.php:31 ../../Zotlabs/Module/Connect.php:17
#: ../../Zotlabs/Module/Achievements.php:15 ../../Zotlabs/Module/Hcard.php:12
#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Profile.php:20
#: ../../Zotlabs/Module/Menu.php:91 ../../Zotlabs/Module/Layouts.php:31
-#: ../../Zotlabs/Module/Editwebpage.php:32 ../../Zotlabs/Module/Cards.php:37
+#: ../../Zotlabs/Module/Editwebpage.php:32 ../../Zotlabs/Module/Cards.php:42
#: ../../Zotlabs/Module/Webpages.php:39 ../../Zotlabs/Module/Filestorage.php:51
-#: ../../addon/gallery/Mod_Gallery.php:47 ../../include/channel.php:1204
+#: ../../addon/gallery/Mod_Gallery.php:49 ../../include/channel.php:1253
msgid "Requested profile is not available."
msgstr ""
#: ../../Zotlabs/Module/Blocks.php:73 ../../Zotlabs/Module/Blocks.php:80
#: ../../Zotlabs/Module/Invite.php:21 ../../Zotlabs/Module/Invite.php:102
-#: ../../Zotlabs/Module/Articles.php:80 ../../Zotlabs/Module/Editlayout.php:67
-#: ../../Zotlabs/Module/Editlayout.php:90 ../../Zotlabs/Module/Channel.php:119
-#: ../../Zotlabs/Module/Channel.php:286 ../../Zotlabs/Module/Channel.php:325
+#: ../../Zotlabs/Module/Articles.php:88 ../../Zotlabs/Module/Editlayout.php:67
+#: ../../Zotlabs/Module/Editlayout.php:90 ../../Zotlabs/Module/Channel.php:168
+#: ../../Zotlabs/Module/Channel.php:335 ../../Zotlabs/Module/Channel.php:374
#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Locs.php:87
#: ../../Zotlabs/Module/Mitem.php:129 ../../Zotlabs/Module/Events.php:271
#: ../../Zotlabs/Module/Appman.php:87 ../../Zotlabs/Module/Regmod.php:20
@@ -191,17 +191,17 @@ msgstr ""
#: ../../Zotlabs/Module/Thing.php:300 ../../Zotlabs/Module/Thing.php:341
#: ../../Zotlabs/Module/Api.php:24 ../../Zotlabs/Module/Editblock.php:67
#: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101
-#: ../../Zotlabs/Module/Mood.php:124 ../../Zotlabs/Module/Connections.php:32
+#: ../../Zotlabs/Module/Mood.php:126 ../../Zotlabs/Module/Connections.php:32
#: ../../Zotlabs/Module/Viewsrc.php:19 ../../Zotlabs/Module/Bookmarks.php:70
#: ../../Zotlabs/Module/Photos.php:69 ../../Zotlabs/Module/Wiki.php:59
#: ../../Zotlabs/Module/Wiki.php:285 ../../Zotlabs/Module/Wiki.php:428
#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Poke.php:157
#: ../../Zotlabs/Module/Profile_photo.php:302
#: ../../Zotlabs/Module/Profile_photo.php:315
-#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Item.php:229
-#: ../../Zotlabs/Module/Item.php:248 ../../Zotlabs/Module/Item.php:258
-#: ../../Zotlabs/Module/Item.php:1110 ../../Zotlabs/Module/Page.php:34
-#: ../../Zotlabs/Module/Page.php:133 ../../Zotlabs/Module/Connedit.php:390
+#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Item.php:376
+#: ../../Zotlabs/Module/Item.php:395 ../../Zotlabs/Module/Item.php:405
+#: ../../Zotlabs/Module/Item.php:1281 ../../Zotlabs/Module/Page.php:34
+#: ../../Zotlabs/Module/Page.php:133 ../../Zotlabs/Module/Connedit.php:399
#: ../../Zotlabs/Module/Chat.php:115 ../../Zotlabs/Module/Chat.php:120
#: ../../Zotlabs/Module/Menu.php:129 ../../Zotlabs/Module/Menu.php:140
#: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78
@@ -213,15 +213,15 @@ msgstr ""
#: ../../Zotlabs/Module/Editwebpage.php:89
#: ../../Zotlabs/Module/Editwebpage.php:107
#: ../../Zotlabs/Module/Editwebpage.php:121 ../../Zotlabs/Module/Manage.php:10
-#: ../../Zotlabs/Module/Cards.php:81 ../../Zotlabs/Module/Webpages.php:133
+#: ../../Zotlabs/Module/Cards.php:86 ../../Zotlabs/Module/Webpages.php:133
#: ../../Zotlabs/Module/Block.php:24 ../../Zotlabs/Module/Block.php:74
#: ../../Zotlabs/Module/Editpost.php:17 ../../Zotlabs/Module/Sources.php:80
-#: ../../Zotlabs/Module/Like.php:185 ../../Zotlabs/Module/Suggest.php:32
+#: ../../Zotlabs/Module/Like.php:187 ../../Zotlabs/Module/Suggest.php:32
#: ../../Zotlabs/Module/Message.php:18 ../../Zotlabs/Module/Mail.php:146
#: ../../Zotlabs/Module/Register.php:77
#: ../../Zotlabs/Module/Cover_photo.php:313
#: ../../Zotlabs/Module/Cover_photo.php:326
-#: ../../Zotlabs/Module/Display.php:448 ../../Zotlabs/Module/Network.php:17
+#: ../../Zotlabs/Module/Display.php:446 ../../Zotlabs/Module/Network.php:19
#: ../../Zotlabs/Module/Filestorage.php:15
#: ../../Zotlabs/Module/Filestorage.php:70
#: ../../Zotlabs/Module/Filestorage.php:96
@@ -233,13 +233,13 @@ msgstr ""
#: ../../Zotlabs/Module/Notifications.php:11 ../../Zotlabs/Lib/Chatroom.php:133
#: ../../Zotlabs/Web/WebServer.php:123 ../../addon/keepout/keepout.php:36
#: ../../addon/flashcards/Mod_Flashcards.php:167
-#: ../../addon/openid/Mod_Id.php:53 ../../addon/pumpio/pumpio.php:40
-#: ../../include/attach.php:150 ../../include/attach.php:197
-#: ../../include/attach.php:270 ../../include/attach.php:379
-#: ../../include/attach.php:393 ../../include/attach.php:400
-#: ../../include/attach.php:482 ../../include/attach.php:1042
-#: ../../include/attach.php:1116 ../../include/attach.php:1281
-#: ../../include/items.php:3684 ../../include/photos.php:27
+#: ../../addon/openid/Mod_Id.php:53 ../../addon/pumpio/pumpio.php:44
+#: ../../include/attach.php:150 ../../include/attach.php:199
+#: ../../include/attach.php:272 ../../include/attach.php:381
+#: ../../include/attach.php:395 ../../include/attach.php:402
+#: ../../include/attach.php:484 ../../include/attach.php:1044
+#: ../../include/attach.php:1118 ../../include/attach.php:1283
+#: ../../include/items.php:3781 ../../include/photos.php:27
msgid "Permission denied."
msgstr ""
@@ -248,7 +248,7 @@ msgstr ""
msgid "Block Name"
msgstr ""
-#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2478
+#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2534
msgid "Blocks"
msgstr ""
@@ -266,11 +266,11 @@ msgstr ""
msgid "Edited"
msgstr ""
-#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:108
+#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:116
#: ../../Zotlabs/Module/Cdav.php:1230 ../../Zotlabs/Module/New_channel.php:189
-#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Menu.php:181
+#: ../../Zotlabs/Module/Connedit.php:938 ../../Zotlabs/Module/Menu.php:181
#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:798
-#: ../../Zotlabs/Module/Cards.php:109 ../../Zotlabs/Module/Webpages.php:254
+#: ../../Zotlabs/Module/Cards.php:113 ../../Zotlabs/Module/Webpages.php:254
#: ../../Zotlabs/Storage/Browser.php:276 ../../Zotlabs/Storage/Browser.php:390
#: ../../Zotlabs/Widget/Cdav.php:128 ../../Zotlabs/Widget/Cdav.php:165
msgid "Create"
@@ -284,13 +284,13 @@ msgstr ""
#: ../../Zotlabs/Module/Connections.php:322
#: ../../Zotlabs/Module/Connections.php:342 ../../Zotlabs/Module/Wiki.php:211
#: ../../Zotlabs/Module/Wiki.php:384 ../../Zotlabs/Module/Menu.php:175
-#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Group.php:235
+#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Group.php:252
#: ../../Zotlabs/Module/Editwebpage.php:142
#: ../../Zotlabs/Module/Webpages.php:255 ../../Zotlabs/Module/Card_edit.php:99
-#: ../../Zotlabs/Module/Oauth.php:173 ../../Zotlabs/Lib/Apps.php:534
-#: ../../Zotlabs/Lib/ThreadItem.php:130 ../../Zotlabs/Storage/Browser.php:290
+#: ../../Zotlabs/Module/Oauth.php:173 ../../Zotlabs/Lib/Apps.php:556
+#: ../../Zotlabs/Lib/ThreadItem.php:147 ../../Zotlabs/Storage/Browser.php:290
#: ../../Zotlabs/Widget/Cdav.php:126 ../../Zotlabs/Widget/Cdav.php:162
-#: ../../include/channel.php:1303 ../../include/channel.php:1307
+#: ../../include/channel.php:1352 ../../include/channel.php:1356
#: ../../include/menu.php:118
msgid "Edit"
msgstr ""
@@ -298,7 +298,7 @@ msgstr ""
#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1117
#: ../../Zotlabs/Module/Wiki.php:301 ../../Zotlabs/Module/Layouts.php:194
#: ../../Zotlabs/Module/Webpages.php:256 ../../Zotlabs/Widget/Cdav.php:124
-#: ../../addon/hsse/hsse.php:186 ../../include/conversation.php:1389
+#: ../../addon/hsse/hsse.php:186 ../../include/conversation.php:1392
msgid "Share"
msgstr ""
@@ -310,12 +310,12 @@ msgstr ""
#: ../../Zotlabs/Module/Admin/Profs.php:176 ../../Zotlabs/Module/Thing.php:267
#: ../../Zotlabs/Module/Oauth2.php:195 ../../Zotlabs/Module/Editblock.php:139
#: ../../Zotlabs/Module/Connections.php:292
-#: ../../Zotlabs/Module/Photos.php:1218 ../../Zotlabs/Module/Connedit.php:655
-#: ../../Zotlabs/Module/Connedit.php:924 ../../Zotlabs/Module/Profiles.php:800
+#: ../../Zotlabs/Module/Photos.php:1220 ../../Zotlabs/Module/Connedit.php:668
+#: ../../Zotlabs/Module/Connedit.php:940 ../../Zotlabs/Module/Profiles.php:800
#: ../../Zotlabs/Module/Editwebpage.php:167
#: ../../Zotlabs/Module/Webpages.php:257 ../../Zotlabs/Module/Card_edit.php:129
-#: ../../Zotlabs/Module/Oauth.php:174 ../../Zotlabs/Lib/Apps.php:535
-#: ../../Zotlabs/Lib/ThreadItem.php:150 ../../Zotlabs/Storage/Browser.php:291
+#: ../../Zotlabs/Module/Oauth.php:174 ../../Zotlabs/Lib/Apps.php:557
+#: ../../Zotlabs/Lib/ThreadItem.php:167 ../../Zotlabs/Storage/Browser.php:291
#: ../../include/conversation.php:691 ../../include/conversation.php:736
msgid "Delete"
msgstr ""
@@ -361,20 +361,44 @@ msgstr[1] ""
msgid "Invite App"
msgstr ""
-#: ../../Zotlabs/Module/Invite.php:110 ../../Zotlabs/Module/Articles.php:43
+#: ../../Zotlabs/Module/Invite.php:110 ../../Zotlabs/Module/Articles.php:51
#: ../../Zotlabs/Module/Cdav.php:839 ../../Zotlabs/Module/Cdav.php:848
#: ../../Zotlabs/Module/Permcats.php:62 ../../Zotlabs/Module/Lang.php:17
#: ../../Zotlabs/Module/Uexport.php:61 ../../Zotlabs/Module/Pubstream.php:20
#: ../../Zotlabs/Module/Connect.php:104 ../../Zotlabs/Module/Tokens.php:99
#: ../../Zotlabs/Module/Oauth2.php:106 ../../Zotlabs/Module/Randprof.php:29
-#: ../../Zotlabs/Module/Mood.php:132 ../../Zotlabs/Module/Bookmarks.php:78
+#: ../../Zotlabs/Module/Mood.php:134 ../../Zotlabs/Module/Bookmarks.php:78
#: ../../Zotlabs/Module/Wiki.php:52 ../../Zotlabs/Module/Pdledit.php:42
#: ../../Zotlabs/Module/Poke.php:165 ../../Zotlabs/Module/Chat.php:102
-#: ../../Zotlabs/Module/Notes.php:55 ../../Zotlabs/Module/Defperms.php:189
-#: ../../Zotlabs/Module/Group.php:101 ../../Zotlabs/Module/Cards.php:46
-#: ../../Zotlabs/Module/Webpages.php:48 ../../Zotlabs/Module/Sources.php:88
-#: ../../Zotlabs/Module/Suggest.php:40 ../../Zotlabs/Module/Probe.php:18
-#: ../../Zotlabs/Module/Oauth.php:100
+#: ../../Zotlabs/Module/Notes.php:56 ../../Zotlabs/Module/Affinity.php:52
+#: ../../Zotlabs/Module/Defperms.php:189 ../../Zotlabs/Module/Group.php:106
+#: ../../Zotlabs/Module/Cards.php:51 ../../Zotlabs/Module/Webpages.php:48
+#: ../../Zotlabs/Module/Sources.php:88 ../../Zotlabs/Module/Suggest.php:40
+#: ../../Zotlabs/Module/Probe.php:18 ../../Zotlabs/Module/Oauth.php:100
+#: ../../addon/skeleton/Mod_Skeleton.php:32
+#: ../../addon/gnusoc/Mod_Gnusoc.php:22 ../../addon/planets/Mod_Planets.php:20
+#: ../../addon/wppost/Mod_Wppost.php:41 ../../addon/nsfw/Mod_Nsfw.php:33
+#: ../../addon/ijpost/Mod_Ijpost.php:35 ../../addon/dwpost/Mod_Dwpost.php:36
+#: ../../addon/gallery/Mod_Gallery.php:58 ../../addon/ljpost/Mod_Ljpost.php:36
+#: ../../addon/startpage/Mod_Startpage.php:50
+#: ../../addon/diaspora/Mod_Diaspora.php:55
+#: ../../addon/photocache/Mod_Photocache.php:42
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:21
+#: ../../addon/nsabait/Mod_Nsabait.php:20
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:34 ../../addon/rtof/Mod_Rtof.php:36
+#: ../../addon/jappixmini/Mod_Jappixmini.php:96
+#: ../../addon/superblock/Mod_Superblock.php:20
+#: ../../addon/nofed/Mod_Nofed.php:33 ../../addon/redred/Mod_Redred.php:50
+#: ../../addon/hsse/Mod_Hsse.php:21 ../../addon/pubcrawl/Mod_Pubcrawl.php:40
+#: ../../addon/libertree/Mod_Libertree.php:35
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:53
+#: ../../addon/statusnet/Mod_Statusnet.php:146
+#: ../../addon/twitter/Mod_Twitter.php:78
+#: ../../addon/smileybutton/Mod_Smileybutton.php:35
+#: ../../addon/sendzid/Mod_Sendzid.php:20
+#: ../../addon/pageheader/Mod_Pageheader.php:34
+#: ../../addon/authchoose/Mod_Authchoose.php:28
+#: ../../addon/xmpp/Mod_Xmpp.php:35 ../../addon/pumpio/Mod_Pumpio.php:53
msgid "Not Installed"
msgstr ""
@@ -433,7 +457,7 @@ msgstr ""
#: ../../Zotlabs/Module/Admin/Channels.php:147
#: ../../Zotlabs/Module/Admin/Themes.php:158
#: ../../Zotlabs/Module/Admin/Site.php:289
-#: ../../Zotlabs/Module/Admin/Addons.php:438
+#: ../../Zotlabs/Module/Admin/Addons.php:441
#: ../../Zotlabs/Module/Admin/Profs.php:178
#: ../../Zotlabs/Module/Admin/Account_edit.php:73
#: ../../Zotlabs/Module/Admin/Security.php:112
@@ -447,7 +471,6 @@ msgstr ""
#: ../../Zotlabs/Module/Settings/Account.php:103
#: ../../Zotlabs/Module/Settings/Profiles.php:50
#: ../../Zotlabs/Module/Settings/Manage.php:41
-#: ../../Zotlabs/Module/Settings/Featured.php:54
#: ../../Zotlabs/Module/Settings/Channel_home.php:89
#: ../../Zotlabs/Module/Settings/Directory.php:41
#: ../../Zotlabs/Module/Settings/Editor.php:41
@@ -456,74 +479,76 @@ msgstr ""
#: ../../Zotlabs/Module/Tokens.php:188 ../../Zotlabs/Module/Thing.php:326
#: ../../Zotlabs/Module/Thing.php:379 ../../Zotlabs/Module/Import.php:574
#: ../../Zotlabs/Module/Oauth2.php:116 ../../Zotlabs/Module/Cal.php:344
-#: ../../Zotlabs/Module/Mood.php:156 ../../Zotlabs/Module/Photos.php:1097
-#: ../../Zotlabs/Module/Photos.php:1137 ../../Zotlabs/Module/Photos.php:1255
+#: ../../Zotlabs/Module/Mood.php:158 ../../Zotlabs/Module/Photos.php:1097
+#: ../../Zotlabs/Module/Photos.php:1138 ../../Zotlabs/Module/Photos.php:1257
#: ../../Zotlabs/Module/Wiki.php:215 ../../Zotlabs/Module/Pdledit.php:107
-#: ../../Zotlabs/Module/Poke.php:217 ../../Zotlabs/Module/Connedit.php:888
+#: ../../Zotlabs/Module/Poke.php:217 ../../Zotlabs/Module/Connedit.php:904
#: ../../Zotlabs/Module/Chat.php:211 ../../Zotlabs/Module/Chat.php:250
#: ../../Zotlabs/Module/Email_validation.php:40
-#: ../../Zotlabs/Module/Pconfig.php:116 ../../Zotlabs/Module/Defperms.php:265
-#: ../../Zotlabs/Module/Group.php:140 ../../Zotlabs/Module/Group.php:156
-#: ../../Zotlabs/Module/Profiles.php:723 ../../Zotlabs/Module/Editpost.php:85
-#: ../../Zotlabs/Module/Sources.php:125 ../../Zotlabs/Module/Sources.php:162
-#: ../../Zotlabs/Module/Xchan.php:15 ../../Zotlabs/Module/Mail.php:431
-#: ../../Zotlabs/Module/Filestorage.php:183 ../../Zotlabs/Module/Rate.php:166
-#: ../../Zotlabs/Module/Oauth.php:111 ../../Zotlabs/Lib/ThreadItem.php:767
-#: ../../Zotlabs/Widget/Eventstools.php:16
+#: ../../Zotlabs/Module/Pconfig.php:116 ../../Zotlabs/Module/Affinity.php:87
+#: ../../Zotlabs/Module/Defperms.php:265 ../../Zotlabs/Module/Group.php:150
+#: ../../Zotlabs/Module/Group.php:166 ../../Zotlabs/Module/Profiles.php:723
+#: ../../Zotlabs/Module/Editpost.php:85 ../../Zotlabs/Module/Sources.php:125
+#: ../../Zotlabs/Module/Sources.php:162 ../../Zotlabs/Module/Xchan.php:15
+#: ../../Zotlabs/Module/Mail.php:431 ../../Zotlabs/Module/Filestorage.php:183
+#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Module/Oauth.php:111
+#: ../../Zotlabs/Lib/ThreadItem.php:795 ../../Zotlabs/Widget/Eventstools.php:16
#: ../../Zotlabs/Widget/Wiki_pages.php:42
#: ../../Zotlabs/Widget/Wiki_pages.php:99
#: ../../view/theme/redbasic_c/php/config.php:95
#: ../../view/theme/redbasic/php/config.php:94
-#: ../../addon/skeleton/skeleton.php:65 ../../addon/planets/planets.php:153
+#: ../../addon/skeleton/Mod_Skeleton.php:51
#: ../../addon/openclipatar/openclipatar.php:53
#: ../../addon/wppost/Mod_Wppost.php:97 ../../addon/nsfw/Mod_Nsfw.php:61
-#: ../../addon/ijpost/ijpost.php:89 ../../addon/dwpost/dwpost.php:89
+#: ../../addon/ijpost/Mod_Ijpost.php:72 ../../addon/dwpost/Mod_Dwpost.php:71
#: ../../addon/likebanner/likebanner.php:57
-#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:53
-#: ../../addon/ljpost/ljpost.php:89 ../../addon/startpage/Mod_Startpage.php:73
-#: ../../addon/diaspora/Mod_Diaspora.php:99 ../../addon/hzfiles/hzfiles.php:84
-#: ../../addon/visage/visage.php:170 ../../addon/nsabait/nsabait.php:161
-#: ../../addon/mailtest/mailtest.php:100
+#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:45
+#: ../../addon/ljpost/Mod_Ljpost.php:73
+#: ../../addon/startpage/Mod_Startpage.php:73
+#: ../../addon/diaspora/Mod_Diaspora.php:99
+#: ../../addon/photocache/Mod_Photocache.php:67
+#: ../../addon/hzfiles/hzfiles.php:84 ../../addon/mailtest/mailtest.php:100
#: ../../addon/openstreetmap/openstreetmap.php:169
-#: ../../addon/fuzzloc/fuzzloc.php:191 ../../addon/rtof/rtof.php:101
-#: ../../addon/jappixmini/jappixmini.php:371
-#: ../../addon/channelreputation/channelreputation.php:139
-#: ../../addon/nofed/nofed.php:80 ../../addon/redred/redred.php:119
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:56 ../../addon/rtof/Mod_Rtof.php:72
+#: ../../addon/jappixmini/Mod_Jappixmini.php:261
+#: ../../addon/channelreputation/channelreputation.php:140
+#: ../../addon/nofed/Mod_Nofed.php:53 ../../addon/redred/Mod_Redred.php:90
#: ../../addon/logrot/logrot.php:35 ../../addon/frphotos/frphotos.php:97
#: ../../addon/pubcrawl/Mod_Pubcrawl.php:63
-#: ../../addon/chords/Mod_Chords.php:60 ../../addon/libertree/libertree.php:85
-#: ../../addon/flattrwidget/flattrwidget.php:124
-#: ../../addon/statusnet/statusnet.php:322
-#: ../../addon/statusnet/statusnet.php:380
-#: ../../addon/statusnet/statusnet.php:432
-#: ../../addon/statusnet/statusnet.php:900 ../../addon/twitter/twitter.php:221
-#: ../../addon/twitter/twitter.php:268
-#: ../../addon/smileybutton/smileybutton.php:219
-#: ../../addon/cart/Settings/Cart.php:114 ../../addon/cart/cart.php:1263
+#: ../../addon/chords/Mod_Chords.php:60
+#: ../../addon/libertree/Mod_Libertree.php:70
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:92
+#: ../../addon/statusnet/Mod_Statusnet.php:193
+#: ../../addon/statusnet/Mod_Statusnet.php:251
+#: ../../addon/statusnet/Mod_Statusnet.php:306
+#: ../../addon/statusnet/statusnet.php:602
+#: ../../addon/twitter/Mod_Twitter.php:184
+#: ../../addon/smileybutton/Mod_Smileybutton.php:55
+#: ../../addon/cart/Settings/Cart.php:114 ../../addon/cart/cart.php:1264
#: ../../addon/cart/submodules/manualcat.php:248
#: ../../addon/cart/submodules/hzservices.php:640
#: ../../addon/cart/submodules/subscriptions.php:410
-#: ../../addon/piwik/piwik.php:95 ../../addon/pageheader/pageheader.php:48
-#: ../../addon/xmpp/xmpp.php:69 ../../addon/pumpio/pumpio.php:237
+#: ../../addon/piwik/piwik.php:95 ../../addon/pageheader/Mod_Pageheader.php:54
+#: ../../addon/xmpp/Mod_Xmpp.php:70 ../../addon/pumpio/Mod_Pumpio.php:115
#: ../../addon/redfiles/redfiles.php:124 ../../addon/hubwall/hubwall.php:95
#: ../../include/js_strings.php:22
msgid "Submit"
msgstr ""
-#: ../../Zotlabs/Module/Articles.php:43
+#: ../../Zotlabs/Module/Articles.php:51
msgid "Articles App"
msgstr ""
-#: ../../Zotlabs/Module/Articles.php:44
+#: ../../Zotlabs/Module/Articles.php:52
msgid "Create interactive articles"
msgstr ""
-#: ../../Zotlabs/Module/Articles.php:107
+#: ../../Zotlabs/Module/Articles.php:115
msgid "Add Article"
msgstr ""
-#: ../../Zotlabs/Module/Articles.php:214 ../../Zotlabs/Lib/Apps.php:302
-#: ../../include/nav.php:482
+#: ../../Zotlabs/Module/Articles.php:222 ../../Zotlabs/Lib/Apps.php:324
+#: ../../include/nav.php:512
msgid "Articles"
msgstr ""
@@ -551,11 +576,11 @@ msgstr ""
#: ../../Zotlabs/Module/Editlayout.php:140 ../../Zotlabs/Module/Cdav.php:944
#: ../../Zotlabs/Module/Cdav.php:1233 ../../Zotlabs/Module/Article_edit.php:131
-#: ../../Zotlabs/Module/Admin/Addons.php:423
+#: ../../Zotlabs/Module/Admin/Addons.php:426
#: ../../Zotlabs/Module/Oauth2.php:117 ../../Zotlabs/Module/Oauth2.php:145
#: ../../Zotlabs/Module/Editblock.php:141 ../../Zotlabs/Module/Wiki.php:368
#: ../../Zotlabs/Module/Wiki.php:401 ../../Zotlabs/Module/Profile_photo.php:465
-#: ../../Zotlabs/Module/Connedit.php:925 ../../Zotlabs/Module/Fbrowser.php:66
+#: ../../Zotlabs/Module/Connedit.php:941 ../../Zotlabs/Module/Fbrowser.php:66
#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:801
#: ../../Zotlabs/Module/Editwebpage.php:169
#: ../../Zotlabs/Module/Editpost.php:109 ../../Zotlabs/Module/Filer.php:55
@@ -563,17 +588,18 @@ msgstr ""
#: ../../Zotlabs/Module/Tagrm.php:138 ../../Zotlabs/Module/Card_edit.php:131
#: ../../Zotlabs/Module/Oauth.php:112 ../../Zotlabs/Module/Oauth.php:138
#: ../../addon/hsse/hsse.php:209 ../../addon/hsse/hsse.php:258
-#: ../../include/conversation.php:1412 ../../include/conversation.php:1461
+#: ../../include/conversation.php:1415 ../../include/conversation.php:1464
msgid "Cancel"
msgstr ""
#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:86
-#: ../../Zotlabs/Module/Import_items.php:120 ../../Zotlabs/Module/Cloud.php:126
-#: ../../Zotlabs/Module/Group.php:93 ../../Zotlabs/Module/Dreport.php:10
-#: ../../Zotlabs/Module/Dreport.php:68 ../../Zotlabs/Module/Like.php:296
-#: ../../Zotlabs/Web/WebServer.php:122 ../../addon/redphotos/redphotos.php:119
-#: ../../addon/hzfiles/hzfiles.php:73 ../../addon/frphotos/frphotos.php:82
-#: ../../addon/redfiles/redfiles.php:109 ../../include/items.php:384
+#: ../../Zotlabs/Module/Import_items.php:120 ../../Zotlabs/Module/Share.php:71
+#: ../../Zotlabs/Module/Cloud.php:126 ../../Zotlabs/Module/Group.php:98
+#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:79
+#: ../../Zotlabs/Module/Like.php:301 ../../Zotlabs/Web/WebServer.php:122
+#: ../../addon/redphotos/redphotos.php:119 ../../addon/hzfiles/hzfiles.php:73
+#: ../../addon/frphotos/frphotos.php:82 ../../addon/redfiles/redfiles.php:109
+#: ../../include/items.php:416
msgid "Permission denied"
msgstr ""
@@ -585,8 +611,8 @@ msgstr ""
msgid "Profile Visibility Editor"
msgstr ""
-#: ../../Zotlabs/Module/Profperm.php:113 ../../Zotlabs/Lib/Apps.php:337
-#: ../../include/channel.php:1651
+#: ../../Zotlabs/Module/Profperm.php:113 ../../Zotlabs/Lib/Apps.php:359
+#: ../../include/channel.php:1700
msgid "Profile"
msgstr ""
@@ -612,12 +638,12 @@ msgid "Summary: "
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:811 ../../Zotlabs/Module/Cdav.php:812
-#: ../../Zotlabs/Module/Cdav.php:819 ../../Zotlabs/Module/Embedphotos.php:146
-#: ../../Zotlabs/Module/Photos.php:832 ../../Zotlabs/Module/Photos.php:1288
-#: ../../Zotlabs/Lib/Activity.php:858 ../../Zotlabs/Lib/Apps.php:994
-#: ../../Zotlabs/Lib/Apps.php:1078 ../../Zotlabs/Storage/Browser.php:164
+#: ../../Zotlabs/Module/Cdav.php:819 ../../Zotlabs/Module/Embedphotos.php:154
+#: ../../Zotlabs/Module/Photos.php:832 ../../Zotlabs/Module/Photos.php:1296
+#: ../../Zotlabs/Lib/Activity.php:1011 ../../Zotlabs/Lib/Apps.php:1113
+#: ../../Zotlabs/Lib/Apps.php:1197 ../../Zotlabs/Storage/Browser.php:164
#: ../../Zotlabs/Widget/Portfolio.php:95 ../../Zotlabs/Widget/Album.php:84
-#: ../../addon/pubcrawl/as.php:949 ../../include/conversation.php:1166
+#: ../../addon/pubcrawl/as.php:959 ../../include/conversation.php:1166
msgid "Unknown"
msgstr ""
@@ -749,8 +775,8 @@ msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1215 ../../Zotlabs/Module/Sharedwithme.php:104
#: ../../Zotlabs/Module/Admin/Channels.php:159
#: ../../Zotlabs/Module/Oauth2.php:118 ../../Zotlabs/Module/Oauth2.php:146
-#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Connedit.php:907
-#: ../../Zotlabs/Module/Chat.php:259 ../../Zotlabs/Module/Group.php:144
+#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Connedit.php:923
+#: ../../Zotlabs/Module/Chat.php:259 ../../Zotlabs/Module/Group.php:154
#: ../../Zotlabs/Module/Oauth.php:113 ../../Zotlabs/Module/Oauth.php:139
#: ../../Zotlabs/Lib/NativeWikiPage.php:561
#: ../../Zotlabs/Storage/Browser.php:285
@@ -759,15 +785,15 @@ msgstr ""
msgid "Name"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1216 ../../Zotlabs/Module/Connedit.php:908
+#: ../../Zotlabs/Module/Cdav.php:1216 ../../Zotlabs/Module/Connedit.php:924
msgid "Organisation"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1217 ../../Zotlabs/Module/Connedit.php:909
+#: ../../Zotlabs/Module/Cdav.php:1217 ../../Zotlabs/Module/Connedit.php:925
msgid "Title"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1218 ../../Zotlabs/Module/Connedit.php:910
+#: ../../Zotlabs/Module/Cdav.php:1218 ../../Zotlabs/Module/Connedit.php:926
#: ../../Zotlabs/Module/Profiles.php:786
msgid "Phone"
msgstr ""
@@ -775,97 +801,97 @@ msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1219
#: ../../Zotlabs/Module/Admin/Accounts.php:171
#: ../../Zotlabs/Module/Admin/Accounts.php:183
-#: ../../Zotlabs/Module/Connedit.php:911 ../../Zotlabs/Module/Profiles.php:787
+#: ../../Zotlabs/Module/Connedit.php:927 ../../Zotlabs/Module/Profiles.php:787
#: ../../addon/openid/MysqlProvider.php:56
-#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/rtof.php:93
-#: ../../addon/redred/redred.php:107 ../../include/network.php:1779
+#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/Mod_Rtof.php:57
+#: ../../addon/redred/Mod_Redred.php:71 ../../include/network.php:1721
msgid "Email"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1220 ../../Zotlabs/Module/Connedit.php:912
+#: ../../Zotlabs/Module/Cdav.php:1220 ../../Zotlabs/Module/Connedit.php:928
#: ../../Zotlabs/Module/Profiles.php:788
msgid "Instant messenger"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1221 ../../Zotlabs/Module/Connedit.php:913
+#: ../../Zotlabs/Module/Cdav.php:1221 ../../Zotlabs/Module/Connedit.php:929
#: ../../Zotlabs/Module/Profiles.php:789
msgid "Website"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1222 ../../Zotlabs/Module/Locs.php:118
#: ../../Zotlabs/Module/Admin/Channels.php:160
-#: ../../Zotlabs/Module/Connedit.php:914 ../../Zotlabs/Module/Profiles.php:502
+#: ../../Zotlabs/Module/Connedit.php:930 ../../Zotlabs/Module/Profiles.php:502
#: ../../Zotlabs/Module/Profiles.php:790
msgid "Address"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1223 ../../Zotlabs/Module/Connedit.php:915
+#: ../../Zotlabs/Module/Cdav.php:1223 ../../Zotlabs/Module/Connedit.php:931
#: ../../Zotlabs/Module/Profiles.php:791
msgid "Note"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1224 ../../Zotlabs/Module/Connedit.php:916
-#: ../../Zotlabs/Module/Profiles.php:792 ../../include/event.php:1308
+#: ../../Zotlabs/Module/Cdav.php:1224 ../../Zotlabs/Module/Connedit.php:932
+#: ../../Zotlabs/Module/Profiles.php:792 ../../include/event.php:1320
#: ../../include/connections.php:696
msgid "Mobile"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1225 ../../Zotlabs/Module/Connedit.php:917
-#: ../../Zotlabs/Module/Profiles.php:793 ../../include/event.php:1309
+#: ../../Zotlabs/Module/Cdav.php:1225 ../../Zotlabs/Module/Connedit.php:933
+#: ../../Zotlabs/Module/Profiles.php:793 ../../include/event.php:1321
#: ../../include/connections.php:697
msgid "Home"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1226 ../../Zotlabs/Module/Connedit.php:918
-#: ../../Zotlabs/Module/Profiles.php:794 ../../include/event.php:1312
+#: ../../Zotlabs/Module/Cdav.php:1226 ../../Zotlabs/Module/Connedit.php:934
+#: ../../Zotlabs/Module/Profiles.php:794 ../../include/event.php:1324
#: ../../include/connections.php:700
msgid "Work"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1228 ../../Zotlabs/Module/Connedit.php:920
+#: ../../Zotlabs/Module/Cdav.php:1228 ../../Zotlabs/Module/Connedit.php:936
#: ../../Zotlabs/Module/Profiles.php:796
-#: ../../addon/jappixmini/jappixmini.php:368
+#: ../../addon/jappixmini/Mod_Jappixmini.php:216
msgid "Add Contact"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1229 ../../Zotlabs/Module/Connedit.php:921
+#: ../../Zotlabs/Module/Cdav.php:1229 ../../Zotlabs/Module/Connedit.php:937
#: ../../Zotlabs/Module/Profiles.php:797
msgid "Add Field"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1231 ../../Zotlabs/Module/Admin/Addons.php:453
+#: ../../Zotlabs/Module/Cdav.php:1231 ../../Zotlabs/Module/Admin/Addons.php:456
#: ../../Zotlabs/Module/Oauth2.php:58 ../../Zotlabs/Module/Oauth2.php:144
-#: ../../Zotlabs/Module/Connedit.php:923 ../../Zotlabs/Module/Profiles.php:799
+#: ../../Zotlabs/Module/Connedit.php:939 ../../Zotlabs/Module/Profiles.php:799
#: ../../Zotlabs/Module/Oauth.php:53 ../../Zotlabs/Module/Oauth.php:137
-#: ../../Zotlabs/Lib/Apps.php:513
+#: ../../Zotlabs/Lib/Apps.php:535
msgid "Update"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1234 ../../Zotlabs/Module/Connedit.php:926
+#: ../../Zotlabs/Module/Cdav.php:1234 ../../Zotlabs/Module/Connedit.php:942
msgid "P.O. Box"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1235 ../../Zotlabs/Module/Connedit.php:927
+#: ../../Zotlabs/Module/Cdav.php:1235 ../../Zotlabs/Module/Connedit.php:943
msgid "Additional"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1236 ../../Zotlabs/Module/Connedit.php:928
+#: ../../Zotlabs/Module/Cdav.php:1236 ../../Zotlabs/Module/Connedit.php:944
msgid "Street"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1237 ../../Zotlabs/Module/Connedit.php:929
+#: ../../Zotlabs/Module/Cdav.php:1237 ../../Zotlabs/Module/Connedit.php:945
msgid "Locality"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1238 ../../Zotlabs/Module/Connedit.php:930
+#: ../../Zotlabs/Module/Cdav.php:1238 ../../Zotlabs/Module/Connedit.php:946
msgid "Region"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1239 ../../Zotlabs/Module/Connedit.php:931
+#: ../../Zotlabs/Module/Cdav.php:1239 ../../Zotlabs/Module/Connedit.php:947
msgid "ZIP Code"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1240 ../../Zotlabs/Module/Connedit.php:932
+#: ../../Zotlabs/Module/Cdav.php:1240 ../../Zotlabs/Module/Connedit.php:948
#: ../../Zotlabs/Module/Profiles.php:757
msgid "Country"
msgstr ""
@@ -904,7 +930,7 @@ msgid ""
"connections."
msgstr ""
-#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:350
+#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:372
msgid "Permission Categories"
msgstr ""
@@ -913,58 +939,58 @@ msgid "Permission category name"
msgstr ""
#: ../../Zotlabs/Module/Permcats.php:121 ../../Zotlabs/Module/Tokens.php:181
-#: ../../Zotlabs/Module/Connedit.php:892 ../../Zotlabs/Module/Defperms.php:266
+#: ../../Zotlabs/Module/Connedit.php:908 ../../Zotlabs/Module/Defperms.php:266
msgid "My Settings"
msgstr ""
#: ../../Zotlabs/Module/Permcats.php:123 ../../Zotlabs/Module/Tokens.php:183
-#: ../../Zotlabs/Module/Connedit.php:887 ../../Zotlabs/Module/Defperms.php:264
+#: ../../Zotlabs/Module/Connedit.php:903 ../../Zotlabs/Module/Defperms.php:264
msgid "inherited"
msgstr ""
#: ../../Zotlabs/Module/Permcats.php:126 ../../Zotlabs/Module/Tokens.php:186
-#: ../../Zotlabs/Module/Connedit.php:894 ../../Zotlabs/Module/Defperms.php:269
+#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Defperms.php:269
msgid "Individual Permissions"
msgstr ""
#: ../../Zotlabs/Module/Permcats.php:127 ../../Zotlabs/Module/Tokens.php:187
-#: ../../Zotlabs/Module/Connedit.php:895
+#: ../../Zotlabs/Module/Connedit.php:911
msgid ""
"Some permissions may be inherited from your channel's <a href=\"settings"
"\"><strong>privacy settings</strong></a>, which have higher priority than "
"individual settings. You can <strong>not</strong> change those settings here."
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:39 ../../Zotlabs/Module/Ochannel.php:32
-#: ../../Zotlabs/Module/Chat.php:31 ../../addon/chess/chess.php:508
+#: ../../Zotlabs/Module/Channel.php:41 ../../Zotlabs/Module/Ochannel.php:32
+#: ../../Zotlabs/Module/Chat.php:31 ../../addon/chess/Mod_Chess.php:343
msgid "You must be logged in to see this page."
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:54 ../../Zotlabs/Module/Hcard.php:37
+#: ../../Zotlabs/Module/Channel.php:98 ../../Zotlabs/Module/Hcard.php:37
#: ../../Zotlabs/Module/Profile.php:45
msgid "Posts and comments"
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:61 ../../Zotlabs/Module/Hcard.php:44
+#: ../../Zotlabs/Module/Channel.php:105 ../../Zotlabs/Module/Hcard.php:44
#: ../../Zotlabs/Module/Profile.php:52
msgid "Only posts"
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:116
+#: ../../Zotlabs/Module/Channel.php:165
msgid "Insufficient permissions. Request redirected to profile page."
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:133 ../../Zotlabs/Module/Network.php:164
+#: ../../Zotlabs/Module/Channel.php:182 ../../Zotlabs/Module/Network.php:173
msgid "Search Results For:"
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:168 ../../Zotlabs/Module/Hq.php:134
+#: ../../Zotlabs/Module/Channel.php:217 ../../Zotlabs/Module/Hq.php:134
#: ../../Zotlabs/Module/Pubstream.php:94 ../../Zotlabs/Module/Display.php:80
-#: ../../Zotlabs/Module/Network.php:194
+#: ../../Zotlabs/Module/Network.php:203
msgid "Reset form"
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:424 ../../Zotlabs/Module/Display.php:374
+#: ../../Zotlabs/Module/Channel.php:476 ../../Zotlabs/Module/Display.php:373
msgid ""
"You must enable javascript for your browser to be able to view this content."
msgstr ""
@@ -1059,9 +1085,9 @@ msgid "Public access denied."
msgstr ""
#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:338
-#: ../../Zotlabs/Lib/Apps.php:328 ../../Zotlabs/Widget/Sitesearch.php:31
-#: ../../Zotlabs/Widget/Activity_filter.php:151 ../../include/text.php:1081
-#: ../../include/text.php:1093 ../../include/acl_selectors.php:118
+#: ../../Zotlabs/Lib/Apps.php:350 ../../Zotlabs/Widget/Sitesearch.php:31
+#: ../../Zotlabs/Widget/Activity_filter.php:151 ../../include/text.php:1084
+#: ../../include/text.php:1096 ../../include/acl_selectors.php:118
#: ../../include/nav.php:183
msgid "Search"
msgstr ""
@@ -1084,7 +1110,7 @@ msgstr ""
msgid "The unmoderated public stream of this hub"
msgstr ""
-#: ../../Zotlabs/Module/Pubstream.php:109 ../../Zotlabs/Lib/Apps.php:352
+#: ../../Zotlabs/Module/Pubstream.php:109 ../../Zotlabs/Lib/Apps.php:374
#: ../../Zotlabs/Widget/Notifications.php:142
msgid "Public Stream"
msgstr ""
@@ -1141,21 +1167,21 @@ msgstr ""
msgid "Use this form to drop the location if the hub is no longer operating."
msgstr ""
-#: ../../Zotlabs/Module/Apporder.php:44
+#: ../../Zotlabs/Module/Apporder.php:47
msgid "Change Order of Pinned Navbar Apps"
msgstr ""
-#: ../../Zotlabs/Module/Apporder.php:44
+#: ../../Zotlabs/Module/Apporder.php:47
msgid "Change Order of App Tray Apps"
msgstr ""
-#: ../../Zotlabs/Module/Apporder.php:45
+#: ../../Zotlabs/Module/Apporder.php:48
msgid ""
"Use arrows to move the corresponding app left (top) or right (bottom) in the "
"navbar"
msgstr ""
-#: ../../Zotlabs/Module/Apporder.php:45
+#: ../../Zotlabs/Module/Apporder.php:48
msgid "Use arrows to move the corresponding app up or down in the app tray"
msgstr ""
@@ -1214,47 +1240,38 @@ msgstr ""
#: ../../Zotlabs/Module/Import.php:563 ../../Zotlabs/Module/Import.php:567
#: ../../Zotlabs/Module/Import.php:568 ../../Zotlabs/Module/Api.php:99
#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Wiki.php:227
-#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:397
-#: ../../Zotlabs/Module/Connedit.php:780 ../../Zotlabs/Module/Menu.php:162
+#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:406
+#: ../../Zotlabs/Module/Connedit.php:796 ../../Zotlabs/Module/Menu.php:162
#: ../../Zotlabs/Module/Menu.php:221 ../../Zotlabs/Module/Defperms.php:197
#: ../../Zotlabs/Module/Profiles.php:681 ../../Zotlabs/Module/Sources.php:124
#: ../../Zotlabs/Module/Sources.php:159
#: ../../Zotlabs/Module/Filestorage.php:178
#: ../../Zotlabs/Module/Filestorage.php:186 ../../Zotlabs/Lib/Libzotdir.php:162
#: ../../Zotlabs/Lib/Libzotdir.php:163 ../../Zotlabs/Lib/Libzotdir.php:165
-#: ../../Zotlabs/Storage/Browser.php:405 ../../boot.php:1629
+#: ../../Zotlabs/Storage/Browser.php:405 ../../boot.php:1634
#: ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:99
#: ../../view/theme/redbasic/php/config.php:116
-#: ../../addon/planets/planets.php:149 ../../addon/wppost/Mod_Wppost.php:82
-#: ../../addon/wppost/Mod_Wppost.php:86 ../../addon/ijpost/ijpost.php:73
-#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
-#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:73
-#: ../../addon/ljpost/ljpost.php:85 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/fuzzloc/fuzzloc.php:178
-#: ../../addon/rtof/rtof.php:81 ../../addon/rtof/rtof.php:85
-#: ../../addon/jappixmini/jappixmini.php:309
-#: ../../addon/jappixmini/jappixmini.php:313
-#: ../../addon/jappixmini/jappixmini.php:343
-#: ../../addon/jappixmini/jappixmini.php:351
-#: ../../addon/jappixmini/jappixmini.php:355
-#: ../../addon/jappixmini/jappixmini.php:359
-#: ../../addon/channelreputation/channelreputation.php:111
-#: ../../addon/nofed/nofed.php:72 ../../addon/nofed/nofed.php:76
-#: ../../addon/redred/redred.php:95 ../../addon/redred/redred.php:99
-#: ../../addon/libertree/libertree.php:69
-#: ../../addon/libertree/libertree.php:81
-#: ../../addon/flattrwidget/flattrwidget.php:120
-#: ../../addon/statusnet/statusnet.php:389
-#: ../../addon/statusnet/statusnet.php:411
-#: ../../addon/statusnet/statusnet.php:415
-#: ../../addon/statusnet/statusnet.php:424 ../../addon/twitter/twitter.php:246
-#: ../../addon/twitter/twitter.php:255 ../../addon/twitter/twitter.php:264
-#: ../../addon/smileybutton/smileybutton.php:211
-#: ../../addon/smileybutton/smileybutton.php:215
+#: ../../addon/wppost/Mod_Wppost.php:82 ../../addon/wppost/Mod_Wppost.php:86
+#: ../../addon/ijpost/Mod_Ijpost.php:61 ../../addon/dwpost/Mod_Dwpost.php:60
+#: ../../addon/ljpost/Mod_Ljpost.php:62 ../../addon/rtof/Mod_Rtof.php:49
+#: ../../addon/jappixmini/Mod_Jappixmini.php:161
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
+#: ../../addon/jappixmini/Mod_Jappixmini.php:199
+#: ../../addon/jappixmini/Mod_Jappixmini.php:203
+#: ../../addon/jappixmini/Mod_Jappixmini.php:207
+#: ../../addon/channelreputation/channelreputation.php:108
+#: ../../addon/nofed/Mod_Nofed.php:42 ../../addon/redred/Mod_Redred.php:63
+#: ../../addon/libertree/Mod_Libertree.php:59
+#: ../../addon/statusnet/Mod_Statusnet.php:260
+#: ../../addon/statusnet/Mod_Statusnet.php:282
+#: ../../addon/statusnet/Mod_Statusnet.php:291
+#: ../../addon/twitter/Mod_Twitter.php:162
+#: ../../addon/twitter/Mod_Twitter.php:171
+#: ../../addon/smileybutton/Mod_Smileybutton.php:44
#: ../../addon/cart/Settings/Cart.php:59 ../../addon/cart/Settings/Cart.php:71
-#: ../../addon/cart/cart.php:1257
+#: ../../addon/cart/cart.php:1258
#: ../../addon/cart/submodules/paypalbutton.php:87
#: ../../addon/cart/submodules/paypalbutton.php:95
#: ../../addon/cart/submodules/manualcat.php:63
@@ -1265,9 +1282,8 @@ msgstr ""
#: ../../addon/cart/submodules/hzservices.php:650
#: ../../addon/cart/submodules/subscriptions.php:153
#: ../../addon/cart/submodules/subscriptions.php:425
-#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219
-#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227
-#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143
+#: ../../addon/pumpio/Mod_Pumpio.php:94 ../../addon/pumpio/Mod_Pumpio.php:98
+#: ../../addon/pumpio/Mod_Pumpio.php:102 ../../include/dir_fns.php:143
#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
msgid "No"
msgstr ""
@@ -1281,46 +1297,37 @@ msgstr ""
#: ../../Zotlabs/Module/Import.php:563 ../../Zotlabs/Module/Import.php:567
#: ../../Zotlabs/Module/Import.php:568 ../../Zotlabs/Module/Api.php:98
#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Wiki.php:227
-#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:397
+#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:406
#: ../../Zotlabs/Module/Menu.php:162 ../../Zotlabs/Module/Menu.php:221
#: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Sources.php:124 ../../Zotlabs/Module/Sources.php:159
#: ../../Zotlabs/Module/Filestorage.php:178
#: ../../Zotlabs/Module/Filestorage.php:186 ../../Zotlabs/Lib/Libzotdir.php:162
#: ../../Zotlabs/Lib/Libzotdir.php:163 ../../Zotlabs/Lib/Libzotdir.php:165
-#: ../../Zotlabs/Storage/Browser.php:405 ../../boot.php:1629
+#: ../../Zotlabs/Storage/Browser.php:405 ../../boot.php:1634
#: ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:99
#: ../../view/theme/redbasic/php/config.php:116
-#: ../../addon/planets/planets.php:149 ../../addon/wppost/Mod_Wppost.php:82
-#: ../../addon/wppost/Mod_Wppost.php:86 ../../addon/ijpost/ijpost.php:73
-#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
-#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:73
-#: ../../addon/ljpost/ljpost.php:85 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/fuzzloc/fuzzloc.php:178
-#: ../../addon/rtof/rtof.php:81 ../../addon/rtof/rtof.php:85
-#: ../../addon/jappixmini/jappixmini.php:309
-#: ../../addon/jappixmini/jappixmini.php:313
-#: ../../addon/jappixmini/jappixmini.php:343
-#: ../../addon/jappixmini/jappixmini.php:351
-#: ../../addon/jappixmini/jappixmini.php:355
-#: ../../addon/jappixmini/jappixmini.php:359
-#: ../../addon/channelreputation/channelreputation.php:111
-#: ../../addon/nofed/nofed.php:72 ../../addon/nofed/nofed.php:76
-#: ../../addon/redred/redred.php:95 ../../addon/redred/redred.php:99
-#: ../../addon/libertree/libertree.php:69
-#: ../../addon/libertree/libertree.php:81
-#: ../../addon/flattrwidget/flattrwidget.php:120
-#: ../../addon/statusnet/statusnet.php:389
-#: ../../addon/statusnet/statusnet.php:411
-#: ../../addon/statusnet/statusnet.php:415
-#: ../../addon/statusnet/statusnet.php:424 ../../addon/twitter/twitter.php:246
-#: ../../addon/twitter/twitter.php:255 ../../addon/twitter/twitter.php:264
-#: ../../addon/smileybutton/smileybutton.php:211
-#: ../../addon/smileybutton/smileybutton.php:215
+#: ../../addon/wppost/Mod_Wppost.php:82 ../../addon/wppost/Mod_Wppost.php:86
+#: ../../addon/ijpost/Mod_Ijpost.php:61 ../../addon/dwpost/Mod_Dwpost.php:60
+#: ../../addon/ljpost/Mod_Ljpost.php:62 ../../addon/rtof/Mod_Rtof.php:49
+#: ../../addon/jappixmini/Mod_Jappixmini.php:161
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
+#: ../../addon/jappixmini/Mod_Jappixmini.php:199
+#: ../../addon/jappixmini/Mod_Jappixmini.php:203
+#: ../../addon/jappixmini/Mod_Jappixmini.php:207
+#: ../../addon/channelreputation/channelreputation.php:108
+#: ../../addon/nofed/Mod_Nofed.php:42 ../../addon/redred/Mod_Redred.php:63
+#: ../../addon/libertree/Mod_Libertree.php:59
+#: ../../addon/statusnet/Mod_Statusnet.php:260
+#: ../../addon/statusnet/Mod_Statusnet.php:282
+#: ../../addon/statusnet/Mod_Statusnet.php:291
+#: ../../addon/twitter/Mod_Twitter.php:162
+#: ../../addon/twitter/Mod_Twitter.php:171
+#: ../../addon/smileybutton/Mod_Smileybutton.php:44
#: ../../addon/cart/Settings/Cart.php:59 ../../addon/cart/Settings/Cart.php:71
-#: ../../addon/cart/cart.php:1257
+#: ../../addon/cart/cart.php:1258
#: ../../addon/cart/submodules/paypalbutton.php:87
#: ../../addon/cart/submodules/paypalbutton.php:95
#: ../../addon/cart/submodules/manualcat.php:63
@@ -1331,9 +1338,8 @@ msgstr ""
#: ../../addon/cart/submodules/hzservices.php:650
#: ../../addon/cart/submodules/subscriptions.php:153
#: ../../addon/cart/submodules/subscriptions.php:425
-#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219
-#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227
-#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143
+#: ../../addon/pumpio/Mod_Pumpio.php:94 ../../addon/pumpio/Mod_Pumpio.php:98
+#: ../../addon/pumpio/Mod_Pumpio.php:102 ../../include/dir_fns.php:143
#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
msgid "Yes"
msgstr ""
@@ -1444,8 +1450,8 @@ msgid "Event not found."
msgstr ""
#: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Tagger.php:73
-#: ../../Zotlabs/Module/Like.php:386 ../../include/conversation.php:119
-#: ../../include/text.php:2044 ../../include/event.php:1153
+#: ../../Zotlabs/Module/Like.php:394 ../../include/conversation.php:119
+#: ../../include/text.php:2094 ../../include/event.php:1165
msgid "event"
msgstr ""
@@ -1506,14 +1512,14 @@ msgstr ""
msgid "Edit Location"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:480 ../../Zotlabs/Module/Photos.php:1138
-#: ../../Zotlabs/Module/Webpages.php:262 ../../Zotlabs/Lib/ThreadItem.php:777
-#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1356
+#: ../../Zotlabs/Module/Events.php:480 ../../Zotlabs/Module/Photos.php:1139
+#: ../../Zotlabs/Module/Webpages.php:262 ../../Zotlabs/Lib/ThreadItem.php:805
+#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1359
msgid "Preview"
msgstr ""
#: ../../Zotlabs/Module/Events.php:481 ../../addon/hsse/hsse.php:225
-#: ../../include/conversation.php:1428
+#: ../../include/conversation.php:1431
msgid "Permission settings"
msgstr ""
@@ -1538,7 +1544,7 @@ msgid "Delete event"
msgstr ""
#: ../../Zotlabs/Module/Events.php:663 ../../Zotlabs/Module/Cal.php:314
-#: ../../include/text.php:1863
+#: ../../include/text.php:1913
msgid "Link to Source"
msgstr ""
@@ -1555,7 +1561,7 @@ msgid "Create Event"
msgstr ""
#: ../../Zotlabs/Module/Events.php:692 ../../Zotlabs/Module/Cal.php:340
-#: ../../include/channel.php:1654
+#: ../../include/channel.php:1703
msgid "Export"
msgstr ""
@@ -1627,27 +1633,27 @@ msgstr ""
msgid "Hub not found."
msgstr ""
-#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Tagger.php:69
-#: ../../Zotlabs/Module/Like.php:384 ../../Zotlabs/Lib/Activity.php:1570
+#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Module/Tagger.php:69
+#: ../../Zotlabs/Module/Like.php:392 ../../Zotlabs/Lib/Activity.php:1959
#: ../../addon/redphotos/redphotohelper.php:71
-#: ../../addon/diaspora/Receiver.php:1539 ../../addon/pubcrawl/as.php:1494
-#: ../../include/conversation.php:116 ../../include/text.php:2041
+#: ../../addon/diaspora/Receiver.php:1551 ../../addon/pubcrawl/as.php:1504
+#: ../../include/conversation.php:116 ../../include/text.php:2091
msgid "photo"
msgstr ""
-#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:384
-#: ../../Zotlabs/Lib/Activity.php:1570 ../../addon/diaspora/Receiver.php:1539
-#: ../../addon/pubcrawl/as.php:1494 ../../include/conversation.php:144
-#: ../../include/text.php:2047
+#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Module/Like.php:392
+#: ../../Zotlabs/Lib/Activity.php:1959 ../../addon/diaspora/Receiver.php:1551
+#: ../../addon/pubcrawl/as.php:1504 ../../include/conversation.php:144
+#: ../../include/text.php:2097
msgid "status"
msgstr ""
-#: ../../Zotlabs/Module/Subthread.php:142
+#: ../../Zotlabs/Module/Subthread.php:143
#, php-format
msgid "%1$s is following %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Subthread.php:144
+#: ../../Zotlabs/Module/Subthread.php:145
#, php-format
msgid "%1$s stopped following %2$s's %3$s"
msgstr ""
@@ -1670,7 +1676,7 @@ msgstr ""
#: ../../Zotlabs/Module/Article_edit.php:117
#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:713
#: ../../Zotlabs/Module/Photos.php:1083 ../../Zotlabs/Module/Card_edit.php:117
-#: ../../addon/hsse/hsse.php:221 ../../include/conversation.php:1424
+#: ../../addon/hsse/hsse.php:221 ../../include/conversation.php:1427
msgid "Title (optional)"
msgstr ""
@@ -1720,8 +1726,8 @@ msgstr ""
#: ../../Zotlabs/Module/New_channel.php:157
#: ../../Zotlabs/Module/New_channel.php:164
-#: ../../Zotlabs/Module/Connedit.php:853 ../../Zotlabs/Module/Defperms.php:256
-#: ../../Zotlabs/Widget/Notifications.php:162 ../../include/nav.php:293
+#: ../../Zotlabs/Module/Connedit.php:869 ../../Zotlabs/Module/Defperms.php:256
+#: ../../Zotlabs/Widget/Notifications.php:162 ../../include/nav.php:323
msgid "Loading"
msgstr ""
@@ -1845,7 +1851,7 @@ msgid "NEW"
msgstr ""
#: ../../Zotlabs/Module/Sharedwithme.php:106
-#: ../../Zotlabs/Storage/Browser.php:287 ../../include/text.php:1470
+#: ../../Zotlabs/Storage/Browser.php:287 ../../include/text.php:1496
msgid "Size"
msgstr ""
@@ -1891,7 +1897,7 @@ msgid ""
msgstr ""
#: ../../Zotlabs/Module/Setup.php:198 ../../Zotlabs/Module/Setup.php:262
-#: ../../Zotlabs/Module/Setup.php:756
+#: ../../Zotlabs/Module/Setup.php:761
msgid "Please see the file \"install/INSTALL.txt\"."
msgstr ""
@@ -2035,229 +2041,235 @@ msgstr ""
msgid "PHP register_argc_argv"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:446
+#: ../../Zotlabs/Module/Setup.php:448
+msgid ""
+"This is not sufficient to upload larger images or files. You should be able "
+"to upload at least 4 MB at once."
+msgstr ""
+
+#: ../../Zotlabs/Module/Setup.php:450
#, php-format
msgid ""
"Your max allowed total upload size is set to %s. Maximum size of one file to "
"upload is set to %s. You are allowed to upload up to %d files at once."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:451
+#: ../../Zotlabs/Module/Setup.php:456
msgid "You can adjust these settings in the server php.ini file."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:453
+#: ../../Zotlabs/Module/Setup.php:458
msgid "PHP upload limits"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:476
+#: ../../Zotlabs/Module/Setup.php:481
msgid ""
"Error: the \"openssl_pkey_new\" function on this system is not able to "
"generate encryption keys"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:477
+#: ../../Zotlabs/Module/Setup.php:482
msgid ""
"If running under Windows, please see \"http://www.php.net/manual/en/openssl."
"installation.php\"."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:480
+#: ../../Zotlabs/Module/Setup.php:485
msgid "Generate encryption keys"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:497
+#: ../../Zotlabs/Module/Setup.php:502
msgid "libCurl PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:498
+#: ../../Zotlabs/Module/Setup.php:503
msgid "GD graphics PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:499
+#: ../../Zotlabs/Module/Setup.php:504
msgid "OpenSSL PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:500
+#: ../../Zotlabs/Module/Setup.php:505
msgid "PDO database PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:501
+#: ../../Zotlabs/Module/Setup.php:506
msgid "mb_string PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:502
+#: ../../Zotlabs/Module/Setup.php:507
msgid "xml PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:503
+#: ../../Zotlabs/Module/Setup.php:508
msgid "zip PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:507 ../../Zotlabs/Module/Setup.php:509
+#: ../../Zotlabs/Module/Setup.php:512 ../../Zotlabs/Module/Setup.php:514
msgid "Apache mod_rewrite module"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:507
+#: ../../Zotlabs/Module/Setup.php:512
msgid ""
"Error: Apache webserver mod-rewrite module is required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:513 ../../Zotlabs/Module/Setup.php:516
+#: ../../Zotlabs/Module/Setup.php:518 ../../Zotlabs/Module/Setup.php:521
msgid "exec"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:513
+#: ../../Zotlabs/Module/Setup.php:518
msgid ""
"Error: exec is required but is either not installed or has been disabled in "
"php.ini"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:519 ../../Zotlabs/Module/Setup.php:522
+#: ../../Zotlabs/Module/Setup.php:524 ../../Zotlabs/Module/Setup.php:527
msgid "shell_exec"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:519
+#: ../../Zotlabs/Module/Setup.php:524
msgid ""
"Error: shell_exec is required but is either not installed or has been "
"disabled in php.ini"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:527
+#: ../../Zotlabs/Module/Setup.php:532
msgid "Error: libCURL PHP module required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:531
+#: ../../Zotlabs/Module/Setup.php:536
msgid ""
"Error: GD PHP module with JPEG support or ImageMagick graphics library "
"required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:535
+#: ../../Zotlabs/Module/Setup.php:540
msgid "Error: openssl PHP module required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:541
+#: ../../Zotlabs/Module/Setup.php:546
msgid ""
"Error: PDO database PHP module missing a driver for either mysql or pgsql."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:546
+#: ../../Zotlabs/Module/Setup.php:551
msgid "Error: PDO database PHP module required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:550
+#: ../../Zotlabs/Module/Setup.php:555
msgid "Error: mb_string PHP module required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:554
+#: ../../Zotlabs/Module/Setup.php:559
msgid "Error: xml PHP module required for DAV but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:558
+#: ../../Zotlabs/Module/Setup.php:563
msgid "Error: zip PHP module required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:577 ../../Zotlabs/Module/Setup.php:586
+#: ../../Zotlabs/Module/Setup.php:582 ../../Zotlabs/Module/Setup.php:591
msgid ".htconfig.php is writable"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:582
+#: ../../Zotlabs/Module/Setup.php:587
msgid ""
"The web installer needs to be able to create a file called \".htconfig.php\" "
"in the top folder of your web server and it is unable to do so."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:583
+#: ../../Zotlabs/Module/Setup.php:588
msgid ""
"This is most often a permission setting, as the web server may not be able "
"to write files in your folder - even if you can."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:584
+#: ../../Zotlabs/Module/Setup.php:589
msgid "Please see install/INSTALL.txt for additional information."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:600
+#: ../../Zotlabs/Module/Setup.php:605
msgid ""
"This software uses the Smarty3 template engine to render its web views. "
"Smarty3 compiles templates to PHP to speed up rendering."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:601
+#: ../../Zotlabs/Module/Setup.php:606
#, php-format
msgid ""
"In order to store these compiled templates, the web server needs to have "
"write access to the directory %s under the top level web folder."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:602 ../../Zotlabs/Module/Setup.php:623
+#: ../../Zotlabs/Module/Setup.php:607 ../../Zotlabs/Module/Setup.php:628
msgid ""
"Please ensure that the user that your web server runs as (e.g. www-data) has "
"write access to this folder."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:603
+#: ../../Zotlabs/Module/Setup.php:608
#, php-format
msgid ""
"Note: as a security measure, you should give the web server write access to "
"%s only--not the template files (.tpl) that it contains."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:606
+#: ../../Zotlabs/Module/Setup.php:611
#, php-format
msgid "%s is writable"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:622
+#: ../../Zotlabs/Module/Setup.php:627
msgid ""
"This software uses the store directory to save uploaded files. The web "
"server needs to have write access to the store directory under the top level "
"web folder"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:626
+#: ../../Zotlabs/Module/Setup.php:631
msgid "store is writable"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:658
+#: ../../Zotlabs/Module/Setup.php:663
msgid ""
"SSL certificate cannot be validated. Fix certificate or disable https access "
"to this site."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:659
+#: ../../Zotlabs/Module/Setup.php:664
msgid ""
"If you have https access to your website or allow connections to TCP port "
"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
"NOT use self-signed certificates!"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:660
+#: ../../Zotlabs/Module/Setup.php:665
msgid ""
"This restriction is incorporated because public posts from you may for "
"example contain references to images on your own hub."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:661
+#: ../../Zotlabs/Module/Setup.php:666
msgid ""
"If your certificate is not recognized, members of other sites (who may "
"themselves have valid certificates) will get a warning message on their own "
"site complaining about security issues."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:662
+#: ../../Zotlabs/Module/Setup.php:667
msgid ""
"This can cause usability issues elsewhere (not just on your own site) so we "
"must insist on this requirement."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:663
+#: ../../Zotlabs/Module/Setup.php:668
msgid ""
"Providers are available that issue free certificates which are browser-valid."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:665
+#: ../../Zotlabs/Module/Setup.php:670
msgid ""
"If you are confident that the certificate is valid and signed by a trusted "
"authority, check to see if you have failed to install an intermediate cert. "
@@ -2265,36 +2277,36 @@ msgid ""
"server communications."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:667
+#: ../../Zotlabs/Module/Setup.php:672
msgid "SSL certificate validation"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:673
+#: ../../Zotlabs/Module/Setup.php:678
msgid ""
"Url rewrite in .htaccess is not working. Check your server configuration."
"Test: "
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:676
+#: ../../Zotlabs/Module/Setup.php:681
msgid "Url rewrite is working"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:690
+#: ../../Zotlabs/Module/Setup.php:695
msgid ""
"The database configuration file \".htconfig.php\" could not be written. "
"Please use the enclosed text to create a configuration file in your web "
"server root."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:714 ../../addon/rendezvous/rendezvous.php:401
+#: ../../Zotlabs/Module/Setup.php:719 ../../addon/rendezvous/rendezvous.php:401
msgid "Errors encountered creating database tables."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:754
+#: ../../Zotlabs/Module/Setup.php:759
msgid "<h1>What next?</h1>"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:755
+#: ../../Zotlabs/Module/Setup.php:760
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
msgstr ""
@@ -2459,7 +2471,7 @@ msgstr[1] ""
msgid "Account not found"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2497
+#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2562
#, php-format
msgid "Account '%s' deleted"
msgstr ""
@@ -2481,7 +2493,7 @@ msgstr ""
#: ../../Zotlabs/Module/Admin/Themes.php:156
#: ../../Zotlabs/Module/Admin/Site.php:287
#: ../../Zotlabs/Module/Admin/Addons.php:341
-#: ../../Zotlabs/Module/Admin/Addons.php:436
+#: ../../Zotlabs/Module/Admin/Addons.php:439
#: ../../Zotlabs/Module/Admin/Security.php:92
#: ../../Zotlabs/Module/Admin.php:138
msgid "Administration"
@@ -2521,12 +2533,12 @@ msgid "Deny"
msgstr ""
#: ../../Zotlabs/Module/Admin/Accounts.php:176
-#: ../../Zotlabs/Module/Connedit.php:623
+#: ../../Zotlabs/Module/Connedit.php:636
msgid "Block"
msgstr ""
#: ../../Zotlabs/Module/Admin/Accounts.php:177
-#: ../../Zotlabs/Module/Connedit.php:623
+#: ../../Zotlabs/Module/Connedit.php:636
msgid "Unblock"
msgstr ""
@@ -2668,7 +2680,7 @@ msgstr ""
msgid "Disallow Code"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Channels.php:154 ../../include/nav.php:391
+#: ../../Zotlabs/Module/Admin/Channels.php:154 ../../include/nav.php:421
msgid "Channel"
msgstr ""
@@ -2699,8 +2711,8 @@ msgstr ""
#: ../../Zotlabs/Module/Admin/Themes.php:72
#: ../../Zotlabs/Module/Admin/Addons.php:259 ../../Zotlabs/Module/Thing.php:94
#: ../../Zotlabs/Module/Viewsrc.php:25 ../../Zotlabs/Module/Display.php:45
-#: ../../Zotlabs/Module/Display.php:452 ../../Zotlabs/Module/Filestorage.php:24
-#: ../../Zotlabs/Module/Admin.php:62 ../../include/items.php:3596
+#: ../../Zotlabs/Module/Display.php:450 ../../Zotlabs/Module/Filestorage.php:24
+#: ../../Zotlabs/Module/Admin.php:62 ../../include/items.php:3693
msgid "Item not found."
msgstr ""
@@ -2729,9 +2741,9 @@ msgid "Toggle"
msgstr ""
#: ../../Zotlabs/Module/Admin/Themes.php:125
-#: ../../Zotlabs/Module/Admin/Addons.php:344 ../../Zotlabs/Lib/Apps.php:314
+#: ../../Zotlabs/Module/Admin/Addons.php:344 ../../Zotlabs/Lib/Apps.php:336
#: ../../Zotlabs/Widget/Newmember.php:53
-#: ../../Zotlabs/Widget/Settings_menu.php:68 ../../include/nav.php:97
+#: ../../Zotlabs/Widget/Settings_menu.php:61 ../../include/nav.php:97
msgid "Settings"
msgstr ""
@@ -2759,7 +2771,7 @@ msgstr ""
#: ../../Zotlabs/Module/Admin/Site.php:187
#: ../../view/theme/redbasic_c/php/config.php:15
-#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3100
+#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3210
msgid "Default"
msgstr ""
@@ -2832,7 +2844,7 @@ msgid "Advanced"
msgstr ""
#: ../../Zotlabs/Module/Admin/Site.php:297
-#: ../../addon/statusnet/statusnet.php:891
+#: ../../addon/statusnet/statusnet.php:593
msgid "Site name"
msgstr ""
@@ -3028,7 +3040,7 @@ msgstr ""
#: ../../Zotlabs/Module/Admin/Site.php:323
#: ../../Zotlabs/Module/Admin/Site.php:324
-#: ../../Zotlabs/Module/Connedit.php:876 ../../Zotlabs/Module/Connedit.php:877
+#: ../../Zotlabs/Module/Connedit.php:892 ../../Zotlabs/Module/Connedit.php:893
msgid ""
"words one per line or #tags or /patterns/ or lang=xx, leave blank to import "
"all posts"
@@ -3213,7 +3225,7 @@ msgid "Plugin %s enabled."
msgstr ""
#: ../../Zotlabs/Module/Admin/Addons.php:342
-#: ../../Zotlabs/Module/Admin/Addons.php:437 ../../Zotlabs/Widget/Admin.php:27
+#: ../../Zotlabs/Module/Admin/Addons.php:440 ../../Zotlabs/Widget/Admin.php:27
msgid "Addons"
msgstr ""
@@ -3238,55 +3250,55 @@ msgid "Requires: "
msgstr ""
#: ../../Zotlabs/Module/Admin/Addons.php:358
-#: ../../Zotlabs/Module/Admin/Addons.php:442
+#: ../../Zotlabs/Module/Admin/Addons.php:445
msgid "Disabled - version incompatibility"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Addons.php:411
+#: ../../Zotlabs/Module/Admin/Addons.php:414
msgid "Enter the public git repository URL of the addon repo."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Addons.php:412
+#: ../../Zotlabs/Module/Admin/Addons.php:415
msgid "Addon repo git URL"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Addons.php:413
+#: ../../Zotlabs/Module/Admin/Addons.php:416
msgid "Custom repo name"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Addons.php:413
+#: ../../Zotlabs/Module/Admin/Addons.php:416
msgid "(optional)"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Addons.php:414
+#: ../../Zotlabs/Module/Admin/Addons.php:417
msgid "Download Addon Repo"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Addons.php:421
+#: ../../Zotlabs/Module/Admin/Addons.php:424
msgid "Install new repo"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Addons.php:422 ../../Zotlabs/Lib/Apps.php:513
+#: ../../Zotlabs/Module/Admin/Addons.php:425 ../../Zotlabs/Lib/Apps.php:535
msgid "Install"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Addons.php:445
+#: ../../Zotlabs/Module/Admin/Addons.php:448
msgid "Manage Repos"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Addons.php:446
+#: ../../Zotlabs/Module/Admin/Addons.php:449
msgid "Installed Addon Repositories"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Addons.php:447
+#: ../../Zotlabs/Module/Admin/Addons.php:450
msgid "Install a New Addon Repository"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Addons.php:454
+#: ../../Zotlabs/Module/Admin/Addons.php:457
msgid "Switch branch"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Addons.php:455
+#: ../../Zotlabs/Module/Admin/Addons.php:458
#: ../../Zotlabs/Module/Photos.php:1035 ../../Zotlabs/Module/Tagrm.php:137
#: ../../addon/superblock/Mod_Superblock.php:91
msgid "Remove"
@@ -3334,8 +3346,9 @@ msgstr ""
#: ../../Zotlabs/Module/Admin/Profs.php:94
#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Rbmark.php:32
#: ../../Zotlabs/Module/Rbmark.php:104 ../../Zotlabs/Module/Filer.php:53
-#: ../../Zotlabs/Widget/Notes.php:23 ../../include/text.php:1082
-#: ../../include/text.php:1094
+#: ../../Zotlabs/Widget/Notes.php:23
+#: ../../addon/queueworker/Mod_Queueworker.php:102 ../../include/text.php:1085
+#: ../../include/text.php:1097
msgid "Save"
msgstr ""
@@ -3559,9 +3572,9 @@ msgstr ""
#: ../../Zotlabs/Module/Settings/Channel.php:75
#: ../../Zotlabs/Module/Settings/Channel.php:78
#: ../../Zotlabs/Module/Settings/Channel.php:89
-#: ../../Zotlabs/Module/Connedit.php:712 ../../Zotlabs/Widget/Affinity.php:24
-#: ../../include/selectors.php:134 ../../include/channel.php:444
-#: ../../include/channel.php:445 ../../include/channel.php:452
+#: ../../Zotlabs/Module/Connedit.php:725 ../../Zotlabs/Widget/Affinity.php:32
+#: ../../include/selectors.php:134 ../../include/channel.php:493
+#: ../../include/channel.php:494 ../../include/channel.php:501
msgid "Friends"
msgstr ""
@@ -3570,8 +3583,8 @@ msgstr ""
#: ../../addon/rendezvous/rendezvous.php:82
#: ../../addon/openstreetmap/openstreetmap.php:185
#: ../../addon/msgfooter/msgfooter.php:54 ../../addon/logrot/logrot.php:54
-#: ../../addon/twitter/twitter.php:775 ../../addon/piwik/piwik.php:116
-#: ../../addon/xmpp/xmpp.php:102
+#: ../../addon/twitter/twitter.php:605 ../../addon/piwik/piwik.php:116
+#: ../../addon/xmpp/xmpp.php:54
msgid "Settings updated."
msgstr ""
@@ -3645,7 +3658,7 @@ msgstr ""
msgid "Basic Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:499 ../../include/channel.php:1528
+#: ../../Zotlabs/Module/Settings/Channel.php:499 ../../include/channel.php:1577
msgid "Full Name:"
msgstr ""
@@ -3862,7 +3875,7 @@ msgstr ""
#: ../../Zotlabs/Module/Settings/Channel.php:572
#: ../../Zotlabs/Module/Settings/Channel.php:573
#: ../../Zotlabs/Module/Settings/Channel.php:574
-#: ../../addon/jappixmini/jappixmini.php:343
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
msgid "Recommended"
msgstr ""
@@ -4071,39 +4084,15 @@ msgstr ""
msgid "Channel Manager Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Featured.php:23
-msgid "Affinity Slider settings updated."
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Featured.php:38
+#: ../../Zotlabs/Module/Settings/Featured.php:24
msgid "No feature settings configured"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Featured.php:45
-msgid "Default maximum affinity level"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Featured.php:45
-msgid "0-99 default 99"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Featured.php:50
-msgid "Default minimum affinity level"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Featured.php:50
-msgid "0-99 - default 0"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Featured.php:54
-msgid "Affinity Slider Settings"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Featured.php:67
+#: ../../Zotlabs/Module/Settings/Featured.php:33
msgid "Addon Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Featured.php:68
+#: ../../Zotlabs/Module/Settings/Featured.php:34
msgid "Please save/submit changes to any panel before opening another."
msgstr ""
@@ -4229,18 +4218,18 @@ msgstr ""
msgid "Stream Settings"
msgstr ""
-#: ../../Zotlabs/Module/Embedphotos.php:140 ../../Zotlabs/Module/Photos.php:826
-#: ../../Zotlabs/Module/Photos.php:1365 ../../Zotlabs/Widget/Portfolio.php:87
+#: ../../Zotlabs/Module/Embedphotos.php:148 ../../Zotlabs/Module/Photos.php:826
+#: ../../Zotlabs/Module/Photos.php:1374 ../../Zotlabs/Widget/Portfolio.php:87
#: ../../Zotlabs/Widget/Album.php:78
msgid "View Photo"
msgstr ""
-#: ../../Zotlabs/Module/Embedphotos.php:156 ../../Zotlabs/Module/Photos.php:857
+#: ../../Zotlabs/Module/Embedphotos.php:164 ../../Zotlabs/Module/Photos.php:857
#: ../../Zotlabs/Widget/Portfolio.php:108 ../../Zotlabs/Widget/Album.php:95
msgid "Edit Album"
msgstr ""
-#: ../../Zotlabs/Module/Embedphotos.php:158 ../../Zotlabs/Module/Photos.php:727
+#: ../../Zotlabs/Module/Embedphotos.php:166 ../../Zotlabs/Module/Photos.php:727
#: ../../Zotlabs/Module/Profile_photo.php:459
#: ../../Zotlabs/Module/Cover_photo.php:395
#: ../../Zotlabs/Storage/Browser.php:392 ../../Zotlabs/Widget/Cdav.php:133
@@ -4300,7 +4289,7 @@ msgstr ""
msgid "Expires (yyyy-mm-dd)"
msgstr ""
-#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:891
+#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:907
msgid "Their Settings"
msgstr ""
@@ -4363,7 +4352,7 @@ msgstr ""
#: ../../Zotlabs/Module/Thing.php:319 ../../Zotlabs/Module/Thing.php:372
#: ../../Zotlabs/Module/Photos.php:717 ../../Zotlabs/Module/Photos.php:1086
-#: ../../Zotlabs/Module/Connedit.php:677 ../../Zotlabs/Module/Chat.php:243
+#: ../../Zotlabs/Module/Connedit.php:690 ../../Zotlabs/Module/Chat.php:243
#: ../../Zotlabs/Module/Filestorage.php:170 ../../include/acl_selectors.php:123
msgid "Permissions"
msgstr ""
@@ -4465,20 +4454,20 @@ msgid ""
"only once and leave this page open until finished."
msgstr ""
-#: ../../Zotlabs/Module/Rmagic.php:35
+#: ../../Zotlabs/Module/Rmagic.php:44
msgid "Authentication failed."
msgstr ""
-#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1625
-#: ../../include/channel.php:2341
+#: ../../Zotlabs/Module/Rmagic.php:93 ../../boot.php:1630
+#: ../../include/channel.php:2405
msgid "Remote Authentication"
msgstr ""
-#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2342
+#: ../../Zotlabs/Module/Rmagic.php:94 ../../include/channel.php:2406
msgid "Enter your channel address (e.g. channel@example.com)"
msgstr ""
-#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2343
+#: ../../Zotlabs/Module/Rmagic.php:95 ../../include/channel.php:2407
msgid "Authenticate"
msgstr ""
@@ -4505,7 +4494,7 @@ msgstr ""
#: ../../Zotlabs/Module/Oauth2.php:119 ../../Zotlabs/Module/Oauth2.php:147
#: ../../Zotlabs/Module/Oauth.php:115 ../../Zotlabs/Module/Oauth.php:141
-#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:785
+#: ../../addon/statusnet/statusnet.php:595 ../../addon/twitter/twitter.php:615
msgid "Consumer Secret"
msgstr ""
@@ -4571,7 +4560,7 @@ msgstr ""
msgid "Permissions denied."
msgstr ""
-#: ../../Zotlabs/Module/Cal.php:343 ../../include/text.php:2502
+#: ../../Zotlabs/Module/Cal.php:343 ../../include/text.php:2558
msgid "Import"
msgstr ""
@@ -4629,21 +4618,21 @@ msgstr ""
msgid "Create Custom App"
msgstr ""
-#: ../../Zotlabs/Module/Mood.php:75 ../../include/conversation.php:268
+#: ../../Zotlabs/Module/Mood.php:76 ../../include/conversation.php:268
#, php-format
msgctxt "mood"
msgid "%1$s is %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Mood.php:132
+#: ../../Zotlabs/Module/Mood.php:134
msgid "Mood App"
msgstr ""
-#: ../../Zotlabs/Module/Mood.php:133 ../../Zotlabs/Module/Mood.php:153
+#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Module/Mood.php:155
msgid "Set your current mood and tell your friends"
msgstr ""
-#: ../../Zotlabs/Module/Mood.php:152 ../../Zotlabs/Lib/Apps.php:325
+#: ../../Zotlabs/Module/Mood.php:154 ../../Zotlabs/Lib/Apps.php:347
msgid "Mood"
msgstr ""
@@ -4684,7 +4673,7 @@ msgstr ""
#: ../../Zotlabs/Module/Connections.php:97
#: ../../Zotlabs/Module/Connections.php:111
-#: ../../Zotlabs/Module/Connedit.php:714 ../../Zotlabs/Widget/Affinity.php:26
+#: ../../Zotlabs/Module/Connedit.php:727 ../../Zotlabs/Widget/Affinity.php:34
msgid "All"
msgstr ""
@@ -4779,7 +4768,7 @@ msgid "Ignore connection"
msgstr ""
#: ../../Zotlabs/Module/Connections.php:308
-#: ../../Zotlabs/Module/Connedit.php:631
+#: ../../Zotlabs/Module/Connedit.php:644
msgid "Ignore"
msgstr ""
@@ -4787,8 +4776,8 @@ msgstr ""
msgid "Recent activity"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:308
-#: ../../include/text.php:994 ../../include/features.php:125
+#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:330
+#: ../../include/text.php:991 ../../include/features.php:125
msgid "Connections"
msgstr ""
@@ -4920,7 +4909,7 @@ msgstr ""
msgid "Show Oldest First"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:859 ../../Zotlabs/Module/Photos.php:1396
+#: ../../Zotlabs/Module/Photos.php:859 ../../Zotlabs/Module/Photos.php:1405
msgid "Add Photos"
msgstr ""
@@ -4984,76 +4973,76 @@ msgstr ""
msgid "Flag as adult in album view"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1115 ../../Zotlabs/Lib/ThreadItem.php:289
+#: ../../Zotlabs/Module/Photos.php:1115 ../../Zotlabs/Lib/ThreadItem.php:306
msgid "I like this (toggle)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1116 ../../Zotlabs/Lib/ThreadItem.php:290
+#: ../../Zotlabs/Module/Photos.php:1116 ../../Zotlabs/Lib/ThreadItem.php:307
msgid "I don't like this (toggle)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1118 ../../Zotlabs/Lib/ThreadItem.php:441
+#: ../../Zotlabs/Module/Photos.php:1118 ../../Zotlabs/Lib/ThreadItem.php:469
#: ../../include/conversation.php:787
msgid "Please wait"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1134 ../../Zotlabs/Module/Photos.php:1252
-#: ../../Zotlabs/Lib/ThreadItem.php:764
+#: ../../Zotlabs/Module/Photos.php:1135 ../../Zotlabs/Module/Photos.php:1254
+#: ../../Zotlabs/Lib/ThreadItem.php:792
msgid "This is you"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1136 ../../Zotlabs/Module/Photos.php:1254
-#: ../../Zotlabs/Lib/ThreadItem.php:766 ../../include/js_strings.php:6
+#: ../../Zotlabs/Module/Photos.php:1137 ../../Zotlabs/Module/Photos.php:1256
+#: ../../Zotlabs/Lib/ThreadItem.php:794 ../../include/js_strings.php:6
msgid "Comment"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1152 ../../include/conversation.php:619
+#: ../../Zotlabs/Module/Photos.php:1154 ../../include/conversation.php:619
msgctxt "title"
msgid "Likes"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1152 ../../include/conversation.php:619
+#: ../../Zotlabs/Module/Photos.php:1154 ../../include/conversation.php:619
msgctxt "title"
msgid "Dislikes"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1153 ../../include/conversation.php:620
+#: ../../Zotlabs/Module/Photos.php:1155 ../../include/conversation.php:620
msgctxt "title"
msgid "Agree"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1153 ../../include/conversation.php:620
+#: ../../Zotlabs/Module/Photos.php:1155 ../../include/conversation.php:620
msgctxt "title"
msgid "Disagree"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1153 ../../include/conversation.php:620
+#: ../../Zotlabs/Module/Photos.php:1155 ../../include/conversation.php:620
msgctxt "title"
msgid "Abstain"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1154 ../../include/conversation.php:621
+#: ../../Zotlabs/Module/Photos.php:1156 ../../include/conversation.php:621
msgctxt "title"
msgid "Attending"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1154 ../../include/conversation.php:621
+#: ../../Zotlabs/Module/Photos.php:1156 ../../include/conversation.php:621
msgctxt "title"
msgid "Not attending"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1154 ../../include/conversation.php:621
+#: ../../Zotlabs/Module/Photos.php:1156 ../../include/conversation.php:621
msgctxt "title"
msgid "Might attend"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1171 ../../Zotlabs/Module/Photos.php:1183
-#: ../../Zotlabs/Lib/ThreadItem.php:214 ../../Zotlabs/Lib/ThreadItem.php:226
+#: ../../Zotlabs/Module/Photos.php:1173 ../../Zotlabs/Module/Photos.php:1185
+#: ../../Zotlabs/Lib/ThreadItem.php:231 ../../Zotlabs/Lib/ThreadItem.php:243
msgid "View all"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1175 ../../Zotlabs/Lib/ThreadItem.php:218
-#: ../../include/conversation.php:1693 ../../include/channel.php:1546
+#: ../../Zotlabs/Module/Photos.php:1177 ../../Zotlabs/Lib/ThreadItem.php:235
+#: ../../include/conversation.php:1702 ../../include/channel.php:1595
#: ../../include/taxonomy.php:661
msgctxt "noun"
msgid "Like"
@@ -5061,48 +5050,48 @@ msgid_plural "Likes"
msgstr[0] ""
msgstr[1] ""
-#: ../../Zotlabs/Module/Photos.php:1180 ../../Zotlabs/Lib/ThreadItem.php:223
-#: ../../include/conversation.php:1696
+#: ../../Zotlabs/Module/Photos.php:1182 ../../Zotlabs/Lib/ThreadItem.php:240
+#: ../../include/conversation.php:1705
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
msgstr[0] ""
msgstr[1] ""
-#: ../../Zotlabs/Module/Photos.php:1280
+#: ../../Zotlabs/Module/Photos.php:1288
msgid "Photo Tools"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1289
+#: ../../Zotlabs/Module/Photos.php:1297
msgid "In This Photo:"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1294
+#: ../../Zotlabs/Module/Photos.php:1302
msgid "Map"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1302 ../../Zotlabs/Lib/ThreadItem.php:429
+#: ../../Zotlabs/Module/Photos.php:1310 ../../Zotlabs/Lib/ThreadItem.php:457
msgctxt "noun"
msgid "Likes"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1303 ../../Zotlabs/Lib/ThreadItem.php:430
+#: ../../Zotlabs/Module/Photos.php:1311 ../../Zotlabs/Lib/ThreadItem.php:458
msgctxt "noun"
msgid "Dislikes"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1308 ../../Zotlabs/Lib/ThreadItem.php:435
+#: ../../Zotlabs/Module/Photos.php:1316 ../../Zotlabs/Lib/ThreadItem.php:463
#: ../../include/acl_selectors.php:125
msgid "Close"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1380 ../../Zotlabs/Module/Photos.php:1393
-#: ../../Zotlabs/Module/Photos.php:1394 ../../include/photos.php:668
+#: ../../Zotlabs/Module/Photos.php:1389 ../../Zotlabs/Module/Photos.php:1402
+#: ../../Zotlabs/Module/Photos.php:1403 ../../include/photos.php:670
msgid "Recent Photos"
msgstr ""
#: ../../Zotlabs/Module/Wiki.php:35
-#: ../../addon/flashcards/Mod_Flashcards.php:34 ../../addon/cart/cart.php:1297
+#: ../../addon/flashcards/Mod_Flashcards.php:34 ../../addon/cart/cart.php:1298
msgid "Profile Unavailable."
msgstr ""
@@ -5115,7 +5104,7 @@ msgid "Provide a wiki for your channel"
msgstr ""
#: ../../Zotlabs/Module/Wiki.php:77 ../../addon/cart/myshop.php:37
-#: ../../addon/cart/cart.php:1443
+#: ../../addon/cart/cart.php:1444
#: ../../addon/cart/submodules/paypalbutton.php:456
#: ../../addon/cart/manual_payments.php:93
msgid "Invalid channel"
@@ -5134,7 +5123,7 @@ msgid "Error downloading wiki: "
msgstr ""
#: ../../Zotlabs/Module/Wiki.php:206 ../../Zotlabs/Widget/Wiki_list.php:15
-#: ../../include/nav.php:506
+#: ../../include/nav.php:536
msgid "Wikis"
msgstr ""
@@ -5158,18 +5147,18 @@ msgstr ""
#: ../../Zotlabs/Module/Wiki.php:217 ../../Zotlabs/Module/Wiki.php:371
#: ../../Zotlabs/Widget/Wiki_pages.php:38
#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../addon/mdpost/mdpost.php:41
-#: ../../include/text.php:1905
+#: ../../include/text.php:1955
msgid "Markdown"
msgstr ""
#: ../../Zotlabs/Module/Wiki.php:217 ../../Zotlabs/Module/Wiki.php:371
#: ../../Zotlabs/Widget/Wiki_pages.php:38
-#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1903
+#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1953
msgid "BBcode"
msgstr ""
#: ../../Zotlabs/Module/Wiki.php:217 ../../Zotlabs/Widget/Wiki_pages.php:38
-#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1906
+#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1956
msgid "Text"
msgstr ""
@@ -5235,14 +5224,14 @@ msgid "Embed image from photo albums"
msgstr ""
#: ../../Zotlabs/Module/Wiki.php:400 ../../addon/hsse/hsse.php:208
-#: ../../include/conversation.php:1411
+#: ../../include/conversation.php:1414
msgid "Embed an image from your albums"
msgstr ""
#: ../../Zotlabs/Module/Wiki.php:402 ../../Zotlabs/Module/Profile_photo.php:466
#: ../../Zotlabs/Module/Cover_photo.php:400 ../../addon/hsse/hsse.php:210
-#: ../../addon/hsse/hsse.php:257 ../../include/conversation.php:1413
-#: ../../include/conversation.php:1460
+#: ../../addon/hsse/hsse.php:257 ../../include/conversation.php:1416
+#: ../../include/conversation.php:1463
msgid "OK"
msgstr ""
@@ -5337,6 +5326,15 @@ msgstr ""
msgid "You must be authenticated."
msgstr ""
+#: ../../Zotlabs/Module/Share.php:103 ../../Zotlabs/Lib/Activity.php:1473
+#, php-format
+msgid "&#x1f501; Repeated %1$s's %2$s"
+msgstr ""
+
+#: ../../Zotlabs/Module/Share.php:119
+msgid "Post repeated"
+msgstr ""
+
#: ../../Zotlabs/Module/Chanview.php:139
msgid "toggle full screen mode"
msgstr ""
@@ -5393,7 +5391,7 @@ msgstr ""
msgid "Poke somebody in your addressbook"
msgstr ""
-#: ../../Zotlabs/Module/Poke.php:199 ../../Zotlabs/Lib/Apps.php:326
+#: ../../Zotlabs/Module/Poke.php:199 ../../Zotlabs/Lib/Apps.php:348
#: ../../include/conversation.php:1098
msgid "Poke"
msgstr ""
@@ -5429,7 +5427,7 @@ msgstr ""
#: ../../Zotlabs/Module/Profile_photo.php:120
#: ../../Zotlabs/Module/Profile_photo.php:248
-#: ../../include/photo/photo_driver.php:774
+#: ../../include/photo/photo_driver.php:367
msgid "Profile Photos"
msgstr ""
@@ -5536,36 +5534,36 @@ msgstr ""
msgid "Online"
msgstr ""
-#: ../../Zotlabs/Module/Item.php:194
+#: ../../Zotlabs/Module/Item.php:341
msgid "Unable to locate original post."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:479
+#: ../../Zotlabs/Module/Item.php:628
msgid "Empty post discarded."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:866
+#: ../../Zotlabs/Module/Item.php:1037
msgid "Duplicate post suppressed."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1011
+#: ../../Zotlabs/Module/Item.php:1182
msgid "System error. Post not saved."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1047
+#: ../../Zotlabs/Module/Item.php:1218
msgid "Your comment is awaiting approval."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1164
+#: ../../Zotlabs/Module/Item.php:1335
msgid "Unable to obtain post information from database."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1171
+#: ../../Zotlabs/Module/Item.php:1342
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1178
+#: ../../Zotlabs/Module/Item.php:1349
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr ""
@@ -5574,35 +5572,35 @@ msgstr ""
msgid "sent you a private message"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:392
+#: ../../Zotlabs/Module/Ping.php:394
msgid "added your channel"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:417
+#: ../../Zotlabs/Module/Ping.php:419
msgid "requires approval"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:427
+#: ../../Zotlabs/Module/Ping.php:429
msgid "g A l F d"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:445
+#: ../../Zotlabs/Module/Ping.php:447
msgid "[today]"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:455
+#: ../../Zotlabs/Module/Ping.php:457
msgid "posted an event"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:489
+#: ../../Zotlabs/Module/Ping.php:491
msgid "shared a file with you"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:671
+#: ../../Zotlabs/Module/Ping.php:673
msgid "Private forum"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:671
+#: ../../Zotlabs/Module/Ping.php:673
msgid "Public forum"
msgstr ""
@@ -5614,7 +5612,7 @@ msgstr ""
#: ../../Zotlabs/Module/Display.php:140 ../../Zotlabs/Module/Display.php:157
#: ../../Zotlabs/Module/Display.php:174
#: ../../Zotlabs/Lib/NativeWikiPage.php:521 ../../Zotlabs/Web/Router.php:185
-#: ../../include/help.php:132
+#: ../../addon/chess/Mod_Chess.php:447 ../../include/help.php:132
msgid "Page not found."
msgstr ""
@@ -5628,302 +5626,302 @@ msgid ""
"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:80 ../../Zotlabs/Module/Defperms.php:67
+#: ../../Zotlabs/Module/Connedit.php:81 ../../Zotlabs/Module/Defperms.php:67
msgid "Could not access contact record."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:110
+#: ../../Zotlabs/Module/Connedit.php:112
msgid "Could not locate selected profile."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:247
+#: ../../Zotlabs/Module/Connedit.php:256
msgid "Connection updated."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:249
+#: ../../Zotlabs/Module/Connedit.php:258
msgid "Failed to update connection record."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:303
+#: ../../Zotlabs/Module/Connedit.php:312
msgid "is now connected to"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:428
+#: ../../Zotlabs/Module/Connedit.php:437
msgid "Could not access address book record."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:476
+#: ../../Zotlabs/Module/Connedit.php:485 ../../Zotlabs/Module/Connedit.php:489
msgid "Refresh failed - channel is currently unavailable."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:491 ../../Zotlabs/Module/Connedit.php:500
-#: ../../Zotlabs/Module/Connedit.php:509 ../../Zotlabs/Module/Connedit.php:518
-#: ../../Zotlabs/Module/Connedit.php:531
+#: ../../Zotlabs/Module/Connedit.php:504 ../../Zotlabs/Module/Connedit.php:513
+#: ../../Zotlabs/Module/Connedit.php:522 ../../Zotlabs/Module/Connedit.php:531
+#: ../../Zotlabs/Module/Connedit.php:544
msgid "Unable to set address book parameters."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:555
+#: ../../Zotlabs/Module/Connedit.php:568
msgid "Connection has been removed."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:595 ../../Zotlabs/Lib/Apps.php:319
+#: ../../Zotlabs/Module/Connedit.php:608 ../../Zotlabs/Lib/Apps.php:341
#: ../../addon/openclipatar/openclipatar.php:57
#: ../../include/conversation.php:1038 ../../include/nav.php:106
msgid "View Profile"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:598
+#: ../../Zotlabs/Module/Connedit.php:611
#, php-format
msgid "View %s's profile"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:602
+#: ../../Zotlabs/Module/Connedit.php:615
msgid "Refresh Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:605
+#: ../../Zotlabs/Module/Connedit.php:618
msgid "Fetch updated permissions"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:609
+#: ../../Zotlabs/Module/Connedit.php:622
msgid "Refresh Photo"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:612
+#: ../../Zotlabs/Module/Connedit.php:625
msgid "Fetch updated photo"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:616 ../../include/conversation.php:1048
+#: ../../Zotlabs/Module/Connedit.php:629 ../../include/conversation.php:1048
msgid "Recent Activity"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:619
+#: ../../Zotlabs/Module/Connedit.php:632
msgid "View recent posts and comments"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:626
+#: ../../Zotlabs/Module/Connedit.php:639
msgid "Block (or Unblock) all communications with this connection"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:627
+#: ../../Zotlabs/Module/Connedit.php:640
msgid "This connection is blocked!"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:631
+#: ../../Zotlabs/Module/Connedit.php:644
msgid "Unignore"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:634
+#: ../../Zotlabs/Module/Connedit.php:647
msgid "Ignore (or Unignore) all inbound communications from this connection"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:635
+#: ../../Zotlabs/Module/Connedit.php:648
msgid "This connection is ignored!"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:639
+#: ../../Zotlabs/Module/Connedit.php:652
msgid "Unarchive"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:639
+#: ../../Zotlabs/Module/Connedit.php:652
msgid "Archive"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:642
+#: ../../Zotlabs/Module/Connedit.php:655
msgid ""
"Archive (or Unarchive) this connection - mark channel dead but keep content"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:643
+#: ../../Zotlabs/Module/Connedit.php:656
msgid "This connection is archived!"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:647
+#: ../../Zotlabs/Module/Connedit.php:660
msgid "Unhide"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:647
+#: ../../Zotlabs/Module/Connedit.php:660
msgid "Hide"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:650
+#: ../../Zotlabs/Module/Connedit.php:663
msgid "Hide or Unhide this connection from your other connections"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:651
+#: ../../Zotlabs/Module/Connedit.php:664
msgid "This connection is hidden!"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:658
+#: ../../Zotlabs/Module/Connedit.php:671
msgid "Delete this connection"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:666
+#: ../../Zotlabs/Module/Connedit.php:679
msgid "Fetch Vcard"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:669
+#: ../../Zotlabs/Module/Connedit.php:682
msgid "Fetch electronic calling card for this connection"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:680
+#: ../../Zotlabs/Module/Connedit.php:693
msgid "Open Individual Permissions section by default"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:703
+#: ../../Zotlabs/Module/Connedit.php:716
msgid "Affinity"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:706
+#: ../../Zotlabs/Module/Connedit.php:719
msgid "Open Set Affinity section by default"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:710 ../../Zotlabs/Widget/Affinity.php:22
+#: ../../Zotlabs/Module/Connedit.php:723 ../../Zotlabs/Widget/Affinity.php:30
msgid "Me"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:711 ../../Zotlabs/Widget/Affinity.php:23
+#: ../../Zotlabs/Module/Connedit.php:724 ../../Zotlabs/Widget/Affinity.php:31
msgid "Family"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:713 ../../Zotlabs/Widget/Affinity.php:25
+#: ../../Zotlabs/Module/Connedit.php:726 ../../Zotlabs/Widget/Affinity.php:33
msgid "Acquaintances"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:740
+#: ../../Zotlabs/Module/Connedit.php:756
msgid "Filter"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:743
+#: ../../Zotlabs/Module/Connedit.php:759
msgid "Open Custom Filter section by default"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:780
+#: ../../Zotlabs/Module/Connedit.php:796
msgid "Approve this connection"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:780
+#: ../../Zotlabs/Module/Connedit.php:796
msgid "Accept connection to allow communication"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:785
+#: ../../Zotlabs/Module/Connedit.php:801
msgid "Set Affinity"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:788
+#: ../../Zotlabs/Module/Connedit.php:804
msgid "Set Profile"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:791
+#: ../../Zotlabs/Module/Connedit.php:807
msgid "Set Affinity & Profile"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:839
+#: ../../Zotlabs/Module/Connedit.php:855
msgid "This connection is unreachable from this location."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:840
+#: ../../Zotlabs/Module/Connedit.php:856
msgid "This connection may be unreachable from other channel locations."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:842
+#: ../../Zotlabs/Module/Connedit.php:858
msgid "Location independence is not supported by their network."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:848
+#: ../../Zotlabs/Module/Connedit.php:864
msgid ""
"This connection is unreachable from this location. Location independence is "
"not supported by their network."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:851 ../../Zotlabs/Module/Defperms.php:254
+#: ../../Zotlabs/Module/Connedit.php:867 ../../Zotlabs/Module/Defperms.php:254
msgid "Connection Default Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:851 ../../include/items.php:4209
+#: ../../Zotlabs/Module/Connedit.php:867 ../../include/items.php:4308
#, php-format
msgid "Connection: %s"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:852 ../../Zotlabs/Module/Defperms.php:255
+#: ../../Zotlabs/Module/Connedit.php:868 ../../Zotlabs/Module/Defperms.php:255
msgid "Apply these permissions automatically"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:852
+#: ../../Zotlabs/Module/Connedit.php:868
msgid "Connection requests will be approved without your interaction"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:853 ../../Zotlabs/Module/Defperms.php:256
+#: ../../Zotlabs/Module/Connedit.php:869 ../../Zotlabs/Module/Defperms.php:256
msgid "Permission role"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:854 ../../Zotlabs/Module/Defperms.php:257
+#: ../../Zotlabs/Module/Connedit.php:870 ../../Zotlabs/Module/Defperms.php:257
msgid "Add permission role"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:861
+#: ../../Zotlabs/Module/Connedit.php:877
msgid "This connection's primary address is"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:862
+#: ../../Zotlabs/Module/Connedit.php:878
msgid "Available locations:"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:867 ../../Zotlabs/Module/Defperms.php:261
+#: ../../Zotlabs/Module/Connedit.php:883 ../../Zotlabs/Module/Defperms.php:261
msgid ""
"The permissions indicated on this page will be applied to all new "
"connections."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:868
+#: ../../Zotlabs/Module/Connedit.php:884
msgid "Connection Tools"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:870
+#: ../../Zotlabs/Module/Connedit.php:886
msgid "Slide to adjust your degree of friendship"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:871 ../../Zotlabs/Module/Rate.php:155
+#: ../../Zotlabs/Module/Connedit.php:887 ../../Zotlabs/Module/Rate.php:155
#: ../../include/js_strings.php:20
msgid "Rating"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:872
+#: ../../Zotlabs/Module/Connedit.php:888
msgid "Slide to adjust your rating"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:873 ../../Zotlabs/Module/Connedit.php:878
+#: ../../Zotlabs/Module/Connedit.php:889 ../../Zotlabs/Module/Connedit.php:894
msgid "Optionally explain your rating"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:875
+#: ../../Zotlabs/Module/Connedit.php:891
msgid "Custom Filter"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:876
+#: ../../Zotlabs/Module/Connedit.php:892
msgid "Only import posts with this text"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:877
+#: ../../Zotlabs/Module/Connedit.php:893
msgid "Do not import posts with this text"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:879
+#: ../../Zotlabs/Module/Connedit.php:895
msgid "This information is public!"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:884
+#: ../../Zotlabs/Module/Connedit.php:900
msgid "Connection Pending Approval"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:889
+#: ../../Zotlabs/Module/Connedit.php:905
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:896
+#: ../../Zotlabs/Module/Connedit.php:912
msgid ""
"Some permissions may be inherited from your channel's <a href=\"settings"
"\"><strong>privacy settings</strong></a>, which have higher priority than "
@@ -5931,11 +5929,11 @@ msgid ""
"any impact unless the inherited setting changes."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:897
+#: ../../Zotlabs/Module/Connedit.php:913
msgid "Last update:"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:905
+#: ../../Zotlabs/Module/Connedit.php:921
msgid "Details"
msgstr ""
@@ -5978,8 +5976,8 @@ msgid "Please enter a link URL:"
msgstr ""
#: ../../Zotlabs/Module/Chat.php:221 ../../Zotlabs/Module/Mail.php:294
-#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:781
-#: ../../addon/hsse/hsse.php:255 ../../include/conversation.php:1458
+#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:809
+#: ../../addon/hsse/hsse.php:255 ../../include/conversation.php:1461
msgid "Encrypt text"
msgstr ""
@@ -6012,13 +6010,13 @@ msgstr ""
msgid "min"
msgstr ""
-#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:320
-#: ../../include/features.php:391 ../../include/nav.php:414
+#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:342
+#: ../../include/features.php:383 ../../include/nav.php:444
msgid "Photos"
msgstr ""
-#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:315
-#: ../../Zotlabs/Storage/Browser.php:272 ../../include/nav.php:422
+#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:337
+#: ../../Zotlabs/Storage/Browser.php:272 ../../include/nav.php:452
msgid "Files"
msgstr ""
@@ -6058,7 +6056,7 @@ msgstr ""
msgid "Submit and proceed"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:170 ../../include/text.php:2479
+#: ../../Zotlabs/Module/Menu.php:170 ../../include/text.php:2535
msgid "Menus"
msgstr ""
@@ -6110,12 +6108,12 @@ msgstr ""
msgid "Allow bookmarks"
msgstr ""
-#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2480
+#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2536
msgid "Layouts"
msgstr ""
-#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:323
-#: ../../include/nav.php:168 ../../include/nav.php:289
+#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:345
+#: ../../include/nav.php:168 ../../include/nav.php:319
#: ../../include/help.php:117 ../../include/help.php:125
msgid "Help"
msgstr ""
@@ -6132,11 +6130,11 @@ msgstr ""
msgid "Download PDL file"
msgstr ""
-#: ../../Zotlabs/Module/Notes.php:55
+#: ../../Zotlabs/Module/Notes.php:56
msgid "Notes App"
msgstr ""
-#: ../../Zotlabs/Module/Notes.php:56
+#: ../../Zotlabs/Module/Notes.php:57
msgid "A simple notes app with a widget (note: notes are not encrypted)"
msgstr ""
@@ -6181,13 +6179,13 @@ msgstr ""
msgid "Post not found."
msgstr ""
-#: ../../Zotlabs/Module/Tagger.php:77 ../../include/markdown.php:202
-#: ../../include/bbcode.php:354
+#: ../../Zotlabs/Module/Tagger.php:77 ../../include/markdown.php:200
+#: ../../include/bbcode.php:343
msgid "post"
msgstr ""
#: ../../Zotlabs/Module/Tagger.php:79 ../../include/conversation.php:146
-#: ../../include/text.php:2049
+#: ../../include/text.php:2099
msgid "comment"
msgstr ""
@@ -6211,6 +6209,57 @@ msgid ""
"to correctly use this feature."
msgstr ""
+#: ../../Zotlabs/Module/Affinity.php:35
+msgid "Affinity Tool settings updated."
+msgstr ""
+
+#: ../../Zotlabs/Module/Affinity.php:47
+msgid ""
+"This app presents a slider control in your connection editor and also on "
+"your network page. The slider represents your degree of friendship "
+"(affinity) with each connection. It allows you to zoom in or out and display "
+"conversations from only your closest friends or everybody in your stream."
+msgstr ""
+
+#: ../../Zotlabs/Module/Affinity.php:52
+msgid "Affinity Tool App"
+msgstr ""
+
+#: ../../Zotlabs/Module/Affinity.php:57
+msgid ""
+"The numbers below represent the minimum and maximum slider default positions "
+"for your network/stream page as a percentage."
+msgstr ""
+
+#: ../../Zotlabs/Module/Affinity.php:64
+msgid "Default maximum affinity level"
+msgstr ""
+
+#: ../../Zotlabs/Module/Affinity.php:64
+msgid "0-99 default 99"
+msgstr ""
+
+#: ../../Zotlabs/Module/Affinity.php:70
+msgid "Default minimum affinity level"
+msgstr ""
+
+#: ../../Zotlabs/Module/Affinity.php:70
+msgid "0-99 - default 0"
+msgstr ""
+
+#: ../../Zotlabs/Module/Affinity.php:76
+msgid "Persistent affinity levels"
+msgstr ""
+
+#: ../../Zotlabs/Module/Affinity.php:76
+msgid ""
+"If disabled the max and min levels will be reset to default after page reload"
+msgstr ""
+
+#: ../../Zotlabs/Module/Affinity.php:84
+msgid "Affinity Tool Settings"
+msgstr ""
+
#: ../../Zotlabs/Module/Defperms.php:189
msgid "Default Permissions App"
msgstr ""
@@ -6254,76 +6303,76 @@ msgstr ""
msgid "Could not create privacy group."
msgstr ""
-#: ../../Zotlabs/Module/Group.php:61 ../../Zotlabs/Module/Group.php:200
-#: ../../include/items.php:4176
+#: ../../Zotlabs/Module/Group.php:61 ../../Zotlabs/Module/Group.php:213
+#: ../../include/items.php:4275
msgid "Privacy group not found."
msgstr ""
-#: ../../Zotlabs/Module/Group.php:77
+#: ../../Zotlabs/Module/Group.php:80
msgid "Privacy group updated."
msgstr ""
-#: ../../Zotlabs/Module/Group.php:101
+#: ../../Zotlabs/Module/Group.php:106
msgid "Privacy Groups App"
msgstr ""
-#: ../../Zotlabs/Module/Group.php:102
+#: ../../Zotlabs/Module/Group.php:107
msgid "Management of privacy groups"
msgstr ""
-#: ../../Zotlabs/Module/Group.php:132 ../../Zotlabs/Module/Group.php:143
-#: ../../Zotlabs/Lib/Apps.php:339 ../../Zotlabs/Lib/Group.php:324
+#: ../../Zotlabs/Module/Group.php:141 ../../Zotlabs/Module/Group.php:153
+#: ../../Zotlabs/Lib/Apps.php:361 ../../Zotlabs/Lib/Group.php:324
#: ../../Zotlabs/Widget/Activity_filter.php:41 ../../include/nav.php:95
#: ../../include/group.php:320
msgid "Privacy Groups"
msgstr ""
-#: ../../Zotlabs/Module/Group.php:133
+#: ../../Zotlabs/Module/Group.php:142
msgid "Add Group"
msgstr ""
-#: ../../Zotlabs/Module/Group.php:137
+#: ../../Zotlabs/Module/Group.php:146
msgid "Privacy group name"
msgstr ""
-#: ../../Zotlabs/Module/Group.php:138 ../../Zotlabs/Module/Group.php:239
+#: ../../Zotlabs/Module/Group.php:147 ../../Zotlabs/Module/Group.php:256
msgid "Members are visible to other channels"
msgstr ""
-#: ../../Zotlabs/Module/Group.php:145 ../../Zotlabs/Module/Help.php:81
+#: ../../Zotlabs/Module/Group.php:155 ../../Zotlabs/Module/Help.php:81
msgid "Members"
msgstr ""
-#: ../../Zotlabs/Module/Group.php:170
+#: ../../Zotlabs/Module/Group.php:182
msgid "Privacy group removed."
msgstr ""
-#: ../../Zotlabs/Module/Group.php:172
+#: ../../Zotlabs/Module/Group.php:185
msgid "Unable to remove privacy group."
msgstr ""
-#: ../../Zotlabs/Module/Group.php:234
+#: ../../Zotlabs/Module/Group.php:251
#, php-format
msgid "Privacy Group: %s"
msgstr ""
-#: ../../Zotlabs/Module/Group.php:236
+#: ../../Zotlabs/Module/Group.php:253
msgid "Privacy group name: "
msgstr ""
-#: ../../Zotlabs/Module/Group.php:241
+#: ../../Zotlabs/Module/Group.php:258
msgid "Delete Group"
msgstr ""
-#: ../../Zotlabs/Module/Group.php:251
+#: ../../Zotlabs/Module/Group.php:269
msgid "Group members"
msgstr ""
-#: ../../Zotlabs/Module/Group.php:253
+#: ../../Zotlabs/Module/Group.php:271
msgid "Not in this group"
msgstr ""
-#: ../../Zotlabs/Module/Group.php:285
+#: ../../Zotlabs/Module/Group.php:303
msgid "Click a channel to toggle membership"
msgstr ""
@@ -6418,7 +6467,7 @@ msgid "View this profile"
msgstr ""
#: ../../Zotlabs/Module/Profiles.php:725 ../../Zotlabs/Module/Profiles.php:824
-#: ../../include/channel.php:1326
+#: ../../include/channel.php:1375
msgid "Edit visibility"
msgstr ""
@@ -6430,7 +6479,7 @@ msgstr ""
msgid "Change cover photo"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:728 ../../include/channel.php:1296
+#: ../../Zotlabs/Module/Profiles.php:728 ../../include/channel.php:1345
msgid "Change profile photo"
msgstr ""
@@ -6596,11 +6645,11 @@ msgstr ""
msgid "Communications"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:820 ../../include/channel.php:1322
+#: ../../Zotlabs/Module/Profiles.php:820 ../../include/channel.php:1371
msgid "Profile Image"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:830 ../../include/channel.php:1303
+#: ../../Zotlabs/Module/Profiles.php:830 ../../include/channel.php:1352
#: ../../include/nav.php:109
msgid "Edit Profiles"
msgstr ""
@@ -6680,7 +6729,7 @@ msgstr ""
msgid "Create a new channel"
msgstr ""
-#: ../../Zotlabs/Module/Manage.php:170 ../../Zotlabs/Lib/Apps.php:312
+#: ../../Zotlabs/Module/Manage.php:170 ../../Zotlabs/Lib/Apps.php:334
#: ../../include/nav.php:92
msgid "Channel Manager"
msgstr ""
@@ -6715,20 +6764,20 @@ msgstr ""
msgid "Delegated Channel"
msgstr ""
-#: ../../Zotlabs/Module/Cards.php:46
+#: ../../Zotlabs/Module/Cards.php:51
msgid "Cards App"
msgstr ""
-#: ../../Zotlabs/Module/Cards.php:47
+#: ../../Zotlabs/Module/Cards.php:52
msgid "Create personal planning cards"
msgstr ""
-#: ../../Zotlabs/Module/Cards.php:108
+#: ../../Zotlabs/Module/Cards.php:112
msgid "Add Card"
msgstr ""
-#: ../../Zotlabs/Module/Cards.php:203 ../../Zotlabs/Lib/Apps.php:303
-#: ../../include/nav.php:471
+#: ../../Zotlabs/Module/Cards.php:207 ../../Zotlabs/Lib/Apps.php:325
+#: ../../include/nav.php:501
msgid "Cards"
msgstr ""
@@ -6827,8 +6876,8 @@ msgstr ""
msgid "Export selected"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:252 ../../Zotlabs/Lib/Apps.php:316
-#: ../../include/nav.php:494
+#: ../../Zotlabs/Module/Webpages.php:252 ../../Zotlabs/Lib/Apps.php:338
+#: ../../include/nav.php:524
msgid "Webpages"
msgstr ""
@@ -6870,13 +6919,13 @@ msgid ""
"password."
msgstr ""
-#: ../../Zotlabs/Module/Changeaddr.php:46 ../../include/channel.php:221
-#: ../../include/channel.php:606
+#: ../../Zotlabs/Module/Changeaddr.php:46 ../../include/channel.php:222
+#: ../../include/channel.php:655
msgid "Reserved nickname. Please choose another."
msgstr ""
-#: ../../Zotlabs/Module/Changeaddr.php:51 ../../include/channel.php:226
-#: ../../include/channel.php:611
+#: ../../Zotlabs/Module/Changeaddr.php:51 ../../include/channel.php:227
+#: ../../include/channel.php:660
msgid ""
"Nickname has unsupported characters or is already being used on this site."
msgstr ""
@@ -6905,69 +6954,69 @@ msgstr ""
msgid "Edit post"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:45
+#: ../../Zotlabs/Module/Dreport.php:56
msgid "Invalid message"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:78
+#: ../../Zotlabs/Module/Dreport.php:90
msgid "no results"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:93
+#: ../../Zotlabs/Module/Dreport.php:104
msgid "channel sync processed"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:97
+#: ../../Zotlabs/Module/Dreport.php:108
msgid "queued"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:101
+#: ../../Zotlabs/Module/Dreport.php:112
msgid "posted"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:105
+#: ../../Zotlabs/Module/Dreport.php:116
msgid "accepted for delivery"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:109
+#: ../../Zotlabs/Module/Dreport.php:120
msgid "updated"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:112
+#: ../../Zotlabs/Module/Dreport.php:123
msgid "update ignored"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:115
+#: ../../Zotlabs/Module/Dreport.php:126
msgid "permission denied"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:119
+#: ../../Zotlabs/Module/Dreport.php:130
msgid "recipient not found"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:122
+#: ../../Zotlabs/Module/Dreport.php:133
msgid "mail recalled"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:125
+#: ../../Zotlabs/Module/Dreport.php:136
msgid "duplicate mail received"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:128
+#: ../../Zotlabs/Module/Dreport.php:139
msgid "mail delivered"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:148
+#: ../../Zotlabs/Module/Dreport.php:159
#, php-format
msgid "Delivery report for %1$s"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:151 ../../Zotlabs/Widget/Wiki_pages.php:41
+#: ../../Zotlabs/Module/Dreport.php:162 ../../Zotlabs/Widget/Wiki_pages.php:41
#: ../../Zotlabs/Widget/Wiki_pages.php:98
msgid "Options"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:152
+#: ../../Zotlabs/Module/Dreport.php:163
msgid "Redeliver"
msgstr ""
@@ -6995,7 +7044,7 @@ msgstr ""
msgid "*"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:344
+#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:366
msgid "Channel Sources"
msgstr ""
@@ -7064,89 +7113,89 @@ msgstr ""
msgid "Unable to remove source."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:54
+#: ../../Zotlabs/Module/Like.php:56
msgid "Like/Dislike"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:59
+#: ../../Zotlabs/Module/Like.php:61
msgid "This action is restricted to members."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:60
+#: ../../Zotlabs/Module/Like.php:62
msgid ""
"Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a href="
"\"register\">register as a new $Projectname member</a> to continue."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:109 ../../Zotlabs/Module/Like.php:135
-#: ../../Zotlabs/Module/Like.php:173
+#: ../../Zotlabs/Module/Like.php:111 ../../Zotlabs/Module/Like.php:137
+#: ../../Zotlabs/Module/Like.php:175
msgid "Invalid request."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:121 ../../include/conversation.php:122
+#: ../../Zotlabs/Module/Like.php:123 ../../include/conversation.php:122
msgid "channel"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:150
+#: ../../Zotlabs/Module/Like.php:152
msgid "thing"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:196
+#: ../../Zotlabs/Module/Like.php:198
msgid "Channel unavailable."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:244
+#: ../../Zotlabs/Module/Like.php:246
msgid "Previous action reversed."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:438 ../../Zotlabs/Lib/Activity.php:1605
-#: ../../addon/diaspora/Receiver.php:1568 ../../addon/pubcrawl/as.php:1529
+#: ../../Zotlabs/Module/Like.php:447 ../../Zotlabs/Lib/Activity.php:1994
+#: ../../addon/diaspora/Receiver.php:1491 ../../addon/pubcrawl/as.php:1540
#: ../../include/conversation.php:160
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:440 ../../Zotlabs/Lib/Activity.php:1607
-#: ../../addon/pubcrawl/as.php:1531 ../../include/conversation.php:163
+#: ../../Zotlabs/Module/Like.php:449 ../../Zotlabs/Lib/Activity.php:1996
+#: ../../addon/pubcrawl/as.php:1542 ../../include/conversation.php:163
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:442
+#: ../../Zotlabs/Module/Like.php:451
#, php-format
msgid "%1$s agrees with %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:444
+#: ../../Zotlabs/Module/Like.php:453
#, php-format
msgid "%1$s doesn't agree with %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:446
+#: ../../Zotlabs/Module/Like.php:455
#, php-format
msgid "%1$s abstains from a decision on %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2117
+#: ../../Zotlabs/Module/Like.php:457 ../../addon/diaspora/Receiver.php:2137
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2119
+#: ../../Zotlabs/Module/Like.php:459 ../../addon/diaspora/Receiver.php:2139
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:452 ../../addon/diaspora/Receiver.php:2121
+#: ../../Zotlabs/Module/Like.php:461 ../../addon/diaspora/Receiver.php:2141
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:564
+#: ../../Zotlabs/Module/Like.php:572
msgid "Action completed."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:565
+#: ../../Zotlabs/Module/Like.php:573
msgid "Thank you."
msgstr ""
@@ -7173,12 +7222,12 @@ msgstr ""
msgid "Homepage: "
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:323 ../../include/channel.php:1571
+#: ../../Zotlabs/Module/Directory.php:323 ../../include/channel.php:1620
msgid "Age:"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:328 ../../include/channel.php:1398
-#: ../../include/event.php:54 ../../include/event.php:86
+#: ../../Zotlabs/Module/Directory.php:328 ../../include/channel.php:1447
+#: ../../include/event.php:58 ../../include/event.php:90
msgid "Location:"
msgstr ""
@@ -7186,17 +7235,17 @@ msgstr ""
msgid "Description:"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:339 ../../include/channel.php:1600
+#: ../../Zotlabs/Module/Directory.php:339 ../../include/channel.php:1649
msgid "Hometown:"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:341 ../../include/channel.php:1606
+#: ../../Zotlabs/Module/Directory.php:341 ../../include/channel.php:1655
msgid "About:"
msgstr ""
#: ../../Zotlabs/Module/Directory.php:342 ../../Zotlabs/Module/Suggest.php:71
#: ../../Zotlabs/Widget/Follow.php:32 ../../Zotlabs/Widget/Suggestions.php:44
-#: ../../include/conversation.php:1058 ../../include/channel.php:1383
+#: ../../include/conversation.php:1058 ../../include/channel.php:1432
#: ../../include/connections.php:110
msgid "Connect"
msgstr ""
@@ -7363,7 +7412,7 @@ msgid "Send"
msgstr ""
#: ../../Zotlabs/Module/Mail.php:292 ../../Zotlabs/Module/Mail.php:434
-#: ../../addon/hsse/hsse.php:250 ../../include/conversation.php:1453
+#: ../../addon/hsse/hsse.php:250 ../../include/conversation.php:1456
msgid "Set expiration date"
msgstr ""
@@ -7455,12 +7504,12 @@ msgstr ""
msgid "menu"
msgstr ""
-#: ../../Zotlabs/Module/Impel.php:183
+#: ../../Zotlabs/Module/Impel.php:185
#, php-format
msgid "%s element installed"
msgstr ""
-#: ../../Zotlabs/Module/Impel.php:186
+#: ../../Zotlabs/Module/Impel.php:188
#, php-format
msgid "%s element installation failed"
msgstr ""
@@ -7489,7 +7538,7 @@ msgstr ""
msgid "or select an existing folder (doubleclick)"
msgstr ""
-#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:164
+#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:181
msgid "Save to Folder"
msgstr ""
@@ -7608,7 +7657,7 @@ msgstr ""
msgid "yes"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:289 ../../boot.php:1604
+#: ../../Zotlabs/Module/Register.php:289 ../../boot.php:1609
#: ../../include/nav.php:156
msgid "Register"
msgstr ""
@@ -7624,30 +7673,30 @@ msgstr ""
msgid "Cover Photos"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:269 ../../include/items.php:4553
+#: ../../Zotlabs/Module/Cover_photo.php:269 ../../include/items.php:4652
msgid "female"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:270 ../../include/items.php:4554
+#: ../../Zotlabs/Module/Cover_photo.php:270 ../../include/items.php:4653
#, php-format
msgid "%1$s updated her %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:271 ../../include/items.php:4555
+#: ../../Zotlabs/Module/Cover_photo.php:271 ../../include/items.php:4654
msgid "male"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:272 ../../include/items.php:4556
+#: ../../Zotlabs/Module/Cover_photo.php:272 ../../include/items.php:4655
#, php-format
msgid "%1$s updated his %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:274 ../../include/items.php:4558
+#: ../../Zotlabs/Module/Cover_photo.php:274 ../../include/items.php:4657
#, php-format
msgid "%1$s updated their %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:276 ../../include/channel.php:2088
+#: ../../Zotlabs/Module/Cover_photo.php:276 ../../include/channel.php:2137
msgid "cover photo"
msgstr ""
@@ -7663,7 +7712,7 @@ msgstr ""
msgid "Documentation Search"
msgstr ""
-#: ../../Zotlabs/Module/Help.php:80 ../../include/nav.php:404
+#: ../../Zotlabs/Module/Help.php:80 ../../include/nav.php:434
msgid "About"
msgstr ""
@@ -7687,11 +7736,11 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: ../../Zotlabs/Module/Display.php:393
+#: ../../Zotlabs/Module/Display.php:391
msgid "Article"
msgstr ""
-#: ../../Zotlabs/Module/Display.php:445
+#: ../../Zotlabs/Module/Display.php:443
msgid "Item has been removed."
msgstr ""
@@ -7707,23 +7756,23 @@ msgstr ""
msgid "Select a tag to remove: "
msgstr ""
-#: ../../Zotlabs/Module/Network.php:107
+#: ../../Zotlabs/Module/Network.php:109
msgid "No such group"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:149
+#: ../../Zotlabs/Module/Network.php:158
msgid "No such channel"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:233
+#: ../../Zotlabs/Module/Network.php:242
msgid "Privacy group is empty"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:243
+#: ../../Zotlabs/Module/Network.php:252
msgid "Privacy group: "
msgstr ""
-#: ../../Zotlabs/Module/Network.php:316 ../../addon/redred/redred.php:65
+#: ../../Zotlabs/Module/Network.php:325 ../../addon/redred/Mod_Redred.php:29
msgid "Invalid channel."
msgstr ""
@@ -7920,7 +7969,7 @@ msgid ""
"Password reset failed."
msgstr ""
-#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1633
+#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1638
msgid "Password Reset"
msgstr ""
@@ -7982,7 +8031,7 @@ msgid "OAuth authentication tokens for mobile and remote apps"
msgstr ""
#: ../../Zotlabs/Module/Oauth.php:114 ../../Zotlabs/Module/Oauth.php:140
-#: ../../addon/statusnet/statusnet.php:894 ../../addon/twitter/twitter.php:784
+#: ../../addon/statusnet/statusnet.php:596 ../../addon/twitter/twitter.php:614
msgid "Consumer Key"
msgstr ""
@@ -7999,14 +8048,39 @@ msgid "Connected OAuth Apps"
msgstr ""
#: ../../Zotlabs/Module/Notifications.php:60
-#: ../../Zotlabs/Lib/ThreadItem.php:422
+#: ../../Zotlabs/Lib/ThreadItem.php:450
msgid "Mark all seen"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:1417 ../../Zotlabs/Lib/Activity.php:1614
-#: ../../widget/Netselect/Netselect.php:42 ../../addon/pubcrawl/as.php:1204
-#: ../../addon/pubcrawl/as.php:1359 ../../addon/pubcrawl/as.php:1538
-#: ../../include/network.php:1778
+#: ../../Zotlabs/Lib/Activity.php:1458
+#, php-format
+msgid "Likes %1$s's %2$s"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Activity.php:1461
+#, php-format
+msgid "Doesn't like %1$s's %2$s"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Activity.php:1464
+#, php-format
+msgid "Will attend %1$s's %2$s"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Activity.php:1467
+#, php-format
+msgid "Will not attend %1$s's %2$s"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Activity.php:1470
+#, php-format
+msgid "May attend %1$s's %2$s"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Activity.php:1806 ../../Zotlabs/Lib/Activity.php:2003
+#: ../../widget/Netselect/Netselect.php:42 ../../addon/pubcrawl/as.php:1214
+#: ../../addon/pubcrawl/as.php:1369 ../../addon/pubcrawl/as.php:1549
+#: ../../include/network.php:1720
msgid "ActivityPub"
msgstr ""
@@ -8034,179 +8108,183 @@ msgstr ""
msgid "5. Wizard - I probably know more than you do"
msgstr ""
-#: ../../Zotlabs/Lib/Libzot.php:658 ../../include/zot.php:800
+#: ../../Zotlabs/Lib/Libzot.php:652 ../../include/zot.php:802
msgid "Unable to verify channel signature"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:301
+#: ../../Zotlabs/Lib/Apps.php:322
msgid "Apps"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:304
+#: ../../Zotlabs/Lib/Apps.php:323
+msgid "Affinity Tool"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Apps.php:326
msgid "Site Admin"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:305 ../../addon/buglink/buglink.php:16
+#: ../../Zotlabs/Lib/Apps.php:327 ../../addon/buglink/buglink.php:16
msgid "Report Bug"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:306 ../../include/nav.php:460
+#: ../../Zotlabs/Lib/Apps.php:328 ../../include/nav.php:490
msgid "Bookmarks"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:307 ../../Zotlabs/Widget/Chatroom_list.php:16
-#: ../../include/nav.php:447 ../../include/nav.php:450
+#: ../../Zotlabs/Lib/Apps.php:329 ../../Zotlabs/Widget/Chatroom_list.php:16
+#: ../../include/nav.php:477 ../../include/nav.php:480
msgid "Chatrooms"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:309
+#: ../../Zotlabs/Lib/Apps.php:331
msgid "Remote Diagnostics"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:310 ../../include/features.php:373
+#: ../../Zotlabs/Lib/Apps.php:332 ../../include/features.php:365
msgid "Suggest Channels"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:311 ../../boot.php:1624 ../../include/nav.php:118
+#: ../../Zotlabs/Lib/Apps.php:333 ../../boot.php:1629 ../../include/nav.php:118
#: ../../include/nav.php:122
msgid "Login"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:313
+#: ../../Zotlabs/Lib/Apps.php:335
msgid "Stream"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:317 ../../include/nav.php:509
+#: ../../Zotlabs/Lib/Apps.php:339 ../../include/nav.php:539
msgid "Wiki"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:318 ../../include/features.php:96
+#: ../../Zotlabs/Lib/Apps.php:340 ../../include/features.php:96
msgid "Channel Home"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:321 ../../include/features.php:269
+#: ../../Zotlabs/Lib/Apps.php:343 ../../include/features.php:269
msgid "Events"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:322 ../../include/features.php:176
+#: ../../Zotlabs/Lib/Apps.php:344 ../../include/features.php:176
msgid "Directory"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:324
+#: ../../Zotlabs/Lib/Apps.php:346
msgid "Mail"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:327
+#: ../../Zotlabs/Lib/Apps.php:349
msgid "Chat"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:329
+#: ../../Zotlabs/Lib/Apps.php:351
msgid "Probe"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:330
+#: ../../Zotlabs/Lib/Apps.php:352
msgid "Suggest"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:331
+#: ../../Zotlabs/Lib/Apps.php:353
msgid "Random Channel"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:332
+#: ../../Zotlabs/Lib/Apps.php:354
msgid "Invite"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:333 ../../Zotlabs/Widget/Admin.php:26
+#: ../../Zotlabs/Lib/Apps.php:355 ../../Zotlabs/Widget/Admin.php:26
msgid "Features"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:334 ../../addon/openid/MysqlProvider.php:69
+#: ../../Zotlabs/Lib/Apps.php:356 ../../addon/openid/MysqlProvider.php:69
msgid "Language"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:335
+#: ../../Zotlabs/Lib/Apps.php:357
msgid "Post"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:336 ../../addon/openid/MysqlProvider.php:58
+#: ../../Zotlabs/Lib/Apps.php:358 ../../addon/openid/MysqlProvider.php:58
#: ../../addon/openid/MysqlProvider.php:59
#: ../../addon/openid/MysqlProvider.php:60
msgid "Profile Photo"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:338 ../../include/features.php:405
+#: ../../Zotlabs/Lib/Apps.php:360 ../../include/features.php:397
msgid "Profiles"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:340
+#: ../../Zotlabs/Lib/Apps.php:362
msgid "Notifications"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:341
+#: ../../Zotlabs/Lib/Apps.php:363
msgid "Order Apps"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:342 ../../include/features.php:82
+#: ../../Zotlabs/Lib/Apps.php:364 ../../include/features.php:82
msgid "CalDAV"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:343
+#: ../../Zotlabs/Lib/Apps.php:365
msgid "CardDAV"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:345
+#: ../../Zotlabs/Lib/Apps.php:367
msgid "Guest Access"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:346 ../../Zotlabs/Widget/Notes.php:21
+#: ../../Zotlabs/Lib/Apps.php:368 ../../Zotlabs/Widget/Notes.php:21
msgid "Notes"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:347
+#: ../../Zotlabs/Lib/Apps.php:369
msgid "OAuth Apps Manager"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:348
+#: ../../Zotlabs/Lib/Apps.php:370
msgid "OAuth2 Apps Manager"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:349
+#: ../../Zotlabs/Lib/Apps.php:371
msgid "PDL Editor"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:351
+#: ../../Zotlabs/Lib/Apps.php:373
msgid "Premium Channel"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:353
+#: ../../Zotlabs/Lib/Apps.php:375
msgid "My Chatrooms"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:354
+#: ../../Zotlabs/Lib/Apps.php:376
msgid "Channel Export"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:531
+#: ../../Zotlabs/Lib/Apps.php:553
msgid "Purchase"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:536
+#: ../../Zotlabs/Lib/Apps.php:558
msgid "Undelete"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:545
+#: ../../Zotlabs/Lib/Apps.php:567
msgid "Add to app-tray"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:546
+#: ../../Zotlabs/Lib/Apps.php:568
msgid "Remove from app-tray"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:547
+#: ../../Zotlabs/Lib/Apps.php:569
msgid "Pin to navbar"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:548
+#: ../../Zotlabs/Lib/Apps.php:570
msgid "Unpin from navbar"
msgstr ""
@@ -8303,8 +8381,8 @@ msgstr ""
msgid "Compare"
msgstr ""
-#: ../../Zotlabs/Lib/NativeWikiPage.php:603 ../../include/bbcode.php:746
-#: ../../include/bbcode.php:916
+#: ../../Zotlabs/Lib/NativeWikiPage.php:603 ../../include/bbcode.php:735
+#: ../../include/bbcode.php:905
msgid "Different viewers will see this text differently"
msgstr ""
@@ -8439,7 +8517,7 @@ msgstr ""
msgid "Room is full"
msgstr ""
-#: ../../Zotlabs/Lib/Libsync.php:733 ../../include/zot.php:2571
+#: ../../Zotlabs/Lib/Libsync.php:733 ../../include/zot.php:2591
#, php-format
msgid "Unable to verify site signature for %s"
msgstr ""
@@ -8448,8 +8526,8 @@ msgstr ""
msgid "$Projectname Notification"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:61 ../../addon/diaspora/util.php:308
-#: ../../addon/diaspora/util.php:321 ../../addon/diaspora/p.php:48
+#: ../../Zotlabs/Lib/Enotify.php:61 ../../addon/diaspora/util.php:313
+#: ../../addon/diaspora/util.php:326 ../../addon/diaspora/p.php:48
msgid "$projectname"
msgstr ""
@@ -8711,11 +8789,11 @@ msgstr ""
msgid "edited a comment dated %s"
msgstr ""
-#: ../../Zotlabs/Lib/NativeWiki.php:152
+#: ../../Zotlabs/Lib/NativeWiki.php:143
msgid "Wiki updated successfully"
msgstr ""
-#: ../../Zotlabs/Lib/NativeWiki.php:206
+#: ../../Zotlabs/Lib/NativeWiki.php:197
msgid "Wiki files deleted successfully"
msgstr ""
@@ -8729,210 +8807,214 @@ msgstr ""
msgid "Update %s failed. See error logs."
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:99 ../../include/conversation.php:700
+#: ../../Zotlabs/Lib/ThreadItem.php:102 ../../include/conversation.php:700
msgid "Private Message"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:154 ../../Zotlabs/Storage/Browser.php:280
+#: ../../Zotlabs/Lib/ThreadItem.php:129
+msgid "Privacy conflict. Discretion advised."
+msgstr ""
+
+#: ../../Zotlabs/Lib/ThreadItem.php:171 ../../Zotlabs/Storage/Browser.php:280
msgid "Admin Delete"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:160 ../../include/conversation.php:690
+#: ../../Zotlabs/Lib/ThreadItem.php:177 ../../include/conversation.php:690
msgid "Select"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../Zotlabs/Lib/ThreadItem.php:202
msgid "I will attend"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../Zotlabs/Lib/ThreadItem.php:202
msgid "I will not attend"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../Zotlabs/Lib/ThreadItem.php:202
msgid "I might attend"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:195
+#: ../../Zotlabs/Lib/ThreadItem.php:212
msgid "I agree"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:195
+#: ../../Zotlabs/Lib/ThreadItem.php:212
msgid "I disagree"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:195
+#: ../../Zotlabs/Lib/ThreadItem.php:212
msgid "I abstain"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:249 ../../include/conversation.php:695
+#: ../../Zotlabs/Lib/ThreadItem.php:266 ../../include/conversation.php:695
msgid "Toggle Star Status"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:260 ../../include/conversation.php:707
+#: ../../Zotlabs/Lib/ThreadItem.php:277 ../../include/conversation.php:707
msgid "Message signature validated"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:261 ../../include/conversation.php:708
+#: ../../Zotlabs/Lib/ThreadItem.php:278 ../../include/conversation.php:708
msgid "Message signature incorrect"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:269
+#: ../../Zotlabs/Lib/ThreadItem.php:286
msgid "Add Tag"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:273 ../../include/conversation.php:891
+#: ../../Zotlabs/Lib/ThreadItem.php:290 ../../include/conversation.php:891
msgid "Conversation Tools"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:289 ../../include/taxonomy.php:575
+#: ../../Zotlabs/Lib/ThreadItem.php:306 ../../include/taxonomy.php:575
msgid "like"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:290 ../../include/taxonomy.php:576
+#: ../../Zotlabs/Lib/ThreadItem.php:307 ../../include/taxonomy.php:576
msgid "dislike"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:294
+#: ../../Zotlabs/Lib/ThreadItem.php:317
msgid "Share This"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:294
+#: ../../Zotlabs/Lib/ThreadItem.php:317
msgid "share"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:303
+#: ../../Zotlabs/Lib/ThreadItem.php:327
msgid "Delivery Report"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:321
+#: ../../Zotlabs/Lib/ThreadItem.php:347
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-#: ../../Zotlabs/Lib/ThreadItem.php:355 ../../Zotlabs/Lib/ThreadItem.php:356
+#: ../../Zotlabs/Lib/ThreadItem.php:381 ../../Zotlabs/Lib/ThreadItem.php:382
#, php-format
msgid "View %s's profile - %s"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:359
+#: ../../Zotlabs/Lib/ThreadItem.php:385
msgid "to"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:360
+#: ../../Zotlabs/Lib/ThreadItem.php:386
msgid "via"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:361
+#: ../../Zotlabs/Lib/ThreadItem.php:387
msgid "Wall-to-Wall"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:362
+#: ../../Zotlabs/Lib/ThreadItem.php:388
msgid "via Wall-To-Wall:"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:375 ../../include/conversation.php:766
+#: ../../Zotlabs/Lib/ThreadItem.php:402 ../../include/conversation.php:766
#, php-format
msgid "from %s"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:378 ../../include/conversation.php:769
+#: ../../Zotlabs/Lib/ThreadItem.php:405 ../../include/conversation.php:769
#, php-format
msgid "last edited: %s"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:379 ../../include/conversation.php:770
+#: ../../Zotlabs/Lib/ThreadItem.php:406 ../../include/conversation.php:770
#, php-format
msgid "Expires: %s"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:387
+#: ../../Zotlabs/Lib/ThreadItem.php:414
msgid "Attend"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:388
+#: ../../Zotlabs/Lib/ThreadItem.php:415
msgid "Attendance Options"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:389
+#: ../../Zotlabs/Lib/ThreadItem.php:416
msgid "Vote"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:390
+#: ../../Zotlabs/Lib/ThreadItem.php:417
msgid "Voting Options"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:411
+#: ../../Zotlabs/Lib/ThreadItem.php:439
#: ../../addon/bookmarker/bookmarker.php:38
msgid "Save Bookmarks"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:412
+#: ../../Zotlabs/Lib/ThreadItem.php:440
msgid "Add to Calendar"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:440 ../../include/conversation.php:483
+#: ../../Zotlabs/Lib/ThreadItem.php:468 ../../include/conversation.php:483
msgid "This is an unsaved preview"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:473 ../../include/js_strings.php:7
+#: ../../Zotlabs/Lib/ThreadItem.php:501 ../../include/js_strings.php:7
#, php-format
msgid "%s show all"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:768 ../../addon/hsse/hsse.php:200
-#: ../../include/conversation.php:1403
+#: ../../Zotlabs/Lib/ThreadItem.php:796 ../../addon/hsse/hsse.php:200
+#: ../../include/conversation.php:1406
msgid "Bold"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:769 ../../addon/hsse/hsse.php:201
-#: ../../include/conversation.php:1404
+#: ../../Zotlabs/Lib/ThreadItem.php:797 ../../addon/hsse/hsse.php:201
+#: ../../include/conversation.php:1407
msgid "Italic"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:770 ../../addon/hsse/hsse.php:202
-#: ../../include/conversation.php:1405
+#: ../../Zotlabs/Lib/ThreadItem.php:798 ../../addon/hsse/hsse.php:202
+#: ../../include/conversation.php:1408
msgid "Underline"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:771 ../../addon/hsse/hsse.php:203
-#: ../../include/conversation.php:1406
+#: ../../Zotlabs/Lib/ThreadItem.php:799 ../../addon/hsse/hsse.php:203
+#: ../../include/conversation.php:1409
msgid "Quote"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:772 ../../addon/hsse/hsse.php:204
-#: ../../include/conversation.php:1407
+#: ../../Zotlabs/Lib/ThreadItem.php:800 ../../addon/hsse/hsse.php:204
+#: ../../include/conversation.php:1410
msgid "Code"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:773
+#: ../../Zotlabs/Lib/ThreadItem.php:801
msgid "Image"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:774 ../../addon/hsse/hsse.php:205
-#: ../../include/conversation.php:1408
+#: ../../Zotlabs/Lib/ThreadItem.php:802 ../../addon/hsse/hsse.php:205
+#: ../../include/conversation.php:1411
msgid "Attach/Upload file"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:775
+#: ../../Zotlabs/Lib/ThreadItem.php:803
msgid "Insert Link"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:776
+#: ../../Zotlabs/Lib/ThreadItem.php:804
msgid "Video"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:786
+#: ../../Zotlabs/Lib/ThreadItem.php:814
msgid "Your full name (required)"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:787
+#: ../../Zotlabs/Lib/ThreadItem.php:815
msgid "Your email address (required)"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:788
+#: ../../Zotlabs/Lib/ThreadItem.php:816
msgid "Your website URL (optional)"
msgstr ""
@@ -8952,7 +9034,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2837
+#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2941
msgid "Collection"
msgstr ""
@@ -8964,8 +9046,8 @@ msgstr ""
msgid "Addressbook"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:140 ../../include/nav.php:433
-#: ../../include/nav.php:436
+#: ../../Zotlabs/Storage/Browser.php:140 ../../include/nav.php:463
+#: ../../include/nav.php:466
msgid "Calendar"
msgstr ""
@@ -9099,8 +9181,8 @@ msgid "Select an addressbook to import to"
msgstr ""
#: ../../Zotlabs/Widget/Appcategories.php:43
-#: ../../include/contact_widgets.php:97 ../../include/contact_widgets.php:141
-#: ../../include/contact_widgets.php:186 ../../include/taxonomy.php:409
+#: ../../include/contact_widgets.php:96 ../../include/contact_widgets.php:139
+#: ../../include/contact_widgets.php:184 ../../include/taxonomy.php:409
#: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511
#: ../../include/taxonomy.php:532
msgid "Categories"
@@ -9108,8 +9190,8 @@ msgstr ""
#: ../../Zotlabs/Widget/Appcategories.php:46 ../../Zotlabs/Widget/Filer.php:31
#: ../../widget/Netselect/Netselect.php:26 ../../include/contact_widgets.php:56
-#: ../../include/contact_widgets.php:100 ../../include/contact_widgets.php:144
-#: ../../include/contact_widgets.php:189
+#: ../../include/contact_widgets.php:99 ../../include/contact_widgets.php:142
+#: ../../include/contact_widgets.php:187
msgid "Everything"
msgstr ""
@@ -9312,7 +9394,7 @@ msgstr ""
msgid "Page name"
msgstr ""
-#: ../../Zotlabs/Widget/Affinity.php:45
+#: ../../Zotlabs/Widget/Affinity.php:54
msgid "Refresh"
msgstr ""
@@ -9461,15 +9543,11 @@ msgstr ""
msgid "Channel settings"
msgstr ""
-#: ../../Zotlabs/Widget/Settings_menu.php:47
+#: ../../Zotlabs/Widget/Settings_menu.php:46
msgid "Display settings"
msgstr ""
#: ../../Zotlabs/Widget/Settings_menu.php:53
-msgid "Addon settings"
-msgstr ""
-
-#: ../../Zotlabs/Widget/Settings_menu.php:60
msgid "Manage locations"
msgstr ""
@@ -9612,67 +9690,67 @@ msgstr ""
msgid "Network/Protocol"
msgstr ""
-#: ../../widget/Netselect/Netselect.php:28 ../../include/network.php:1782
+#: ../../widget/Netselect/Netselect.php:28 ../../include/network.php:1724
msgid "Zot"
msgstr ""
-#: ../../widget/Netselect/Netselect.php:31 ../../include/network.php:1780
+#: ../../widget/Netselect/Netselect.php:31 ../../include/network.php:1722
msgid "Diaspora"
msgstr ""
-#: ../../widget/Netselect/Netselect.php:33 ../../include/network.php:1773
-#: ../../include/network.php:1774
+#: ../../widget/Netselect/Netselect.php:33 ../../include/network.php:1715
+#: ../../include/network.php:1716
msgid "Friendica"
msgstr ""
-#: ../../widget/Netselect/Netselect.php:38 ../../include/network.php:1775
+#: ../../widget/Netselect/Netselect.php:38 ../../include/network.php:1717
msgid "OStatus"
msgstr ""
-#: ../../boot.php:1603
+#: ../../boot.php:1608
msgid "Create an account to access services and applications"
msgstr ""
-#: ../../boot.php:1623 ../../include/nav.php:103 ../../include/nav.php:132
+#: ../../boot.php:1628 ../../include/nav.php:103 ../../include/nav.php:132
#: ../../include/nav.php:151
msgid "Logout"
msgstr ""
-#: ../../boot.php:1627
+#: ../../boot.php:1632
msgid "Login/Email"
msgstr ""
-#: ../../boot.php:1628
+#: ../../boot.php:1633
msgid "Password"
msgstr ""
-#: ../../boot.php:1629
+#: ../../boot.php:1634
msgid "Remember me"
msgstr ""
-#: ../../boot.php:1632
+#: ../../boot.php:1637
msgid "Forgot your password?"
msgstr ""
-#: ../../boot.php:2430
+#: ../../boot.php:2433
#, php-format
msgid "[$Projectname] Website SSL error for %s"
msgstr ""
-#: ../../boot.php:2435
+#: ../../boot.php:2438
msgid "Website SSL certificate is not valid. Please correct."
msgstr ""
-#: ../../boot.php:2551
+#: ../../boot.php:2554
#, php-format
msgid "[$Projectname] Cron tasks not running on %s"
msgstr ""
-#: ../../boot.php:2556
+#: ../../boot.php:2559
msgid "Cron/Scheduled tasks not running."
msgstr ""
-#: ../../boot.php:2557 ../../include/datetime.php:238
+#: ../../boot.php:2560 ../../include/datetime.php:238
msgid "never"
msgstr ""
@@ -9804,7 +9882,7 @@ msgstr ""
msgid "Errors encountered deleting database table "
msgstr ""
-#: ../../addon/rendezvous/rendezvous.php:95 ../../addon/twitter/twitter.php:782
+#: ../../addon/rendezvous/rendezvous.php:95 ../../addon/twitter/twitter.php:612
msgid "Submit Settings"
msgstr ""
@@ -9929,15 +10007,23 @@ msgstr ""
msgid "You have no rendezvous. Press the button above to create a rendezvous!"
msgstr ""
-#: ../../addon/skeleton/skeleton.php:59
+#: ../../addon/skeleton/Mod_Skeleton.php:32
+msgid "Skeleton App"
+msgstr ""
+
+#: ../../addon/skeleton/Mod_Skeleton.php:33
+msgid "A skeleton for addons, you can copy/paste"
+msgstr ""
+
+#: ../../addon/skeleton/Mod_Skeleton.php:40
msgid "Some setting"
msgstr ""
-#: ../../addon/skeleton/skeleton.php:61
+#: ../../addon/skeleton/Mod_Skeleton.php:40
msgid "A setting"
msgstr ""
-#: ../../addon/skeleton/skeleton.php:64
+#: ../../addon/skeleton/Mod_Skeleton.php:48
msgid "Skeleton Settings"
msgstr ""
@@ -9948,6 +10034,10 @@ msgid ""
"locations."
msgstr ""
+#: ../../addon/gnusoc/Mod_Gnusoc.php:22
+msgid "GNU-Social Protocol App"
+msgstr ""
+
#: ../../addon/gnusoc/Mod_Gnusoc.php:34
msgid "GNU-Social Protocol"
msgstr ""
@@ -9961,16 +10051,21 @@ msgstr ""
msgid "%1$s is now following %2$s"
msgstr ""
-#: ../../addon/planets/planets.php:121
-msgid "Planets Settings updated."
+#: ../../addon/planets/Mod_Planets.php:20
+#: ../../addon/planets/Mod_Planets.php:23
+msgid "Random Planet App"
msgstr ""
-#: ../../addon/planets/planets.php:149
-msgid "Enable Planets Plugin"
+#: ../../addon/planets/Mod_Planets.php:23
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:26
+#: ../../addon/nsabait/Mod_Nsabait.php:24 ../../addon/hsse/Mod_Hsse.php:26
+#: ../../addon/authchoose/Mod_Authchoose.php:33
+msgid "Installed"
msgstr ""
-#: ../../addon/planets/planets.php:153
-msgid "Planets Settings"
+#: ../../addon/planets/Mod_Planets.php:25
+msgid ""
+"Set a random planet from the Star Wars Empire as your location when posting"
msgstr ""
#: ../../addon/openclipatar/openclipatar.php:50
@@ -10002,7 +10097,7 @@ msgstr ""
msgid "Page to load after image selection."
msgstr ""
-#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1307
+#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1356
#: ../../include/nav.php:111
msgid "Edit Profile"
msgstr ""
@@ -10091,10 +10186,97 @@ msgid ""
"view"
msgstr ""
+#: ../../addon/totp/Settings/Totp.php:90
+msgid ""
+"You haven't set a TOTP secret yet.\n"
+"Please click the button below to generate one and register this site\n"
+"with your preferred authenticator app."
+msgstr ""
+
+#: ../../addon/totp/Settings/Totp.php:93
+msgid "Your TOTP secret is"
+msgstr ""
+
+#: ../../addon/totp/Settings/Totp.php:94
+msgid ""
+"Be sure to save it somewhere in case you lose or replace your mobile "
+"device.\n"
+"Use your mobile device to scan the QR code below to register this site\n"
+"with your preferred authenticator app."
+msgstr ""
+
+#: ../../addon/totp/Settings/Totp.php:99
+msgid "Test"
+msgstr ""
+
+#: ../../addon/totp/Settings/Totp.php:100
+msgid "Generate New Secret"
+msgstr ""
+
+#: ../../addon/totp/Settings/Totp.php:101
+msgid "Go"
+msgstr ""
+
+#: ../../addon/totp/Settings/Totp.php:102
+msgid "Enter your password"
+msgstr ""
+
+#: ../../addon/totp/Settings/Totp.php:103
+msgid "enter TOTP code from your device"
+msgstr ""
+
+#: ../../addon/totp/Settings/Totp.php:104
+msgid "Pass!"
+msgstr ""
+
+#: ../../addon/totp/Settings/Totp.php:105
+msgid "Fail"
+msgstr ""
+
+#: ../../addon/totp/Settings/Totp.php:106
+msgid "Incorrect password, try again."
+msgstr ""
+
+#: ../../addon/totp/Settings/Totp.php:107
+msgid "Record your new TOTP secret and rescan the QR code above."
+msgstr ""
+
+#: ../../addon/totp/Settings/Totp.php:115
+msgid "TOTP Settings"
+msgstr ""
+
+#: ../../addon/totp/Mod_Totp.php:23
+msgid "TOTP Two-Step Verification"
+msgstr ""
+
+#: ../../addon/totp/Mod_Totp.php:24
+msgid "Enter the 2-step verification generated by your authenticator app:"
+msgstr ""
+
+#: ../../addon/totp/Mod_Totp.php:25
+msgid "Success!"
+msgstr ""
+
+#: ../../addon/totp/Mod_Totp.php:26
+msgid "Invalid code, please try again."
+msgstr ""
+
+#: ../../addon/totp/Mod_Totp.php:27
+msgid "Too many invalid codes..."
+msgstr ""
+
+#: ../../addon/totp/Mod_Totp.php:28
+msgid "Verify"
+msgstr ""
+
#: ../../addon/wppost/Mod_Wppost.php:28
msgid "Wordpress Settings saved."
msgstr ""
+#: ../../addon/wppost/Mod_Wppost.php:41
+msgid "Wordpress Post App"
+msgstr ""
+
#: ../../addon/wppost/Mod_Wppost.php:42
msgid "Post to WordPress or anything else which uses the wordpress XMLRPC API"
msgstr ""
@@ -10152,6 +10334,10 @@ msgstr ""
msgid "NSFW Settings saved."
msgstr ""
+#: ../../addon/nsfw/Mod_Nsfw.php:33
+msgid "NSFW App"
+msgstr ""
+
#: ../../addon/nsfw/Mod_Nsfw.php:34
msgid "Collapse content that contains predefined words"
msgstr ""
@@ -10178,56 +10364,80 @@ msgstr ""
msgid "NSFW"
msgstr ""
-#: ../../addon/ijpost/ijpost.php:42
-msgid "Post to Insanejournal"
+#: ../../addon/queueworker/Mod_Queueworker.php:73
+msgid "Max queueworker threads"
msgstr ""
-#: ../../addon/ijpost/ijpost.php:73
-msgid "Enable InsaneJournal Post Plugin"
+#: ../../addon/queueworker/Mod_Queueworker.php:87
+msgid "Assume workers dead after ___ seconds"
msgstr ""
-#: ../../addon/ijpost/ijpost.php:77
+#: ../../addon/queueworker/Mod_Queueworker.php:99
+msgid "Queueworker Settings"
+msgstr ""
+
+#: ../../addon/ijpost/Mod_Ijpost.php:23
+msgid "Insane Journal Crosspost Connector Settings saved."
+msgstr ""
+
+#: ../../addon/ijpost/Mod_Ijpost.php:35
+msgid "Insane Journal Crosspost Connector App"
+msgstr ""
+
+#: ../../addon/ijpost/Mod_Ijpost.php:36
+msgid "Relay public postings to Insane Journal"
+msgstr ""
+
+#: ../../addon/ijpost/Mod_Ijpost.php:53
msgid "InsaneJournal username"
msgstr ""
-#: ../../addon/ijpost/ijpost.php:81
+#: ../../addon/ijpost/Mod_Ijpost.php:57
msgid "InsaneJournal password"
msgstr ""
-#: ../../addon/ijpost/ijpost.php:85
+#: ../../addon/ijpost/Mod_Ijpost.php:61
msgid "Post to InsaneJournal by default"
msgstr ""
-#: ../../addon/ijpost/ijpost.php:89
-msgid "InsaneJournal Post Settings"
+#: ../../addon/ijpost/Mod_Ijpost.php:69
+msgid "Insane Journal Crosspost Connector"
msgstr ""
-#: ../../addon/ijpost/ijpost.php:104
-msgid "Insane Journal Settings saved."
+#: ../../addon/ijpost/ijpost.php:45
+msgid "Post to Insane Journal"
msgstr ""
-#: ../../addon/dwpost/dwpost.php:42
+#: ../../addon/dwpost/dwpost.php:48
msgid "Post to Dreamwidth"
msgstr ""
-#: ../../addon/dwpost/dwpost.php:73
-msgid "Enable Dreamwidth Post Plugin"
+#: ../../addon/dwpost/Mod_Dwpost.php:24
+msgid "Dreamwidth Crosspost Connector Settings saved."
+msgstr ""
+
+#: ../../addon/dwpost/Mod_Dwpost.php:36
+msgid "Dreamwidth Crosspost Connector App"
msgstr ""
-#: ../../addon/dwpost/dwpost.php:77
+#: ../../addon/dwpost/Mod_Dwpost.php:37
+msgid "Relay public postings to Dreamwidth"
+msgstr ""
+
+#: ../../addon/dwpost/Mod_Dwpost.php:52
msgid "Dreamwidth username"
msgstr ""
-#: ../../addon/dwpost/dwpost.php:81
+#: ../../addon/dwpost/Mod_Dwpost.php:56
msgid "Dreamwidth password"
msgstr ""
-#: ../../addon/dwpost/dwpost.php:85
+#: ../../addon/dwpost/Mod_Dwpost.php:60
msgid "Post to Dreamwidth by default"
msgstr ""
-#: ../../addon/dwpost/dwpost.php:89
-msgid "Dreamwidth Post Settings"
+#: ../../addon/dwpost/Mod_Dwpost.php:68
+msgid "Dreamwidth Crosspost Connector"
msgstr ""
#: ../../addon/notifyadmin/notifyadmin.php:34
@@ -10361,64 +10571,72 @@ msgstr ""
msgid "0 or blank to import all available"
msgstr ""
-#: ../../addon/irc/irc.php:45
-msgid "Channels to auto connect"
+#: ../../addon/irc/Mod_Irc.php:23 ../../addon/irc/irc.php:41
+msgid "Popular Channels"
msgstr ""
-#: ../../addon/irc/irc.php:45 ../../addon/irc/irc.php:49
-msgid "Comma separated list"
+#: ../../addon/irc/irc.php:37
+msgid "Channels to auto connect"
msgstr ""
-#: ../../addon/irc/irc.php:49 ../../addon/irc/irc.php:96
-msgid "Popular Channels"
+#: ../../addon/irc/irc.php:37 ../../addon/irc/irc.php:41
+msgid "Comma separated list"
msgstr ""
-#: ../../addon/irc/irc.php:53
+#: ../../addon/irc/irc.php:45
msgid "IRC Settings"
msgstr ""
-#: ../../addon/irc/irc.php:69
+#: ../../addon/irc/irc.php:54
msgid "IRC settings saved."
msgstr ""
-#: ../../addon/irc/irc.php:74
+#: ../../addon/irc/irc.php:58
msgid "IRC Chatroom"
msgstr ""
-#: ../../addon/gallery/gallery.php:28 ../../addon/gallery/Mod_Gallery.php:115
+#: ../../addon/gallery/gallery.php:38 ../../addon/gallery/Mod_Gallery.php:135
msgid "Gallery"
msgstr ""
-#: ../../addon/gallery/gallery.php:31
+#: ../../addon/gallery/gallery.php:41
msgid "Photo Gallery"
msgstr ""
-#: ../../addon/gallery/Mod_Gallery.php:57
+#: ../../addon/gallery/Mod_Gallery.php:58
+msgid "Gallery App"
+msgstr ""
+
+#: ../../addon/gallery/Mod_Gallery.php:59
msgid "A simple gallery for your photo albums"
msgstr ""
-#: ../../addon/ljpost/ljpost.php:42
-msgid "Post to Livejournal"
+#: ../../addon/ljpost/Mod_Ljpost.php:36
+msgid "Livejournal Crosspost Connector App"
msgstr ""
-#: ../../addon/ljpost/ljpost.php:73
-msgid "Enable Livejournal Post Plugin"
+#: ../../addon/ljpost/Mod_Ljpost.php:37
+msgid "Relay public posts to Livejournal"
msgstr ""
-#: ../../addon/ljpost/ljpost.php:77
+#: ../../addon/ljpost/Mod_Ljpost.php:54
msgid "Livejournal username"
msgstr ""
-#: ../../addon/ljpost/ljpost.php:81
+#: ../../addon/ljpost/Mod_Ljpost.php:58
msgid "Livejournal password"
msgstr ""
-#: ../../addon/ljpost/ljpost.php:85
+#: ../../addon/ljpost/Mod_Ljpost.php:62
msgid "Post to Livejournal by default"
msgstr ""
-#: ../../addon/ljpost/ljpost.php:89
-msgid "Livejournal Post Settings"
+#: ../../addon/ljpost/Mod_Ljpost.php:70
+msgid "Livejournal Crosspost Connector"
+msgstr ""
+
+#: ../../addon/ljpost/ljpost.php:45
+msgid "Post to Livejournal"
msgstr ""
#: ../../addon/openid/openid.php:49
@@ -10439,7 +10657,7 @@ msgstr ""
msgid "Last Name"
msgstr ""
-#: ../../addon/openid/MysqlProvider.php:54 ../../addon/redred/redred.php:111
+#: ../../addon/openid/MysqlProvider.php:54 ../../addon/redred/Mod_Redred.php:75
msgid "Nickname"
msgstr ""
@@ -10500,12 +10718,12 @@ msgid "Login failed."
msgstr ""
#: ../../addon/openid/Mod_Id.php:85 ../../include/selectors.php:60
-#: ../../include/selectors.php:77 ../../include/channel.php:1487
+#: ../../include/selectors.php:77 ../../include/channel.php:1536
msgid "Male"
msgstr ""
#: ../../addon/openid/Mod_Id.php:87 ../../include/selectors.php:60
-#: ../../include/selectors.php:77 ../../include/channel.php:1485
+#: ../../include/selectors.php:77 ../../include/channel.php:1534
msgid "Female"
msgstr ""
@@ -10525,6 +10743,10 @@ msgstr ""
msgid "&lt;blush&gt;"
msgstr ""
+#: ../../addon/startpage/Mod_Startpage.php:50
+msgid "Startpage App"
+msgstr ""
+
#: ../../addon/startpage/Mod_Startpage.php:51
msgid "Set a preferred page to load on login from home page"
msgstr ""
@@ -10696,6 +10918,11 @@ msgstr ""
msgid "declared undying love for"
msgstr ""
+#: ../../addon/diaspora/Receiver.php:1495
+#, php-format
+msgid "%1$s dislikes %2$s's %3$s"
+msgstr ""
+
#: ../../addon/diaspora/Mod_Diaspora.php:40
msgid "Diaspora Protocol Settings updated."
msgstr ""
@@ -10707,6 +10934,10 @@ msgid ""
"locations."
msgstr ""
+#: ../../addon/diaspora/Mod_Diaspora.php:55
+msgid "Diaspora Protocol App"
+msgstr ""
+
#: ../../addon/diaspora/Mod_Diaspora.php:74
msgid "Allow any Diaspora member to comment on your public posts"
msgstr ""
@@ -10731,10 +10962,36 @@ msgstr ""
msgid "No username found in import file."
msgstr ""
-#: ../../addon/diaspora/import_diaspora.php:43 ../../include/import.php:72
+#: ../../addon/diaspora/import_diaspora.php:43 ../../include/import.php:73
msgid "Unable to create a unique channel address. Import failed."
msgstr ""
+#: ../../addon/photocache/Mod_Photocache.php:27
+msgid "Photo Cache settings saved."
+msgstr ""
+
+#: ../../addon/photocache/Mod_Photocache.php:36
+msgid ""
+"Photo Cache addon saves a copy of images from external sites locally to "
+"increase your anonymity in the web."
+msgstr ""
+
+#: ../../addon/photocache/Mod_Photocache.php:42
+msgid "Photo Cache App"
+msgstr ""
+
+#: ../../addon/photocache/Mod_Photocache.php:53
+msgid "Minimal photo size for caching"
+msgstr ""
+
+#: ../../addon/photocache/Mod_Photocache.php:55
+msgid "In pixels. From 1 up to 1024, 0 will be replaced with system default."
+msgstr ""
+
+#: ../../addon/photocache/Mod_Photocache.php:64
+msgid "Photo Cache"
+msgstr ""
+
#: ../../addon/testdrive/testdrive.php:104
#, php-format
msgid "Your account on %s will expire in a few days."
@@ -10748,6 +11005,11 @@ msgstr ""
msgid "Add some colour to tag clouds"
msgstr ""
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:21
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:26
+msgid "Rainbow Tag App"
+msgstr ""
+
#: ../../addon/rainbowtag/Mod_Rainbowtag.php:34
msgid "Rainbow Tag"
msgstr ""
@@ -10804,7 +11066,7 @@ msgid ""
msgstr ""
#: ../../addon/gravatar/gravatar.php:150 ../../addon/msgfooter/msgfooter.php:46
-#: ../../addon/xmpp/xmpp.php:91
+#: ../../addon/xmpp/xmpp.php:43
msgid "Save Settings"
msgstr ""
@@ -10848,45 +11110,25 @@ msgstr ""
msgid "Until modified date yyyy-mm-dd"
msgstr ""
-#: ../../addon/visage/visage.php:93
-msgid "Recent Channel/Profile Viewers"
-msgstr ""
-
-#: ../../addon/visage/visage.php:98
-msgid "This plugin/addon has not been configured."
-msgstr ""
-
-#: ../../addon/visage/visage.php:99
-#, php-format
-msgid "Please visit the Visage settings on %s"
+#: ../../addon/visage/Mod_Visage.php:21
+msgid "Who viewed my channel/profile"
msgstr ""
-#: ../../addon/visage/visage.php:99
-msgid "your feature settings page"
+#: ../../addon/visage/Mod_Visage.php:25
+msgid "Recent Channel/Profile Viewers"
msgstr ""
-#: ../../addon/visage/visage.php:112
+#: ../../addon/visage/Mod_Visage.php:36
msgid "No entries."
msgstr ""
-#: ../../addon/visage/visage.php:166
-msgid "Enable Visage Visitor Logging"
-msgstr ""
-
-#: ../../addon/visage/visage.php:170
-msgid "Visage Settings"
-msgstr ""
-
-#: ../../addon/nsabait/nsabait.php:125
-msgid "Nsabait Settings updated."
-msgstr ""
-
-#: ../../addon/nsabait/nsabait.php:157
-msgid "Enable NSAbait Plugin"
+#: ../../addon/nsabait/Mod_Nsabait.php:20
+#: ../../addon/nsabait/Mod_Nsabait.php:24
+msgid "NSA Bait App"
msgstr ""
-#: ../../addon/nsabait/nsabait.php:161
-msgid "NSAbait Settings"
+#: ../../addon/nsabait/Mod_Nsabait.php:26
+msgid "Make yourself a political target"
msgstr ""
#: ../../addon/mailtest/mailtest.php:19
@@ -10962,120 +11204,128 @@ msgstr ""
msgid "text to include in all outgoing posts from this site"
msgstr ""
-#: ../../addon/fuzzloc/fuzzloc.php:148
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:22
msgid "Fuzzloc Settings updated."
msgstr ""
-#: ../../addon/fuzzloc/fuzzloc.php:175
-msgid ""
-"Fuzzloc allows you to blur your precise location if your channel uses "
-"browser location mapping."
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:34
+msgid "Fuzzy Location App"
msgstr ""
-#: ../../addon/fuzzloc/fuzzloc.php:178
-msgid "Enable Fuzzloc Plugin"
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:35
+msgid ""
+"Blur your precise location if your channel uses browser location mapping"
msgstr ""
-#: ../../addon/fuzzloc/fuzzloc.php:182
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:40
msgid "Minimum offset in meters"
msgstr ""
-#: ../../addon/fuzzloc/fuzzloc.php:186
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:44
msgid "Maximum offset in meters"
msgstr ""
-#: ../../addon/fuzzloc/fuzzloc.php:191
-msgid "Fuzzloc Settings"
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:53
+msgid "Fuzzy Location"
msgstr ""
-#: ../../addon/rtof/rtof.php:45
+#: ../../addon/rtof/rtof.php:51
msgid "Post to Friendica"
msgstr ""
-#: ../../addon/rtof/rtof.php:62
-msgid "rtof Settings saved."
+#: ../../addon/rtof/Mod_Rtof.php:24
+msgid "Friendica Crosspost Connector Settings saved."
+msgstr ""
+
+#: ../../addon/rtof/Mod_Rtof.php:36
+msgid "Friendica Crosspost Connector App"
msgstr ""
-#: ../../addon/rtof/rtof.php:81
-msgid "Allow posting to Friendica"
+#: ../../addon/rtof/Mod_Rtof.php:37
+msgid "Relay public postings to a connected Friendica account"
msgstr ""
-#: ../../addon/rtof/rtof.php:85
+#: ../../addon/rtof/Mod_Rtof.php:49
msgid "Send public postings to Friendica by default"
msgstr ""
-#: ../../addon/rtof/rtof.php:89
+#: ../../addon/rtof/Mod_Rtof.php:53
msgid "Friendica API Path"
msgstr ""
-#: ../../addon/rtof/rtof.php:89 ../../addon/redred/redred.php:103
+#: ../../addon/rtof/Mod_Rtof.php:53 ../../addon/redred/Mod_Redred.php:67
msgid "https://{sitename}/api"
msgstr ""
-#: ../../addon/rtof/rtof.php:93
+#: ../../addon/rtof/Mod_Rtof.php:57
msgid "Friendica login name"
msgstr ""
-#: ../../addon/rtof/rtof.php:97
+#: ../../addon/rtof/Mod_Rtof.php:61
msgid "Friendica password"
msgstr ""
-#: ../../addon/rtof/rtof.php:101
-msgid "Hubzilla to Friendica Post Settings"
+#: ../../addon/rtof/Mod_Rtof.php:69
+msgid "Friendica Crosspost Connector"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:305 ../../include/channel.php:1403
-#: ../../include/channel.php:1574
-msgid "Status:"
+#: ../../addon/jappixmini/Mod_Jappixmini.php:96
+msgid "Jappixmini App"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:309
-msgid "Activate addon"
+#: ../../addon/jappixmini/Mod_Jappixmini.php:97
+msgid "Provides a Facebook-like chat using Jappix Mini"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:313
+#: ../../addon/jappixmini/Mod_Jappixmini.php:157 ../../include/channel.php:1452
+#: ../../include/channel.php:1623
+msgid "Status:"
+msgstr ""
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:161
msgid "Hide Jappixmini Chat-Widget from the webinterface"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:318
+#: ../../addon/jappixmini/Mod_Jappixmini.php:166
msgid "Jabber username"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:324
+#: ../../addon/jappixmini/Mod_Jappixmini.php:172
msgid "Jabber server"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:330
+#: ../../addon/jappixmini/Mod_Jappixmini.php:178
msgid "Jabber BOSH host URL"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:337
+#: ../../addon/jappixmini/Mod_Jappixmini.php:185
msgid "Jabber password"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:343
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
msgid "Encrypt Jabber password with Hubzilla password"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:347 ../../addon/redred/redred.php:115
+#: ../../addon/jappixmini/Mod_Jappixmini.php:195
+#: ../../addon/redred/Mod_Redred.php:79
msgid "Hubzilla password"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:351
-#: ../../addon/jappixmini/jappixmini.php:355
+#: ../../addon/jappixmini/Mod_Jappixmini.php:199
+#: ../../addon/jappixmini/Mod_Jappixmini.php:203
msgid "Approve subscription requests from Hubzilla contacts automatically"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:359
+#: ../../addon/jappixmini/Mod_Jappixmini.php:207
msgid "Purge internal list of jabber addresses of contacts"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:364
+#: ../../addon/jappixmini/Mod_Jappixmini.php:212
msgid "Configuration Help"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:371
-msgid "Jappix Mini Settings"
+#: ../../addon/jappixmini/Mod_Jappixmini.php:258
+msgid "Jappixmini Settings"
msgstr ""
#: ../../addon/upgrade_info/upgrade_info.php:43
@@ -11108,74 +11358,74 @@ msgstr ""
msgid "Do not show this again"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:101
-#: ../../addon/channelreputation/channelreputation.php:102
+#: ../../addon/channelreputation/channelreputation.php:98
+#: ../../addon/channelreputation/channelreputation.php:99
#: ../../addon/cart/myshop.php:141 ../../addon/cart/myshop.php:177
#: ../../addon/cart/myshop.php:211 ../../addon/cart/myshop.php:259
#: ../../addon/cart/myshop.php:294 ../../addon/cart/myshop.php:317
msgid "Access Denied"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:109
+#: ../../addon/channelreputation/channelreputation.php:106
msgid "Enable Community Moderation"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:117
+#: ../../addon/channelreputation/channelreputation.php:114
msgid "Reputation automatically given to new members"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:118
+#: ../../addon/channelreputation/channelreputation.php:115
msgid "Reputation will never fall below this value"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:119
+#: ../../addon/channelreputation/channelreputation.php:116
msgid "Minimum reputation before posting is allowed"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:120
+#: ../../addon/channelreputation/channelreputation.php:117
msgid "Minimum reputation before commenting is allowed"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:121
+#: ../../addon/channelreputation/channelreputation.php:118
msgid "Minimum reputation before a member is able to moderate other posts"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:122
+#: ../../addon/channelreputation/channelreputation.php:119
msgid ""
"Max ratio of moderator's reputation that can be added to/deducted from "
"reputation of person being moderated"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:123
+#: ../../addon/channelreputation/channelreputation.php:120
msgid "Reputation \"cost\" to post"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:124
+#: ../../addon/channelreputation/channelreputation.php:121
msgid "Reputation \"cost\" to comment"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:125
+#: ../../addon/channelreputation/channelreputation.php:122
msgid ""
"Reputation automatically recovers at this rate per hour until it reaches "
"minimum_to_post"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:126
+#: ../../addon/channelreputation/channelreputation.php:123
msgid ""
"When minimum_to_moderate > reputation > minimum_to_post reputation recovers "
"at this rate per hour"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:138
+#: ../../addon/channelreputation/channelreputation.php:137
msgid "Community Moderation Settings"
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:359
+#: ../../addon/channelreputation/channelreputation.php:365
msgid "Can moderate reputation on my channel."
msgstr ""
-#: ../../addon/channelreputation/channelreputation.php:542
-#: ../../addon/channelreputation/channelreputation.php:545
+#: ../../addon/channelreputation/channelreputation.php:549
+#: ../../addon/channelreputation/channelreputation.php:552
msgid "Channel Reputation"
msgstr ""
@@ -11183,6 +11433,10 @@ msgstr ""
msgid "Block Completely"
msgstr ""
+#: ../../addon/superblock/Mod_Superblock.php:20
+msgid "Superblock App"
+msgstr ""
+
#: ../../addon/superblock/Mod_Superblock.php:21
msgid "Block channels"
msgstr ""
@@ -11199,60 +11453,71 @@ msgstr ""
msgid "No channels currently blocked"
msgstr ""
-#: ../../addon/nofed/nofed.php:42
-msgid "Federate"
+#: ../../addon/nofed/Mod_Nofed.php:21
+msgid "nofed Settings saved."
msgstr ""
-#: ../../addon/nofed/nofed.php:56
-msgid "nofed Settings saved."
+#: ../../addon/nofed/Mod_Nofed.php:33
+msgid "No Federation App"
msgstr ""
-#: ../../addon/nofed/nofed.php:72
-msgid "Allow Federation Toggle"
+#: ../../addon/nofed/Mod_Nofed.php:34
+msgid ""
+"Prevent posting from being federated to anybody. It will exist only on your "
+"channel page."
msgstr ""
-#: ../../addon/nofed/nofed.php:76
+#: ../../addon/nofed/Mod_Nofed.php:42
msgid "Federate posts by default"
msgstr ""
-#: ../../addon/nofed/nofed.php:80
-msgid "NoFed Settings"
+#: ../../addon/nofed/Mod_Nofed.php:50
+msgid "No Federation"
msgstr ""
-#: ../../addon/redred/redred.php:45
-msgid "Post to Red"
+#: ../../addon/nofed/nofed.php:47
+msgid "Federate"
msgstr ""
-#: ../../addon/redred/redred.php:60
+#: ../../addon/redred/Mod_Redred.php:24
msgid "Channel is required."
msgstr ""
-#: ../../addon/redred/redred.php:76
-msgid "redred Settings saved."
+#: ../../addon/redred/Mod_Redred.php:38
+msgid "Hubzilla Crosspost Connector Settings saved."
+msgstr ""
+
+#: ../../addon/redred/Mod_Redred.php:50
+#: ../../addon/statusnet/Mod_Statusnet.php:146
+msgid "Hubzilla Crosspost Connector App"
msgstr ""
-#: ../../addon/redred/redred.php:95
-msgid "Allow posting to another Hubzilla Channel"
+#: ../../addon/redred/Mod_Redred.php:51
+msgid "Relay public postings to another Hubzilla channel"
msgstr ""
-#: ../../addon/redred/redred.php:99
+#: ../../addon/redred/Mod_Redred.php:63
msgid "Send public postings to Hubzilla channel by default"
msgstr ""
-#: ../../addon/redred/redred.php:103
+#: ../../addon/redred/Mod_Redred.php:67
msgid "Hubzilla API Path"
msgstr ""
-#: ../../addon/redred/redred.php:107
+#: ../../addon/redred/Mod_Redred.php:71
msgid "Hubzilla login name"
msgstr ""
-#: ../../addon/redred/redred.php:111
+#: ../../addon/redred/Mod_Redred.php:75
msgid "Hubzilla channel name"
msgstr ""
-#: ../../addon/redred/redred.php:119
-msgid "Hubzilla Crosspost Settings"
+#: ../../addon/redred/Mod_Redred.php:87
+msgid "Hubzilla Crosspost Connector"
+msgstr ""
+
+#: ../../addon/redred/redred.php:50
+msgid "Post to Hubzilla"
msgstr ""
#: ../../addon/logrot/logrot.php:36
@@ -11295,6 +11560,10 @@ msgstr ""
msgid "WYSIWYG status editor"
msgstr ""
+#: ../../addon/hsse/Mod_Hsse.php:21 ../../addon/hsse/Mod_Hsse.php:26
+msgid "WYSIWYG Status App"
+msgstr ""
+
#: ../../addon/hsse/Mod_Hsse.php:34
msgid "WYSIWYG Status"
msgstr ""
@@ -11331,35 +11600,35 @@ msgstr ""
msgid "Comments disabled"
msgstr ""
-#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1398
+#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1401
msgid "Page link name"
msgstr ""
-#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1401
+#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1404
msgid "Post as"
msgstr ""
-#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1415
+#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1418
msgid "Toggle voting"
msgstr ""
-#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1418
+#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1421
msgid "Disable comments"
msgstr ""
-#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1419
+#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1422
msgid "Toggle comments"
msgstr ""
-#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1427
+#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1430
msgid "Categories (optional, comma-separated list)"
msgstr ""
-#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1450
+#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1453
msgid "Other networks and post services"
msgstr ""
-#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1456
+#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1459
msgid "Set publish date"
msgstr ""
@@ -11374,6 +11643,10 @@ msgid ""
"locations."
msgstr ""
+#: ../../addon/pubcrawl/Mod_Pubcrawl.php:40
+msgid "Activitypub Protocol App"
+msgstr ""
+
#: ../../addon/pubcrawl/Mod_Pubcrawl.php:48
msgid "Deliver to ActivityPub recipients in privacy groups"
msgstr ""
@@ -11515,128 +11788,137 @@ msgstr ""
msgid "Quick Reference"
msgstr ""
-#: ../../addon/libertree/libertree.php:38
+#: ../../addon/libertree/libertree.php:43
msgid "Post to Libertree"
msgstr ""
-#: ../../addon/libertree/libertree.php:69
-msgid "Enable Libertree Post Plugin"
+#: ../../addon/libertree/Mod_Libertree.php:25
+msgid "Libertree Crosspost Connector Settings saved."
msgstr ""
-#: ../../addon/libertree/libertree.php:73
+#: ../../addon/libertree/Mod_Libertree.php:35
+msgid "Libertree Crosspost Connector App"
+msgstr ""
+
+#: ../../addon/libertree/Mod_Libertree.php:36
+msgid "Relay public posts to Libertree"
+msgstr ""
+
+#: ../../addon/libertree/Mod_Libertree.php:51
msgid "Libertree API token"
msgstr ""
-#: ../../addon/libertree/libertree.php:77
+#: ../../addon/libertree/Mod_Libertree.php:55
msgid "Libertree site URL"
msgstr ""
-#: ../../addon/libertree/libertree.php:81
+#: ../../addon/libertree/Mod_Libertree.php:59
msgid "Post to Libertree by default"
msgstr ""
-#: ../../addon/libertree/libertree.php:85
-msgid "Libertree Post Settings"
+#: ../../addon/libertree/Mod_Libertree.php:67
+msgid "Libertree Crosspost Connector"
msgstr ""
-#: ../../addon/libertree/libertree.php:99
-msgid "Libertree Settings saved."
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:41
+msgid "Flattr widget settings updated."
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:45
-msgid "Flattr this!"
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:53
+msgid "Flattr Widget App"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:83
-msgid "Flattr widget settings updated."
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:54
+msgid "Add a Flattr button to your channel page"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:100
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:65
msgid "Flattr user"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:104
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:69
msgid "URL of the Thing to flattr"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:104
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:69
msgid "If empty channel URL is used"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:108
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:73
msgid "Title of the Thing to flattr"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:108
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:73
msgid "If empty \"channel name on The Hubzilla\" will be used"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:112
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77
msgid "Static or dynamic flattr button"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:112
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77
msgid "static"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:112
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77
msgid "dynamic"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:116
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81
msgid "Alignment of the widget"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:116
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81
msgid "left"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:116
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81
msgid "right"
msgstr ""
-#: ../../addon/flattrwidget/flattrwidget.php:120
-msgid "Enable Flattr widget"
-msgstr ""
-
-#: ../../addon/flattrwidget/flattrwidget.php:124
-msgid "Flattr Widget Settings"
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:89
+msgid "Flattr Widget"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:143
-msgid "Post to GNU social"
+#: ../../addon/flattrwidget/flattrwidget.php:50
+msgid "Flattr this!"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:195
+#: ../../addon/statusnet/Mod_Statusnet.php:61
msgid ""
"Please contact your site administrator.<br />The provided API URL is not "
"valid."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:232
+#: ../../addon/statusnet/Mod_Statusnet.php:98
msgid "We could not contact the GNU social API with the Path you entered."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:266
+#: ../../addon/statusnet/Mod_Statusnet.php:130
msgid "GNU social settings updated."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:310
+#: ../../addon/statusnet/Mod_Statusnet.php:147
+msgid ""
+"Relay public postings to a connected GNU social account (formerly StatusNet)"
+msgstr ""
+
+#: ../../addon/statusnet/Mod_Statusnet.php:181
msgid "Globally Available GNU social OAuthKeys"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:312
+#: ../../addon/statusnet/Mod_Statusnet.php:183
msgid ""
"There are preconfigured OAuth key pairs for some GNU social servers "
"available. If you are using one of them, please use these credentials.<br /"
">If not feel free to connect to any other GNU social instance (see below)."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:327
+#: ../../addon/statusnet/Mod_Statusnet.php:198
msgid "Provide your own OAuth Credentials"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:329
+#: ../../addon/statusnet/Mod_Statusnet.php:200
msgid ""
"No consumer key pair for GNU social found. Register your Hubzilla Account as "
"an desktop client on your GNU social account, copy the consumer key pair "
@@ -11645,27 +11927,27 @@ msgid ""
"Hubzilla installation at your favourite GNU social installation."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:333
+#: ../../addon/statusnet/Mod_Statusnet.php:204
msgid "OAuth Consumer Key"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:337
+#: ../../addon/statusnet/Mod_Statusnet.php:208
msgid "OAuth Consumer Secret"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:341
+#: ../../addon/statusnet/Mod_Statusnet.php:212
msgid "Base API Path"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:341
+#: ../../addon/statusnet/Mod_Statusnet.php:212
msgid "Remember the trailing /"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:345
+#: ../../addon/statusnet/Mod_Statusnet.php:216
msgid "GNU social application name"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:368
+#: ../../addon/statusnet/Mod_Statusnet.php:239
msgid ""
"To connect to your GNU social account click the button below to get a "
"security code from GNU social which you have to copy into the input box "
@@ -11673,31 +11955,32 @@ msgid ""
"posted to GNU social."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:370
+#: ../../addon/statusnet/Mod_Statusnet.php:241
msgid "Log in with GNU social"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:373
+#: ../../addon/statusnet/Mod_Statusnet.php:244
msgid "Copy the security code from GNU social here"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:383
+#: ../../addon/statusnet/Mod_Statusnet.php:254
msgid "Cancel Connection Process"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:385
+#: ../../addon/statusnet/Mod_Statusnet.php:256
msgid "Current GNU social API is"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:389
+#: ../../addon/statusnet/Mod_Statusnet.php:260
msgid "Cancel GNU social Connection"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:401 ../../addon/twitter/twitter.php:236
+#: ../../addon/statusnet/Mod_Statusnet.php:272
+#: ../../addon/twitter/Mod_Twitter.php:147
msgid "Currently connected to: "
msgstr ""
-#: ../../addon/statusnet/statusnet.php:406
+#: ../../addon/statusnet/Mod_Statusnet.php:277
msgid ""
"<strong>Note</strong>: Due your privacy settings (<em>Hide your profile "
"details from unknown viewers?</em>) the link potentially included in public "
@@ -11705,39 +11988,34 @@ msgid ""
"informing the visitor that the access to your profile has been restricted."
msgstr ""
-#: ../../addon/statusnet/statusnet.php:411
-msgid "Allow posting to GNU social"
-msgstr ""
-
-#: ../../addon/statusnet/statusnet.php:411
-msgid ""
-"If enabled your public postings can be posted to the associated GNU-social "
-"account"
-msgstr ""
-
-#: ../../addon/statusnet/statusnet.php:415
+#: ../../addon/statusnet/Mod_Statusnet.php:282
msgid "Post to GNU social by default"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:415
+#: ../../addon/statusnet/Mod_Statusnet.php:282
msgid ""
"If enabled your public postings will be posted to the associated GNU-social "
"account by default"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:424 ../../addon/twitter/twitter.php:264
+#: ../../addon/statusnet/Mod_Statusnet.php:291
+#: ../../addon/twitter/Mod_Twitter.php:171
msgid "Clear OAuth configuration"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:432
-msgid "GNU social Post Settings"
+#: ../../addon/statusnet/Mod_Statusnet.php:303
+msgid "GNU-Social Crosspost Connector"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:892
+#: ../../addon/statusnet/statusnet.php:145
+msgid "Post to GNU social"
+msgstr ""
+
+#: ../../addon/statusnet/statusnet.php:594
msgid "API URL"
msgstr ""
-#: ../../addon/statusnet/statusnet.php:895
+#: ../../addon/statusnet/statusnet.php:597
msgid "Application name"
msgstr ""
@@ -11753,57 +12031,65 @@ msgstr ""
msgid "Enter some text"
msgstr ""
-#: ../../addon/chess/chess.php:353 ../../addon/chess/chess.php:542
+#: ../../addon/chess/Mod_Chess.php:180 ../../addon/chess/Mod_Chess.php:377
msgid "Invalid game."
msgstr ""
-#: ../../addon/chess/chess.php:359 ../../addon/chess/chess.php:582
+#: ../../addon/chess/Mod_Chess.php:186 ../../addon/chess/Mod_Chess.php:417
msgid "You are not a player in this game."
msgstr ""
-#: ../../addon/chess/chess.php:415
+#: ../../addon/chess/Mod_Chess.php:242
msgid "You must be a local channel to create a game."
msgstr ""
-#: ../../addon/chess/chess.php:433
+#: ../../addon/chess/Mod_Chess.php:260
msgid "You must select one opponent that is not yourself."
msgstr ""
-#: ../../addon/chess/chess.php:444
+#: ../../addon/chess/Mod_Chess.php:271
msgid "Random color chosen."
msgstr ""
-#: ../../addon/chess/chess.php:452
+#: ../../addon/chess/Mod_Chess.php:279
msgid "Error creating new game."
msgstr ""
-#: ../../addon/chess/chess.php:486 ../../include/channel.php:1158
+#: ../../addon/chess/Mod_Chess.php:306 ../../include/channel.php:1207
msgid "Requested channel is not available."
msgstr ""
-#: ../../addon/chess/chess.php:500
+#: ../../addon/chess/Mod_Chess.php:311 ../../addon/chess/Mod_Chess.php:333
+msgid "Chess not installed."
+msgstr ""
+
+#: ../../addon/chess/Mod_Chess.php:326
msgid "You must select a local channel /chess/channelname"
msgstr ""
-#: ../../addon/chess/chess.php:1066
+#: ../../addon/chess/chess.php:642
msgid "Enable notifications"
msgstr ""
-#: ../../addon/twitter/twitter.php:102
-msgid "Post to Twitter"
+#: ../../addon/twitter/Mod_Twitter.php:65
+msgid "Twitter settings updated."
msgstr ""
-#: ../../addon/twitter/twitter.php:158
-msgid "Twitter settings updated."
+#: ../../addon/twitter/Mod_Twitter.php:78
+msgid "Twitter Crosspost Connector App"
+msgstr ""
+
+#: ../../addon/twitter/Mod_Twitter.php:79
+msgid "Relay public posts to Twitter"
msgstr ""
-#: ../../addon/twitter/twitter.php:187
+#: ../../addon/twitter/Mod_Twitter.php:103
msgid ""
"No consumer key pair for Twitter found. Please contact your site "
"administrator."
msgstr ""
-#: ../../addon/twitter/twitter.php:209
+#: ../../addon/twitter/Mod_Twitter.php:125
msgid ""
"At this Hubzilla instance the Twitter plugin was enabled but you have not "
"yet connected your account to your Twitter account. To do so click the "
@@ -11812,15 +12098,15 @@ msgid ""
"be posted to Twitter."
msgstr ""
-#: ../../addon/twitter/twitter.php:211
+#: ../../addon/twitter/Mod_Twitter.php:127
msgid "Log in with Twitter"
msgstr ""
-#: ../../addon/twitter/twitter.php:214
+#: ../../addon/twitter/Mod_Twitter.php:130
msgid "Copy the PIN from Twitter here"
msgstr ""
-#: ../../addon/twitter/twitter.php:241
+#: ../../addon/twitter/Mod_Twitter.php:152
msgid ""
"<strong>Note:</strong> Due your privacy settings (<em>Hide your profile "
"details from unknown viewers?</em>) the link potentially included in public "
@@ -11828,47 +12114,45 @@ msgid ""
"the visitor that the access to your profile has been restricted."
msgstr ""
-#: ../../addon/twitter/twitter.php:246
-msgid "Allow posting to Twitter"
-msgstr ""
-
-#: ../../addon/twitter/twitter.php:246
-msgid ""
-"If enabled your public postings can be posted to the associated Twitter "
-"account"
-msgstr ""
-
-#: ../../addon/twitter/twitter.php:250
+#: ../../addon/twitter/Mod_Twitter.php:157
msgid "Twitter post length"
msgstr ""
-#: ../../addon/twitter/twitter.php:250
+#: ../../addon/twitter/Mod_Twitter.php:157
msgid "Maximum tweet length"
msgstr ""
-#: ../../addon/twitter/twitter.php:255
+#: ../../addon/twitter/Mod_Twitter.php:162
msgid "Send public postings to Twitter by default"
msgstr ""
-#: ../../addon/twitter/twitter.php:255
+#: ../../addon/twitter/Mod_Twitter.php:162
msgid ""
"If enabled your public postings will be posted to the associated Twitter "
"account by default"
msgstr ""
-#: ../../addon/twitter/twitter.php:273
-msgid "Twitter Post Settings"
+#: ../../addon/twitter/Mod_Twitter.php:181
+msgid "Twitter Crosspost Connector"
msgstr ""
-#: ../../addon/smileybutton/smileybutton.php:211
-msgid "Deactivate the feature"
+#: ../../addon/twitter/twitter.php:107
+msgid "Post to Twitter"
msgstr ""
-#: ../../addon/smileybutton/smileybutton.php:215
+#: ../../addon/smileybutton/Mod_Smileybutton.php:35
+msgid "Smileybutton App"
+msgstr ""
+
+#: ../../addon/smileybutton/Mod_Smileybutton.php:36
+msgid "Adds a smileybutton to the jot editor"
+msgstr ""
+
+#: ../../addon/smileybutton/Mod_Smileybutton.php:44
msgid "Hide the button and show the smilies directly."
msgstr ""
-#: ../../addon/smileybutton/smileybutton.php:219
+#: ../../addon/smileybutton/Mod_Smileybutton.php:52
msgid "Smileybutton Settings"
msgstr ""
@@ -11884,7 +12168,7 @@ msgstr ""
msgid "Base Merchant Currency"
msgstr ""
-#: ../../addon/cart/Settings/Cart.php:111 ../../addon/cart/cart.php:1262
+#: ../../addon/cart/Settings/Cart.php:111 ../../addon/cart/cart.php:1263
msgid "Cart Settings"
msgstr ""
@@ -11892,7 +12176,7 @@ msgstr ""
msgid "Access Denied."
msgstr ""
-#: ../../addon/cart/myshop.php:111 ../../addon/cart/cart.php:1333
+#: ../../addon/cart/myshop.php:111 ../../addon/cart/cart.php:1334
msgid "Order Not Found"
msgstr ""
@@ -11905,53 +12189,53 @@ msgstr ""
msgid "DB Cleanup Failure"
msgstr ""
-#: ../../addon/cart/cart.php:564
+#: ../../addon/cart/cart.php:565
msgid "[cart] Item Added"
msgstr ""
-#: ../../addon/cart/cart.php:952
+#: ../../addon/cart/cart.php:953
msgid "Order already checked out."
msgstr ""
-#: ../../addon/cart/cart.php:1255
+#: ../../addon/cart/cart.php:1256
msgid "Drop database tables when uninstalling."
msgstr ""
-#: ../../addon/cart/cart.php:1274 ../../addon/cart/cart.php:1277
+#: ../../addon/cart/cart.php:1275 ../../addon/cart/cart.php:1278
msgid "Shop"
msgstr ""
-#: ../../addon/cart/cart.php:1394
+#: ../../addon/cart/cart.php:1395
msgid "Cart utilities for orders and payments"
msgstr ""
-#: ../../addon/cart/cart.php:1432
+#: ../../addon/cart/cart.php:1433
msgid "You must be logged into the Grid to shop."
msgstr ""
-#: ../../addon/cart/cart.php:1465
+#: ../../addon/cart/cart.php:1466
#: ../../addon/cart/submodules/paypalbutton.php:392
#: ../../addon/cart/manual_payments.php:68
msgid "Order not found."
msgstr ""
-#: ../../addon/cart/cart.php:1473
+#: ../../addon/cart/cart.php:1474
msgid "Access denied."
msgstr ""
-#: ../../addon/cart/cart.php:1525 ../../addon/cart/cart.php:1668
+#: ../../addon/cart/cart.php:1526 ../../addon/cart/cart.php:1669
msgid "No Order Found"
msgstr ""
-#: ../../addon/cart/cart.php:1534
+#: ../../addon/cart/cart.php:1535
msgid "An unknown error has occurred Please start again."
msgstr ""
-#: ../../addon/cart/cart.php:1701
+#: ../../addon/cart/cart.php:1702
msgid "Invalid Payment Type. Please start again."
msgstr ""
-#: ../../addon/cart/cart.php:1708
+#: ../../addon/cart/cart.php:1709
msgid "Order not found"
msgstr ""
@@ -12325,6 +12609,10 @@ msgstr ""
msgid "Send your identity to all websites"
msgstr ""
+#: ../../addon/sendzid/Mod_Sendzid.php:20
+msgid "Sendzid App"
+msgstr ""
+
#: ../../addon/sendzid/Mod_Sendzid.php:32
msgid "Send ZID"
msgstr ""
@@ -12383,16 +12671,24 @@ msgstr ""
msgid "I won!"
msgstr ""
-#: ../../addon/pageheader/pageheader.php:43
-msgid "Message to display on every page on this server"
+#: ../../addon/pageheader/Mod_Pageheader.php:22
+msgid "pageheader Settings saved."
msgstr ""
-#: ../../addon/pageheader/pageheader.php:48
-msgid "Pageheader Settings"
+#: ../../addon/pageheader/Mod_Pageheader.php:34
+msgid "Page Header App"
msgstr ""
-#: ../../addon/pageheader/pageheader.php:64
-msgid "pageheader Settings saved."
+#: ../../addon/pageheader/Mod_Pageheader.php:35
+msgid "Inserts a page header"
+msgstr ""
+
+#: ../../addon/pageheader/Mod_Pageheader.php:43
+msgid "Message to display on every page on this server"
+msgstr ""
+
+#: ../../addon/pageheader/Mod_Pageheader.php:51
+msgid "Page Header"
msgstr ""
#: ../../addon/authchoose/Mod_Authchoose.php:22
@@ -12400,6 +12696,11 @@ msgid ""
"Allow magic authentication only to websites of your immediate connections"
msgstr ""
+#: ../../addon/authchoose/Mod_Authchoose.php:28
+#: ../../addon/authchoose/Mod_Authchoose.php:33
+msgid "Authchoose App"
+msgstr ""
+
#: ../../addon/authchoose/Mod_Authchoose.php:39
msgid "Authchoose"
msgstr ""
@@ -12492,35 +12793,39 @@ msgstr ""
msgid "jealous"
msgstr ""
-#: ../../addon/xmpp/xmpp.php:31
+#: ../../addon/xmpp/Mod_Xmpp.php:23
msgid "XMPP settings updated."
msgstr ""
-#: ../../addon/xmpp/xmpp.php:53
-msgid "Enable Chat"
+#: ../../addon/xmpp/Mod_Xmpp.php:35
+msgid "XMPP App"
+msgstr ""
+
+#: ../../addon/xmpp/Mod_Xmpp.php:36
+msgid "Embedded XMPP (Jabber) client"
msgstr ""
-#: ../../addon/xmpp/xmpp.php:58
+#: ../../addon/xmpp/Mod_Xmpp.php:52
msgid "Individual credentials"
msgstr ""
-#: ../../addon/xmpp/xmpp.php:64
+#: ../../addon/xmpp/Mod_Xmpp.php:58
msgid "Jabber BOSH server"
msgstr ""
-#: ../../addon/xmpp/xmpp.php:69
+#: ../../addon/xmpp/Mod_Xmpp.php:67
msgid "XMPP Settings"
msgstr ""
-#: ../../addon/xmpp/xmpp.php:92
+#: ../../addon/xmpp/xmpp.php:44
msgid "Jabber BOSH host"
msgstr ""
-#: ../../addon/xmpp/xmpp.php:93
+#: ../../addon/xmpp/xmpp.php:45
msgid "Use central userbase"
msgstr ""
-#: ../../addon/xmpp/xmpp.php:93
+#: ../../addon/xmpp/xmpp.php:45
msgid ""
"If enabled, members will automatically login to an ejabberd server that has "
"to be installed on this machine with synchronized credentials via the "
@@ -12531,64 +12836,68 @@ msgstr ""
msgid "Who likes me?"
msgstr ""
-#: ../../addon/pumpio/pumpio.php:148
-msgid "You are now authenticated to pumpio."
+#: ../../addon/pumpio/Mod_Pumpio.php:40
+msgid "Pump.io Settings saved."
msgstr ""
-#: ../../addon/pumpio/pumpio.php:149
-msgid "return to the featured settings page"
+#: ../../addon/pumpio/Mod_Pumpio.php:53
+msgid "Pump.io Crosspost Connector App"
msgstr ""
-#: ../../addon/pumpio/pumpio.php:163
-msgid "Post to Pump.io"
+#: ../../addon/pumpio/Mod_Pumpio.php:54
+msgid "Relay public posts to pump.io"
msgstr ""
-#: ../../addon/pumpio/pumpio.php:198
+#: ../../addon/pumpio/Mod_Pumpio.php:73
msgid "Pump.io servername"
msgstr ""
-#: ../../addon/pumpio/pumpio.php:198
+#: ../../addon/pumpio/Mod_Pumpio.php:73
msgid "Without \"http://\" or \"https://\""
msgstr ""
-#: ../../addon/pumpio/pumpio.php:202
+#: ../../addon/pumpio/Mod_Pumpio.php:77
msgid "Pump.io username"
msgstr ""
-#: ../../addon/pumpio/pumpio.php:202
+#: ../../addon/pumpio/Mod_Pumpio.php:77
msgid "Without the servername"
msgstr ""
-#: ../../addon/pumpio/pumpio.php:213
+#: ../../addon/pumpio/Mod_Pumpio.php:88
msgid "You are not authenticated to pumpio"
msgstr ""
-#: ../../addon/pumpio/pumpio.php:215
+#: ../../addon/pumpio/Mod_Pumpio.php:90
msgid "(Re-)Authenticate your pump.io connection"
msgstr ""
-#: ../../addon/pumpio/pumpio.php:219
-msgid "Enable pump.io Post Plugin"
-msgstr ""
-
-#: ../../addon/pumpio/pumpio.php:223
+#: ../../addon/pumpio/Mod_Pumpio.php:94
msgid "Post to pump.io by default"
msgstr ""
-#: ../../addon/pumpio/pumpio.php:227
+#: ../../addon/pumpio/Mod_Pumpio.php:98
msgid "Should posts be public"
msgstr ""
-#: ../../addon/pumpio/pumpio.php:231
+#: ../../addon/pumpio/Mod_Pumpio.php:102
msgid "Mirror all public posts"
msgstr ""
-#: ../../addon/pumpio/pumpio.php:237
-msgid "Pump.io Post Settings"
+#: ../../addon/pumpio/Mod_Pumpio.php:112
+msgid "Pump.io Crosspost Connector"
msgstr ""
-#: ../../addon/pumpio/pumpio.php:266
-msgid "PumpIO Settings saved."
+#: ../../addon/pumpio/pumpio.php:152
+msgid "You are now authenticated to pumpio."
+msgstr ""
+
+#: ../../addon/pumpio/pumpio.php:153
+msgid "return to the featured settings page"
+msgstr ""
+
+#: ../../addon/pumpio/pumpio.php:168
+msgid "Post to Pump.io"
msgstr ""
#: ../../addon/ldapauth/ldapauth.php:70
@@ -12707,11 +13016,11 @@ msgstr ""
msgid "Hermaphrodite"
msgstr ""
-#: ../../include/selectors.php:60 ../../include/channel.php:1491
+#: ../../include/selectors.php:60 ../../include/channel.php:1540
msgid "Neuter"
msgstr ""
-#: ../../include/selectors.php:60 ../../include/channel.php:1493
+#: ../../include/selectors.php:60 ../../include/channel.php:1542
msgid "Non-specific"
msgstr ""
@@ -12911,8 +13220,8 @@ msgstr ""
msgid "%1$s poked %2$s"
msgstr ""
-#: ../../include/conversation.php:251 ../../include/text.php:1159
-#: ../../include/text.php:1163
+#: ../../include/conversation.php:251 ../../include/text.php:1176
+#: ../../include/text.php:1180
msgid "poked"
msgstr ""
@@ -13010,42 +13319,42 @@ msgstr ""
msgid "%s don't like this."
msgstr ""
-#: ../../include/conversation.php:1699
+#: ../../include/conversation.php:1708
msgctxt "noun"
msgid "Attending"
msgid_plural "Attending"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1702
+#: ../../include/conversation.php:1711
msgctxt "noun"
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1705
+#: ../../include/conversation.php:1714
msgctxt "noun"
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1708
+#: ../../include/conversation.php:1717
msgctxt "noun"
msgid "Agree"
msgid_plural "Agrees"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1711
+#: ../../include/conversation.php:1720
msgctxt "noun"
msgid "Disagree"
msgid_plural "Disagrees"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1714
+#: ../../include/conversation.php:1723
msgctxt "noun"
msgid "Abstain"
msgid_plural "Abstains"
@@ -13057,11 +13366,11 @@ msgstr[1] ""
msgid "%1$s's bookmarks"
msgstr ""
-#: ../../include/import.php:25
+#: ../../include/import.php:26
msgid "Unable to import a removed channel."
msgstr ""
-#: ../../include/import.php:51
+#: ../../include/import.php:52
msgid ""
"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr ""
@@ -13070,369 +13379,369 @@ msgstr ""
msgid "Cloned channel not found. Import failed."
msgstr ""
-#: ../../include/text.php:498
+#: ../../include/text.php:501
msgid "prev"
msgstr ""
-#: ../../include/text.php:500
+#: ../../include/text.php:503
msgid "first"
msgstr ""
-#: ../../include/text.php:529
+#: ../../include/text.php:532
msgid "last"
msgstr ""
-#: ../../include/text.php:532
+#: ../../include/text.php:535
msgid "next"
msgstr ""
-#: ../../include/text.php:543
+#: ../../include/text.php:553
msgid "older"
msgstr ""
-#: ../../include/text.php:545
+#: ../../include/text.php:555
msgid "newer"
msgstr ""
-#: ../../include/text.php:982
+#: ../../include/text.php:979
msgid "No connections"
msgstr ""
-#: ../../include/text.php:1014
+#: ../../include/text.php:1011
#, php-format
msgid "View all %s connections"
msgstr ""
-#: ../../include/text.php:1070
+#: ../../include/text.php:1073
#, php-format
msgid "Network: %s"
msgstr ""
-#: ../../include/text.php:1159 ../../include/text.php:1163
+#: ../../include/text.php:1176 ../../include/text.php:1180
msgid "poke"
msgstr ""
-#: ../../include/text.php:1164
+#: ../../include/text.php:1181
msgid "ping"
msgstr ""
-#: ../../include/text.php:1164
+#: ../../include/text.php:1181
msgid "pinged"
msgstr ""
-#: ../../include/text.php:1165
+#: ../../include/text.php:1182
msgid "prod"
msgstr ""
-#: ../../include/text.php:1165
+#: ../../include/text.php:1182
msgid "prodded"
msgstr ""
-#: ../../include/text.php:1166
+#: ../../include/text.php:1183
msgid "slap"
msgstr ""
-#: ../../include/text.php:1166
+#: ../../include/text.php:1183
msgid "slapped"
msgstr ""
-#: ../../include/text.php:1167
+#: ../../include/text.php:1184
msgid "finger"
msgstr ""
-#: ../../include/text.php:1167
+#: ../../include/text.php:1184
msgid "fingered"
msgstr ""
-#: ../../include/text.php:1168
+#: ../../include/text.php:1185
msgid "rebuff"
msgstr ""
-#: ../../include/text.php:1168
+#: ../../include/text.php:1185
msgid "rebuffed"
msgstr ""
-#: ../../include/text.php:1191
+#: ../../include/text.php:1208
msgid "happy"
msgstr ""
-#: ../../include/text.php:1192
+#: ../../include/text.php:1209
msgid "sad"
msgstr ""
-#: ../../include/text.php:1193
+#: ../../include/text.php:1210
msgid "mellow"
msgstr ""
-#: ../../include/text.php:1194
+#: ../../include/text.php:1211
msgid "tired"
msgstr ""
-#: ../../include/text.php:1195
+#: ../../include/text.php:1212
msgid "perky"
msgstr ""
-#: ../../include/text.php:1196
+#: ../../include/text.php:1213
msgid "angry"
msgstr ""
-#: ../../include/text.php:1197
+#: ../../include/text.php:1214
msgid "stupefied"
msgstr ""
-#: ../../include/text.php:1198
+#: ../../include/text.php:1215
msgid "puzzled"
msgstr ""
-#: ../../include/text.php:1199
+#: ../../include/text.php:1216
msgid "interested"
msgstr ""
-#: ../../include/text.php:1200
+#: ../../include/text.php:1217
msgid "bitter"
msgstr ""
-#: ../../include/text.php:1201
+#: ../../include/text.php:1218
msgid "cheerful"
msgstr ""
-#: ../../include/text.php:1202
+#: ../../include/text.php:1219
msgid "alive"
msgstr ""
-#: ../../include/text.php:1203
+#: ../../include/text.php:1220
msgid "annoyed"
msgstr ""
-#: ../../include/text.php:1204
+#: ../../include/text.php:1221
msgid "anxious"
msgstr ""
-#: ../../include/text.php:1205
+#: ../../include/text.php:1222
msgid "cranky"
msgstr ""
-#: ../../include/text.php:1206
+#: ../../include/text.php:1223
msgid "disturbed"
msgstr ""
-#: ../../include/text.php:1207
+#: ../../include/text.php:1224
msgid "frustrated"
msgstr ""
-#: ../../include/text.php:1208
+#: ../../include/text.php:1225
msgid "depressed"
msgstr ""
-#: ../../include/text.php:1209
+#: ../../include/text.php:1226
msgid "motivated"
msgstr ""
-#: ../../include/text.php:1210
+#: ../../include/text.php:1227
msgid "relaxed"
msgstr ""
-#: ../../include/text.php:1211
+#: ../../include/text.php:1228
msgid "surprised"
msgstr ""
-#: ../../include/text.php:1390 ../../include/js_strings.php:95
+#: ../../include/text.php:1416 ../../include/js_strings.php:95
msgid "Monday"
msgstr ""
-#: ../../include/text.php:1390 ../../include/js_strings.php:96
+#: ../../include/text.php:1416 ../../include/js_strings.php:96
msgid "Tuesday"
msgstr ""
-#: ../../include/text.php:1390 ../../include/js_strings.php:97
+#: ../../include/text.php:1416 ../../include/js_strings.php:97
msgid "Wednesday"
msgstr ""
-#: ../../include/text.php:1390 ../../include/js_strings.php:98
+#: ../../include/text.php:1416 ../../include/js_strings.php:98
msgid "Thursday"
msgstr ""
-#: ../../include/text.php:1390 ../../include/js_strings.php:99
+#: ../../include/text.php:1416 ../../include/js_strings.php:99
msgid "Friday"
msgstr ""
-#: ../../include/text.php:1390 ../../include/js_strings.php:100
+#: ../../include/text.php:1416 ../../include/js_strings.php:100
msgid "Saturday"
msgstr ""
-#: ../../include/text.php:1390 ../../include/js_strings.php:94
+#: ../../include/text.php:1416 ../../include/js_strings.php:94
msgid "Sunday"
msgstr ""
-#: ../../include/text.php:1394 ../../include/js_strings.php:70
+#: ../../include/text.php:1420 ../../include/js_strings.php:70
msgid "January"
msgstr ""
-#: ../../include/text.php:1394 ../../include/js_strings.php:71
+#: ../../include/text.php:1420 ../../include/js_strings.php:71
msgid "February"
msgstr ""
-#: ../../include/text.php:1394 ../../include/js_strings.php:72
+#: ../../include/text.php:1420 ../../include/js_strings.php:72
msgid "March"
msgstr ""
-#: ../../include/text.php:1394 ../../include/js_strings.php:73
+#: ../../include/text.php:1420 ../../include/js_strings.php:73
msgid "April"
msgstr ""
-#: ../../include/text.php:1394
+#: ../../include/text.php:1420
msgid "May"
msgstr ""
-#: ../../include/text.php:1394 ../../include/js_strings.php:75
+#: ../../include/text.php:1420 ../../include/js_strings.php:75
msgid "June"
msgstr ""
-#: ../../include/text.php:1394 ../../include/js_strings.php:76
+#: ../../include/text.php:1420 ../../include/js_strings.php:76
msgid "July"
msgstr ""
-#: ../../include/text.php:1394 ../../include/js_strings.php:77
+#: ../../include/text.php:1420 ../../include/js_strings.php:77
msgid "August"
msgstr ""
-#: ../../include/text.php:1394 ../../include/js_strings.php:78
+#: ../../include/text.php:1420 ../../include/js_strings.php:78
msgid "September"
msgstr ""
-#: ../../include/text.php:1394 ../../include/js_strings.php:79
+#: ../../include/text.php:1420 ../../include/js_strings.php:79
msgid "October"
msgstr ""
-#: ../../include/text.php:1394 ../../include/js_strings.php:80
+#: ../../include/text.php:1420 ../../include/js_strings.php:80
msgid "November"
msgstr ""
-#: ../../include/text.php:1394 ../../include/js_strings.php:81
+#: ../../include/text.php:1420 ../../include/js_strings.php:81
msgid "December"
msgstr ""
-#: ../../include/text.php:1468
+#: ../../include/text.php:1494
msgid "Unknown Attachment"
msgstr ""
-#: ../../include/text.php:1470 ../../include/feedutils.php:860
+#: ../../include/text.php:1496 ../../include/feedutils.php:858
msgid "unknown"
msgstr ""
-#: ../../include/text.php:1506
+#: ../../include/text.php:1532
msgid "remove category"
msgstr ""
-#: ../../include/text.php:1580
+#: ../../include/text.php:1606
msgid "remove from file"
msgstr ""
-#: ../../include/text.php:1722 ../../include/message.php:13
+#: ../../include/text.php:1765 ../../include/message.php:13
msgid "Download binary/encrypted content"
msgstr ""
-#: ../../include/text.php:1885 ../../include/language.php:423
+#: ../../include/text.php:1935 ../../include/language.php:423
msgid "default"
msgstr ""
-#: ../../include/text.php:1893
+#: ../../include/text.php:1943
msgid "Page layout"
msgstr ""
-#: ../../include/text.php:1893
+#: ../../include/text.php:1943
msgid "You can create your own with the layouts tool"
msgstr ""
-#: ../../include/text.php:1904
+#: ../../include/text.php:1954
msgid "HTML"
msgstr ""
-#: ../../include/text.php:1907
+#: ../../include/text.php:1957
msgid "Comanche Layout"
msgstr ""
-#: ../../include/text.php:1912
+#: ../../include/text.php:1962
msgid "PHP"
msgstr ""
-#: ../../include/text.php:1921
+#: ../../include/text.php:1971
msgid "Page content type"
msgstr ""
-#: ../../include/text.php:2054
+#: ../../include/text.php:2104
msgid "activity"
msgstr ""
-#: ../../include/text.php:2155
+#: ../../include/text.php:2205
msgid "a-z, 0-9, -, and _ only"
msgstr ""
-#: ../../include/text.php:2475
+#: ../../include/text.php:2531
msgid "Design Tools"
msgstr ""
-#: ../../include/text.php:2481
+#: ../../include/text.php:2537
msgid "Pages"
msgstr ""
-#: ../../include/text.php:2503
+#: ../../include/text.php:2559
msgid "Import website..."
msgstr ""
-#: ../../include/text.php:2504
+#: ../../include/text.php:2560
msgid "Select folder to import"
msgstr ""
-#: ../../include/text.php:2505
+#: ../../include/text.php:2561
msgid "Import from a zipped folder:"
msgstr ""
-#: ../../include/text.php:2506
+#: ../../include/text.php:2562
msgid "Import from cloud files:"
msgstr ""
-#: ../../include/text.php:2507
+#: ../../include/text.php:2563
msgid "/cloud/channel/path/to/folder"
msgstr ""
-#: ../../include/text.php:2508
+#: ../../include/text.php:2564
msgid "Enter path to website files"
msgstr ""
-#: ../../include/text.php:2509
+#: ../../include/text.php:2565
msgid "Select folder"
msgstr ""
-#: ../../include/text.php:2510
+#: ../../include/text.php:2566
msgid "Export website..."
msgstr ""
-#: ../../include/text.php:2511
+#: ../../include/text.php:2567
msgid "Export to a zip file"
msgstr ""
-#: ../../include/text.php:2512
+#: ../../include/text.php:2568
msgid "website.zip"
msgstr ""
-#: ../../include/text.php:2513
+#: ../../include/text.php:2569
msgid "Enter a name for the zip file."
msgstr ""
-#: ../../include/text.php:2514
+#: ../../include/text.php:2570
msgid "Export to cloud files"
msgstr ""
-#: ../../include/text.php:2515
+#: ../../include/text.php:2571
msgid "/path/to/export/folder"
msgstr ""
-#: ../../include/text.php:2516
+#: ../../include/text.php:2572
msgid "Enter a path to a cloud files destination."
msgstr ""
-#: ../../include/text.php:2517
+#: ../../include/text.php:2573
msgid "Specify folder"
msgstr ""
@@ -13471,16 +13780,16 @@ msgstr ""
msgid "Advanced example: name=fred and country=iceland"
msgstr ""
-#: ../../include/contact_widgets.php:223
+#: ../../include/contact_widgets.php:218
msgid "Common Connections"
msgstr ""
-#: ../../include/contact_widgets.php:228
+#: ../../include/contact_widgets.php:222
#, php-format
msgid "View all %d common connections"
msgstr ""
-#: ../../include/markdown.php:200 ../../include/bbcode.php:358
+#: ../../include/markdown.php:198 ../../include/bbcode.php:347
#, php-format
msgid "%1$s wrote the following %2$s %3$s"
msgstr ""
@@ -13836,92 +14145,92 @@ msgstr ""
msgid "Stored post could not be verified."
msgstr ""
-#: ../../include/activities.php:41
+#: ../../include/activities.php:42
msgid " and "
msgstr ""
-#: ../../include/activities.php:49
+#: ../../include/activities.php:50
msgid "public profile"
msgstr ""
-#: ../../include/activities.php:58
+#: ../../include/activities.php:59
#, php-format
msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
msgstr ""
-#: ../../include/activities.php:59
+#: ../../include/activities.php:60
#, php-format
msgid "Visit %1$s's %2$s"
msgstr ""
-#: ../../include/activities.php:62
+#: ../../include/activities.php:63
#, php-format
msgid "%1$s has an updated %2$s, changing %3$s."
msgstr ""
-#: ../../include/attach.php:265 ../../include/attach.php:374
+#: ../../include/attach.php:267 ../../include/attach.php:376
msgid "Item was not found."
msgstr ""
-#: ../../include/attach.php:282
+#: ../../include/attach.php:284
msgid "Unknown error."
msgstr ""
-#: ../../include/attach.php:567
+#: ../../include/attach.php:569
msgid "No source file."
msgstr ""
-#: ../../include/attach.php:589
+#: ../../include/attach.php:591
msgid "Cannot locate file to replace"
msgstr ""
-#: ../../include/attach.php:608
+#: ../../include/attach.php:610
msgid "Cannot locate file to revise/update"
msgstr ""
-#: ../../include/attach.php:750
+#: ../../include/attach.php:752
#, php-format
msgid "File exceeds size limit of %d"
msgstr ""
-#: ../../include/attach.php:771
+#: ../../include/attach.php:773
#, php-format
msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr ""
-#: ../../include/attach.php:953
+#: ../../include/attach.php:955
msgid "File upload failed. Possible system limit or action terminated."
msgstr ""
-#: ../../include/attach.php:982
+#: ../../include/attach.php:984
msgid "Stored file could not be verified. Upload failed."
msgstr ""
-#: ../../include/attach.php:1056 ../../include/attach.php:1072
+#: ../../include/attach.php:1058 ../../include/attach.php:1074
msgid "Path not available."
msgstr ""
-#: ../../include/attach.php:1121 ../../include/attach.php:1286
+#: ../../include/attach.php:1123 ../../include/attach.php:1288
msgid "Empty pathname"
msgstr ""
-#: ../../include/attach.php:1147
+#: ../../include/attach.php:1149
msgid "duplicate filename or path"
msgstr ""
-#: ../../include/attach.php:1172
+#: ../../include/attach.php:1174
msgid "Path not found."
msgstr ""
-#: ../../include/attach.php:1240
+#: ../../include/attach.php:1242
msgid "mkdir failed."
msgstr ""
-#: ../../include/attach.php:1244
+#: ../../include/attach.php:1246
msgid "database storage failed."
msgstr ""
-#: ../../include/attach.php:1292
+#: ../../include/attach.php:1294
msgid "Empty path"
msgstr ""
@@ -13931,301 +14240,297 @@ msgid ""
"form has been opened for too long (>3 hours) before submitting it."
msgstr ""
-#: ../../include/items.php:909 ../../include/items.php:969
+#: ../../include/items.php:955 ../../include/items.php:1015
msgid "(Unknown)"
msgstr ""
-#: ../../include/items.php:1155
+#: ../../include/items.php:1203
msgid "Visible to anybody on the internet."
msgstr ""
-#: ../../include/items.php:1157
+#: ../../include/items.php:1205
msgid "Visible to you only."
msgstr ""
-#: ../../include/items.php:1159
+#: ../../include/items.php:1207
msgid "Visible to anybody in this network."
msgstr ""
-#: ../../include/items.php:1161
+#: ../../include/items.php:1209
msgid "Visible to anybody authenticated."
msgstr ""
-#: ../../include/items.php:1163
+#: ../../include/items.php:1211
#, php-format
msgid "Visible to anybody on %s."
msgstr ""
-#: ../../include/items.php:1165
+#: ../../include/items.php:1213
msgid "Visible to all connections."
msgstr ""
-#: ../../include/items.php:1167
+#: ../../include/items.php:1215
msgid "Visible to approved connections."
msgstr ""
-#: ../../include/items.php:1169
+#: ../../include/items.php:1217
msgid "Visible to specific connections."
msgstr ""
-#: ../../include/items.php:4192
+#: ../../include/items.php:4291
msgid "Privacy group is empty."
msgstr ""
-#: ../../include/items.php:4199
+#: ../../include/items.php:4298
#, php-format
msgid "Privacy group: %s"
msgstr ""
-#: ../../include/items.php:4211
+#: ../../include/items.php:4310
msgid "Connection not found."
msgstr ""
-#: ../../include/items.php:4560
+#: ../../include/items.php:4659
msgid "profile photo"
msgstr ""
-#: ../../include/items.php:4751
+#: ../../include/items.php:4851
#, php-format
msgid "[Edited %s]"
msgstr ""
-#: ../../include/items.php:4751
+#: ../../include/items.php:4851
msgctxt "edit_activity"
msgid "Post"
msgstr ""
-#: ../../include/items.php:4751
+#: ../../include/items.php:4851
msgctxt "edit_activity"
msgid "Comment"
msgstr ""
-#: ../../include/channel.php:42
+#: ../../include/channel.php:43
msgid "Unable to obtain identity information from database"
msgstr ""
-#: ../../include/channel.php:75
+#: ../../include/channel.php:76
msgid "Empty name"
msgstr ""
-#: ../../include/channel.php:78
+#: ../../include/channel.php:79
msgid "Name too long"
msgstr ""
-#: ../../include/channel.php:195
+#: ../../include/channel.php:196
msgid "No account identifier"
msgstr ""
-#: ../../include/channel.php:207
+#: ../../include/channel.php:208
msgid "Nickname is required."
msgstr ""
-#: ../../include/channel.php:284
+#: ../../include/channel.php:287
msgid "Unable to retrieve created identity"
msgstr ""
-#: ../../include/channel.php:380
+#: ../../include/channel.php:429
msgid "Default Profile"
msgstr ""
-#: ../../include/channel.php:539 ../../include/channel.php:628
+#: ../../include/channel.php:588 ../../include/channel.php:677
msgid "Unable to retrieve modified identity"
msgstr ""
-#: ../../include/channel.php:1304
+#: ../../include/channel.php:1353
msgid "Create New Profile"
msgstr ""
-#: ../../include/channel.php:1325
+#: ../../include/channel.php:1374
msgid "Visible to everybody"
msgstr ""
-#: ../../include/channel.php:1402 ../../include/channel.php:1530
+#: ../../include/channel.php:1451 ../../include/channel.php:1579
msgid "Gender:"
msgstr ""
-#: ../../include/channel.php:1404 ../../include/channel.php:1598
+#: ../../include/channel.php:1453 ../../include/channel.php:1647
msgid "Homepage:"
msgstr ""
-#: ../../include/channel.php:1405
+#: ../../include/channel.php:1454
msgid "Online Now"
msgstr ""
-#: ../../include/channel.php:1458
+#: ../../include/channel.php:1507
msgid "Change your profile photo"
msgstr ""
-#: ../../include/channel.php:1489
+#: ../../include/channel.php:1538
msgid "Trans"
msgstr ""
-#: ../../include/channel.php:1535
+#: ../../include/channel.php:1584
msgid "Like this channel"
msgstr ""
-#: ../../include/channel.php:1559
+#: ../../include/channel.php:1608
msgid "j F, Y"
msgstr ""
-#: ../../include/channel.php:1560
+#: ../../include/channel.php:1609
msgid "j F"
msgstr ""
-#: ../../include/channel.php:1567
+#: ../../include/channel.php:1616
msgid "Birthday:"
msgstr ""
-#: ../../include/channel.php:1580
+#: ../../include/channel.php:1629
#, php-format
msgid "for %1$d %2$s"
msgstr ""
-#: ../../include/channel.php:1592
+#: ../../include/channel.php:1641
msgid "Tags:"
msgstr ""
-#: ../../include/channel.php:1596
+#: ../../include/channel.php:1645
msgid "Sexual Preference:"
msgstr ""
-#: ../../include/channel.php:1602
+#: ../../include/channel.php:1651
msgid "Political Views:"
msgstr ""
-#: ../../include/channel.php:1604
+#: ../../include/channel.php:1653
msgid "Religion:"
msgstr ""
-#: ../../include/channel.php:1608
+#: ../../include/channel.php:1657
msgid "Hobbies/Interests:"
msgstr ""
-#: ../../include/channel.php:1610
+#: ../../include/channel.php:1659
msgid "Likes:"
msgstr ""
-#: ../../include/channel.php:1612
+#: ../../include/channel.php:1661
msgid "Dislikes:"
msgstr ""
-#: ../../include/channel.php:1614
+#: ../../include/channel.php:1663
msgid "Contact information and Social Networks:"
msgstr ""
-#: ../../include/channel.php:1616
+#: ../../include/channel.php:1665
msgid "My other channels:"
msgstr ""
-#: ../../include/channel.php:1618
+#: ../../include/channel.php:1667
msgid "Musical interests:"
msgstr ""
-#: ../../include/channel.php:1620
+#: ../../include/channel.php:1669
msgid "Books, literature:"
msgstr ""
-#: ../../include/channel.php:1622
+#: ../../include/channel.php:1671
msgid "Television:"
msgstr ""
-#: ../../include/channel.php:1624
+#: ../../include/channel.php:1673
msgid "Film/dance/culture/entertainment:"
msgstr ""
-#: ../../include/channel.php:1626
+#: ../../include/channel.php:1675
msgid "Love/Romance:"
msgstr ""
-#: ../../include/channel.php:1628
+#: ../../include/channel.php:1677
msgid "Work/employment:"
msgstr ""
-#: ../../include/channel.php:1630
+#: ../../include/channel.php:1679
msgid "School/education:"
msgstr ""
-#: ../../include/channel.php:1653
+#: ../../include/channel.php:1702
msgid "Like this thing"
msgstr ""
-#: ../../include/event.php:24 ../../include/event.php:71
+#: ../../include/event.php:28 ../../include/event.php:75
msgid "l F d, Y \\@ g:i A"
msgstr ""
-#: ../../include/event.php:32 ../../include/event.php:75
+#: ../../include/event.php:36 ../../include/event.php:79
msgid "Starts:"
msgstr ""
-#: ../../include/event.php:42 ../../include/event.php:79
+#: ../../include/event.php:46 ../../include/event.php:83
msgid "Finishes:"
msgstr ""
-#: ../../include/event.php:1011
+#: ../../include/event.php:1020
msgid "This event has been added to your calendar."
msgstr ""
-#: ../../include/event.php:1227
+#: ../../include/event.php:1239
msgid "Not specified"
msgstr ""
-#: ../../include/event.php:1228
+#: ../../include/event.php:1240
msgid "Needs Action"
msgstr ""
-#: ../../include/event.php:1229
+#: ../../include/event.php:1241
msgid "Completed"
msgstr ""
-#: ../../include/event.php:1230
+#: ../../include/event.php:1242
msgid "In Process"
msgstr ""
-#: ../../include/event.php:1231
+#: ../../include/event.php:1243
msgid "Cancelled"
msgstr ""
-#: ../../include/event.php:1310 ../../include/connections.php:698
+#: ../../include/event.php:1322 ../../include/connections.php:698
msgid "Home, Voice"
msgstr ""
-#: ../../include/event.php:1311 ../../include/connections.php:699
+#: ../../include/event.php:1323 ../../include/connections.php:699
msgid "Home, Fax"
msgstr ""
-#: ../../include/event.php:1313 ../../include/connections.php:701
+#: ../../include/event.php:1325 ../../include/connections.php:701
msgid "Work, Voice"
msgstr ""
-#: ../../include/event.php:1314 ../../include/connections.php:702
+#: ../../include/event.php:1326 ../../include/connections.php:702
msgid "Work, Fax"
msgstr ""
-#: ../../include/network.php:770
-msgid "view full size"
-msgstr ""
-
-#: ../../include/network.php:1776
+#: ../../include/network.php:1718
msgid "GNU-Social"
msgstr ""
-#: ../../include/network.php:1777
+#: ../../include/network.php:1719
msgid "RSS/Atom"
msgstr ""
-#: ../../include/network.php:1781
+#: ../../include/network.php:1723
msgid "Facebook"
msgstr ""
-#: ../../include/network.php:1783
+#: ../../include/network.php:1725
msgid "LinkedIn"
msgstr ""
-#: ../../include/network.php:1784
+#: ../../include/network.php:1726
msgid "XMPP/IM"
msgstr ""
-#: ../../include/network.php:1785
+#: ../../include/network.php:1727
msgid "MySpace"
msgstr ""
@@ -14262,17 +14567,17 @@ msgid ""
"permissions set who is allowed to view the post."
msgstr ""
-#: ../../include/bbcode.php:200 ../../include/bbcode.php:1201
-#: ../../include/bbcode.php:1204 ../../include/bbcode.php:1209
-#: ../../include/bbcode.php:1212 ../../include/bbcode.php:1215
-#: ../../include/bbcode.php:1218 ../../include/bbcode.php:1223
-#: ../../include/bbcode.php:1226 ../../include/bbcode.php:1231
-#: ../../include/bbcode.php:1234 ../../include/bbcode.php:1237
-#: ../../include/bbcode.php:1240
+#: ../../include/bbcode.php:200 ../../include/bbcode.php:1190
+#: ../../include/bbcode.php:1193 ../../include/bbcode.php:1198
+#: ../../include/bbcode.php:1201 ../../include/bbcode.php:1204
+#: ../../include/bbcode.php:1207 ../../include/bbcode.php:1212
+#: ../../include/bbcode.php:1215 ../../include/bbcode.php:1220
+#: ../../include/bbcode.php:1223 ../../include/bbcode.php:1226
+#: ../../include/bbcode.php:1229
msgid "Image/photo"
msgstr ""
-#: ../../include/bbcode.php:239 ../../include/bbcode.php:1251
+#: ../../include/bbcode.php:239 ../../include/bbcode.php:1240
msgid "Encrypted content"
msgstr ""
@@ -14288,31 +14593,31 @@ msgid ""
"to install it on this site."
msgstr ""
-#: ../../include/bbcode.php:350
+#: ../../include/bbcode.php:339
msgid "card"
msgstr ""
-#: ../../include/bbcode.php:352
+#: ../../include/bbcode.php:341
msgid "article"
msgstr ""
-#: ../../include/bbcode.php:435 ../../include/bbcode.php:443
+#: ../../include/bbcode.php:424 ../../include/bbcode.php:432
msgid "Click to open/close"
msgstr ""
-#: ../../include/bbcode.php:443
+#: ../../include/bbcode.php:432
msgid "spoiler"
msgstr ""
-#: ../../include/bbcode.php:456
+#: ../../include/bbcode.php:445
msgid "View article"
msgstr ""
-#: ../../include/bbcode.php:456
+#: ../../include/bbcode.php:445
msgid "View summary"
msgstr ""
-#: ../../include/bbcode.php:1189
+#: ../../include/bbcode.php:1178
msgid "$1 wrote:"
msgstr ""
@@ -14365,11 +14670,11 @@ msgstr ""
msgid "Provide a personal tag cloud on your channel page"
msgstr ""
-#: ../../include/features.php:116 ../../include/features.php:381
+#: ../../include/features.php:116 ../../include/features.php:373
msgid "Use blog/list mode"
msgstr ""
-#: ../../include/features.php:117 ../../include/features.php:382
+#: ../../include/features.php:117 ../../include/features.php:374
msgid "Comments will be displayed separately"
msgstr ""
@@ -14580,47 +14885,39 @@ msgstr ""
msgid "Ability to display only posts that you've interacted on"
msgstr ""
-#: ../../include/features.php:365
-msgid "Affinity Tool"
-msgstr ""
-
#: ../../include/features.php:366
-msgid "Filter stream activity by depth of relationships"
-msgstr ""
-
-#: ../../include/features.php:374
msgid "Show friend and connection suggestions"
msgstr ""
-#: ../../include/features.php:395
+#: ../../include/features.php:387
msgid "Photo Location"
msgstr ""
-#: ../../include/features.php:396
+#: ../../include/features.php:388
msgid "If location data is available on uploaded photos, link this to a map."
msgstr ""
-#: ../../include/features.php:409
+#: ../../include/features.php:401
msgid "Advanced Profiles"
msgstr ""
-#: ../../include/features.php:410
+#: ../../include/features.php:402
msgid "Additional profile sections and selections"
msgstr ""
-#: ../../include/features.php:417
+#: ../../include/features.php:409
msgid "Profile Import/Export"
msgstr ""
-#: ../../include/features.php:418
+#: ../../include/features.php:410
msgid "Save and load profile details across sites/channels"
msgstr ""
-#: ../../include/features.php:425
+#: ../../include/features.php:417
msgid "Multiple Profiles"
msgstr ""
-#: ../../include/features.php:426
+#: ../../include/features.php:418
msgid "Ability to create multiple profiles"
msgstr ""
@@ -14865,55 +15162,55 @@ msgstr ""
msgid "Site Setup and Configuration"
msgstr ""
-#: ../../include/nav.php:299
+#: ../../include/nav.php:329
msgid "@name, !forum, #tag, ?doc, content"
msgstr ""
-#: ../../include/nav.php:300
+#: ../../include/nav.php:330
msgid "Please wait..."
msgstr ""
-#: ../../include/nav.php:306
+#: ../../include/nav.php:336
msgid "Add Apps"
msgstr ""
-#: ../../include/nav.php:307
+#: ../../include/nav.php:337
msgid "Arrange Apps"
msgstr ""
-#: ../../include/nav.php:308
+#: ../../include/nav.php:338
msgid "Toggle System Apps"
msgstr ""
-#: ../../include/nav.php:394
+#: ../../include/nav.php:424
msgid "Status Messages and Posts"
msgstr ""
-#: ../../include/nav.php:407
+#: ../../include/nav.php:437
msgid "Profile Details"
msgstr ""
-#: ../../include/nav.php:417 ../../include/photos.php:667
+#: ../../include/nav.php:447 ../../include/photos.php:669
msgid "Photo Albums"
msgstr ""
-#: ../../include/nav.php:425
+#: ../../include/nav.php:455
msgid "Files and Storage"
msgstr ""
-#: ../../include/nav.php:463
+#: ../../include/nav.php:493
msgid "Saved Bookmarks"
msgstr ""
-#: ../../include/nav.php:474
+#: ../../include/nav.php:504
msgid "View Cards"
msgstr ""
-#: ../../include/nav.php:485
+#: ../../include/nav.php:515
msgid "View Articles"
msgstr ""
-#: ../../include/nav.php:497
+#: ../../include/nav.php:527
msgid "View Webpages"
msgstr ""
@@ -14940,15 +15237,15 @@ msgctxt "photo_upload"
msgid "%1$s posted %2$s to %3$s"
msgstr ""
-#: ../../include/photos.php:672
+#: ../../include/photos.php:674
msgid "Upload New Photos"
msgstr ""
-#: ../../include/zot.php:773
+#: ../../include/zot.php:775
msgid "Invalid data packet"
msgstr ""
-#: ../../include/zot.php:4268
+#: ../../include/zot.php:4288
msgid "invalid target signature"
msgstr ""
diff --git a/util/udall b/util/udall
index f1d52a1d1..44f37e86e 100755
--- a/util/udall
+++ b/util/udall
@@ -7,7 +7,7 @@ git pull
if [ -d extend ] ; then
for a in theme addon widget ; do
- if [ -d $a ]; then
+ if [ -d extend/$a ]; then
for b in `ls extend/$a` ; do
echo Updating $b
'util/update_'$a'_repo' $b
diff --git a/vendor/bshaffer/oauth2-server-php/CHANGELOG.md b/vendor/bshaffer/oauth2-server-php/CHANGELOG.md
index 7671b2396..1b87f3da3 100644
--- a/vendor/bshaffer/oauth2-server-php/CHANGELOG.md
+++ b/vendor/bshaffer/oauth2-server-php/CHANGELOG.md
@@ -8,7 +8,7 @@ To see the files changed for a given bug, go to https://github.com/bshaffer/oaut
To get the diff between two versions, go to https://github.com/bshaffer/oauth2-server-php/compare/v1.0...v1.1
To get the diff for a specific change, go to https://github.com/bshaffer/oauth2-server-php/commit/XXX where XXX is the change hash
-* 1.10.0 (2017-12-14)
+* 1.10.0 (2017-11-15)
PR: https://github.com/bshaffer/oauth2-server-php/pull/889
@@ -26,7 +26,7 @@ To get the diff for a specific change, go to https://github.com/bshaffer/oauth2-
* #794 - [docs] Fix typo in composer.json
* #885 - [testing] Use PHPUnit\Framework\TestCase instead of PHPUnit_Framework_TestCase
-* 1.9.0 (2016-01-06)
+* 1.9.0 (2017-01-06)
PR: https://github.com/bshaffer/oauth2-server-php/pull/788
diff --git a/vendor/bshaffer/oauth2-server-php/README.md b/vendor/bshaffer/oauth2-server-php/README.md
index f1788e9ce..117743d4f 100644
--- a/vendor/bshaffer/oauth2-server-php/README.md
+++ b/vendor/bshaffer/oauth2-server-php/README.md
@@ -1,7 +1,7 @@
oauth2-server-php
=================
-[![Build Status](https://travis-ci.org/bshaffer/oauth2-server-php.svg?branch=develop)](https://travis-ci.org/bshaffer/oauth2-server-php)
+[![Build Status](https://travis-ci.org/bshaffer/oauth2-server-php.svg?branch=master)](https://travis-ci.org/bshaffer/oauth2-server-php)
[![Total Downloads](https://poser.pugx.org/bshaffer/oauth2-server-php/downloads.png)](https://packagist.org/packages/bshaffer/oauth2-server-php)
diff --git a/vendor/bshaffer/oauth2-server-php/src/OAuth2/Request.php b/vendor/bshaffer/oauth2-server-php/src/OAuth2/Request.php
index c96cb972f..f547bf6e8 100644
--- a/vendor/bshaffer/oauth2-server-php/src/OAuth2/Request.php
+++ b/vendor/bshaffer/oauth2-server-php/src/OAuth2/Request.php
@@ -64,7 +64,12 @@ class Request implements RequestInterface
$this->files = $files;
$this->server = $server;
$this->content = $content;
- $this->headers = is_null($headers) ? $this->getHeadersFromServer($this->server) : $headers;
+
+ if ($headers === null) {
+ $headers = array();
+ }
+
+ $this->headers = $headers + $this->getHeadersFromServer($this->server);
}
/**
diff --git a/vendor/bshaffer/oauth2-server-php/src/OAuth2/Response.php b/vendor/bshaffer/oauth2-server-php/src/OAuth2/Response.php
index ccd797ae7..88c1ad5f7 100644
--- a/vendor/bshaffer/oauth2-server-php/src/OAuth2/Response.php
+++ b/vendor/bshaffer/oauth2-server-php/src/OAuth2/Response.php
@@ -366,7 +366,7 @@ class Response implements ResponseInterface
if (count($this->parameters) > 0) {
// add parameters to URL redirection
$parts = parse_url($url);
- $sep = isset($parts['query']) && count($parts['query']) > 0 ? '&' : '?';
+ $sep = isset($parts['query']) && !empty($parts['query']) ? '&' : '?';
$url .= $sep . http_build_query($this->parameters);
}
diff --git a/vendor/bshaffer/oauth2-server-php/src/OAuth2/ResponseType/JwtAccessToken.php b/vendor/bshaffer/oauth2-server-php/src/OAuth2/ResponseType/JwtAccessToken.php
index 0af9705ff..0ee3708aa 100644
--- a/vendor/bshaffer/oauth2-server-php/src/OAuth2/ResponseType/JwtAccessToken.php
+++ b/vendor/bshaffer/oauth2-server-php/src/OAuth2/ResponseType/JwtAccessToken.php
@@ -128,7 +128,7 @@ class JwtAccessToken extends AccessToken
$expires = time() + $this->config['access_lifetime'];
$id = $this->generateAccessToken();
- return array(
+ $payload = array(
'id' => $id, // for BC (see #591)
'jti' => $id,
'iss' => $this->config['issuer'],
@@ -139,5 +139,21 @@ class JwtAccessToken extends AccessToken
'token_type' => $this->config['token_type'],
'scope' => $scope
);
+
+ if (isset($this->config['jwt_extra_payload_callable'])) {
+ if (!is_callable($this->config['jwt_extra_payload_callable'])) {
+ throw new \InvalidArgumentException('jwt_extra_payload_callable is not callable');
+ }
+
+ $extra = call_user_func($this->config['jwt_extra_payload_callable'], $client_id, $user_id, $scope);
+
+ if (!is_array($extra)) {
+ throw new \InvalidArgumentException('jwt_extra_payload_callable must return array');
+ }
+
+ $payload = array_merge($extra, $payload);
+ }
+
+ return $payload;
}
}
diff --git a/vendor/bshaffer/oauth2-server-php/src/OAuth2/Server.php b/vendor/bshaffer/oauth2-server-php/src/OAuth2/Server.php
index 62ae8970d..cf040c2bc 100644
--- a/vendor/bshaffer/oauth2-server-php/src/OAuth2/Server.php
+++ b/vendor/bshaffer/oauth2-server-php/src/OAuth2/Server.php
@@ -88,12 +88,12 @@ class Server implements ResourceControllerInterface,
/**
* @var array
*/
- protected $grantTypes = [];
+ protected $grantTypes = array();
/**
* @var array
*/
- protected $responseTypes = [];
+ protected $responseTypes = array();
/**
* @var TokenTypeInterface
@@ -161,6 +161,7 @@ class Server implements ResourceControllerInterface,
// merge all config values. These get passed to our controller objects
$this->config = array_merge(array(
'use_jwt_access_tokens' => false,
+ 'jwt_extra_payload_callable' => null,
'store_encrypted_token_string' => true,
'use_openid_connect' => false,
'id_lifetime' => 3600,
@@ -840,7 +841,7 @@ class Server implements ResourceControllerInterface,
$refreshStorage = $this->storages['refresh_token'];
}
- $config = array_intersect_key($this->config, array_flip(explode(' ', 'store_encrypted_token_string issuer access_lifetime refresh_token_lifetime')));
+ $config = array_intersect_key($this->config, array_flip(explode(' ', 'store_encrypted_token_string issuer access_lifetime refresh_token_lifetime jwt_extra_payload_callable')));
return new JwtAccessToken($this->storages['public_key'], $tokenStorage, $refreshStorage, $config);
}
@@ -1015,4 +1016,4 @@ class Server implements ResourceControllerInterface,
{
return isset($this->config[$name]) ? $this->config[$name] : $default;
}
-} \ No newline at end of file
+}
diff --git a/vendor/bshaffer/oauth2-server-php/test/OAuth2/RequestTest.php b/vendor/bshaffer/oauth2-server-php/test/OAuth2/RequestTest.php
index cbf8f096b..770cd8994 100644
--- a/vendor/bshaffer/oauth2-server-php/test/OAuth2/RequestTest.php
+++ b/vendor/bshaffer/oauth2-server-php/test/OAuth2/RequestTest.php
@@ -86,6 +86,24 @@ class RequestTest extends TestCase
$this->assertEquals('correct', $request->query('client_id', $request->request('client_id')));
}
+ public function testRequestHasHeadersAndServerHeaders()
+ {
+ $request = new Request(
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array('CONTENT_TYPE' => 'text/xml', 'PHP_AUTH_USER' => 'client_id', 'PHP_AUTH_PW' => 'client_pass'),
+ null,
+ array('CONTENT_TYPE' => 'application/json')
+ );
+
+ $this->assertSame('client_id', $request->headers('PHP_AUTH_USER'));
+ $this->assertSame('client_pass', $request->headers('PHP_AUTH_PW'));
+ $this->assertSame('application/json', $request->headers('CONTENT_TYPE'));
+ }
+
private function getTestServer($config = array())
{
$storage = Bootstrap::getInstance()->getMemoryStorage();
diff --git a/vendor/bshaffer/oauth2-server-php/test/OAuth2/ResponseTest.php b/vendor/bshaffer/oauth2-server-php/test/OAuth2/ResponseTest.php
index 2d2c57ee6..172bc88fd 100644
--- a/vendor/bshaffer/oauth2-server-php/test/OAuth2/ResponseTest.php
+++ b/vendor/bshaffer/oauth2-server-php/test/OAuth2/ResponseTest.php
@@ -1,6 +1,8 @@
<?php
-namespace OAuth2;use PHPUnit\Framework\TestCase;
+namespace OAuth2;
+
+use PHPUnit\Framework\TestCase;
class ResponseTest extends TestCase
{
@@ -14,4 +16,23 @@ class ResponseTest extends TestCase
$string = $response->getResponseBody('xml');
$this->assertContains('<response><foo>bar</foo><halland>oates</halland></response>', $string);
}
+
+ public function testSetRedirect()
+ {
+ $response = new Response();
+ $url = 'https://foo/bar';
+ $state = 'stateparam';
+ $response->setRedirect(301, $url, $state);
+ $this->assertEquals(
+ sprintf('%s?state=%s', $url, $state),
+ $response->getHttpHeader('Location')
+ );
+
+ $query = 'query=foo';
+ $response->setRedirect(301, $url . '?' . $query, $state);
+ $this->assertEquals(
+ sprintf('%s?%s&state=%s', $url, $query, $state),
+ $response->getHttpHeader('Location')
+ );
+ }
}
diff --git a/vendor/bshaffer/oauth2-server-php/test/OAuth2/ResponseType/JwtAccessTokenTest.php b/vendor/bshaffer/oauth2-server-php/test/OAuth2/ResponseType/JwtAccessTokenTest.php
index 7e37509ef..6195d557a 100644
--- a/vendor/bshaffer/oauth2-server-php/test/OAuth2/ResponseType/JwtAccessTokenTest.php
+++ b/vendor/bshaffer/oauth2-server-php/test/OAuth2/ResponseType/JwtAccessTokenTest.php
@@ -40,6 +40,23 @@ class JwtAccessTokenTest extends TestCase
$this->assertEquals(3600, $delta);
$this->assertEquals($decodedAccessToken['id'], $decodedAccessToken['jti']);
}
+
+ public function testExtraPayloadCallback()
+ {
+ $jwtconfig = array('jwt_extra_payload_callable' => function() {
+ return array('custom_param' => 'custom_value');
+ });
+
+ $server = $this->getTestServer($jwtconfig);
+ $jwtResponseType = $server->getResponseType('token');
+
+ $accessToken = $jwtResponseType->createAccessToken('Test Client ID', 123, 'test', false);
+ $jwt = new Jwt;
+ $decodedAccessToken = $jwt->decode($accessToken['access_token'], null, false);
+
+ $this->assertArrayHasKey('custom_param', $decodedAccessToken);
+ $this->assertEquals('custom_value', $decodedAccessToken['custom_param']);
+ }
public function testGrantJwtAccessToken()
{
@@ -140,7 +157,7 @@ class JwtAccessTokenTest extends TestCase
$this->assertNotNull($response->getParameter('access_token'));
}
- private function getTestServer()
+ private function getTestServer($jwtconfig = array())
{
$memoryStorage = Bootstrap::getInstance()->getMemoryStorage();
@@ -153,7 +170,7 @@ class JwtAccessTokenTest extends TestCase
$server->addGrantType(new ClientCredentials($memoryStorage));
// make the "token" response type a JwtAccessToken
- $config = array('issuer' => 'https://api.example.com');
+ $config = array_merge(array('issuer' => 'https://api.example.com'), $jwtconfig);
$server->addResponseType(new JwtAccessToken($memoryStorage, $memoryStorage, null, $config));
return $server;
diff --git a/vendor/bshaffer/oauth2-server-php/test/OAuth2/Storage/PdoTest.php b/vendor/bshaffer/oauth2-server-php/test/OAuth2/Storage/PdoTest.php
index 57eb39072..4599f69bf 100644
--- a/vendor/bshaffer/oauth2-server-php/test/OAuth2/Storage/PdoTest.php
+++ b/vendor/bshaffer/oauth2-server-php/test/OAuth2/Storage/PdoTest.php
@@ -6,7 +6,8 @@ class PdoTest extends BaseTest
{
public function testCreatePdoStorageUsingPdoClass()
{
- $pdo = new \PDO(sprintf('sqlite://%s', Bootstrap::getInstance()->getSqliteDir()));
+ $dsn = sprintf('sqlite:%s', Bootstrap::getInstance()->getSqliteDir());
+ $pdo = new \PDO($dsn);
$storage = new Pdo($pdo);
$this->assertNotNull($storage->getClientDetails('oauth_test_client'));
@@ -14,7 +15,7 @@ class PdoTest extends BaseTest
public function testCreatePdoStorageUsingDSN()
{
- $dsn = sprintf('sqlite://%s', Bootstrap::getInstance()->getSqliteDir());
+ $dsn = sprintf('sqlite:%s', Bootstrap::getInstance()->getSqliteDir());
$storage = new Pdo($dsn);
$this->assertNotNull($storage->getClientDetails('oauth_test_client'));
@@ -22,7 +23,8 @@ class PdoTest extends BaseTest
public function testCreatePdoStorageUsingConfig()
{
- $config = array('dsn' => sprintf('sqlite://%s', Bootstrap::getInstance()->getSqliteDir()));
+ $dsn = sprintf('sqlite:%s', Bootstrap::getInstance()->getSqliteDir());
+ $config = array('dsn' => $dsn);
$storage = new Pdo($config);
$this->assertNotNull($storage->getClientDetails('oauth_test_client'));
diff --git a/vendor/bshaffer/oauth2-server-php/test/lib/OAuth2/Storage/Bootstrap.php b/vendor/bshaffer/oauth2-server-php/test/lib/OAuth2/Storage/Bootstrap.php
index 3d7bdd4e9..8e428f9b5 100644
--- a/vendor/bshaffer/oauth2-server-php/test/lib/OAuth2/Storage/Bootstrap.php
+++ b/vendor/bshaffer/oauth2-server-php/test/lib/OAuth2/Storage/Bootstrap.php
@@ -36,7 +36,7 @@ class Bootstrap
{
if (!$this->sqlite) {
$this->removeSqliteDb();
- $pdo = new \PDO(sprintf('sqlite://%s', $this->getSqliteDir()));
+ $pdo = new \PDO(sprintf('sqlite:%s', $this->getSqliteDir()));
$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$this->createSqliteDb($pdo);
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index 8b74725a4..de9c63bdc 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -811,6 +811,7 @@ return array(
'Zotlabs\\Access\\PermissionRoles' => $baseDir . '/Zotlabs/Access/PermissionRoles.php',
'Zotlabs\\Access\\Permissions' => $baseDir . '/Zotlabs/Access/Permissions.php',
'Zotlabs\\Daemon\\Addon' => $baseDir . '/Zotlabs/Daemon/Addon.php',
+ 'Zotlabs\\Daemon\\Cache_embeds' => $baseDir . '/Zotlabs/Daemon/Cache_embeds.php',
'Zotlabs\\Daemon\\Checksites' => $baseDir . '/Zotlabs/Daemon/Checksites.php',
'Zotlabs\\Daemon\\Cli_suggest' => $baseDir . '/Zotlabs/Daemon/Cli_suggest.php',
'Zotlabs\\Daemon\\Cron' => $baseDir . '/Zotlabs/Daemon/Cron.php',
@@ -876,6 +877,7 @@ return array(
'Zotlabs\\Lib\\System' => $baseDir . '/Zotlabs/Lib/System.php',
'Zotlabs\\Lib\\Techlevels' => $baseDir . '/Zotlabs/Lib/Techlevels.php',
'Zotlabs\\Lib\\ThreadItem' => $baseDir . '/Zotlabs/Lib/ThreadItem.php',
+ 'Zotlabs\\Lib\\ThreadListener' => $baseDir . '/Zotlabs/Lib/ThreadListener.php',
'Zotlabs\\Lib\\ThreadStream' => $baseDir . '/Zotlabs/Lib/ThreadStream.php',
'Zotlabs\\Lib\\Verify' => $baseDir . '/Zotlabs/Lib/Verify.php',
'Zotlabs\\Lib\\Webfinger' => $baseDir . '/Zotlabs/Lib/Webfinger.php',
@@ -896,6 +898,7 @@ return array(
'Zotlabs\\Module\\Admin\\Security' => $baseDir . '/Zotlabs/Module/Admin/Security.php',
'Zotlabs\\Module\\Admin\\Site' => $baseDir . '/Zotlabs/Module/Admin/Site.php',
'Zotlabs\\Module\\Admin\\Themes' => $baseDir . '/Zotlabs/Module/Admin/Themes.php',
+ 'Zotlabs\\Module\\Affinity' => $baseDir . '/Zotlabs/Module/Affinity.php',
'Zotlabs\\Module\\Api' => $baseDir . '/Zotlabs/Module/Api.php',
'Zotlabs\\Module\\Appman' => $baseDir . '/Zotlabs/Module/Appman.php',
'Zotlabs\\Module\\Apporder' => $baseDir . '/Zotlabs/Module/Apporder.php',
@@ -938,6 +941,7 @@ return array(
'Zotlabs\\Module\\Editwebpage' => $baseDir . '/Zotlabs/Module/Editwebpage.php',
'Zotlabs\\Module\\Email_resend' => $baseDir . '/Zotlabs/Module/Email_resend.php',
'Zotlabs\\Module\\Email_validation' => $baseDir . '/Zotlabs/Module/Email_validation.php',
+ 'Zotlabs\\Module\\Embed' => $baseDir . '/Zotlabs/Module/Embed.php',
'Zotlabs\\Module\\Embedphotos' => $baseDir . '/Zotlabs/Module/Embedphotos.php',
'Zotlabs\\Module\\Events' => $baseDir . '/Zotlabs/Module/Events.php',
'Zotlabs\\Module\\Fbrowser' => $baseDir . '/Zotlabs/Module/Fbrowser.php',
@@ -981,7 +985,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',
@@ -1093,6 +1096,9 @@ return array(
'Zotlabs\\Module\\Zot_probe' => $baseDir . '/Zotlabs/Module/Zot_probe.php',
'Zotlabs\\Module\\Zotfeed' => $baseDir . '/Zotlabs/Module/Zotfeed.php',
'Zotlabs\\Module\\Zping' => $baseDir . '/Zotlabs/Module/Zping.php',
+ 'Zotlabs\\Photo\\PhotoDriver' => $baseDir . '/Zotlabs/Photo/PhotoDriver.php',
+ 'Zotlabs\\Photo\\PhotoGd' => $baseDir . '/Zotlabs/Photo/PhotoGd.php',
+ 'Zotlabs\\Photo\\PhotoImagick' => $baseDir . '/Zotlabs/Photo/PhotoImagick.php',
'Zotlabs\\Render\\Comanche' => $baseDir . '/Zotlabs/Render/Comanche.php',
'Zotlabs\\Render\\SimpleTemplate' => $baseDir . '/Zotlabs/Render/SimpleTemplate.php',
'Zotlabs\\Render\\SmartyInterface' => $baseDir . '/Zotlabs/Render/SmartyInterface.php',
@@ -1338,7 +1344,11 @@ return array(
'Zotlabs\\Update\\_1223' => $baseDir . '/Zotlabs/Update/_1223.php',
'Zotlabs\\Update\\_1224' => $baseDir . '/Zotlabs/Update/_1224.php',
'Zotlabs\\Update\\_1225' => $baseDir . '/Zotlabs/Update/_1225.php',
- 'Zotlabs\\Web\\CheckJS' => $baseDir . '/Zotlabs/Web/CheckJS.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\\Update\\_1229' => $baseDir . '/Zotlabs/Update/_1229.php',
+ 'Zotlabs\\Update\\_1230' => $baseDir . '/Zotlabs/Update/_1230.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..d4daa13e6 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -979,6 +979,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Access\\PermissionRoles' => __DIR__ . '/../..' . '/Zotlabs/Access/PermissionRoles.php',
'Zotlabs\\Access\\Permissions' => __DIR__ . '/../..' . '/Zotlabs/Access/Permissions.php',
'Zotlabs\\Daemon\\Addon' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Addon.php',
+ 'Zotlabs\\Daemon\\Cache_embeds' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cache_embeds.php',
'Zotlabs\\Daemon\\Checksites' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Checksites.php',
'Zotlabs\\Daemon\\Cli_suggest' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cli_suggest.php',
'Zotlabs\\Daemon\\Cron' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cron.php',
@@ -1044,6 +1045,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Lib\\System' => __DIR__ . '/../..' . '/Zotlabs/Lib/System.php',
'Zotlabs\\Lib\\Techlevels' => __DIR__ . '/../..' . '/Zotlabs/Lib/Techlevels.php',
'Zotlabs\\Lib\\ThreadItem' => __DIR__ . '/../..' . '/Zotlabs/Lib/ThreadItem.php',
+ 'Zotlabs\\Lib\\ThreadListener' => __DIR__ . '/../..' . '/Zotlabs/Lib/ThreadListener.php',
'Zotlabs\\Lib\\ThreadStream' => __DIR__ . '/../..' . '/Zotlabs/Lib/ThreadStream.php',
'Zotlabs\\Lib\\Verify' => __DIR__ . '/../..' . '/Zotlabs/Lib/Verify.php',
'Zotlabs\\Lib\\Webfinger' => __DIR__ . '/../..' . '/Zotlabs/Lib/Webfinger.php',
@@ -1064,6 +1066,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Admin\\Security' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Security.php',
'Zotlabs\\Module\\Admin\\Site' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Site.php',
'Zotlabs\\Module\\Admin\\Themes' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Themes.php',
+ 'Zotlabs\\Module\\Affinity' => __DIR__ . '/../..' . '/Zotlabs/Module/Affinity.php',
'Zotlabs\\Module\\Api' => __DIR__ . '/../..' . '/Zotlabs/Module/Api.php',
'Zotlabs\\Module\\Appman' => __DIR__ . '/../..' . '/Zotlabs/Module/Appman.php',
'Zotlabs\\Module\\Apporder' => __DIR__ . '/../..' . '/Zotlabs/Module/Apporder.php',
@@ -1106,6 +1109,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Editwebpage' => __DIR__ . '/../..' . '/Zotlabs/Module/Editwebpage.php',
'Zotlabs\\Module\\Email_resend' => __DIR__ . '/../..' . '/Zotlabs/Module/Email_resend.php',
'Zotlabs\\Module\\Email_validation' => __DIR__ . '/../..' . '/Zotlabs/Module/Email_validation.php',
+ 'Zotlabs\\Module\\Embed' => __DIR__ . '/../..' . '/Zotlabs/Module/Embed.php',
'Zotlabs\\Module\\Embedphotos' => __DIR__ . '/../..' . '/Zotlabs/Module/Embedphotos.php',
'Zotlabs\\Module\\Events' => __DIR__ . '/../..' . '/Zotlabs/Module/Events.php',
'Zotlabs\\Module\\Fbrowser' => __DIR__ . '/../..' . '/Zotlabs/Module/Fbrowser.php',
@@ -1149,7 +1153,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',
@@ -1261,6 +1264,9 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Zot_probe' => __DIR__ . '/../..' . '/Zotlabs/Module/Zot_probe.php',
'Zotlabs\\Module\\Zotfeed' => __DIR__ . '/../..' . '/Zotlabs/Module/Zotfeed.php',
'Zotlabs\\Module\\Zping' => __DIR__ . '/../..' . '/Zotlabs/Module/Zping.php',
+ 'Zotlabs\\Photo\\PhotoDriver' => __DIR__ . '/../..' . '/Zotlabs/Photo/PhotoDriver.php',
+ 'Zotlabs\\Photo\\PhotoGd' => __DIR__ . '/../..' . '/Zotlabs/Photo/PhotoGd.php',
+ 'Zotlabs\\Photo\\PhotoImagick' => __DIR__ . '/../..' . '/Zotlabs/Photo/PhotoImagick.php',
'Zotlabs\\Render\\Comanche' => __DIR__ . '/../..' . '/Zotlabs/Render/Comanche.php',
'Zotlabs\\Render\\SimpleTemplate' => __DIR__ . '/../..' . '/Zotlabs/Render/SimpleTemplate.php',
'Zotlabs\\Render\\SmartyInterface' => __DIR__ . '/../..' . '/Zotlabs/Render/SmartyInterface.php',
@@ -1506,7 +1512,11 @@ 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\\Update\\_1229' => __DIR__ . '/../..' . '/Zotlabs/Update/_1229.php',
+ 'Zotlabs\\Update\\_1230' => __DIR__ . '/../..' . '/Zotlabs/Update/_1230.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 d2f86ea99..7f829f6a4 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -58,17 +58,17 @@
},
{
"name": "bshaffer/oauth2-server-php",
- "version": "v1.10.0",
- "version_normalized": "1.10.0.0",
+ "version": "v1.11.1",
+ "version_normalized": "1.11.1.0",
"source": {
"type": "git",
"url": "https://github.com/bshaffer/oauth2-server-php.git",
- "reference": "d158878425392fe5a0cc34f15dbaf46315ae0ed9"
+ "reference": "5a0c8000d4763b276919e2106f54eddda6bc50fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bshaffer/oauth2-server-php/zipball/d158878425392fe5a0cc34f15dbaf46315ae0ed9",
- "reference": "d158878425392fe5a0cc34f15dbaf46315ae0ed9",
+ "url": "https://api.github.com/repos/bshaffer/oauth2-server-php/zipball/5a0c8000d4763b276919e2106f54eddda6bc50fa",
+ "reference": "5a0c8000d4763b276919e2106f54eddda6bc50fa",
"shasum": ""
},
"require": {
@@ -89,7 +89,7 @@
"predis/predis": "Required to use Redis storage",
"thobbs/phpcassa": "Required to use Cassandra storage"
},
- "time": "2017-11-15T01:41:02+00:00",
+ "time": "2018-12-04T00:29:32+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -254,17 +254,17 @@
},
{
"name": "league/html-to-markdown",
- "version": "4.8.0",
- "version_normalized": "4.8.0.0",
+ "version": "4.8.1",
+ "version_normalized": "4.8.1.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/html-to-markdown.git",
- "reference": "f9a879a068c68ff47b722de63f58bec79e448f9d"
+ "reference": "250d1bf45f80d15594fb6b316df777d6d4c97ad1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/f9a879a068c68ff47b722de63f58bec79e448f9d",
- "reference": "f9a879a068c68ff47b722de63f58bec79e448f9d",
+ "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/250d1bf45f80d15594fb6b316df777d6d4c97ad1",
+ "reference": "250d1bf45f80d15594fb6b316df777d6d4c97ad1",
"shasum": ""
},
"require": {
@@ -277,7 +277,7 @@
"phpunit/phpunit": "4.*",
"scrutinizer/ocular": "~1.1"
},
- "time": "2018-09-18T12:18:08+00:00",
+ "time": "2018-12-24T17:21:44+00:00",
"bin": [
"bin/html-to-markdown"
],
diff --git a/vendor/league/html-to-markdown/CHANGELOG.md b/vendor/league/html-to-markdown/CHANGELOG.md
index ab07c94f5..e1893be9a 100644
--- a/vendor/league/html-to-markdown/CHANGELOG.md
+++ b/vendor/league/html-to-markdown/CHANGELOG.md
@@ -4,6 +4,14 @@ Updates should follow the [Keep a CHANGELOG](http://keepachangelog.com/) princip
## [Unreleased][unreleased]
+## [4.8.1] - 2018-12-24
+### Added
+ - Added support for PHP 7.3
+
+### Fixed
+ - Fixed paragraphs following tables (#165, #166)
+ - Fixed incorrect list item escaping (#168, #169)
+
## [4.8.0] - 2018-09-18
### Added
- Added support for email auto-linking
@@ -235,7 +243,8 @@ not ideally set, so this releases fixes that. Moving forwards this should reduce
### Added
- Initial release
-[unreleased]: https://github.com/thephpleague/html-to-markdown/compare/4.8.0...master
+[unreleased]: https://github.com/thephpleague/html-to-markdown/compare/4.8.1...master
+[4.8.1]: https://github.com/thephpleague/html-to-markdown/compare/4.8.0...4.8.1
[4.8.0]: https://github.com/thephpleague/html-to-markdown/compare/4.7.0...4.8.0
[4.7.0]: https://github.com/thephpleague/html-to-markdown/compare/4.6.2...4.7.0
[4.6.2]: https://github.com/thephpleague/html-to-markdown/compare/4.6.1...4.6.2
diff --git a/vendor/league/html-to-markdown/src/Converter/DefaultConverter.php b/vendor/league/html-to-markdown/src/Converter/DefaultConverter.php
index 964a71093..8de0af210 100644
--- a/vendor/league/html-to-markdown/src/Converter/DefaultConverter.php
+++ b/vendor/league/html-to-markdown/src/Converter/DefaultConverter.php
@@ -37,7 +37,13 @@ class DefaultConverter implements ConverterInterface, ConfigurationAwareInterfac
return $element->getValue();
}
- return html_entity_decode($element->getChildrenAsString());
+ $markdown = html_entity_decode($element->getChildrenAsString());
+
+ if ($element->getTagName() === 'table') {
+ $markdown .= "\n\n";
+ }
+
+ return $markdown;
}
/**
diff --git a/vendor/league/html-to-markdown/src/Converter/HardBreakConverter.php b/vendor/league/html-to-markdown/src/Converter/HardBreakConverter.php
index d079d9127..1be10bd63 100644
--- a/vendor/league/html-to-markdown/src/Converter/HardBreakConverter.php
+++ b/vendor/league/html-to-markdown/src/Converter/HardBreakConverter.php
@@ -35,7 +35,10 @@ class HardBreakConverter implements ConverterInterface, ConfigurationAwareInterf
$next_value = $next->getValue();
if ($next_value) {
if (in_array(substr($next_value, 0, 2), array('- ', '* ', '+ '))) {
- $return .= '\\';
+ $parent = $element->getParent();
+ if ($parent && $parent->getTagName() == 'li') {
+ $return .= '\\';
+ }
}
}
}
diff --git a/view/es-es/hmessages.po b/view/es-es/hmessages.po
index 67cb21672..b86c3c737 100644
--- a/view/es-es/hmessages.po
+++ b/view/es-es/hmessages.po
@@ -6,7 +6,7 @@
# Alfonso Martínez <alfonsomthd@tutanota.com>, 2015
# inboxwall <axetransit@gmail.com>, 2015
# jeroenpraat <jeroenpraat@disroot.org>, 2015
-# Manuel Jiménez Friaza <mjfriaza@disroot.org>, 2017-2018
+# Manuel Jiménez Friaza <mjfriaza@disroot.org>, 2017-2019
# Manuel Jiménez Friaza <mjfriaza@disroot.org>, 2015-2017
# Rafael, 2015
# tony baldwin <tonybaldwin@gmx.com>, 2014
@@ -14,8 +14,8 @@ msgid ""
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-11-21 11:04+0000\n"
+"POT-Creation-Date: 2019-02-19 10:11+0100\n"
+"PO-Revision-Date: 2019-02-21 10:14+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"
@@ -24,6 +24,7 @@ msgstr ""
"Language: es_ES\n"
"Plural-Forms: nplurals=2; plural=(n != 1 ? 1 : 0);\n"
+
#: ../../Zotlabs/Access/Permissions.php:56
msgid "Can view my channel stream and posts"
msgstr "Pueden verse la actividad y publicaciones de mi canal"
@@ -157,11 +158,11 @@ msgid "Special - Group Repository"
msgstr "Especial - Repositorio de grupo"
#: ../../Zotlabs/Access/PermissionRoles.php:306
-#: ../../Zotlabs/Module/Cdav.php:1227 ../../Zotlabs/Module/Connedit.php:919
+#: ../../Zotlabs/Module/Cdav.php:1227 ../../Zotlabs/Module/Connedit.php:935
#: ../../Zotlabs/Module/Profiles.php:795 ../../include/selectors.php:60
#: ../../include/selectors.php:77 ../../include/selectors.php:115
-#: ../../include/selectors.php:151 ../../include/event.php:1315
-#: ../../include/event.php:1322 ../../include/connections.php:703
+#: ../../include/selectors.php:151 ../../include/event.php:1327
+#: ../../include/event.php:1334 ../../include/connections.php:703
#: ../../include/connections.php:710
msgid "Other"
msgstr "Otro"
@@ -170,23 +171,23 @@ msgstr "Otro"
msgid "Custom/Expert Mode"
msgstr "Modo personalizado/experto"
-#: ../../Zotlabs/Module/Blocks.php:33 ../../Zotlabs/Module/Articles.php:34
+#: ../../Zotlabs/Module/Blocks.php:33 ../../Zotlabs/Module/Articles.php:42
#: ../../Zotlabs/Module/Editlayout.php:31 ../../Zotlabs/Module/Connect.php:17
#: ../../Zotlabs/Module/Achievements.php:15 ../../Zotlabs/Module/Hcard.php:12
#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Profile.php:20
#: ../../Zotlabs/Module/Menu.php:91 ../../Zotlabs/Module/Layouts.php:31
-#: ../../Zotlabs/Module/Editwebpage.php:32 ../../Zotlabs/Module/Cards.php:37
+#: ../../Zotlabs/Module/Editwebpage.php:32 ../../Zotlabs/Module/Cards.php:42
#: ../../Zotlabs/Module/Webpages.php:39
#: ../../Zotlabs/Module/Filestorage.php:51
-#: ../../addon/gallery/Mod_Gallery.php:47 ../../include/channel.php:1204
+#: ../../addon/gallery/Mod_Gallery.php:49 ../../include/channel.php:1253
msgid "Requested profile is not available."
msgstr "El perfil solicitado no está disponible."
#: ../../Zotlabs/Module/Blocks.php:73 ../../Zotlabs/Module/Blocks.php:80
#: ../../Zotlabs/Module/Invite.php:21 ../../Zotlabs/Module/Invite.php:102
-#: ../../Zotlabs/Module/Articles.php:80 ../../Zotlabs/Module/Editlayout.php:67
-#: ../../Zotlabs/Module/Editlayout.php:90 ../../Zotlabs/Module/Channel.php:119
-#: ../../Zotlabs/Module/Channel.php:286 ../../Zotlabs/Module/Channel.php:325
+#: ../../Zotlabs/Module/Articles.php:88 ../../Zotlabs/Module/Editlayout.php:67
+#: ../../Zotlabs/Module/Editlayout.php:90 ../../Zotlabs/Module/Channel.php:168
+#: ../../Zotlabs/Module/Channel.php:335 ../../Zotlabs/Module/Channel.php:374
#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Locs.php:87
#: ../../Zotlabs/Module/Mitem.php:129 ../../Zotlabs/Module/Events.php:271
#: ../../Zotlabs/Module/Appman.php:87 ../../Zotlabs/Module/Regmod.php:20
@@ -199,17 +200,17 @@ msgstr "El perfil solicitado no está disponible."
#: ../../Zotlabs/Module/Thing.php:300 ../../Zotlabs/Module/Thing.php:341
#: ../../Zotlabs/Module/Api.php:24 ../../Zotlabs/Module/Editblock.php:67
#: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101
-#: ../../Zotlabs/Module/Mood.php:124 ../../Zotlabs/Module/Connections.php:32
+#: ../../Zotlabs/Module/Mood.php:126 ../../Zotlabs/Module/Connections.php:32
#: ../../Zotlabs/Module/Viewsrc.php:19 ../../Zotlabs/Module/Bookmarks.php:70
#: ../../Zotlabs/Module/Photos.php:69 ../../Zotlabs/Module/Wiki.php:59
#: ../../Zotlabs/Module/Wiki.php:285 ../../Zotlabs/Module/Wiki.php:428
#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Poke.php:157
#: ../../Zotlabs/Module/Profile_photo.php:302
#: ../../Zotlabs/Module/Profile_photo.php:315
-#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Item.php:229
-#: ../../Zotlabs/Module/Item.php:248 ../../Zotlabs/Module/Item.php:258
-#: ../../Zotlabs/Module/Item.php:1110 ../../Zotlabs/Module/Page.php:34
-#: ../../Zotlabs/Module/Page.php:133 ../../Zotlabs/Module/Connedit.php:390
+#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Item.php:376
+#: ../../Zotlabs/Module/Item.php:395 ../../Zotlabs/Module/Item.php:405
+#: ../../Zotlabs/Module/Item.php:1281 ../../Zotlabs/Module/Page.php:34
+#: ../../Zotlabs/Module/Page.php:133 ../../Zotlabs/Module/Connedit.php:399
#: ../../Zotlabs/Module/Chat.php:115 ../../Zotlabs/Module/Chat.php:120
#: ../../Zotlabs/Module/Menu.php:129 ../../Zotlabs/Module/Menu.php:140
#: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78
@@ -221,15 +222,15 @@ msgstr "El perfil solicitado no está disponible."
#: ../../Zotlabs/Module/Editwebpage.php:89
#: ../../Zotlabs/Module/Editwebpage.php:107
#: ../../Zotlabs/Module/Editwebpage.php:121 ../../Zotlabs/Module/Manage.php:10
-#: ../../Zotlabs/Module/Cards.php:81 ../../Zotlabs/Module/Webpages.php:133
+#: ../../Zotlabs/Module/Cards.php:86 ../../Zotlabs/Module/Webpages.php:133
#: ../../Zotlabs/Module/Block.php:24 ../../Zotlabs/Module/Block.php:74
#: ../../Zotlabs/Module/Editpost.php:17 ../../Zotlabs/Module/Sources.php:80
-#: ../../Zotlabs/Module/Like.php:185 ../../Zotlabs/Module/Suggest.php:32
+#: ../../Zotlabs/Module/Like.php:187 ../../Zotlabs/Module/Suggest.php:32
#: ../../Zotlabs/Module/Message.php:18 ../../Zotlabs/Module/Mail.php:146
#: ../../Zotlabs/Module/Register.php:77
#: ../../Zotlabs/Module/Cover_photo.php:313
#: ../../Zotlabs/Module/Cover_photo.php:326
-#: ../../Zotlabs/Module/Display.php:448 ../../Zotlabs/Module/Network.php:17
+#: ../../Zotlabs/Module/Display.php:446 ../../Zotlabs/Module/Network.php:19
#: ../../Zotlabs/Module/Filestorage.php:15
#: ../../Zotlabs/Module/Filestorage.php:70
#: ../../Zotlabs/Module/Filestorage.php:96
@@ -240,14 +241,15 @@ msgstr "El perfil solicitado no está disponible."
#: ../../Zotlabs/Module/Rate.php:113 ../../Zotlabs/Module/Card_edit.php:51
#: ../../Zotlabs/Module/Notifications.php:11
#: ../../Zotlabs/Lib/Chatroom.php:133 ../../Zotlabs/Web/WebServer.php:123
-#: ../../addon/keepout/keepout.php:36 ../../addon/openid/Mod_Id.php:53
-#: ../../addon/pumpio/pumpio.php:40 ../../include/attach.php:150
-#: ../../include/attach.php:197 ../../include/attach.php:270
-#: ../../include/attach.php:379 ../../include/attach.php:393
-#: ../../include/attach.php:400 ../../include/attach.php:482
-#: ../../include/attach.php:1042 ../../include/attach.php:1116
-#: ../../include/attach.php:1281 ../../include/items.php:3675
-#: ../../include/photos.php:27
+#: ../../addon/keepout/keepout.php:36
+#: ../../addon/flashcards/Mod_Flashcards.php:167
+#: ../../addon/openid/Mod_Id.php:53 ../../addon/pumpio/pumpio.php:44
+#: ../../include/attach.php:150 ../../include/attach.php:199
+#: ../../include/attach.php:272 ../../include/attach.php:381
+#: ../../include/attach.php:395 ../../include/attach.php:402
+#: ../../include/attach.php:484 ../../include/attach.php:1044
+#: ../../include/attach.php:1118 ../../include/attach.php:1283
+#: ../../include/items.php:3781 ../../include/photos.php:27
msgid "Permission denied."
msgstr "Acceso denegado."
@@ -256,7 +258,7 @@ msgstr "Acceso denegado."
msgid "Block Name"
msgstr "Nombre del bloque"
-#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2465
+#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2534
msgid "Blocks"
msgstr "Bloques"
@@ -274,11 +276,11 @@ msgstr "Creado"
msgid "Edited"
msgstr "Editado"
-#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:108
+#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:116
#: ../../Zotlabs/Module/Cdav.php:1230 ../../Zotlabs/Module/New_channel.php:189
-#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Menu.php:181
+#: ../../Zotlabs/Module/Connedit.php:938 ../../Zotlabs/Module/Menu.php:181
#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:798
-#: ../../Zotlabs/Module/Cards.php:109 ../../Zotlabs/Module/Webpages.php:254
+#: ../../Zotlabs/Module/Cards.php:113 ../../Zotlabs/Module/Webpages.php:254
#: ../../Zotlabs/Storage/Browser.php:276 ../../Zotlabs/Storage/Browser.php:390
#: ../../Zotlabs/Widget/Cdav.php:128 ../../Zotlabs/Widget/Cdav.php:165
msgid "Create"
@@ -292,21 +294,21 @@ msgstr "Crear"
#: ../../Zotlabs/Module/Connections.php:322
#: ../../Zotlabs/Module/Connections.php:342 ../../Zotlabs/Module/Wiki.php:211
#: ../../Zotlabs/Module/Wiki.php:384 ../../Zotlabs/Module/Menu.php:175
-#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Group.php:235
+#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Group.php:252
#: ../../Zotlabs/Module/Editwebpage.php:142
#: ../../Zotlabs/Module/Webpages.php:255 ../../Zotlabs/Module/Card_edit.php:99
-#: ../../Zotlabs/Module/Oauth.php:173 ../../Zotlabs/Lib/Apps.php:534
-#: ../../Zotlabs/Lib/ThreadItem.php:130 ../../Zotlabs/Storage/Browser.php:290
+#: ../../Zotlabs/Module/Oauth.php:173 ../../Zotlabs/Lib/Apps.php:556
+#: ../../Zotlabs/Lib/ThreadItem.php:147 ../../Zotlabs/Storage/Browser.php:290
#: ../../Zotlabs/Widget/Cdav.php:126 ../../Zotlabs/Widget/Cdav.php:162
-#: ../../include/channel.php:1303 ../../include/channel.php:1307
+#: ../../include/channel.php:1352 ../../include/channel.php:1356
#: ../../include/menu.php:118
msgid "Edit"
msgstr "Editar"
-#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1104
+#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1117
#: ../../Zotlabs/Module/Wiki.php:301 ../../Zotlabs/Module/Layouts.php:194
#: ../../Zotlabs/Module/Webpages.php:256 ../../Zotlabs/Widget/Cdav.php:124
-#: ../../addon/hsse/hsse.php:186 ../../include/conversation.php:1389
+#: ../../addon/hsse/hsse.php:186 ../../include/conversation.php:1392
msgid "Share"
msgstr "Compartir"
@@ -318,12 +320,12 @@ msgstr "Compartir"
#: ../../Zotlabs/Module/Admin/Profs.php:176 ../../Zotlabs/Module/Thing.php:267
#: ../../Zotlabs/Module/Oauth2.php:195 ../../Zotlabs/Module/Editblock.php:139
#: ../../Zotlabs/Module/Connections.php:292
-#: ../../Zotlabs/Module/Photos.php:1205 ../../Zotlabs/Module/Connedit.php:655
-#: ../../Zotlabs/Module/Connedit.php:924 ../../Zotlabs/Module/Profiles.php:800
+#: ../../Zotlabs/Module/Photos.php:1220 ../../Zotlabs/Module/Connedit.php:668
+#: ../../Zotlabs/Module/Connedit.php:940 ../../Zotlabs/Module/Profiles.php:800
#: ../../Zotlabs/Module/Editwebpage.php:167
#: ../../Zotlabs/Module/Webpages.php:257
#: ../../Zotlabs/Module/Card_edit.php:129 ../../Zotlabs/Module/Oauth.php:174
-#: ../../Zotlabs/Lib/Apps.php:535 ../../Zotlabs/Lib/ThreadItem.php:150
+#: ../../Zotlabs/Lib/Apps.php:557 ../../Zotlabs/Lib/ThreadItem.php:167
#: ../../Zotlabs/Storage/Browser.php:291 ../../include/conversation.php:691
#: ../../include/conversation.php:736
msgid "Delete"
@@ -370,20 +372,44 @@ msgstr[1] "%d mensajes enviados."
msgid "Invite App"
msgstr "Solicitar una app"
-#: ../../Zotlabs/Module/Invite.php:110 ../../Zotlabs/Module/Articles.php:43
+#: ../../Zotlabs/Module/Invite.php:110 ../../Zotlabs/Module/Articles.php:51
#: ../../Zotlabs/Module/Cdav.php:839 ../../Zotlabs/Module/Cdav.php:848
#: ../../Zotlabs/Module/Permcats.php:62 ../../Zotlabs/Module/Lang.php:17
#: ../../Zotlabs/Module/Uexport.php:61 ../../Zotlabs/Module/Pubstream.php:20
#: ../../Zotlabs/Module/Connect.php:104 ../../Zotlabs/Module/Tokens.php:99
#: ../../Zotlabs/Module/Oauth2.php:106 ../../Zotlabs/Module/Randprof.php:29
-#: ../../Zotlabs/Module/Mood.php:132 ../../Zotlabs/Module/Bookmarks.php:78
+#: ../../Zotlabs/Module/Mood.php:134 ../../Zotlabs/Module/Bookmarks.php:78
#: ../../Zotlabs/Module/Wiki.php:52 ../../Zotlabs/Module/Pdledit.php:42
#: ../../Zotlabs/Module/Poke.php:165 ../../Zotlabs/Module/Chat.php:102
-#: ../../Zotlabs/Module/Notes.php:55 ../../Zotlabs/Module/Defperms.php:189
-#: ../../Zotlabs/Module/Group.php:101 ../../Zotlabs/Module/Cards.php:46
-#: ../../Zotlabs/Module/Webpages.php:48 ../../Zotlabs/Module/Sources.php:88
-#: ../../Zotlabs/Module/Suggest.php:40 ../../Zotlabs/Module/Probe.php:18
-#: ../../Zotlabs/Module/Oauth.php:100
+#: ../../Zotlabs/Module/Notes.php:56 ../../Zotlabs/Module/Affinity.php:52
+#: ../../Zotlabs/Module/Defperms.php:189 ../../Zotlabs/Module/Group.php:106
+#: ../../Zotlabs/Module/Cards.php:51 ../../Zotlabs/Module/Webpages.php:48
+#: ../../Zotlabs/Module/Sources.php:88 ../../Zotlabs/Module/Suggest.php:40
+#: ../../Zotlabs/Module/Probe.php:18 ../../Zotlabs/Module/Oauth.php:100
+#: ../../addon/skeleton/Mod_Skeleton.php:32
+#: ../../addon/gnusoc/Mod_Gnusoc.php:22 ../../addon/planets/Mod_Planets.php:20
+#: ../../addon/wppost/Mod_Wppost.php:41 ../../addon/nsfw/Mod_Nsfw.php:33
+#: ../../addon/ijpost/Mod_Ijpost.php:35 ../../addon/dwpost/Mod_Dwpost.php:36
+#: ../../addon/gallery/Mod_Gallery.php:58 ../../addon/ljpost/Mod_Ljpost.php:36
+#: ../../addon/startpage/Mod_Startpage.php:50
+#: ../../addon/diaspora/Mod_Diaspora.php:55
+#: ../../addon/photocache/Mod_Photocache.php:42
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:21
+#: ../../addon/nsabait/Mod_Nsabait.php:20
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:34 ../../addon/rtof/Mod_Rtof.php:36
+#: ../../addon/jappixmini/Mod_Jappixmini.php:96
+#: ../../addon/superblock/Mod_Superblock.php:20
+#: ../../addon/nofed/Mod_Nofed.php:33 ../../addon/redred/Mod_Redred.php:50
+#: ../../addon/hsse/Mod_Hsse.php:21 ../../addon/pubcrawl/Mod_Pubcrawl.php:40
+#: ../../addon/libertree/Mod_Libertree.php:35
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:53
+#: ../../addon/statusnet/Mod_Statusnet.php:146
+#: ../../addon/twitter/Mod_Twitter.php:78
+#: ../../addon/smileybutton/Mod_Smileybutton.php:35
+#: ../../addon/sendzid/Mod_Sendzid.php:20
+#: ../../addon/pageheader/Mod_Pageheader.php:34
+#: ../../addon/authchoose/Mod_Authchoose.php:28
+#: ../../addon/xmpp/Mod_Xmpp.php:35 ../../addon/pumpio/Mod_Pumpio.php:53
msgid "Not Installed"
msgstr "No instalado/a"
@@ -444,7 +470,7 @@ msgstr "3. Pulse [conectar]"
#: ../../Zotlabs/Module/Admin/Channels.php:147
#: ../../Zotlabs/Module/Admin/Themes.php:158
#: ../../Zotlabs/Module/Admin/Site.php:289
-#: ../../Zotlabs/Module/Admin/Addons.php:438
+#: ../../Zotlabs/Module/Admin/Addons.php:441
#: ../../Zotlabs/Module/Admin/Profs.php:178
#: ../../Zotlabs/Module/Admin/Account_edit.php:73
#: ../../Zotlabs/Module/Admin/Security.php:112
@@ -458,83 +484,85 @@ msgstr "3. Pulse [conectar]"
#: ../../Zotlabs/Module/Settings/Account.php:103
#: ../../Zotlabs/Module/Settings/Profiles.php:50
#: ../../Zotlabs/Module/Settings/Manage.php:41
-#: ../../Zotlabs/Module/Settings/Featured.php:54
#: ../../Zotlabs/Module/Settings/Channel_home.php:89
#: ../../Zotlabs/Module/Settings/Directory.php:41
#: ../../Zotlabs/Module/Settings/Editor.php:41
#: ../../Zotlabs/Module/Settings/Display.php:189
#: ../../Zotlabs/Module/Settings/Network.php:61
#: ../../Zotlabs/Module/Tokens.php:188 ../../Zotlabs/Module/Thing.php:326
-#: ../../Zotlabs/Module/Thing.php:379 ../../Zotlabs/Module/Import.php:565
+#: ../../Zotlabs/Module/Thing.php:379 ../../Zotlabs/Module/Import.php:574
#: ../../Zotlabs/Module/Oauth2.php:116 ../../Zotlabs/Module/Cal.php:344
-#: ../../Zotlabs/Module/Mood.php:156 ../../Zotlabs/Module/Photos.php:1084
-#: ../../Zotlabs/Module/Photos.php:1124 ../../Zotlabs/Module/Photos.php:1242
+#: ../../Zotlabs/Module/Mood.php:158 ../../Zotlabs/Module/Photos.php:1097
+#: ../../Zotlabs/Module/Photos.php:1138 ../../Zotlabs/Module/Photos.php:1257
#: ../../Zotlabs/Module/Wiki.php:215 ../../Zotlabs/Module/Pdledit.php:107
-#: ../../Zotlabs/Module/Poke.php:217 ../../Zotlabs/Module/Connedit.php:888
+#: ../../Zotlabs/Module/Poke.php:217 ../../Zotlabs/Module/Connedit.php:904
#: ../../Zotlabs/Module/Chat.php:211 ../../Zotlabs/Module/Chat.php:250
#: ../../Zotlabs/Module/Email_validation.php:40
-#: ../../Zotlabs/Module/Pconfig.php:111 ../../Zotlabs/Module/Defperms.php:265
-#: ../../Zotlabs/Module/Group.php:140 ../../Zotlabs/Module/Group.php:156
-#: ../../Zotlabs/Module/Profiles.php:723 ../../Zotlabs/Module/Editpost.php:85
-#: ../../Zotlabs/Module/Sources.php:125 ../../Zotlabs/Module/Sources.php:162
-#: ../../Zotlabs/Module/Xchan.php:15 ../../Zotlabs/Module/Mail.php:431
-#: ../../Zotlabs/Module/Filestorage.php:183 ../../Zotlabs/Module/Rate.php:166
-#: ../../Zotlabs/Module/Oauth.php:111 ../../Zotlabs/Lib/ThreadItem.php:767
+#: ../../Zotlabs/Module/Pconfig.php:116 ../../Zotlabs/Module/Affinity.php:87
+#: ../../Zotlabs/Module/Defperms.php:265 ../../Zotlabs/Module/Group.php:150
+#: ../../Zotlabs/Module/Group.php:166 ../../Zotlabs/Module/Profiles.php:723
+#: ../../Zotlabs/Module/Editpost.php:85 ../../Zotlabs/Module/Sources.php:125
+#: ../../Zotlabs/Module/Sources.php:162 ../../Zotlabs/Module/Xchan.php:15
+#: ../../Zotlabs/Module/Mail.php:431 ../../Zotlabs/Module/Filestorage.php:183
+#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Module/Oauth.php:111
+#: ../../Zotlabs/Lib/ThreadItem.php:795
#: ../../Zotlabs/Widget/Eventstools.php:16
#: ../../Zotlabs/Widget/Wiki_pages.php:42
#: ../../Zotlabs/Widget/Wiki_pages.php:99
#: ../../view/theme/redbasic_c/php/config.php:95
#: ../../view/theme/redbasic/php/config.php:94
-#: ../../addon/skeleton/skeleton.php:65 ../../addon/planets/planets.php:153
+#: ../../addon/skeleton/Mod_Skeleton.php:51
#: ../../addon/openclipatar/openclipatar.php:53
#: ../../addon/wppost/Mod_Wppost.php:97 ../../addon/nsfw/Mod_Nsfw.php:61
-#: ../../addon/ijpost/ijpost.php:89 ../../addon/dwpost/dwpost.php:89
+#: ../../addon/ijpost/Mod_Ijpost.php:72 ../../addon/dwpost/Mod_Dwpost.php:71
#: ../../addon/likebanner/likebanner.php:57
-#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:53
-#: ../../addon/ljpost/ljpost.php:86 ../../addon/startpage/Mod_Startpage.php:73
-#: ../../addon/diaspora/Mod_Diaspora.php:99 ../../addon/hzfiles/hzfiles.php:84
-#: ../../addon/visage/visage.php:170 ../../addon/nsabait/nsabait.php:161
-#: ../../addon/mailtest/mailtest.php:100
-#: ../../addon/openstreetmap/openstreetmap.php:168
-#: ../../addon/fuzzloc/fuzzloc.php:191 ../../addon/rtof/rtof.php:101
-#: ../../addon/jappixmini/jappixmini.php:371
-#: ../../addon/channelreputation/channelreputation.php:139
-#: ../../addon/nofed/nofed.php:80 ../../addon/redred/redred.php:119
+#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:45
+#: ../../addon/ljpost/Mod_Ljpost.php:73
+#: ../../addon/startpage/Mod_Startpage.php:73
+#: ../../addon/diaspora/Mod_Diaspora.php:99
+#: ../../addon/photocache/Mod_Photocache.php:67
+#: ../../addon/hzfiles/hzfiles.php:84 ../../addon/mailtest/mailtest.php:100
+#: ../../addon/openstreetmap/openstreetmap.php:169
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:56 ../../addon/rtof/Mod_Rtof.php:72
+#: ../../addon/jappixmini/Mod_Jappixmini.php:261
+#: ../../addon/channelreputation/channelreputation.php:140
+#: ../../addon/nofed/Mod_Nofed.php:53 ../../addon/redred/Mod_Redred.php:90
#: ../../addon/logrot/logrot.php:35 ../../addon/frphotos/frphotos.php:97
#: ../../addon/pubcrawl/Mod_Pubcrawl.php:63
-#: ../../addon/chords/Mod_Chords.php:60 ../../addon/libertree/libertree.php:85
-#: ../../addon/flattrwidget/flattrwidget.php:124
-#: ../../addon/statusnet/statusnet.php:322
-#: ../../addon/statusnet/statusnet.php:380
-#: ../../addon/statusnet/statusnet.php:432
-#: ../../addon/statusnet/statusnet.php:900 ../../addon/twitter/twitter.php:221
-#: ../../addon/twitter/twitter.php:268
-#: ../../addon/smileybutton/smileybutton.php:219
-#: ../../addon/cart/Settings/Cart.php:114 ../../addon/cart/cart.php:1263
+#: ../../addon/chords/Mod_Chords.php:60
+#: ../../addon/libertree/Mod_Libertree.php:70
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:92
+#: ../../addon/statusnet/Mod_Statusnet.php:193
+#: ../../addon/statusnet/Mod_Statusnet.php:251
+#: ../../addon/statusnet/Mod_Statusnet.php:306
+#: ../../addon/statusnet/statusnet.php:602
+#: ../../addon/twitter/Mod_Twitter.php:184
+#: ../../addon/smileybutton/Mod_Smileybutton.php:55
+#: ../../addon/cart/Settings/Cart.php:114 ../../addon/cart/cart.php:1264
#: ../../addon/cart/submodules/manualcat.php:248
#: ../../addon/cart/submodules/hzservices.php:640
#: ../../addon/cart/submodules/subscriptions.php:410
-#: ../../addon/piwik/piwik.php:95 ../../addon/pageheader/pageheader.php:48
-#: ../../addon/xmpp/xmpp.php:69 ../../addon/pumpio/pumpio.php:237
+#: ../../addon/piwik/piwik.php:95 ../../addon/pageheader/Mod_Pageheader.php:54
+#: ../../addon/xmpp/Mod_Xmpp.php:70 ../../addon/pumpio/Mod_Pumpio.php:115
#: ../../addon/redfiles/redfiles.php:124 ../../addon/hubwall/hubwall.php:95
#: ../../include/js_strings.php:22
msgid "Submit"
msgstr "Enviar"
-#: ../../Zotlabs/Module/Articles.php:43
+#: ../../Zotlabs/Module/Articles.php:51
msgid "Articles App"
msgstr "App Artículos"
-#: ../../Zotlabs/Module/Articles.php:44
+#: ../../Zotlabs/Module/Articles.php:52
msgid "Create interactive articles"
msgstr "Crear artículos interactivos"
-#: ../../Zotlabs/Module/Articles.php:107
+#: ../../Zotlabs/Module/Articles.php:115
msgid "Add Article"
msgstr "Añadir un artículo"
-#: ../../Zotlabs/Module/Articles.php:214 ../../Zotlabs/Lib/Apps.php:302
-#: ../../include/nav.php:482
+#: ../../Zotlabs/Module/Articles.php:222 ../../Zotlabs/Lib/Apps.php:324
+#: ../../include/nav.php:512
msgid "Articles"
msgstr "Artículos"
@@ -565,12 +593,12 @@ msgstr "Modificar la plantilla"
#: ../../Zotlabs/Module/Editlayout.php:140 ../../Zotlabs/Module/Cdav.php:944
#: ../../Zotlabs/Module/Cdav.php:1233
#: ../../Zotlabs/Module/Article_edit.php:131
-#: ../../Zotlabs/Module/Admin/Addons.php:423
+#: ../../Zotlabs/Module/Admin/Addons.php:426
#: ../../Zotlabs/Module/Oauth2.php:117 ../../Zotlabs/Module/Oauth2.php:145
#: ../../Zotlabs/Module/Editblock.php:141 ../../Zotlabs/Module/Wiki.php:368
#: ../../Zotlabs/Module/Wiki.php:401
#: ../../Zotlabs/Module/Profile_photo.php:465
-#: ../../Zotlabs/Module/Connedit.php:925 ../../Zotlabs/Module/Fbrowser.php:66
+#: ../../Zotlabs/Module/Connedit.php:941 ../../Zotlabs/Module/Fbrowser.php:66
#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:801
#: ../../Zotlabs/Module/Editwebpage.php:169
#: ../../Zotlabs/Module/Editpost.php:109 ../../Zotlabs/Module/Filer.php:55
@@ -578,18 +606,18 @@ msgstr "Modificar la plantilla"
#: ../../Zotlabs/Module/Tagrm.php:138 ../../Zotlabs/Module/Card_edit.php:131
#: ../../Zotlabs/Module/Oauth.php:112 ../../Zotlabs/Module/Oauth.php:138
#: ../../addon/hsse/hsse.php:209 ../../addon/hsse/hsse.php:258
-#: ../../include/conversation.php:1412 ../../include/conversation.php:1461
+#: ../../include/conversation.php:1415 ../../include/conversation.php:1464
msgid "Cancel"
msgstr "Cancelar"
#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:86
-#: ../../Zotlabs/Module/Import_items.php:120
-#: ../../Zotlabs/Module/Cloud.php:126 ../../Zotlabs/Module/Group.php:93
-#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:68
-#: ../../Zotlabs/Module/Like.php:296 ../../Zotlabs/Web/WebServer.php:122
+#: ../../Zotlabs/Module/Import_items.php:120 ../../Zotlabs/Module/Share.php:71
+#: ../../Zotlabs/Module/Cloud.php:126 ../../Zotlabs/Module/Group.php:98
+#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:79
+#: ../../Zotlabs/Module/Like.php:301 ../../Zotlabs/Web/WebServer.php:122
#: ../../addon/redphotos/redphotos.php:119 ../../addon/hzfiles/hzfiles.php:73
#: ../../addon/frphotos/frphotos.php:82 ../../addon/redfiles/redfiles.php:109
-#: ../../include/items.php:384
+#: ../../include/items.php:416
msgid "Permission denied"
msgstr "Permiso denegado"
@@ -601,8 +629,8 @@ msgstr "Identificador del perfil no válido"
msgid "Profile Visibility Editor"
msgstr "Editor de visibilidad del perfil"
-#: ../../Zotlabs/Module/Profperm.php:113 ../../Zotlabs/Lib/Apps.php:337
-#: ../../include/channel.php:1651
+#: ../../Zotlabs/Module/Profperm.php:113 ../../Zotlabs/Lib/Apps.php:359
+#: ../../include/channel.php:1700
msgid "Profile"
msgstr "Perfil"
@@ -628,12 +656,12 @@ msgid "Summary: "
msgstr "Resumen: "
#: ../../Zotlabs/Module/Cdav.php:811 ../../Zotlabs/Module/Cdav.php:812
-#: ../../Zotlabs/Module/Cdav.php:819 ../../Zotlabs/Module/Embedphotos.php:146
-#: ../../Zotlabs/Module/Photos.php:819 ../../Zotlabs/Module/Photos.php:1275
-#: ../../Zotlabs/Lib/Activity.php:858 ../../Zotlabs/Lib/Apps.php:994
-#: ../../Zotlabs/Lib/Apps.php:1078 ../../Zotlabs/Storage/Browser.php:164
+#: ../../Zotlabs/Module/Cdav.php:819 ../../Zotlabs/Module/Embedphotos.php:154
+#: ../../Zotlabs/Module/Photos.php:832 ../../Zotlabs/Module/Photos.php:1296
+#: ../../Zotlabs/Lib/Activity.php:1011 ../../Zotlabs/Lib/Apps.php:1113
+#: ../../Zotlabs/Lib/Apps.php:1197 ../../Zotlabs/Storage/Browser.php:164
#: ../../Zotlabs/Widget/Portfolio.php:95 ../../Zotlabs/Widget/Album.php:84
-#: ../../addon/pubcrawl/as.php:963 ../../include/conversation.php:1166
+#: ../../addon/pubcrawl/as.php:959 ../../include/conversation.php:1166
msgid "Unknown"
msgstr "Desconocido"
@@ -702,14 +730,14 @@ msgstr "Ubicación"
#: ../../Zotlabs/Module/Cdav.php:924 ../../Zotlabs/Module/Events.php:690
#: ../../Zotlabs/Module/Events.php:699 ../../Zotlabs/Module/Cal.php:338
-#: ../../Zotlabs/Module/Cal.php:345 ../../Zotlabs/Module/Photos.php:973
+#: ../../Zotlabs/Module/Cal.php:345 ../../Zotlabs/Module/Photos.php:986
msgid "Previous"
msgstr "Anterior"
#: ../../Zotlabs/Module/Cdav.php:925 ../../Zotlabs/Module/Events.php:691
#: ../../Zotlabs/Module/Events.php:700 ../../Zotlabs/Module/Setup.php:263
#: ../../Zotlabs/Module/Cal.php:339 ../../Zotlabs/Module/Cal.php:346
-#: ../../Zotlabs/Module/Photos.php:982
+#: ../../Zotlabs/Module/Photos.php:995
msgid "Next"
msgstr "Siguiente"
@@ -766,8 +794,8 @@ msgstr "¡Disculpas! La edición de eventos recurrentes aún no se ha implementa
#: ../../Zotlabs/Module/Sharedwithme.php:104
#: ../../Zotlabs/Module/Admin/Channels.php:159
#: ../../Zotlabs/Module/Oauth2.php:118 ../../Zotlabs/Module/Oauth2.php:146
-#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Connedit.php:907
-#: ../../Zotlabs/Module/Chat.php:259 ../../Zotlabs/Module/Group.php:144
+#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Connedit.php:923
+#: ../../Zotlabs/Module/Chat.php:259 ../../Zotlabs/Module/Group.php:154
#: ../../Zotlabs/Module/Oauth.php:113 ../../Zotlabs/Module/Oauth.php:139
#: ../../Zotlabs/Lib/NativeWikiPage.php:561
#: ../../Zotlabs/Storage/Browser.php:285
@@ -776,15 +804,15 @@ msgstr "¡Disculpas! La edición de eventos recurrentes aún no se ha implementa
msgid "Name"
msgstr "Nombre"
-#: ../../Zotlabs/Module/Cdav.php:1216 ../../Zotlabs/Module/Connedit.php:908
+#: ../../Zotlabs/Module/Cdav.php:1216 ../../Zotlabs/Module/Connedit.php:924
msgid "Organisation"
msgstr "Organización"
-#: ../../Zotlabs/Module/Cdav.php:1217 ../../Zotlabs/Module/Connedit.php:909
+#: ../../Zotlabs/Module/Cdav.php:1217 ../../Zotlabs/Module/Connedit.php:925
msgid "Title"
msgstr "Título"
-#: ../../Zotlabs/Module/Cdav.php:1218 ../../Zotlabs/Module/Connedit.php:910
+#: ../../Zotlabs/Module/Cdav.php:1218 ../../Zotlabs/Module/Connedit.php:926
#: ../../Zotlabs/Module/Profiles.php:786
msgid "Phone"
msgstr "Teléfono"
@@ -792,98 +820,98 @@ msgstr "Teléfono"
#: ../../Zotlabs/Module/Cdav.php:1219
#: ../../Zotlabs/Module/Admin/Accounts.php:171
#: ../../Zotlabs/Module/Admin/Accounts.php:183
-#: ../../Zotlabs/Module/Connedit.php:911 ../../Zotlabs/Module/Profiles.php:787
+#: ../../Zotlabs/Module/Connedit.php:927 ../../Zotlabs/Module/Profiles.php:787
#: ../../addon/openid/MysqlProvider.php:56
-#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/rtof.php:93
-#: ../../addon/redred/redred.php:107 ../../include/network.php:1779
+#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/Mod_Rtof.php:57
+#: ../../addon/redred/Mod_Redred.php:71 ../../include/network.php:1721
msgid "Email"
msgstr "Correo electrónico"
-#: ../../Zotlabs/Module/Cdav.php:1220 ../../Zotlabs/Module/Connedit.php:912
+#: ../../Zotlabs/Module/Cdav.php:1220 ../../Zotlabs/Module/Connedit.php:928
#: ../../Zotlabs/Module/Profiles.php:788
msgid "Instant messenger"
msgstr "Mensajería instantánea"
-#: ../../Zotlabs/Module/Cdav.php:1221 ../../Zotlabs/Module/Connedit.php:913
+#: ../../Zotlabs/Module/Cdav.php:1221 ../../Zotlabs/Module/Connedit.php:929
#: ../../Zotlabs/Module/Profiles.php:789
msgid "Website"
msgstr "Sitio web"
#: ../../Zotlabs/Module/Cdav.php:1222 ../../Zotlabs/Module/Locs.php:118
#: ../../Zotlabs/Module/Admin/Channels.php:160
-#: ../../Zotlabs/Module/Connedit.php:914 ../../Zotlabs/Module/Profiles.php:502
+#: ../../Zotlabs/Module/Connedit.php:930 ../../Zotlabs/Module/Profiles.php:502
#: ../../Zotlabs/Module/Profiles.php:790
msgid "Address"
msgstr "Dirección"
-#: ../../Zotlabs/Module/Cdav.php:1223 ../../Zotlabs/Module/Connedit.php:915
+#: ../../Zotlabs/Module/Cdav.php:1223 ../../Zotlabs/Module/Connedit.php:931
#: ../../Zotlabs/Module/Profiles.php:791
msgid "Note"
msgstr "Nota"
-#: ../../Zotlabs/Module/Cdav.php:1224 ../../Zotlabs/Module/Connedit.php:916
-#: ../../Zotlabs/Module/Profiles.php:792 ../../include/event.php:1308
+#: ../../Zotlabs/Module/Cdav.php:1224 ../../Zotlabs/Module/Connedit.php:932
+#: ../../Zotlabs/Module/Profiles.php:792 ../../include/event.php:1320
#: ../../include/connections.php:696
msgid "Mobile"
msgstr "Móvil"
-#: ../../Zotlabs/Module/Cdav.php:1225 ../../Zotlabs/Module/Connedit.php:917
-#: ../../Zotlabs/Module/Profiles.php:793 ../../include/event.php:1309
+#: ../../Zotlabs/Module/Cdav.php:1225 ../../Zotlabs/Module/Connedit.php:933
+#: ../../Zotlabs/Module/Profiles.php:793 ../../include/event.php:1321
#: ../../include/connections.php:697
msgid "Home"
msgstr "Inicio"
-#: ../../Zotlabs/Module/Cdav.php:1226 ../../Zotlabs/Module/Connedit.php:918
-#: ../../Zotlabs/Module/Profiles.php:794 ../../include/event.php:1312
+#: ../../Zotlabs/Module/Cdav.php:1226 ../../Zotlabs/Module/Connedit.php:934
+#: ../../Zotlabs/Module/Profiles.php:794 ../../include/event.php:1324
#: ../../include/connections.php:700
msgid "Work"
msgstr "Trabajo"
-#: ../../Zotlabs/Module/Cdav.php:1228 ../../Zotlabs/Module/Connedit.php:920
+#: ../../Zotlabs/Module/Cdav.php:1228 ../../Zotlabs/Module/Connedit.php:936
#: ../../Zotlabs/Module/Profiles.php:796
-#: ../../addon/jappixmini/jappixmini.php:368
+#: ../../addon/jappixmini/Mod_Jappixmini.php:216
msgid "Add Contact"
msgstr "Añadir un contacto"
-#: ../../Zotlabs/Module/Cdav.php:1229 ../../Zotlabs/Module/Connedit.php:921
+#: ../../Zotlabs/Module/Cdav.php:1229 ../../Zotlabs/Module/Connedit.php:937
#: ../../Zotlabs/Module/Profiles.php:797
msgid "Add Field"
msgstr "Añadir un campo"
#: ../../Zotlabs/Module/Cdav.php:1231
-#: ../../Zotlabs/Module/Admin/Addons.php:453
+#: ../../Zotlabs/Module/Admin/Addons.php:456
#: ../../Zotlabs/Module/Oauth2.php:58 ../../Zotlabs/Module/Oauth2.php:144
-#: ../../Zotlabs/Module/Connedit.php:923 ../../Zotlabs/Module/Profiles.php:799
+#: ../../Zotlabs/Module/Connedit.php:939 ../../Zotlabs/Module/Profiles.php:799
#: ../../Zotlabs/Module/Oauth.php:53 ../../Zotlabs/Module/Oauth.php:137
-#: ../../Zotlabs/Lib/Apps.php:513
+#: ../../Zotlabs/Lib/Apps.php:535
msgid "Update"
msgstr "Actualizar"
-#: ../../Zotlabs/Module/Cdav.php:1234 ../../Zotlabs/Module/Connedit.php:926
+#: ../../Zotlabs/Module/Cdav.php:1234 ../../Zotlabs/Module/Connedit.php:942
msgid "P.O. Box"
msgstr "Buzón de correos"
-#: ../../Zotlabs/Module/Cdav.php:1235 ../../Zotlabs/Module/Connedit.php:927
+#: ../../Zotlabs/Module/Cdav.php:1235 ../../Zotlabs/Module/Connedit.php:943
msgid "Additional"
msgstr "Adicional"
-#: ../../Zotlabs/Module/Cdav.php:1236 ../../Zotlabs/Module/Connedit.php:928
+#: ../../Zotlabs/Module/Cdav.php:1236 ../../Zotlabs/Module/Connedit.php:944
msgid "Street"
msgstr "Calle"
-#: ../../Zotlabs/Module/Cdav.php:1237 ../../Zotlabs/Module/Connedit.php:929
+#: ../../Zotlabs/Module/Cdav.php:1237 ../../Zotlabs/Module/Connedit.php:945
msgid "Locality"
msgstr "Localidad"
-#: ../../Zotlabs/Module/Cdav.php:1238 ../../Zotlabs/Module/Connedit.php:930
+#: ../../Zotlabs/Module/Cdav.php:1238 ../../Zotlabs/Module/Connedit.php:946
msgid "Region"
msgstr "Provincia, región o estado"
-#: ../../Zotlabs/Module/Cdav.php:1239 ../../Zotlabs/Module/Connedit.php:931
+#: ../../Zotlabs/Module/Cdav.php:1239 ../../Zotlabs/Module/Connedit.php:947
msgid "ZIP Code"
msgstr "Código postal"
-#: ../../Zotlabs/Module/Cdav.php:1240 ../../Zotlabs/Module/Connedit.php:932
+#: ../../Zotlabs/Module/Cdav.php:1240 ../../Zotlabs/Module/Connedit.php:948
#: ../../Zotlabs/Module/Profiles.php:757
msgid "Country"
msgstr "País"
@@ -922,7 +950,7 @@ msgid ""
"connections."
msgstr "Utilice este formulario para crear reglas de permiso para varias clases de personas o conexiones."
-#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:350
+#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:372
msgid "Permission Categories"
msgstr "Tipos de permisos"
@@ -931,22 +959,22 @@ msgid "Permission category name"
msgstr "Nombre de categoría de permiso"
#: ../../Zotlabs/Module/Permcats.php:121 ../../Zotlabs/Module/Tokens.php:181
-#: ../../Zotlabs/Module/Connedit.php:892 ../../Zotlabs/Module/Defperms.php:266
+#: ../../Zotlabs/Module/Connedit.php:908 ../../Zotlabs/Module/Defperms.php:266
msgid "My Settings"
msgstr "Mis ajustes"
#: ../../Zotlabs/Module/Permcats.php:123 ../../Zotlabs/Module/Tokens.php:183
-#: ../../Zotlabs/Module/Connedit.php:887 ../../Zotlabs/Module/Defperms.php:264
+#: ../../Zotlabs/Module/Connedit.php:903 ../../Zotlabs/Module/Defperms.php:264
msgid "inherited"
msgstr "heredado"
#: ../../Zotlabs/Module/Permcats.php:126 ../../Zotlabs/Module/Tokens.php:186
-#: ../../Zotlabs/Module/Connedit.php:894 ../../Zotlabs/Module/Defperms.php:269
+#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Defperms.php:269
msgid "Individual Permissions"
msgstr "Permisos individuales"
#: ../../Zotlabs/Module/Permcats.php:127 ../../Zotlabs/Module/Tokens.php:187
-#: ../../Zotlabs/Module/Connedit.php:895
+#: ../../Zotlabs/Module/Connedit.php:911
msgid ""
"Some permissions may be inherited from your channel's <a "
"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
@@ -954,36 +982,36 @@ msgid ""
" settings here."
msgstr "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. <strong>No</strong> puede cambiar estos ajustes aquí."
-#: ../../Zotlabs/Module/Channel.php:39 ../../Zotlabs/Module/Ochannel.php:32
-#: ../../Zotlabs/Module/Chat.php:31 ../../addon/chess/chess.php:508
+#: ../../Zotlabs/Module/Channel.php:41 ../../Zotlabs/Module/Ochannel.php:32
+#: ../../Zotlabs/Module/Chat.php:31 ../../addon/chess/Mod_Chess.php:343
msgid "You must be logged in to see this page."
msgstr "Debe haber iniciado sesión para poder ver esta página."
-#: ../../Zotlabs/Module/Channel.php:54 ../../Zotlabs/Module/Hcard.php:37
+#: ../../Zotlabs/Module/Channel.php:98 ../../Zotlabs/Module/Hcard.php:37
#: ../../Zotlabs/Module/Profile.php:45
msgid "Posts and comments"
msgstr "Publicaciones y comentarios"
-#: ../../Zotlabs/Module/Channel.php:61 ../../Zotlabs/Module/Hcard.php:44
+#: ../../Zotlabs/Module/Channel.php:105 ../../Zotlabs/Module/Hcard.php:44
#: ../../Zotlabs/Module/Profile.php:52
msgid "Only posts"
msgstr "Solo publicaciones"
-#: ../../Zotlabs/Module/Channel.php:116
+#: ../../Zotlabs/Module/Channel.php:165
msgid "Insufficient permissions. Request redirected to profile page."
msgstr "Permisos insuficientes. Petición redirigida a la página del perfil."
-#: ../../Zotlabs/Module/Channel.php:133 ../../Zotlabs/Module/Network.php:163
+#: ../../Zotlabs/Module/Channel.php:182 ../../Zotlabs/Module/Network.php:173
msgid "Search Results For:"
msgstr "Buscar resultados para:"
-#: ../../Zotlabs/Module/Channel.php:168 ../../Zotlabs/Module/Hq.php:134
+#: ../../Zotlabs/Module/Channel.php:217 ../../Zotlabs/Module/Hq.php:134
#: ../../Zotlabs/Module/Pubstream.php:94 ../../Zotlabs/Module/Display.php:80
-#: ../../Zotlabs/Module/Network.php:193
+#: ../../Zotlabs/Module/Network.php:203
msgid "Reset form"
msgstr "Reiniciar el formulario"
-#: ../../Zotlabs/Module/Channel.php:424 ../../Zotlabs/Module/Display.php:374
+#: ../../Zotlabs/Module/Channel.php:476 ../../Zotlabs/Module/Display.php:373
msgid ""
"You must enable javascript for your browser to be able to view this content."
msgstr "Debe habilitar javascript para poder ver este contenido en su navegador."
@@ -1070,7 +1098,7 @@ msgstr "¡Bienvenido a Hubzilla!"
msgid "You have got no unseen posts..."
msgstr "No tiene ningún mensaje sin leer..."
-#: ../../Zotlabs/Module/Search.php:17 ../../Zotlabs/Module/Photos.php:545
+#: ../../Zotlabs/Module/Search.php:17 ../../Zotlabs/Module/Photos.php:558
#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Directory.php:67
#: ../../Zotlabs/Module/Directory.php:72 ../../Zotlabs/Module/Display.php:29
#: ../../Zotlabs/Module/Viewconnections.php:23
@@ -1078,9 +1106,9 @@ msgid "Public access denied."
msgstr "Acceso público denegado."
#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:338
-#: ../../Zotlabs/Lib/Apps.php:328 ../../Zotlabs/Widget/Sitesearch.php:31
-#: ../../Zotlabs/Widget/Activity_filter.php:150 ../../include/text.php:1068
-#: ../../include/text.php:1080 ../../include/acl_selectors.php:118
+#: ../../Zotlabs/Lib/Apps.php:350 ../../Zotlabs/Widget/Sitesearch.php:31
+#: ../../Zotlabs/Widget/Activity_filter.php:151 ../../include/text.php:1084
+#: ../../include/text.php:1096 ../../include/acl_selectors.php:118
#: ../../include/nav.php:183
msgid "Search"
msgstr "Buscar"
@@ -1103,7 +1131,7 @@ msgstr "App Stream público"
msgid "The unmoderated public stream of this hub"
msgstr "Stream público no moderado de este hub"
-#: ../../Zotlabs/Module/Pubstream.php:109 ../../Zotlabs/Lib/Apps.php:352
+#: ../../Zotlabs/Module/Pubstream.php:109 ../../Zotlabs/Lib/Apps.php:374
#: ../../Zotlabs/Widget/Notifications.php:142
msgid "Public Stream"
msgstr "\"Stream\" público"
@@ -1134,7 +1162,7 @@ msgstr "No encontrada ninguna dirección."
msgid "Manage Channel Locations"
msgstr "Gestionar las direcciones del canal"
-#: ../../Zotlabs/Module/Locs.php:119 ../../Zotlabs/Module/Admin.php:115
+#: ../../Zotlabs/Module/Locs.php:119
msgid "Primary"
msgstr "Primario"
@@ -1160,21 +1188,21 @@ msgstr "Cuando sea posible, elimine una ubicación iniciando sesión en el sitio
msgid "Use this form to drop the location if the hub is no longer operating."
msgstr "Utilice este formulario para eliminar la dirección si el \"hub\" no está funcionando desde hace tiempo."
-#: ../../Zotlabs/Module/Apporder.php:44
+#: ../../Zotlabs/Module/Apporder.php:47
msgid "Change Order of Pinned Navbar Apps"
msgstr "Cambiar el orden de las aplicaciones fijas en la barra de navegación"
-#: ../../Zotlabs/Module/Apporder.php:44
+#: ../../Zotlabs/Module/Apporder.php:47
msgid "Change Order of App Tray Apps"
msgstr "Cambiar el orden de las aplicaciones de la bandeja de aplicaciones"
-#: ../../Zotlabs/Module/Apporder.php:45
+#: ../../Zotlabs/Module/Apporder.php:48
msgid ""
"Use arrows to move the corresponding app left (top) or right (bottom) in the"
" navbar"
msgstr "Use las flechas para mover la aplicación correspondiente a la izquierda (arriba) o derecha (abajo) en la barra de navegación."
-#: ../../Zotlabs/Module/Apporder.php:45
+#: ../../Zotlabs/Module/Apporder.php:48
msgid "Use arrows to move the corresponding app up or down in the app tray"
msgstr "Use las flechas para mover la aplicación correspondiente hacia arriba o hacia abajo en la bandeja de aplicaciones."
@@ -1231,11 +1259,11 @@ msgstr "Usar la autenticación mágica si está disponible"
#: ../../Zotlabs/Module/Admin/Site.php:255
#: ../../Zotlabs/Module/Settings/Channel.php:309
#: ../../Zotlabs/Module/Settings/Display.php:89
-#: ../../Zotlabs/Module/Import.php:554 ../../Zotlabs/Module/Import.php:558
-#: ../../Zotlabs/Module/Import.php:559 ../../Zotlabs/Module/Api.php:99
-#: ../../Zotlabs/Module/Photos.php:699 ../../Zotlabs/Module/Wiki.php:227
-#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:397
-#: ../../Zotlabs/Module/Connedit.php:780 ../../Zotlabs/Module/Menu.php:162
+#: ../../Zotlabs/Module/Import.php:563 ../../Zotlabs/Module/Import.php:567
+#: ../../Zotlabs/Module/Import.php:568 ../../Zotlabs/Module/Api.php:99
+#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Wiki.php:227
+#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:406
+#: ../../Zotlabs/Module/Connedit.php:796 ../../Zotlabs/Module/Menu.php:162
#: ../../Zotlabs/Module/Menu.php:221 ../../Zotlabs/Module/Defperms.php:197
#: ../../Zotlabs/Module/Profiles.php:681 ../../Zotlabs/Module/Sources.php:124
#: ../../Zotlabs/Module/Sources.php:159
@@ -1243,38 +1271,29 @@ msgstr "Usar la autenticación mágica si está disponible"
#: ../../Zotlabs/Module/Filestorage.php:186
#: ../../Zotlabs/Lib/Libzotdir.php:162 ../../Zotlabs/Lib/Libzotdir.php:163
#: ../../Zotlabs/Lib/Libzotdir.php:165 ../../Zotlabs/Storage/Browser.php:405
-#: ../../boot.php:1630 ../../view/theme/redbasic_c/php/config.php:100
+#: ../../boot.php:1634 ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:99
#: ../../view/theme/redbasic/php/config.php:116
-#: ../../addon/planets/planets.php:149 ../../addon/wppost/Mod_Wppost.php:82
-#: ../../addon/wppost/Mod_Wppost.php:86 ../../addon/ijpost/ijpost.php:73
-#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
-#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
-#: ../../addon/ljpost/ljpost.php:82 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/fuzzloc/fuzzloc.php:178
-#: ../../addon/rtof/rtof.php:81 ../../addon/rtof/rtof.php:85
-#: ../../addon/jappixmini/jappixmini.php:309
-#: ../../addon/jappixmini/jappixmini.php:313
-#: ../../addon/jappixmini/jappixmini.php:343
-#: ../../addon/jappixmini/jappixmini.php:351
-#: ../../addon/jappixmini/jappixmini.php:355
-#: ../../addon/jappixmini/jappixmini.php:359
-#: ../../addon/channelreputation/channelreputation.php:111
-#: ../../addon/nofed/nofed.php:72 ../../addon/nofed/nofed.php:76
-#: ../../addon/redred/redred.php:95 ../../addon/redred/redred.php:99
-#: ../../addon/libertree/libertree.php:69
-#: ../../addon/libertree/libertree.php:81
-#: ../../addon/flattrwidget/flattrwidget.php:120
-#: ../../addon/statusnet/statusnet.php:389
-#: ../../addon/statusnet/statusnet.php:411
-#: ../../addon/statusnet/statusnet.php:415
-#: ../../addon/statusnet/statusnet.php:424 ../../addon/twitter/twitter.php:246
-#: ../../addon/twitter/twitter.php:255 ../../addon/twitter/twitter.php:264
-#: ../../addon/smileybutton/smileybutton.php:211
-#: ../../addon/smileybutton/smileybutton.php:215
+#: ../../addon/wppost/Mod_Wppost.php:82 ../../addon/wppost/Mod_Wppost.php:86
+#: ../../addon/ijpost/Mod_Ijpost.php:61 ../../addon/dwpost/Mod_Dwpost.php:60
+#: ../../addon/ljpost/Mod_Ljpost.php:62 ../../addon/rtof/Mod_Rtof.php:49
+#: ../../addon/jappixmini/Mod_Jappixmini.php:161
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
+#: ../../addon/jappixmini/Mod_Jappixmini.php:199
+#: ../../addon/jappixmini/Mod_Jappixmini.php:203
+#: ../../addon/jappixmini/Mod_Jappixmini.php:207
+#: ../../addon/channelreputation/channelreputation.php:108
+#: ../../addon/nofed/Mod_Nofed.php:42 ../../addon/redred/Mod_Redred.php:63
+#: ../../addon/libertree/Mod_Libertree.php:59
+#: ../../addon/statusnet/Mod_Statusnet.php:260
+#: ../../addon/statusnet/Mod_Statusnet.php:282
+#: ../../addon/statusnet/Mod_Statusnet.php:291
+#: ../../addon/twitter/Mod_Twitter.php:162
+#: ../../addon/twitter/Mod_Twitter.php:171
+#: ../../addon/smileybutton/Mod_Smileybutton.php:44
#: ../../addon/cart/Settings/Cart.php:59 ../../addon/cart/Settings/Cart.php:71
-#: ../../addon/cart/cart.php:1257
+#: ../../addon/cart/cart.php:1258
#: ../../addon/cart/submodules/paypalbutton.php:87
#: ../../addon/cart/submodules/paypalbutton.php:95
#: ../../addon/cart/submodules/manualcat.php:63
@@ -1285,9 +1304,8 @@ msgstr "Usar la autenticación mágica si está disponible"
#: ../../addon/cart/submodules/hzservices.php:650
#: ../../addon/cart/submodules/subscriptions.php:153
#: ../../addon/cart/submodules/subscriptions.php:425
-#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219
-#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227
-#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143
+#: ../../addon/pumpio/Mod_Pumpio.php:94 ../../addon/pumpio/Mod_Pumpio.php:98
+#: ../../addon/pumpio/Mod_Pumpio.php:102 ../../include/dir_fns.php:143
#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
msgid "No"
msgstr "No"
@@ -1299,10 +1317,10 @@ msgstr "No"
#: ../../Zotlabs/Module/Admin/Site.php:257
#: ../../Zotlabs/Module/Settings/Channel.php:309
#: ../../Zotlabs/Module/Settings/Display.php:89
-#: ../../Zotlabs/Module/Import.php:554 ../../Zotlabs/Module/Import.php:558
-#: ../../Zotlabs/Module/Import.php:559 ../../Zotlabs/Module/Api.php:98
-#: ../../Zotlabs/Module/Photos.php:699 ../../Zotlabs/Module/Wiki.php:227
-#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:397
+#: ../../Zotlabs/Module/Import.php:563 ../../Zotlabs/Module/Import.php:567
+#: ../../Zotlabs/Module/Import.php:568 ../../Zotlabs/Module/Api.php:98
+#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Wiki.php:227
+#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:406
#: ../../Zotlabs/Module/Menu.php:162 ../../Zotlabs/Module/Menu.php:221
#: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Sources.php:124 ../../Zotlabs/Module/Sources.php:159
@@ -1310,38 +1328,29 @@ msgstr "No"
#: ../../Zotlabs/Module/Filestorage.php:186
#: ../../Zotlabs/Lib/Libzotdir.php:162 ../../Zotlabs/Lib/Libzotdir.php:163
#: ../../Zotlabs/Lib/Libzotdir.php:165 ../../Zotlabs/Storage/Browser.php:405
-#: ../../boot.php:1630 ../../view/theme/redbasic_c/php/config.php:100
+#: ../../boot.php:1634 ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:99
#: ../../view/theme/redbasic/php/config.php:116
-#: ../../addon/planets/planets.php:149 ../../addon/wppost/Mod_Wppost.php:82
-#: ../../addon/wppost/Mod_Wppost.php:86 ../../addon/ijpost/ijpost.php:73
-#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
-#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
-#: ../../addon/ljpost/ljpost.php:82 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/fuzzloc/fuzzloc.php:178
-#: ../../addon/rtof/rtof.php:81 ../../addon/rtof/rtof.php:85
-#: ../../addon/jappixmini/jappixmini.php:309
-#: ../../addon/jappixmini/jappixmini.php:313
-#: ../../addon/jappixmini/jappixmini.php:343
-#: ../../addon/jappixmini/jappixmini.php:351
-#: ../../addon/jappixmini/jappixmini.php:355
-#: ../../addon/jappixmini/jappixmini.php:359
-#: ../../addon/channelreputation/channelreputation.php:111
-#: ../../addon/nofed/nofed.php:72 ../../addon/nofed/nofed.php:76
-#: ../../addon/redred/redred.php:95 ../../addon/redred/redred.php:99
-#: ../../addon/libertree/libertree.php:69
-#: ../../addon/libertree/libertree.php:81
-#: ../../addon/flattrwidget/flattrwidget.php:120
-#: ../../addon/statusnet/statusnet.php:389
-#: ../../addon/statusnet/statusnet.php:411
-#: ../../addon/statusnet/statusnet.php:415
-#: ../../addon/statusnet/statusnet.php:424 ../../addon/twitter/twitter.php:246
-#: ../../addon/twitter/twitter.php:255 ../../addon/twitter/twitter.php:264
-#: ../../addon/smileybutton/smileybutton.php:211
-#: ../../addon/smileybutton/smileybutton.php:215
+#: ../../addon/wppost/Mod_Wppost.php:82 ../../addon/wppost/Mod_Wppost.php:86
+#: ../../addon/ijpost/Mod_Ijpost.php:61 ../../addon/dwpost/Mod_Dwpost.php:60
+#: ../../addon/ljpost/Mod_Ljpost.php:62 ../../addon/rtof/Mod_Rtof.php:49
+#: ../../addon/jappixmini/Mod_Jappixmini.php:161
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
+#: ../../addon/jappixmini/Mod_Jappixmini.php:199
+#: ../../addon/jappixmini/Mod_Jappixmini.php:203
+#: ../../addon/jappixmini/Mod_Jappixmini.php:207
+#: ../../addon/channelreputation/channelreputation.php:108
+#: ../../addon/nofed/Mod_Nofed.php:42 ../../addon/redred/Mod_Redred.php:63
+#: ../../addon/libertree/Mod_Libertree.php:59
+#: ../../addon/statusnet/Mod_Statusnet.php:260
+#: ../../addon/statusnet/Mod_Statusnet.php:282
+#: ../../addon/statusnet/Mod_Statusnet.php:291
+#: ../../addon/twitter/Mod_Twitter.php:162
+#: ../../addon/twitter/Mod_Twitter.php:171
+#: ../../addon/smileybutton/Mod_Smileybutton.php:44
#: ../../addon/cart/Settings/Cart.php:59 ../../addon/cart/Settings/Cart.php:71
-#: ../../addon/cart/cart.php:1257
+#: ../../addon/cart/cart.php:1258
#: ../../addon/cart/submodules/paypalbutton.php:87
#: ../../addon/cart/submodules/paypalbutton.php:95
#: ../../addon/cart/submodules/manualcat.php:63
@@ -1352,9 +1361,8 @@ msgstr "No"
#: ../../addon/cart/submodules/hzservices.php:650
#: ../../addon/cart/submodules/subscriptions.php:153
#: ../../addon/cart/submodules/subscriptions.php:425
-#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219
-#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227
-#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143
+#: ../../addon/pumpio/Mod_Pumpio.php:94 ../../addon/pumpio/Mod_Pumpio.php:98
+#: ../../addon/pumpio/Mod_Pumpio.php:102 ../../include/dir_fns.php:143
#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
msgid "Yes"
msgstr "Sí"
@@ -1465,8 +1473,8 @@ msgid "Event not found."
msgstr "Evento no encontrado."
#: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Tagger.php:73
-#: ../../Zotlabs/Module/Like.php:386 ../../include/conversation.php:119
-#: ../../include/text.php:2031 ../../include/event.php:1153
+#: ../../Zotlabs/Module/Like.php:394 ../../include/conversation.php:119
+#: ../../include/text.php:2094 ../../include/event.php:1165
msgid "event"
msgstr "el/su evento"
@@ -1527,14 +1535,14 @@ msgstr "Editar la descripción"
msgid "Edit Location"
msgstr "Modificar la dirección"
-#: ../../Zotlabs/Module/Events.php:480 ../../Zotlabs/Module/Photos.php:1125
-#: ../../Zotlabs/Module/Webpages.php:262 ../../Zotlabs/Lib/ThreadItem.php:777
-#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1356
+#: ../../Zotlabs/Module/Events.php:480 ../../Zotlabs/Module/Photos.php:1139
+#: ../../Zotlabs/Module/Webpages.php:262 ../../Zotlabs/Lib/ThreadItem.php:805
+#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1359
msgid "Preview"
msgstr "Previsualizar"
#: ../../Zotlabs/Module/Events.php:481 ../../addon/hsse/hsse.php:225
-#: ../../include/conversation.php:1428
+#: ../../include/conversation.php:1431
msgid "Permission settings"
msgstr "Configuración de permisos"
@@ -1559,7 +1567,7 @@ msgid "Delete event"
msgstr "Borrar evento"
#: ../../Zotlabs/Module/Events.php:663 ../../Zotlabs/Module/Cal.php:314
-#: ../../include/text.php:1850
+#: ../../include/text.php:1913
msgid "Link to Source"
msgstr "Enlazar con la entrada en su ubicación original"
@@ -1576,7 +1584,7 @@ msgid "Create Event"
msgstr "Crear un evento"
#: ../../Zotlabs/Module/Events.php:692 ../../Zotlabs/Module/Cal.php:340
-#: ../../include/channel.php:1654
+#: ../../include/channel.php:1703
msgid "Export"
msgstr "Exportar"
@@ -1648,27 +1656,27 @@ msgstr "Por favor, inicie sesión."
msgid "Hub not found."
msgstr "Servidor no encontrado"
-#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Tagger.php:69
-#: ../../Zotlabs/Module/Like.php:384 ../../Zotlabs/Lib/Activity.php:1570
+#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Module/Tagger.php:69
+#: ../../Zotlabs/Module/Like.php:392 ../../Zotlabs/Lib/Activity.php:1959
#: ../../addon/redphotos/redphotohelper.php:71
-#: ../../addon/diaspora/Receiver.php:1539 ../../addon/pubcrawl/as.php:1511
-#: ../../include/conversation.php:116 ../../include/text.php:2028
+#: ../../addon/diaspora/Receiver.php:1551 ../../addon/pubcrawl/as.php:1504
+#: ../../include/conversation.php:116 ../../include/text.php:2091
msgid "photo"
msgstr "foto"
-#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:384
-#: ../../Zotlabs/Lib/Activity.php:1570 ../../addon/diaspora/Receiver.php:1539
-#: ../../addon/pubcrawl/as.php:1511 ../../include/conversation.php:144
-#: ../../include/text.php:2034
+#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Module/Like.php:392
+#: ../../Zotlabs/Lib/Activity.php:1959 ../../addon/diaspora/Receiver.php:1551
+#: ../../addon/pubcrawl/as.php:1504 ../../include/conversation.php:144
+#: ../../include/text.php:2097
msgid "status"
msgstr "el mensaje de estado "
-#: ../../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 está siguiendo %3$s de %2$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 ha dejado de seguir %3$s de %2$s"
@@ -1689,9 +1697,9 @@ msgid "Insert web link"
msgstr "Insertar enlace web"
#: ../../Zotlabs/Module/Article_edit.php:117
-#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:700
-#: ../../Zotlabs/Module/Photos.php:1070 ../../Zotlabs/Module/Card_edit.php:117
-#: ../../addon/hsse/hsse.php:221 ../../include/conversation.php:1424
+#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:713
+#: ../../Zotlabs/Module/Photos.php:1083 ../../Zotlabs/Module/Card_edit.php:117
+#: ../../addon/hsse/hsse.php:221 ../../include/conversation.php:1427
msgid "Title (optional)"
msgstr "Título (opcional)"
@@ -1732,7 +1740,7 @@ msgid ""
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
+#: ../../Zotlabs/Module/Import.php:557
msgid "File to Upload"
msgstr "Fichero para subir"
@@ -1744,8 +1752,8 @@ msgstr "Ha creado %1$.0f de %2$.0f canales permitidos."
#: ../../Zotlabs/Module/New_channel.php:157
#: ../../Zotlabs/Module/New_channel.php:164
-#: ../../Zotlabs/Module/Connedit.php:853 ../../Zotlabs/Module/Defperms.php:256
-#: ../../Zotlabs/Widget/Notifications.php:162 ../../include/nav.php:293
+#: ../../Zotlabs/Module/Connedit.php:869 ../../Zotlabs/Module/Defperms.php:256
+#: ../../Zotlabs/Widget/Notifications.php:162 ../../include/nav.php:323
msgid "Loading"
msgstr "Cargando"
@@ -1868,7 +1876,7 @@ msgid "NEW"
msgstr "NUEVO"
#: ../../Zotlabs/Module/Sharedwithme.php:106
-#: ../../Zotlabs/Storage/Browser.php:287 ../../include/text.php:1457
+#: ../../Zotlabs/Storage/Browser.php:287 ../../include/text.php:1496
msgid "Size"
msgstr "Tamaño"
@@ -1914,7 +1922,7 @@ msgid ""
msgstr "Podría tener que importar manualmente el fichero \"install/schema_xxx.sql\" usando un cliente de base de datos."
#: ../../Zotlabs/Module/Setup.php:198 ../../Zotlabs/Module/Setup.php:262
-#: ../../Zotlabs/Module/Setup.php:756
+#: ../../Zotlabs/Module/Setup.php:761
msgid "Please see the file \"install/INSTALL.txt\"."
msgstr "Por favor, lea el fichero \"install/INSTALL.txt\"."
@@ -2058,230 +2066,236 @@ msgstr "Esto es necesario para que funcione la transmisión de mensajes."
msgid "PHP register_argc_argv"
msgstr "PHP register_argc_argv"
-#: ../../Zotlabs/Module/Setup.php:446
+#: ../../Zotlabs/Module/Setup.php:448
+msgid ""
+"This is not sufficient to upload larger images or files. You should be able "
+"to upload at least 4 MB at once."
+msgstr "Esto no es suficiente para subir imágenes o archivos más grandes. Usted debe ser capaz de subir al menos 4 MB a la vez."
+
+#: ../../Zotlabs/Module/Setup.php:450
#, php-format
msgid ""
"Your max allowed total upload size is set to %s. Maximum size of one file to"
" upload is set to %s. You are allowed to upload up to %d files at once."
msgstr "La carga máxima que se le permite subir está establecida en %s. El tamaño máximo de un fichero está establecido en %s. Está permitido subir hasta un máximo de %d ficheros de una sola vez."
-#: ../../Zotlabs/Module/Setup.php:451
+#: ../../Zotlabs/Module/Setup.php:456
msgid "You can adjust these settings in the server php.ini file."
msgstr "Puede ajustar estos valores en el fichero php.ini de su servidor."
-#: ../../Zotlabs/Module/Setup.php:453
+#: ../../Zotlabs/Module/Setup.php:458
msgid "PHP upload limits"
msgstr "Límites PHP de subida"
-#: ../../Zotlabs/Module/Setup.php:476
+#: ../../Zotlabs/Module/Setup.php:481
msgid ""
"Error: the \"openssl_pkey_new\" function on this system is not able to "
"generate encryption keys"
msgstr "Error: La función \"openssl_pkey_new\" en este sistema no es capaz de general claves de cifrado."
-#: ../../Zotlabs/Module/Setup.php:477
+#: ../../Zotlabs/Module/Setup.php:482
msgid ""
"If running under Windows, please see "
"\"http://www.php.net/manual/en/openssl.installation.php\"."
msgstr "Si está en un servidor Windows, por favor, lea \"http://www.php.net/manual/en/openssl.installation.php\"."
-#: ../../Zotlabs/Module/Setup.php:480
+#: ../../Zotlabs/Module/Setup.php:485
msgid "Generate encryption keys"
msgstr "Generar claves de cifrado"
-#: ../../Zotlabs/Module/Setup.php:497
+#: ../../Zotlabs/Module/Setup.php:502
msgid "libCurl PHP module"
msgstr "módulo libCurl PHP"
-#: ../../Zotlabs/Module/Setup.php:498
+#: ../../Zotlabs/Module/Setup.php:503
msgid "GD graphics PHP module"
msgstr "módulo PHP GD graphics"
-#: ../../Zotlabs/Module/Setup.php:499
+#: ../../Zotlabs/Module/Setup.php:504
msgid "OpenSSL PHP module"
msgstr "módulo PHP OpenSSL"
-#: ../../Zotlabs/Module/Setup.php:500
+#: ../../Zotlabs/Module/Setup.php:505
msgid "PDO database PHP module"
msgstr "Módulo PHP de la base de datos PDO "
-#: ../../Zotlabs/Module/Setup.php:501
+#: ../../Zotlabs/Module/Setup.php:506
msgid "mb_string PHP module"
msgstr "módulo PHP mb_string"
-#: ../../Zotlabs/Module/Setup.php:502
+#: ../../Zotlabs/Module/Setup.php:507
msgid "xml PHP module"
msgstr "módulo PHP xml"
-#: ../../Zotlabs/Module/Setup.php:503
+#: ../../Zotlabs/Module/Setup.php:508
msgid "zip PHP module"
msgstr "Módulo zip PHP"
-#: ../../Zotlabs/Module/Setup.php:507 ../../Zotlabs/Module/Setup.php:509
+#: ../../Zotlabs/Module/Setup.php:512 ../../Zotlabs/Module/Setup.php:514
msgid "Apache mod_rewrite module"
msgstr "módulo Apache mod_rewrite "
-#: ../../Zotlabs/Module/Setup.php:507
+#: ../../Zotlabs/Module/Setup.php:512
msgid ""
"Error: Apache webserver mod-rewrite module is required but not installed."
msgstr "Error: se necesita el módulo del servidor web Apache mod-rewrite pero no está instalado."
-#: ../../Zotlabs/Module/Setup.php:513 ../../Zotlabs/Module/Setup.php:516
+#: ../../Zotlabs/Module/Setup.php:518 ../../Zotlabs/Module/Setup.php:521
msgid "exec"
msgstr "ejecutable"
-#: ../../Zotlabs/Module/Setup.php:513
+#: ../../Zotlabs/Module/Setup.php:518
msgid ""
"Error: exec is required but is either not installed or has been disabled in "
"php.ini"
msgstr "Error: se necesita un ejecutable pero o no se instaló o está deshabilitado en php.ini"
-#: ../../Zotlabs/Module/Setup.php:519 ../../Zotlabs/Module/Setup.php:522
+#: ../../Zotlabs/Module/Setup.php:524 ../../Zotlabs/Module/Setup.php:527
msgid "shell_exec"
msgstr "shell_exec"
-#: ../../Zotlabs/Module/Setup.php:519
+#: ../../Zotlabs/Module/Setup.php:524
msgid ""
"Error: shell_exec is required but is either not installed or has been "
"disabled in php.ini"
msgstr "Error: se necesita shell_exec pero o no se instaló o está deshabilitado en php.ini"
-#: ../../Zotlabs/Module/Setup.php:527
+#: ../../Zotlabs/Module/Setup.php:532
msgid "Error: libCURL PHP module required but not installed."
msgstr "Error: se necesita el módulo PHP libCURL pero no está instalado."
-#: ../../Zotlabs/Module/Setup.php:531
+#: ../../Zotlabs/Module/Setup.php:536
msgid ""
"Error: GD PHP module with JPEG support or ImageMagick graphics library "
"required but not installed."
msgstr "Error: Se requiere el módulo GD PHP con soporte para JPEG o la biblioteca de gráficos ImageMagick, pero no está instalado."
-#: ../../Zotlabs/Module/Setup.php:535
+#: ../../Zotlabs/Module/Setup.php:540
msgid "Error: openssl PHP module required but not installed."
msgstr "Error: el módulo PHP openssl es necesario, pero no está instalado."
-#: ../../Zotlabs/Module/Setup.php:541
+#: ../../Zotlabs/Module/Setup.php:546
msgid ""
"Error: PDO database PHP module missing a driver for either mysql or pgsql."
msgstr "Error: El módulo PHP de la base de datos PDO carece de un controlador para mysql o pgsql."
-#: ../../Zotlabs/Module/Setup.php:546
+#: ../../Zotlabs/Module/Setup.php:551
msgid "Error: PDO database PHP module required but not installed."
msgstr "Error: se necesita el módulo PHP de la base de datos PDO, pero no está instalado."
-#: ../../Zotlabs/Module/Setup.php:550
+#: ../../Zotlabs/Module/Setup.php:555
msgid "Error: mb_string PHP module required but not installed."
msgstr "Error: el módulo PHP mb_string es necesario, pero no está instalado."
-#: ../../Zotlabs/Module/Setup.php:554
+#: ../../Zotlabs/Module/Setup.php:559
msgid "Error: xml PHP module required for DAV but not installed."
msgstr "Error: el módulo PHP xml es necesario para DAV, pero no está instalado."
-#: ../../Zotlabs/Module/Setup.php:558
+#: ../../Zotlabs/Module/Setup.php:563
msgid "Error: zip PHP module required but not installed."
msgstr "Error: se requiere el módulo zip PHP pero no está instalado."
-#: ../../Zotlabs/Module/Setup.php:577 ../../Zotlabs/Module/Setup.php:586
+#: ../../Zotlabs/Module/Setup.php:582 ../../Zotlabs/Module/Setup.php:591
msgid ".htconfig.php is writable"
msgstr ".htconfig.php tiene permisos de escritura"
-#: ../../Zotlabs/Module/Setup.php:582
+#: ../../Zotlabs/Module/Setup.php:587
msgid ""
"The web installer needs to be able to create a file called \".htconfig.php\""
" in the top folder of your web server and it is unable to do so."
msgstr "El instalador web no ha podido crear un fichero llamado “.htconfig.php” en la carpeta base de su servidor."
-#: ../../Zotlabs/Module/Setup.php:583
+#: ../../Zotlabs/Module/Setup.php:588
msgid ""
"This is most often a permission setting, as the web server may not be able "
"to write files in your folder - even if you can."
msgstr "Esto está generalmente ligado a un problema de permisos, a causa del cual el servidor web tiene prohibido modificar ficheros en su carpeta - incluso si usted mismo tiene esos permisos."
-#: ../../Zotlabs/Module/Setup.php:584
+#: ../../Zotlabs/Module/Setup.php:589
msgid "Please see install/INSTALL.txt for additional information."
msgstr "Por favor, consulte install/INSTALL.txt para más información."
-#: ../../Zotlabs/Module/Setup.php:600
+#: ../../Zotlabs/Module/Setup.php:605
msgid ""
"This software uses the Smarty3 template engine to render its web views. "
"Smarty3 compiles templates to PHP to speed up rendering."
msgstr "Este software hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 compila las plantillas a PHP para acelerar la renderización."
-#: ../../Zotlabs/Module/Setup.php:601
+#: ../../Zotlabs/Module/Setup.php:606
#, php-format
msgid ""
"In order to store these compiled templates, the web server needs to have "
"write access to the directory %s under the top level web folder."
msgstr "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al directorio %s en la carpeta web principal."
-#: ../../Zotlabs/Module/Setup.php:602 ../../Zotlabs/Module/Setup.php:623
+#: ../../Zotlabs/Module/Setup.php:607 ../../Zotlabs/Module/Setup.php:628
msgid ""
"Please ensure that the user that your web server runs as (e.g. www-data) has"
" write access to this folder."
msgstr "Por favor, asegúrese de que el servidor web está siendo ejecutado por un usuario que tenga permisos de escritura sobre esta carpeta (por ejemplo, www-data)."
-#: ../../Zotlabs/Module/Setup.php:603
+#: ../../Zotlabs/Module/Setup.php:608
#, php-format
msgid ""
"Note: as a security measure, you should give the web server write access to "
"%s only--not the template files (.tpl) that it contains."
msgstr "Nota: como medida de seguridad, debe dar al servidor web permisos de escritura solo sobre %s - no sobre el fichero de plantilla (.tpl) que contiene."
-#: ../../Zotlabs/Module/Setup.php:606
+#: ../../Zotlabs/Module/Setup.php:611
#, php-format
msgid "%s is writable"
msgstr "%s tiene permisos de escritura"
-#: ../../Zotlabs/Module/Setup.php:622
+#: ../../Zotlabs/Module/Setup.php:627
msgid ""
"This software uses the store directory to save uploaded files. The web "
"server needs to have write access to the store directory under the top level"
" web folder"
msgstr "Este software utiliza el directorio de almacenamiento para guardar los ficheros subidos. El servidor web debe tener acceso de escritura a este directorio en la carpeta de nivel superior"
-#: ../../Zotlabs/Module/Setup.php:626
+#: ../../Zotlabs/Module/Setup.php:631
msgid "store is writable"
msgstr "\"store\" tiene permisos de escritura"
-#: ../../Zotlabs/Module/Setup.php:658
+#: ../../Zotlabs/Module/Setup.php:663
msgid ""
"SSL certificate cannot be validated. Fix certificate or disable https access"
" to this site."
msgstr "El certificado SSL no ha podido ser validado. Corrija este problema o desactive el acceso https a este sitio."
-#: ../../Zotlabs/Module/Setup.php:659
+#: ../../Zotlabs/Module/Setup.php:664
msgid ""
"If you have https access to your website or allow connections to TCP port "
"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
"NOT use self-signed certificates!"
msgstr "Si su servidor soporta conexiones cifradas SSL o si permite conexiones al puerto TCP 443 (el puerto usado por el protocolo https), debe utilizar un certificado válido. No debe usar un certificado firmado por usted mismo."
-#: ../../Zotlabs/Module/Setup.php:660
+#: ../../Zotlabs/Module/Setup.php:665
msgid ""
"This restriction is incorporated because public posts from you may for "
"example contain references to images on your own hub."
msgstr "Se ha incorporado esta restricción para evitar que sus entradas públicas hagan referencia a imágenes en su propio servidor."
-#: ../../Zotlabs/Module/Setup.php:661
+#: ../../Zotlabs/Module/Setup.php:666
msgid ""
"If your certificate is not recognized, members of other sites (who may "
"themselves have valid certificates) will get a warning message on their own "
"site complaining about security issues."
msgstr "Si su certificado no ha sido reconocido, los miembros de otros sitios (con certificados válidos) recibirán mensajes de aviso en sus propios sitios web."
-#: ../../Zotlabs/Module/Setup.php:662
+#: ../../Zotlabs/Module/Setup.php:667
msgid ""
"This can cause usability issues elsewhere (not just on your own site) so we "
"must insist on this requirement."
msgstr "Por razones de compatibilidad (sobre el conjunto de la red, no solo sobre su propio sitio), debemos insistir en estos requisitos."
-#: ../../Zotlabs/Module/Setup.php:663
+#: ../../Zotlabs/Module/Setup.php:668
msgid ""
"Providers are available that issue free certificates which are browser-"
"valid."
msgstr "Existen varias Autoridades de Certificación que le pueden proporcionar certificados válidos."
-#: ../../Zotlabs/Module/Setup.php:665
+#: ../../Zotlabs/Module/Setup.php:670
msgid ""
"If you are confident that the certificate is valid and signed by a trusted "
"authority, check to see if you have failed to install an intermediate cert. "
@@ -2289,37 +2303,37 @@ msgid ""
"server communications."
msgstr "Si se tiene la certeza de que el certificado es válido y está firmado por una autoridad de confianza, comprobar para ver si hubo un error al instalar un certificado intermedio. Estos no son normalmente requeridos por los navegadores, pero son necesarios para las comunicaciones de servidor a servidor."
-#: ../../Zotlabs/Module/Setup.php:667
+#: ../../Zotlabs/Module/Setup.php:672
msgid "SSL certificate validation"
msgstr "validación del certificado SSL"
-#: ../../Zotlabs/Module/Setup.php:673
+#: ../../Zotlabs/Module/Setup.php:678
msgid ""
"Url rewrite in .htaccess is not working. Check your server "
"configuration.Test: "
msgstr "No se pueden reescribir las direcciones web en .htaccess. Compruebe la configuración de su servidor:"
-#: ../../Zotlabs/Module/Setup.php:676
+#: ../../Zotlabs/Module/Setup.php:681
msgid "Url rewrite is working"
msgstr "La reescritura de las direcciones funciona correctamente"
-#: ../../Zotlabs/Module/Setup.php:690
+#: ../../Zotlabs/Module/Setup.php:695
msgid ""
"The database configuration file \".htconfig.php\" could not be written. "
"Please use the enclosed text to create a configuration file in your web "
"server root."
msgstr "El fichero de configuración de la base de datos .htconfig.php no se ha podido modificar. Por favor, copie el texto generado en un fichero con ese nombre en el directorio raíz de su servidor."
-#: ../../Zotlabs/Module/Setup.php:714
+#: ../../Zotlabs/Module/Setup.php:719
#: ../../addon/rendezvous/rendezvous.php:401
msgid "Errors encountered creating database tables."
msgstr "Se han encontrado errores al crear las tablas de la base de datos."
-#: ../../Zotlabs/Module/Setup.php:754
+#: ../../Zotlabs/Module/Setup.php:759
msgid "<h1>What next?</h1>"
msgstr "<h1>¿Qué sigue?</h1>"
-#: ../../Zotlabs/Module/Setup.php:755
+#: ../../Zotlabs/Module/Setup.php:760
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the "
"poller."
@@ -2485,7 +2499,7 @@ msgstr[1] "%s cuentas eliminadas"
msgid "Account not found"
msgstr "Cuenta no encontrada"
-#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2497
+#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2562
#, php-format
msgid "Account '%s' deleted"
msgstr "La cuenta '%s' ha sido eliminada"
@@ -2507,9 +2521,9 @@ msgstr "La cuenta '%s' ha sido desbloqueada"
#: ../../Zotlabs/Module/Admin/Themes.php:156
#: ../../Zotlabs/Module/Admin/Site.php:287
#: ../../Zotlabs/Module/Admin/Addons.php:341
-#: ../../Zotlabs/Module/Admin/Addons.php:436
+#: ../../Zotlabs/Module/Admin/Addons.php:439
#: ../../Zotlabs/Module/Admin/Security.php:92
-#: ../../Zotlabs/Module/Admin.php:140
+#: ../../Zotlabs/Module/Admin.php:138
msgid "Administration"
msgstr "Administración"
@@ -2547,12 +2561,12 @@ msgid "Deny"
msgstr "Rechazar"
#: ../../Zotlabs/Module/Admin/Accounts.php:176
-#: ../../Zotlabs/Module/Connedit.php:623
+#: ../../Zotlabs/Module/Connedit.php:636
msgid "Block"
msgstr "Bloquear"
#: ../../Zotlabs/Module/Admin/Accounts.php:177
-#: ../../Zotlabs/Module/Connedit.php:623
+#: ../../Zotlabs/Module/Connedit.php:636
msgid "Unblock"
msgstr "Desbloquear"
@@ -2694,7 +2708,7 @@ msgstr "Permitir código"
msgid "Disallow Code"
msgstr "No permitir código"
-#: ../../Zotlabs/Module/Admin/Channels.php:154 ../../include/nav.php:391
+#: ../../Zotlabs/Module/Admin/Channels.php:154 ../../include/nav.php:421
msgid "Channel"
msgstr "Canal"
@@ -2725,9 +2739,9 @@ msgstr "No se han encontrado temas."
#: ../../Zotlabs/Module/Admin/Themes.php:72
#: ../../Zotlabs/Module/Admin/Addons.php:259 ../../Zotlabs/Module/Thing.php:94
#: ../../Zotlabs/Module/Viewsrc.php:25 ../../Zotlabs/Module/Display.php:45
-#: ../../Zotlabs/Module/Display.php:452
+#: ../../Zotlabs/Module/Display.php:450
#: ../../Zotlabs/Module/Filestorage.php:24 ../../Zotlabs/Module/Admin.php:62
-#: ../../include/items.php:3587
+#: ../../include/items.php:3693
msgid "Item not found."
msgstr "Elemento no encontrado."
@@ -2756,9 +2770,9 @@ msgid "Toggle"
msgstr "Cambiar"
#: ../../Zotlabs/Module/Admin/Themes.php:125
-#: ../../Zotlabs/Module/Admin/Addons.php:344 ../../Zotlabs/Lib/Apps.php:314
+#: ../../Zotlabs/Module/Admin/Addons.php:344 ../../Zotlabs/Lib/Apps.php:336
#: ../../Zotlabs/Widget/Newmember.php:53
-#: ../../Zotlabs/Widget/Settings_menu.php:68 ../../include/nav.php:97
+#: ../../Zotlabs/Widget/Settings_menu.php:61 ../../include/nav.php:97
msgid "Settings"
msgstr "Ajustes"
@@ -2786,7 +2800,7 @@ msgstr "Ajustes del sitio actualizados."
#: ../../Zotlabs/Module/Admin/Site.php:187
#: ../../view/theme/redbasic_c/php/config.php:15
-#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3087
+#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3210
msgid "Default"
msgstr "Predeterminado"
@@ -2860,7 +2874,7 @@ msgid "Advanced"
msgstr "Avanzado"
#: ../../Zotlabs/Module/Admin/Site.php:297
-#: ../../addon/statusnet/statusnet.php:891
+#: ../../addon/statusnet/statusnet.php:593
msgid "Site name"
msgstr "Nombre del sitio"
@@ -3057,7 +3071,7 @@ msgstr "Importar solo entradas del stream púlbico con este texto "
#: ../../Zotlabs/Module/Admin/Site.php:323
#: ../../Zotlabs/Module/Admin/Site.php:324
-#: ../../Zotlabs/Module/Connedit.php:876 ../../Zotlabs/Module/Connedit.php:877
+#: ../../Zotlabs/Module/Connedit.php:892 ../../Zotlabs/Module/Connedit.php:893
msgid ""
"words one per line or #tags or /patterns/ or lang=xx, leave blank to import "
"all posts"
@@ -3243,7 +3257,7 @@ msgid "Plugin %s enabled."
msgstr "Extensión %s activada."
#: ../../Zotlabs/Module/Admin/Addons.php:342
-#: ../../Zotlabs/Module/Admin/Addons.php:437 ../../Zotlabs/Widget/Admin.php:27
+#: ../../Zotlabs/Module/Admin/Addons.php:440 ../../Zotlabs/Widget/Admin.php:27
msgid "Addons"
msgstr "Addons"
@@ -3268,56 +3282,56 @@ msgid "Requires: "
msgstr "Se requiere:"
#: ../../Zotlabs/Module/Admin/Addons.php:358
-#: ../../Zotlabs/Module/Admin/Addons.php:442
+#: ../../Zotlabs/Module/Admin/Addons.php:445
msgid "Disabled - version incompatibility"
msgstr "Deshabilitado - versiones incompatibles"
-#: ../../Zotlabs/Module/Admin/Addons.php:411
+#: ../../Zotlabs/Module/Admin/Addons.php:414
msgid "Enter the public git repository URL of the addon repo."
msgstr "Introduzca la URL del repositorio público de git del addon repo."
-#: ../../Zotlabs/Module/Admin/Addons.php:412
+#: ../../Zotlabs/Module/Admin/Addons.php:415
msgid "Addon repo git URL"
msgstr "URL del repositorio git del addon"
-#: ../../Zotlabs/Module/Admin/Addons.php:413
+#: ../../Zotlabs/Module/Admin/Addons.php:416
msgid "Custom repo name"
msgstr "Nombre personalizado del repositorio"
-#: ../../Zotlabs/Module/Admin/Addons.php:413
+#: ../../Zotlabs/Module/Admin/Addons.php:416
msgid "(optional)"
msgstr "(opcional)"
-#: ../../Zotlabs/Module/Admin/Addons.php:414
+#: ../../Zotlabs/Module/Admin/Addons.php:417
msgid "Download Addon Repo"
msgstr "Descargar el repositorio"
-#: ../../Zotlabs/Module/Admin/Addons.php:421
+#: ../../Zotlabs/Module/Admin/Addons.php:424
msgid "Install new repo"
msgstr "Instalar un nuevo repositorio"
-#: ../../Zotlabs/Module/Admin/Addons.php:422 ../../Zotlabs/Lib/Apps.php:513
+#: ../../Zotlabs/Module/Admin/Addons.php:425 ../../Zotlabs/Lib/Apps.php:535
msgid "Install"
msgstr "Instalar"
-#: ../../Zotlabs/Module/Admin/Addons.php:445
+#: ../../Zotlabs/Module/Admin/Addons.php:448
msgid "Manage Repos"
msgstr "Gestionar los repositorios"
-#: ../../Zotlabs/Module/Admin/Addons.php:446
+#: ../../Zotlabs/Module/Admin/Addons.php:449
msgid "Installed Addon Repositories"
msgstr "Repositorioe de addons instalados"
-#: ../../Zotlabs/Module/Admin/Addons.php:447
+#: ../../Zotlabs/Module/Admin/Addons.php:450
msgid "Install a New Addon Repository"
msgstr "Instalar un nuevo repositorio de addons"
-#: ../../Zotlabs/Module/Admin/Addons.php:454
+#: ../../Zotlabs/Module/Admin/Addons.php:457
msgid "Switch branch"
msgstr "Cambiar la rama"
-#: ../../Zotlabs/Module/Admin/Addons.php:455
-#: ../../Zotlabs/Module/Photos.php:1022 ../../Zotlabs/Module/Tagrm.php:137
+#: ../../Zotlabs/Module/Admin/Addons.php:458
+#: ../../Zotlabs/Module/Photos.php:1035 ../../Zotlabs/Module/Tagrm.php:137
#: ../../addon/superblock/Mod_Superblock.php:91
msgid "Remove"
msgstr "Eliminar"
@@ -3364,8 +3378,9 @@ msgstr "Información adicional (opcional)"
#: ../../Zotlabs/Module/Admin/Profs.php:94
#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Rbmark.php:32
#: ../../Zotlabs/Module/Rbmark.php:104 ../../Zotlabs/Module/Filer.php:53
-#: ../../Zotlabs/Widget/Notes.php:23 ../../include/text.php:1069
-#: ../../include/text.php:1081
+#: ../../Zotlabs/Widget/Notes.php:23
+#: ../../addon/queueworker/Mod_Queueworker.php:102 ../../include/text.php:1085
+#: ../../include/text.php:1097
msgid "Save"
msgstr "Guardar"
@@ -3573,7 +3588,7 @@ msgid "Visible to:"
msgstr "Visible para:"
#: ../../Zotlabs/Module/Lockview.php:117 ../../Zotlabs/Module/Lockview.php:153
-#: ../../Zotlabs/Module/Acl.php:120 ../../include/acl_selectors.php:88
+#: ../../Zotlabs/Module/Acl.php:121 ../../include/acl_selectors.php:88
msgctxt "acl"
msgid "Profile"
msgstr "Perfil"
@@ -3591,19 +3606,19 @@ msgstr "Se ha eliminado el comentario"
#: ../../Zotlabs/Module/Settings/Channel.php:75
#: ../../Zotlabs/Module/Settings/Channel.php:78
#: ../../Zotlabs/Module/Settings/Channel.php:89
-#: ../../Zotlabs/Module/Connedit.php:712 ../../Zotlabs/Widget/Affinity.php:24
-#: ../../include/selectors.php:134 ../../include/channel.php:444
-#: ../../include/channel.php:445 ../../include/channel.php:452
+#: ../../Zotlabs/Module/Connedit.php:725 ../../Zotlabs/Widget/Affinity.php:32
+#: ../../include/selectors.php:134 ../../include/channel.php:493
+#: ../../include/channel.php:494 ../../include/channel.php:501
msgid "Friends"
msgstr "Amigos/as"
#: ../../Zotlabs/Module/Settings/Channel.php:266
#: ../../Zotlabs/Module/Defperms.php:111
#: ../../addon/rendezvous/rendezvous.php:82
-#: ../../addon/openstreetmap/openstreetmap.php:184
+#: ../../addon/openstreetmap/openstreetmap.php:185
#: ../../addon/msgfooter/msgfooter.php:54 ../../addon/logrot/logrot.php:54
-#: ../../addon/twitter/twitter.php:775 ../../addon/piwik/piwik.php:116
-#: ../../addon/xmpp/xmpp.php:102
+#: ../../addon/twitter/twitter.php:605 ../../addon/piwik/piwik.php:116
+#: ../../addon/xmpp/xmpp.php:54
msgid "Settings updated."
msgstr "Ajustes actualizados."
@@ -3678,7 +3693,7 @@ msgid "Basic Settings"
msgstr "Configuración básica"
#: ../../Zotlabs/Module/Settings/Channel.php:499
-#: ../../include/channel.php:1528
+#: ../../include/channel.php:1577
msgid "Full Name:"
msgstr "Nombre completo:"
@@ -3895,7 +3910,7 @@ msgstr "Mensajes privados no leídos"
#: ../../Zotlabs/Module/Settings/Channel.php:572
#: ../../Zotlabs/Module/Settings/Channel.php:573
#: ../../Zotlabs/Module/Settings/Channel.php:574
-#: ../../addon/jappixmini/jappixmini.php:343
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
msgid "Recommended"
msgstr "Recomendado"
@@ -4104,39 +4119,15 @@ msgstr "Gestión de los perfiles"
msgid "Channel Manager Settings"
msgstr "Ajustes del administrador de canales"
-#: ../../Zotlabs/Module/Settings/Featured.php:23
-msgid "Affinity Slider settings updated."
-msgstr "Se han actualizado los ajustes del controlador de afinidad."
-
-#: ../../Zotlabs/Module/Settings/Featured.php:38
+#: ../../Zotlabs/Module/Settings/Featured.php:24
msgid "No feature settings configured"
msgstr "No se ha establecido la configuración de los complementos"
-#: ../../Zotlabs/Module/Settings/Featured.php:45
-msgid "Default maximum affinity level"
-msgstr "Nivel máximo de afinidad por defecto"
-
-#: ../../Zotlabs/Module/Settings/Featured.php:45
-msgid "0-99 default 99"
-msgstr "0-99 por defecto 99"
-
-#: ../../Zotlabs/Module/Settings/Featured.php:50
-msgid "Default minimum affinity level"
-msgstr "Nivel mínimo de afinidad por defecto"
-
-#: ../../Zotlabs/Module/Settings/Featured.php:50
-msgid "0-99 - default 0"
-msgstr "0-99 - por defecto 0"
-
-#: ../../Zotlabs/Module/Settings/Featured.php:54
-msgid "Affinity Slider Settings"
-msgstr "Ajustes del controlador de afinidad"
-
-#: ../../Zotlabs/Module/Settings/Featured.php:67
+#: ../../Zotlabs/Module/Settings/Featured.php:33
msgid "Addon Settings"
msgstr "Ajustes de los complementos"
-#: ../../Zotlabs/Module/Settings/Featured.php:68
+#: ../../Zotlabs/Module/Settings/Featured.php:34
msgid "Please save/submit changes to any panel before opening another."
msgstr "Guarde o envíe los cambios a cualquier panel antes de abrir otro."
@@ -4262,20 +4253,20 @@ msgstr "Mostrar el menú de enlaces rápidos para nuevos miembros"
msgid "Stream Settings"
msgstr "Ajustes del stream"
-#: ../../Zotlabs/Module/Embedphotos.php:140
-#: ../../Zotlabs/Module/Photos.php:813 ../../Zotlabs/Module/Photos.php:1352
+#: ../../Zotlabs/Module/Embedphotos.php:148
+#: ../../Zotlabs/Module/Photos.php:826 ../../Zotlabs/Module/Photos.php:1374
#: ../../Zotlabs/Widget/Portfolio.php:87 ../../Zotlabs/Widget/Album.php:78
msgid "View Photo"
msgstr "Ver foto"
-#: ../../Zotlabs/Module/Embedphotos.php:156
-#: ../../Zotlabs/Module/Photos.php:844 ../../Zotlabs/Widget/Portfolio.php:108
+#: ../../Zotlabs/Module/Embedphotos.php:164
+#: ../../Zotlabs/Module/Photos.php:857 ../../Zotlabs/Widget/Portfolio.php:108
#: ../../Zotlabs/Widget/Album.php:95
msgid "Edit Album"
msgstr "Editar álbum"
-#: ../../Zotlabs/Module/Embedphotos.php:158
-#: ../../Zotlabs/Module/Photos.php:714
+#: ../../Zotlabs/Module/Embedphotos.php:166
+#: ../../Zotlabs/Module/Photos.php:727
#: ../../Zotlabs/Module/Profile_photo.php:459
#: ../../Zotlabs/Module/Cover_photo.php:395
#: ../../Zotlabs/Storage/Browser.php:392 ../../Zotlabs/Widget/Cdav.php:133
@@ -4335,7 +4326,7 @@ msgstr "Contraseña de inicio de sesión"
msgid "Expires (yyyy-mm-dd)"
msgstr "Expira (aaaa-mm-dd)"
-#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:891
+#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:907
msgid "Their Settings"
msgstr "Sus ajustes"
@@ -4397,8 +4388,8 @@ msgid "URL for photo of thing (optional)"
msgstr "Dirección para la foto o elemento (opcional)"
#: ../../Zotlabs/Module/Thing.php:319 ../../Zotlabs/Module/Thing.php:372
-#: ../../Zotlabs/Module/Photos.php:704 ../../Zotlabs/Module/Photos.php:1073
-#: ../../Zotlabs/Module/Connedit.php:677 ../../Zotlabs/Module/Chat.php:243
+#: ../../Zotlabs/Module/Photos.php:717 ../../Zotlabs/Module/Photos.php:1086
+#: ../../Zotlabs/Module/Connedit.php:690 ../../Zotlabs/Module/Chat.php:243
#: ../../Zotlabs/Module/Filestorage.php:170
#: ../../include/acl_selectors.php:123
msgid "Permissions"
@@ -4422,56 +4413,56 @@ msgstr "Notificaciones del sistema"
msgid "Connection added."
msgstr "Se ha incorporado una conexión."
-#: ../../Zotlabs/Module/Import.php:146
+#: ../../Zotlabs/Module/Import.php:155
#, php-format
msgid "Your service plan only allows %d channels."
msgstr "Su paquete de servicios solo permite %d canales."
-#: ../../Zotlabs/Module/Import.php:173
+#: ../../Zotlabs/Module/Import.php:182
msgid "No channel. Import failed."
msgstr "No hay canal. La importación ha fallado"
-#: ../../Zotlabs/Module/Import.php:513
+#: ../../Zotlabs/Module/Import.php:522
#: ../../addon/diaspora/import_diaspora.php:141
msgid "Import completed."
msgstr "Importación completada."
-#: ../../Zotlabs/Module/Import.php:541
+#: ../../Zotlabs/Module/Import.php:550
msgid "You must be logged in to use this feature."
msgstr "Debe estar registrado para poder usar esta funcionalidad."
-#: ../../Zotlabs/Module/Import.php:546
+#: ../../Zotlabs/Module/Import.php:555
msgid "Import Channel"
msgstr "Importar canal"
-#: ../../Zotlabs/Module/Import.php:547
+#: ../../Zotlabs/Module/Import.php:556
msgid ""
"Use this form to import an existing channel from a different server/hub. You"
" may retrieve the channel identity from the old server/hub via the network "
"or provide an export file."
msgstr "Emplee este formulario para importar un canal desde un servidor/hub diferente. Puede recuperar el canal desde el antiguo servidor/hub a través de la red o proporcionando un fichero de exportación."
-#: ../../Zotlabs/Module/Import.php:549
+#: ../../Zotlabs/Module/Import.php:558
msgid "Or provide the old server/hub details"
msgstr "O proporcione los detalles de su antiguo servidor/hub"
-#: ../../Zotlabs/Module/Import.php:551
+#: ../../Zotlabs/Module/Import.php:560
msgid "Your old identity address (xyz@example.com)"
msgstr "Su identidad en el antiguo servidor (canal@ejemplo.com)"
-#: ../../Zotlabs/Module/Import.php:552
+#: ../../Zotlabs/Module/Import.php:561
msgid "Your old login email address"
msgstr "Su antigua dirección de correo electrónico"
-#: ../../Zotlabs/Module/Import.php:553
+#: ../../Zotlabs/Module/Import.php:562
msgid "Your old login password"
msgstr "Su antigua contraseña"
-#: ../../Zotlabs/Module/Import.php:554
+#: ../../Zotlabs/Module/Import.php:563
msgid "Import a few months of posts if possible (limited by available memory"
msgstr "Importar unos meses de mensajes si es posible (limitado por la memoria disponible"
-#: ../../Zotlabs/Module/Import.php:556
+#: ../../Zotlabs/Module/Import.php:565
msgid ""
"For either option, please choose whether to make this hub your new primary "
"address, or whether your old location should continue this role. You will be"
@@ -4479,45 +4470,45 @@ msgid ""
"primary location for files, photos, and media."
msgstr "Para cualquiera de las opciones, elija si hacer de este servidor su nueva dirección primaria, o si su antigua dirección debe continuar con este papel. Usted podrá publicar desde cualquier ubicación, pero sólo una puede estar marcada como la ubicación principal para los ficheros, fotos y otras imágenes o vídeos."
-#: ../../Zotlabs/Module/Import.php:558
+#: ../../Zotlabs/Module/Import.php:567
msgid "Make this hub my primary location"
msgstr "Convertir este servidor en mi ubicación primaria"
-#: ../../Zotlabs/Module/Import.php:559
+#: ../../Zotlabs/Module/Import.php:568
msgid "Move this channel (disable all previous locations)"
msgstr "Mover este canal (desactivar todas las ubicaciones anteriores)"
-#: ../../Zotlabs/Module/Import.php:560
+#: ../../Zotlabs/Module/Import.php:569
msgid "Use this channel nickname instead of the one provided"
msgstr "Usa este alias de canal en lugar del que se proporciona"
-#: ../../Zotlabs/Module/Import.php:560
+#: ../../Zotlabs/Module/Import.php:569
msgid ""
"Leave blank to keep your existing channel nickname. You will be randomly "
"assigned a similar nickname if either name is already allocated on this "
"site."
msgstr "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
+#: ../../Zotlabs/Module/Import.php:571
msgid ""
"This process may take several minutes to complete. Please submit the form "
"only once and leave this page open until finished."
msgstr "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."
-#: ../../Zotlabs/Module/Rmagic.php:35
+#: ../../Zotlabs/Module/Rmagic.php:44
msgid "Authentication failed."
msgstr "Falló la autenticación."
-#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1626
-#: ../../include/channel.php:2341
+#: ../../Zotlabs/Module/Rmagic.php:93 ../../boot.php:1630
+#: ../../include/channel.php:2405
msgid "Remote Authentication"
msgstr "Acceso desde su servidor"
-#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2342
+#: ../../Zotlabs/Module/Rmagic.php:94 ../../include/channel.php:2406
msgid "Enter your channel address (e.g. channel@example.com)"
msgstr "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)"
-#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2343
+#: ../../Zotlabs/Module/Rmagic.php:95 ../../include/channel.php:2407
msgid "Authenticate"
msgstr "Acceder"
@@ -4544,7 +4535,7 @@ msgstr "Nombre de la aplicación"
#: ../../Zotlabs/Module/Oauth2.php:119 ../../Zotlabs/Module/Oauth2.php:147
#: ../../Zotlabs/Module/Oauth.php:115 ../../Zotlabs/Module/Oauth.php:141
-#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:785
+#: ../../addon/statusnet/statusnet.php:595 ../../addon/twitter/twitter.php:615
msgid "Consumer Secret"
msgstr "Consumer Secret"
@@ -4611,7 +4602,7 @@ msgstr "Eliminar autorización"
msgid "Permissions denied."
msgstr "Permisos denegados."
-#: ../../Zotlabs/Module/Cal.php:343 ../../include/text.php:2489
+#: ../../Zotlabs/Module/Cal.php:343 ../../include/text.php:2558
msgid "Import"
msgstr "Importar"
@@ -4669,21 +4660,21 @@ msgstr "Administrar apps"
msgid "Create Custom App"
msgstr "Crear una app personalizada"
-#: ../../Zotlabs/Module/Mood.php:75 ../../include/conversation.php:268
+#: ../../Zotlabs/Module/Mood.php:76 ../../include/conversation.php:268
#, php-format
msgctxt "mood"
msgid "%1$s is %2$s"
msgstr "%1$s está %2$s"
-#: ../../Zotlabs/Module/Mood.php:132
+#: ../../Zotlabs/Module/Mood.php:134
msgid "Mood App"
msgstr "App Estados de ánimo"
-#: ../../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 "Describir su estado de ánimo para comunicárselo a sus amigos"
-#: ../../Zotlabs/Module/Mood.php:152 ../../Zotlabs/Lib/Apps.php:325
+#: ../../Zotlabs/Module/Mood.php:154 ../../Zotlabs/Lib/Apps.php:347
msgid "Mood"
msgstr "Estado de ánimo"
@@ -4724,7 +4715,7 @@ msgstr "Nuevas"
#: ../../Zotlabs/Module/Connections.php:97
#: ../../Zotlabs/Module/Connections.php:111
-#: ../../Zotlabs/Module/Connedit.php:714 ../../Zotlabs/Widget/Affinity.php:26
+#: ../../Zotlabs/Module/Connedit.php:727 ../../Zotlabs/Widget/Affinity.php:34
msgid "All"
msgstr "Todos/as"
@@ -4819,7 +4810,7 @@ msgid "Ignore connection"
msgstr "Ignorar esta conexión"
#: ../../Zotlabs/Module/Connections.php:308
-#: ../../Zotlabs/Module/Connedit.php:631
+#: ../../Zotlabs/Module/Connedit.php:644
msgid "Ignore"
msgstr "Ignorar"
@@ -4827,8 +4818,8 @@ msgstr "Ignorar"
msgid "Recent activity"
msgstr "Actividad reciente"
-#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:308
-#: ../../include/text.php:981 ../../include/features.php:125
+#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:330
+#: ../../include/text.php:991 ../../include/features.php:125
msgid "Connections"
msgstr "Conexiones"
@@ -4910,190 +4901,190 @@ msgstr "Álbum no encontrado."
msgid "Delete Album"
msgstr "Borrar álbum"
-#: ../../Zotlabs/Module/Photos.php:174 ../../Zotlabs/Module/Photos.php:1085
+#: ../../Zotlabs/Module/Photos.php:174 ../../Zotlabs/Module/Photos.php:1098
msgid "Delete Photo"
msgstr "Borrar foto"
-#: ../../Zotlabs/Module/Photos.php:556
+#: ../../Zotlabs/Module/Photos.php:569
msgid "No photos selected"
msgstr "No hay fotos seleccionadas"
-#: ../../Zotlabs/Module/Photos.php:605
+#: ../../Zotlabs/Module/Photos.php:618
msgid "Access to this item is restricted."
msgstr "El acceso a este elemento está restringido."
-#: ../../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 MB de %2$.2f MB de almacenamiento de fotos utilizado."
-#: ../../Zotlabs/Module/Photos.php:651
+#: ../../Zotlabs/Module/Photos.php:664
#, php-format
msgid "%1$.2f MB photo storage used."
msgstr "%1$.2f MB de almacenamiento de fotos utilizado."
-#: ../../Zotlabs/Module/Photos.php:693
+#: ../../Zotlabs/Module/Photos.php:706
msgid "Upload Photos"
msgstr "Subir fotos"
-#: ../../Zotlabs/Module/Photos.php:697
+#: ../../Zotlabs/Module/Photos.php:710
msgid "Enter an album name"
msgstr "Introducir un nombre de álbum"
-#: ../../Zotlabs/Module/Photos.php:698
+#: ../../Zotlabs/Module/Photos.php:711
msgid "or select an existing album (doubleclick)"
msgstr "o seleccionar un álbum (con un doble click)"
-#: ../../Zotlabs/Module/Photos.php:699
+#: ../../Zotlabs/Module/Photos.php:712
msgid "Create a status post for this upload"
msgstr "Crear un mensaje de estado para esta subida"
-#: ../../Zotlabs/Module/Photos.php:701
+#: ../../Zotlabs/Module/Photos.php:714
msgid "Description (optional)"
msgstr "Descripción (opcional)"
-#: ../../Zotlabs/Module/Photos.php:787
+#: ../../Zotlabs/Module/Photos.php:800
msgid "Show Newest First"
msgstr "Mostrar lo más reciente primero"
-#: ../../Zotlabs/Module/Photos.php:789
+#: ../../Zotlabs/Module/Photos.php:802
msgid "Show Oldest First"
msgstr "Mostrar lo más antiguo primero"
-#: ../../Zotlabs/Module/Photos.php:846 ../../Zotlabs/Module/Photos.php:1383
+#: ../../Zotlabs/Module/Photos.php:859 ../../Zotlabs/Module/Photos.php:1405
msgid "Add Photos"
msgstr "Añadir fotos"
-#: ../../Zotlabs/Module/Photos.php:894
+#: ../../Zotlabs/Module/Photos.php:907
msgid "Permission denied. Access to this item may be restricted."
msgstr "Permiso denegado. El acceso a este elemento puede estar restringido."
-#: ../../Zotlabs/Module/Photos.php:896
+#: ../../Zotlabs/Module/Photos.php:909
msgid "Photo not available"
msgstr "Foto no disponible"
-#: ../../Zotlabs/Module/Photos.php:954
+#: ../../Zotlabs/Module/Photos.php:967
msgid "Use as profile photo"
msgstr "Usar como foto del perfil"
-#: ../../Zotlabs/Module/Photos.php:955
+#: ../../Zotlabs/Module/Photos.php:968
msgid "Use as cover photo"
msgstr "Usar como imagen de portada del perfil"
-#: ../../Zotlabs/Module/Photos.php:962
+#: ../../Zotlabs/Module/Photos.php:975
msgid "Private Photo"
msgstr "Foto privada"
-#: ../../Zotlabs/Module/Photos.php:977
+#: ../../Zotlabs/Module/Photos.php:990
msgid "View Full Size"
msgstr "Ver tamaño completo"
-#: ../../Zotlabs/Module/Photos.php:1059
+#: ../../Zotlabs/Module/Photos.php:1072
msgid "Edit photo"
msgstr "Editar foto"
-#: ../../Zotlabs/Module/Photos.php:1061
+#: ../../Zotlabs/Module/Photos.php:1074
msgid "Rotate CW (right)"
msgstr "Girar CW (a la derecha)"
-#: ../../Zotlabs/Module/Photos.php:1062
+#: ../../Zotlabs/Module/Photos.php:1075
msgid "Rotate CCW (left)"
msgstr "Girar CCW (a la izquierda)"
-#: ../../Zotlabs/Module/Photos.php:1065
+#: ../../Zotlabs/Module/Photos.php:1078
msgid "Move photo to album"
msgstr "Mover la foto a un álbum"
-#: ../../Zotlabs/Module/Photos.php:1066
+#: ../../Zotlabs/Module/Photos.php:1079
msgid "Enter a new album name"
msgstr "Introducir un nuevo nombre de álbum"
-#: ../../Zotlabs/Module/Photos.php:1067
+#: ../../Zotlabs/Module/Photos.php:1080
msgid "or select an existing one (doubleclick)"
msgstr "o seleccionar un álbum (con un doble click)"
-#: ../../Zotlabs/Module/Photos.php:1072
+#: ../../Zotlabs/Module/Photos.php:1085
msgid "Add a Tag"
msgstr "Añadir una etiqueta"
-#: ../../Zotlabs/Module/Photos.php:1080
+#: ../../Zotlabs/Module/Photos.php:1093
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
msgstr "Ejemplos: @eva, @Carmen_Osuna, @jaime@ejemplo.com"
-#: ../../Zotlabs/Module/Photos.php:1083
+#: ../../Zotlabs/Module/Photos.php:1096
msgid "Flag as adult in album view"
msgstr "Marcar como \"solo para adultos\" en el álbum"
-#: ../../Zotlabs/Module/Photos.php:1102 ../../Zotlabs/Lib/ThreadItem.php:289
+#: ../../Zotlabs/Module/Photos.php:1115 ../../Zotlabs/Lib/ThreadItem.php:306
msgid "I like this (toggle)"
msgstr "Me gusta (cambiar)"
-#: ../../Zotlabs/Module/Photos.php:1103 ../../Zotlabs/Lib/ThreadItem.php:290
+#: ../../Zotlabs/Module/Photos.php:1116 ../../Zotlabs/Lib/ThreadItem.php:307
msgid "I don't like this (toggle)"
msgstr "No me gusta esto (cambiar)"
-#: ../../Zotlabs/Module/Photos.php:1105 ../../Zotlabs/Lib/ThreadItem.php:441
+#: ../../Zotlabs/Module/Photos.php:1118 ../../Zotlabs/Lib/ThreadItem.php:469
#: ../../include/conversation.php:787
msgid "Please wait"
msgstr "Espere por favor"
-#: ../../Zotlabs/Module/Photos.php:1121 ../../Zotlabs/Module/Photos.php:1239
-#: ../../Zotlabs/Lib/ThreadItem.php:764
+#: ../../Zotlabs/Module/Photos.php:1135 ../../Zotlabs/Module/Photos.php:1254
+#: ../../Zotlabs/Lib/ThreadItem.php:792
msgid "This is you"
msgstr "Este es usted"
-#: ../../Zotlabs/Module/Photos.php:1123 ../../Zotlabs/Module/Photos.php:1241
-#: ../../Zotlabs/Lib/ThreadItem.php:766 ../../include/js_strings.php:6
+#: ../../Zotlabs/Module/Photos.php:1137 ../../Zotlabs/Module/Photos.php:1256
+#: ../../Zotlabs/Lib/ThreadItem.php:794 ../../include/js_strings.php:6
msgid "Comment"
msgstr "Comentar"
-#: ../../Zotlabs/Module/Photos.php:1139 ../../include/conversation.php:619
+#: ../../Zotlabs/Module/Photos.php:1154 ../../include/conversation.php:619
msgctxt "title"
msgid "Likes"
msgstr "Me gusta"
-#: ../../Zotlabs/Module/Photos.php:1139 ../../include/conversation.php:619
+#: ../../Zotlabs/Module/Photos.php:1154 ../../include/conversation.php:619
msgctxt "title"
msgid "Dislikes"
msgstr "No me gusta"
-#: ../../Zotlabs/Module/Photos.php:1140 ../../include/conversation.php:620
+#: ../../Zotlabs/Module/Photos.php:1155 ../../include/conversation.php:620
msgctxt "title"
msgid "Agree"
msgstr "De acuerdo"
-#: ../../Zotlabs/Module/Photos.php:1140 ../../include/conversation.php:620
+#: ../../Zotlabs/Module/Photos.php:1155 ../../include/conversation.php:620
msgctxt "title"
msgid "Disagree"
msgstr "En desacuerdo"
-#: ../../Zotlabs/Module/Photos.php:1140 ../../include/conversation.php:620
+#: ../../Zotlabs/Module/Photos.php:1155 ../../include/conversation.php:620
msgctxt "title"
msgid "Abstain"
msgstr "Abstención"
-#: ../../Zotlabs/Module/Photos.php:1141 ../../include/conversation.php:621
+#: ../../Zotlabs/Module/Photos.php:1156 ../../include/conversation.php:621
msgctxt "title"
msgid "Attending"
msgstr "Participaré"
-#: ../../Zotlabs/Module/Photos.php:1141 ../../include/conversation.php:621
+#: ../../Zotlabs/Module/Photos.php:1156 ../../include/conversation.php:621
msgctxt "title"
msgid "Not attending"
msgstr "No participaré"
-#: ../../Zotlabs/Module/Photos.php:1141 ../../include/conversation.php:621
+#: ../../Zotlabs/Module/Photos.php:1156 ../../include/conversation.php:621
msgctxt "title"
msgid "Might attend"
msgstr "Quizá participe"
-#: ../../Zotlabs/Module/Photos.php:1158 ../../Zotlabs/Module/Photos.php:1170
-#: ../../Zotlabs/Lib/ThreadItem.php:214 ../../Zotlabs/Lib/ThreadItem.php:226
+#: ../../Zotlabs/Module/Photos.php:1173 ../../Zotlabs/Module/Photos.php:1185
+#: ../../Zotlabs/Lib/ThreadItem.php:231 ../../Zotlabs/Lib/ThreadItem.php:243
msgid "View all"
msgstr "Ver todo"
-#: ../../Zotlabs/Module/Photos.php:1162 ../../Zotlabs/Lib/ThreadItem.php:218
-#: ../../include/conversation.php:1693 ../../include/channel.php:1546
+#: ../../Zotlabs/Module/Photos.php:1177 ../../Zotlabs/Lib/ThreadItem.php:235
+#: ../../include/conversation.php:1702 ../../include/channel.php:1595
#: ../../include/taxonomy.php:661
msgctxt "noun"
msgid "Like"
@@ -5101,47 +5092,48 @@ msgid_plural "Likes"
msgstr[0] "Me gusta"
msgstr[1] "Me gusta"
-#: ../../Zotlabs/Module/Photos.php:1167 ../../Zotlabs/Lib/ThreadItem.php:223
-#: ../../include/conversation.php:1696
+#: ../../Zotlabs/Module/Photos.php:1182 ../../Zotlabs/Lib/ThreadItem.php:240
+#: ../../include/conversation.php:1705
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
msgstr[0] "No me gusta"
msgstr[1] "No me gusta"
-#: ../../Zotlabs/Module/Photos.php:1267
+#: ../../Zotlabs/Module/Photos.php:1288
msgid "Photo Tools"
msgstr "Gestión de las fotos"
-#: ../../Zotlabs/Module/Photos.php:1276
+#: ../../Zotlabs/Module/Photos.php:1297
msgid "In This Photo:"
msgstr "En esta foto:"
-#: ../../Zotlabs/Module/Photos.php:1281
+#: ../../Zotlabs/Module/Photos.php:1302
msgid "Map"
msgstr "Mapa"
-#: ../../Zotlabs/Module/Photos.php:1289 ../../Zotlabs/Lib/ThreadItem.php:429
+#: ../../Zotlabs/Module/Photos.php:1310 ../../Zotlabs/Lib/ThreadItem.php:457
msgctxt "noun"
msgid "Likes"
msgstr "Me gusta"
-#: ../../Zotlabs/Module/Photos.php:1290 ../../Zotlabs/Lib/ThreadItem.php:430
+#: ../../Zotlabs/Module/Photos.php:1311 ../../Zotlabs/Lib/ThreadItem.php:458
msgctxt "noun"
msgid "Dislikes"
msgstr "No me gusta"
-#: ../../Zotlabs/Module/Photos.php:1295 ../../Zotlabs/Lib/ThreadItem.php:435
+#: ../../Zotlabs/Module/Photos.php:1316 ../../Zotlabs/Lib/ThreadItem.php:463
#: ../../include/acl_selectors.php:125
msgid "Close"
msgstr "Cerrar"
-#: ../../Zotlabs/Module/Photos.php:1367 ../../Zotlabs/Module/Photos.php:1380
-#: ../../Zotlabs/Module/Photos.php:1381 ../../include/photos.php:668
+#: ../../Zotlabs/Module/Photos.php:1389 ../../Zotlabs/Module/Photos.php:1402
+#: ../../Zotlabs/Module/Photos.php:1403 ../../include/photos.php:670
msgid "Recent Photos"
msgstr "Fotos recientes"
-#: ../../Zotlabs/Module/Wiki.php:35 ../../addon/cart/cart.php:1297
+#: ../../Zotlabs/Module/Wiki.php:35
+#: ../../addon/flashcards/Mod_Flashcards.php:34 ../../addon/cart/cart.php:1298
msgid "Profile Unavailable."
msgstr "Perfil no disponible"
@@ -5154,7 +5146,7 @@ msgid "Provide a wiki for your channel"
msgstr "Proporcionar un wiki para su canal"
#: ../../Zotlabs/Module/Wiki.php:77 ../../addon/cart/myshop.php:37
-#: ../../addon/cart/cart.php:1440
+#: ../../addon/cart/cart.php:1444
#: ../../addon/cart/submodules/paypalbutton.php:456
#: ../../addon/cart/manual_payments.php:93
msgid "Invalid channel"
@@ -5172,8 +5164,8 @@ msgstr "Error al crear el fichero comprimido zip de la carpeta a exportar"
msgid "Error downloading wiki: "
msgstr "Error al descargar el wiki: "
-#: ../../Zotlabs/Module/Wiki.php:206 ../../Zotlabs/Widget/Wiki_list.php:19
-#: ../../include/nav.php:506
+#: ../../Zotlabs/Module/Wiki.php:206 ../../Zotlabs/Widget/Wiki_list.php:15
+#: ../../include/nav.php:536
msgid "Wikis"
msgstr "Wikis"
@@ -5197,18 +5189,18 @@ msgstr "Tipo de contenido"
#: ../../Zotlabs/Module/Wiki.php:217 ../../Zotlabs/Module/Wiki.php:371
#: ../../Zotlabs/Widget/Wiki_pages.php:38
#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../addon/mdpost/mdpost.php:41
-#: ../../include/text.php:1892
+#: ../../include/text.php:1955
msgid "Markdown"
msgstr "Markdown"
#: ../../Zotlabs/Module/Wiki.php:217 ../../Zotlabs/Module/Wiki.php:371
#: ../../Zotlabs/Widget/Wiki_pages.php:38
-#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1890
+#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1953
msgid "BBcode"
msgstr "BBcode"
#: ../../Zotlabs/Module/Wiki.php:217 ../../Zotlabs/Widget/Wiki_pages.php:38
-#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1893
+#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1956
msgid "Text"
msgstr "Texto"
@@ -5274,15 +5266,15 @@ msgid "Embed image from photo albums"
msgstr "Incluir una imagen de los álbumes de fotos"
#: ../../Zotlabs/Module/Wiki.php:400 ../../addon/hsse/hsse.php:208
-#: ../../include/conversation.php:1411
+#: ../../include/conversation.php:1414
msgid "Embed an image from your albums"
msgstr "Incluir una imagen de sus álbumes"
#: ../../Zotlabs/Module/Wiki.php:402
#: ../../Zotlabs/Module/Profile_photo.php:466
#: ../../Zotlabs/Module/Cover_photo.php:400 ../../addon/hsse/hsse.php:210
-#: ../../addon/hsse/hsse.php:257 ../../include/conversation.php:1413
-#: ../../include/conversation.php:1460
+#: ../../addon/hsse/hsse.php:257 ../../include/conversation.php:1416
+#: ../../include/conversation.php:1463
msgid "OK"
msgstr "OK"
@@ -5383,6 +5375,15 @@ msgstr "Revisión seleccionada"
msgid "You must be authenticated."
msgstr "Debe estar autenticado."
+#: ../../Zotlabs/Module/Share.php:103 ../../Zotlabs/Lib/Activity.php:1473
+#, php-format
+msgid "&#x1f501; Repeated %1$s's %2$s"
+msgstr "&#x1f501; Repetidos %2$sde %1$s"
+
+#: ../../Zotlabs/Module/Share.php:119
+msgid "Post repeated"
+msgstr "Entrada repetida"
+
#: ../../Zotlabs/Module/Chanview.php:139
msgid "toggle full screen mode"
msgstr "cambiar al modo de pantalla completa"
@@ -5439,7 +5440,7 @@ msgstr "App Toques"
msgid "Poke somebody in your addressbook"
msgstr "Dar un toque a alguien en su libreta de direcciones"
-#: ../../Zotlabs/Module/Poke.php:199 ../../Zotlabs/Lib/Apps.php:326
+#: ../../Zotlabs/Module/Poke.php:199 ../../Zotlabs/Lib/Apps.php:348
#: ../../include/conversation.php:1098
msgid "Poke"
msgstr "Toques y otras cosas"
@@ -5475,7 +5476,7 @@ msgstr "Imagen actualizada, pero el recorte de la imagen ha fallado. "
#: ../../Zotlabs/Module/Profile_photo.php:120
#: ../../Zotlabs/Module/Profile_photo.php:248
-#: ../../include/photo/photo_driver.php:741
+#: ../../include/photo/photo_driver.php:367
msgid "Profile Photos"
msgstr "Fotos del perfil"
@@ -5582,73 +5583,73 @@ msgstr "Ausente"
msgid "Online"
msgstr "Conectado/a"
-#: ../../Zotlabs/Module/Item.php:194
+#: ../../Zotlabs/Module/Item.php:341
msgid "Unable to locate original post."
msgstr "No ha sido posible encontrar la entrada original."
-#: ../../Zotlabs/Module/Item.php:479
+#: ../../Zotlabs/Module/Item.php:628
msgid "Empty post discarded."
msgstr "La entrada vacía ha sido desechada."
-#: ../../Zotlabs/Module/Item.php:866
+#: ../../Zotlabs/Module/Item.php:1037
msgid "Duplicate post suppressed."
msgstr "Se ha suprimido la entrada duplicada."
-#: ../../Zotlabs/Module/Item.php:1011
+#: ../../Zotlabs/Module/Item.php:1182
msgid "System error. Post not saved."
msgstr "Error del sistema. La entrada no se ha podido salvar."
-#: ../../Zotlabs/Module/Item.php:1047
+#: ../../Zotlabs/Module/Item.php:1218
msgid "Your comment is awaiting approval."
msgstr "Su comentario está pendiente de aprobación."
-#: ../../Zotlabs/Module/Item.php:1164
+#: ../../Zotlabs/Module/Item.php:1335
msgid "Unable to obtain post information from database."
msgstr "No ha sido posible obtener información de la entrada en la base de datos."
-#: ../../Zotlabs/Module/Item.php:1171
+#: ../../Zotlabs/Module/Item.php:1342
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr "Ha alcanzado su límite de %1$.0f entradas en la página principal."
-#: ../../Zotlabs/Module/Item.php:1178
+#: ../../Zotlabs/Module/Item.php:1349
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr "Ha alcanzado su límite de %1$.0f páginas web."
-#: ../../Zotlabs/Module/Ping.php:337
+#: ../../Zotlabs/Module/Ping.php:338
msgid "sent you a private message"
msgstr "le ha enviado un mensaje privado"
-#: ../../Zotlabs/Module/Ping.php:390
+#: ../../Zotlabs/Module/Ping.php:394
msgid "added your channel"
msgstr "añadió este canal a sus conexiones"
-#: ../../Zotlabs/Module/Ping.php:414
+#: ../../Zotlabs/Module/Ping.php:419
msgid "requires approval"
msgstr "requiere aprobación"
-#: ../../Zotlabs/Module/Ping.php:424
+#: ../../Zotlabs/Module/Ping.php:429
msgid "g A l F d"
msgstr "g A l d F"
-#: ../../Zotlabs/Module/Ping.php:442
+#: ../../Zotlabs/Module/Ping.php:447
msgid "[today]"
msgstr "[hoy]"
-#: ../../Zotlabs/Module/Ping.php:451
+#: ../../Zotlabs/Module/Ping.php:457
msgid "posted an event"
msgstr "publicó un evento"
-#: ../../Zotlabs/Module/Ping.php:484
+#: ../../Zotlabs/Module/Ping.php:491
msgid "shared a file with you"
msgstr "compartió un archivo con usted"
-#: ../../Zotlabs/Module/Ping.php:659
+#: ../../Zotlabs/Module/Ping.php:673
msgid "Private forum"
msgstr "Foro privado"
-#: ../../Zotlabs/Module/Ping.php:659
+#: ../../Zotlabs/Module/Ping.php:673
msgid "Public forum"
msgstr "Foro público"
@@ -5660,7 +5661,7 @@ msgstr "Elemento no válido."
#: ../../Zotlabs/Module/Display.php:140 ../../Zotlabs/Module/Display.php:157
#: ../../Zotlabs/Module/Display.php:174
#: ../../Zotlabs/Lib/NativeWikiPage.php:521 ../../Zotlabs/Web/Router.php:185
-#: ../../include/help.php:132
+#: ../../addon/chess/Mod_Chess.php:447 ../../include/help.php:132
msgid "Page not found."
msgstr "Página no encontrada."
@@ -5674,302 +5675,302 @@ msgid ""
"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
-#: ../../Zotlabs/Module/Connedit.php:80 ../../Zotlabs/Module/Defperms.php:67
+#: ../../Zotlabs/Module/Connedit.php:81 ../../Zotlabs/Module/Defperms.php:67
msgid "Could not access contact record."
msgstr "No se ha podido acceder al registro de contacto."
-#: ../../Zotlabs/Module/Connedit.php:110
+#: ../../Zotlabs/Module/Connedit.php:112
msgid "Could not locate selected profile."
msgstr "No se ha podido localizar el perfil seleccionado."
-#: ../../Zotlabs/Module/Connedit.php:247
+#: ../../Zotlabs/Module/Connedit.php:256
msgid "Connection updated."
msgstr "Conexión actualizada."
-#: ../../Zotlabs/Module/Connedit.php:249
+#: ../../Zotlabs/Module/Connedit.php:258
msgid "Failed to update connection record."
msgstr "Error al actualizar el registro de la conexión."
-#: ../../Zotlabs/Module/Connedit.php:303
+#: ../../Zotlabs/Module/Connedit.php:312
msgid "is now connected to"
msgstr "ahora está conectado/a"
-#: ../../Zotlabs/Module/Connedit.php:428
+#: ../../Zotlabs/Module/Connedit.php:437
msgid "Could not access address book record."
msgstr "No se pudo acceder al registro en su libreta de direcciones."
-#: ../../Zotlabs/Module/Connedit.php:476
+#: ../../Zotlabs/Module/Connedit.php:485 ../../Zotlabs/Module/Connedit.php:489
msgid "Refresh failed - channel is currently unavailable."
msgstr "Recarga fallida - no se puede encontrar el canal en este momento."
-#: ../../Zotlabs/Module/Connedit.php:491 ../../Zotlabs/Module/Connedit.php:500
-#: ../../Zotlabs/Module/Connedit.php:509 ../../Zotlabs/Module/Connedit.php:518
-#: ../../Zotlabs/Module/Connedit.php:531
+#: ../../Zotlabs/Module/Connedit.php:504 ../../Zotlabs/Module/Connedit.php:513
+#: ../../Zotlabs/Module/Connedit.php:522 ../../Zotlabs/Module/Connedit.php:531
+#: ../../Zotlabs/Module/Connedit.php:544
msgid "Unable to set address book parameters."
msgstr "No ha sido posible establecer los parámetros de la libreta de direcciones."
-#: ../../Zotlabs/Module/Connedit.php:555
+#: ../../Zotlabs/Module/Connedit.php:568
msgid "Connection has been removed."
msgstr "La conexión ha sido eliminada."
-#: ../../Zotlabs/Module/Connedit.php:595 ../../Zotlabs/Lib/Apps.php:319
+#: ../../Zotlabs/Module/Connedit.php:608 ../../Zotlabs/Lib/Apps.php:341
#: ../../addon/openclipatar/openclipatar.php:57
#: ../../include/conversation.php:1038 ../../include/nav.php:106
msgid "View Profile"
msgstr "Ver el perfil"
-#: ../../Zotlabs/Module/Connedit.php:598
+#: ../../Zotlabs/Module/Connedit.php:611
#, php-format
msgid "View %s's profile"
msgstr "Ver el perfil de %s"
-#: ../../Zotlabs/Module/Connedit.php:602
+#: ../../Zotlabs/Module/Connedit.php:615
msgid "Refresh Permissions"
msgstr "Recargar los permisos"
-#: ../../Zotlabs/Module/Connedit.php:605
+#: ../../Zotlabs/Module/Connedit.php:618
msgid "Fetch updated permissions"
msgstr "Obtener los permisos actualizados"
-#: ../../Zotlabs/Module/Connedit.php:609
+#: ../../Zotlabs/Module/Connedit.php:622
msgid "Refresh Photo"
msgstr "Actualizar la foto"
-#: ../../Zotlabs/Module/Connedit.php:612
+#: ../../Zotlabs/Module/Connedit.php:625
msgid "Fetch updated photo"
msgstr "Obtener una foto actualizada"
-#: ../../Zotlabs/Module/Connedit.php:616 ../../include/conversation.php:1048
+#: ../../Zotlabs/Module/Connedit.php:629 ../../include/conversation.php:1048
msgid "Recent Activity"
msgstr "Actividad reciente"
-#: ../../Zotlabs/Module/Connedit.php:619
+#: ../../Zotlabs/Module/Connedit.php:632
msgid "View recent posts and comments"
msgstr "Ver publicaciones y comentarios recientes"
-#: ../../Zotlabs/Module/Connedit.php:626
+#: ../../Zotlabs/Module/Connedit.php:639
msgid "Block (or Unblock) all communications with this connection"
msgstr "Bloquear (o desbloquear) todas las comunicaciones con esta conexión"
-#: ../../Zotlabs/Module/Connedit.php:627
+#: ../../Zotlabs/Module/Connedit.php:640
msgid "This connection is blocked!"
msgstr "¡Esta conexión está bloqueada!"
-#: ../../Zotlabs/Module/Connedit.php:631
+#: ../../Zotlabs/Module/Connedit.php:644
msgid "Unignore"
msgstr "Dejar de ignorar"
-#: ../../Zotlabs/Module/Connedit.php:634
+#: ../../Zotlabs/Module/Connedit.php:647
msgid "Ignore (or Unignore) all inbound communications from this connection"
msgstr "Ignorar (o dejar de ignorar) todas las comunicaciones entrantes de esta conexión"
-#: ../../Zotlabs/Module/Connedit.php:635
+#: ../../Zotlabs/Module/Connedit.php:648
msgid "This connection is ignored!"
msgstr "¡Esta conexión es ignorada!"
-#: ../../Zotlabs/Module/Connedit.php:639
+#: ../../Zotlabs/Module/Connedit.php:652
msgid "Unarchive"
msgstr "Desarchivar"
-#: ../../Zotlabs/Module/Connedit.php:639
+#: ../../Zotlabs/Module/Connedit.php:652
msgid "Archive"
msgstr "Archivar"
-#: ../../Zotlabs/Module/Connedit.php:642
+#: ../../Zotlabs/Module/Connedit.php:655
msgid ""
"Archive (or Unarchive) this connection - mark channel dead but keep content"
msgstr "Archiva (o desarchiva) esta conexión - marca el canal como muerto aunque mantiene sus contenidos"
-#: ../../Zotlabs/Module/Connedit.php:643
+#: ../../Zotlabs/Module/Connedit.php:656
msgid "This connection is archived!"
msgstr "¡Esta conexión esta archivada!"
-#: ../../Zotlabs/Module/Connedit.php:647
+#: ../../Zotlabs/Module/Connedit.php:660
msgid "Unhide"
msgstr "Mostrar"
-#: ../../Zotlabs/Module/Connedit.php:647
+#: ../../Zotlabs/Module/Connedit.php:660
msgid "Hide"
msgstr "Ocultar"
-#: ../../Zotlabs/Module/Connedit.php:650
+#: ../../Zotlabs/Module/Connedit.php:663
msgid "Hide or Unhide this connection from your other connections"
msgstr "Ocultar o mostrar esta conexión a sus otras conexiones"
-#: ../../Zotlabs/Module/Connedit.php:651
+#: ../../Zotlabs/Module/Connedit.php:664
msgid "This connection is hidden!"
msgstr "¡Esta conexión está oculta!"
-#: ../../Zotlabs/Module/Connedit.php:658
+#: ../../Zotlabs/Module/Connedit.php:671
msgid "Delete this connection"
msgstr "Eliminar esta conexión"
-#: ../../Zotlabs/Module/Connedit.php:666
+#: ../../Zotlabs/Module/Connedit.php:679
msgid "Fetch Vcard"
msgstr "Obtener una vcard"
-#: ../../Zotlabs/Module/Connedit.php:669
+#: ../../Zotlabs/Module/Connedit.php:682
msgid "Fetch electronic calling card for this connection"
msgstr "Obtener una tarjeta de llamada electrónica para esta conexión"
-#: ../../Zotlabs/Module/Connedit.php:680
+#: ../../Zotlabs/Module/Connedit.php:693
msgid "Open Individual Permissions section by default"
msgstr "Abrir la sección de permisos individuales por defecto"
-#: ../../Zotlabs/Module/Connedit.php:703
+#: ../../Zotlabs/Module/Connedit.php:716
msgid "Affinity"
msgstr "Afinidad"
-#: ../../Zotlabs/Module/Connedit.php:706
+#: ../../Zotlabs/Module/Connedit.php:719
msgid "Open Set Affinity section by default"
msgstr "Abrir por defecto la sección para definir la afinidad"
-#: ../../Zotlabs/Module/Connedit.php:710 ../../Zotlabs/Widget/Affinity.php:22
+#: ../../Zotlabs/Module/Connedit.php:723 ../../Zotlabs/Widget/Affinity.php:30
msgid "Me"
msgstr "Yo"
-#: ../../Zotlabs/Module/Connedit.php:711 ../../Zotlabs/Widget/Affinity.php:23
+#: ../../Zotlabs/Module/Connedit.php:724 ../../Zotlabs/Widget/Affinity.php:31
msgid "Family"
msgstr "Familia"
-#: ../../Zotlabs/Module/Connedit.php:713 ../../Zotlabs/Widget/Affinity.php:25
+#: ../../Zotlabs/Module/Connedit.php:726 ../../Zotlabs/Widget/Affinity.php:33
msgid "Acquaintances"
msgstr "Conocidos/as"
-#: ../../Zotlabs/Module/Connedit.php:740
+#: ../../Zotlabs/Module/Connedit.php:756
msgid "Filter"
msgstr "Filtrar"
-#: ../../Zotlabs/Module/Connedit.php:743
+#: ../../Zotlabs/Module/Connedit.php:759
msgid "Open Custom Filter section by default"
msgstr "Abrir por defecto la sección de personalización de filtros"
-#: ../../Zotlabs/Module/Connedit.php:780
+#: ../../Zotlabs/Module/Connedit.php:796
msgid "Approve this connection"
msgstr "Aprobar esta conexión"
-#: ../../Zotlabs/Module/Connedit.php:780
+#: ../../Zotlabs/Module/Connedit.php:796
msgid "Accept connection to allow communication"
msgstr "Aceptar la conexión para permitir la comunicación"
-#: ../../Zotlabs/Module/Connedit.php:785
+#: ../../Zotlabs/Module/Connedit.php:801
msgid "Set Affinity"
msgstr "Ajustar la afinidad"
-#: ../../Zotlabs/Module/Connedit.php:788
+#: ../../Zotlabs/Module/Connedit.php:804
msgid "Set Profile"
msgstr "Ajustar el perfil"
-#: ../../Zotlabs/Module/Connedit.php:791
+#: ../../Zotlabs/Module/Connedit.php:807
msgid "Set Affinity & Profile"
msgstr "Ajustar la afinidad y el perfil"
-#: ../../Zotlabs/Module/Connedit.php:839
+#: ../../Zotlabs/Module/Connedit.php:855
msgid "This connection is unreachable from this location."
msgstr "No se puede acceder a la conexión desde este sitio."
-#: ../../Zotlabs/Module/Connedit.php:840
+#: ../../Zotlabs/Module/Connedit.php:856
msgid "This connection may be unreachable from other channel locations."
msgstr "Esta conexión puede ser inaccesible desde otras ubicaciones del canal."
-#: ../../Zotlabs/Module/Connedit.php:842
+#: ../../Zotlabs/Module/Connedit.php:858
msgid "Location independence is not supported by their network."
msgstr "La independencia de ubicación no es compatible con su red."
-#: ../../Zotlabs/Module/Connedit.php:848
+#: ../../Zotlabs/Module/Connedit.php:864
msgid ""
"This connection is unreachable from this location. Location independence is "
"not supported by their network."
msgstr "Esta conexión no es accesible desde este sitio. La independencia de ubicación no es compatible con su red."
-#: ../../Zotlabs/Module/Connedit.php:851 ../../Zotlabs/Module/Defperms.php:254
+#: ../../Zotlabs/Module/Connedit.php:867 ../../Zotlabs/Module/Defperms.php:254
msgid "Connection Default Permissions"
msgstr "Permisos predeterminados de conexión"
-#: ../../Zotlabs/Module/Connedit.php:851 ../../include/items.php:4200
+#: ../../Zotlabs/Module/Connedit.php:867 ../../include/items.php:4308
#, php-format
msgid "Connection: %s"
msgstr "Conexión: %s"
-#: ../../Zotlabs/Module/Connedit.php:852 ../../Zotlabs/Module/Defperms.php:255
+#: ../../Zotlabs/Module/Connedit.php:868 ../../Zotlabs/Module/Defperms.php:255
msgid "Apply these permissions automatically"
msgstr "Aplicar estos permisos automaticamente"
-#: ../../Zotlabs/Module/Connedit.php:852
+#: ../../Zotlabs/Module/Connedit.php:868
msgid "Connection requests will be approved without your interaction"
msgstr "Las solicitudes de conexión serán aprobadas sin su intervención"
-#: ../../Zotlabs/Module/Connedit.php:853 ../../Zotlabs/Module/Defperms.php:256
+#: ../../Zotlabs/Module/Connedit.php:869 ../../Zotlabs/Module/Defperms.php:256
msgid "Permission role"
msgstr "Permisos de rol"
-#: ../../Zotlabs/Module/Connedit.php:854 ../../Zotlabs/Module/Defperms.php:257
+#: ../../Zotlabs/Module/Connedit.php:870 ../../Zotlabs/Module/Defperms.php:257
msgid "Add permission role"
msgstr "Añadir permisos de rol"
-#: ../../Zotlabs/Module/Connedit.php:861
+#: ../../Zotlabs/Module/Connedit.php:877
msgid "This connection's primary address is"
msgstr "La dirección primaria de esta conexión es"
-#: ../../Zotlabs/Module/Connedit.php:862
+#: ../../Zotlabs/Module/Connedit.php:878
msgid "Available locations:"
msgstr "Ubicaciones disponibles:"
-#: ../../Zotlabs/Module/Connedit.php:867 ../../Zotlabs/Module/Defperms.php:261
+#: ../../Zotlabs/Module/Connedit.php:883 ../../Zotlabs/Module/Defperms.php:261
msgid ""
"The permissions indicated on this page will be applied to all new "
"connections."
msgstr "Los permisos indicados en esta página serán aplicados en todas las nuevas conexiones."
-#: ../../Zotlabs/Module/Connedit.php:868
+#: ../../Zotlabs/Module/Connedit.php:884
msgid "Connection Tools"
msgstr "Gestión de las conexiones"
-#: ../../Zotlabs/Module/Connedit.php:870
+#: ../../Zotlabs/Module/Connedit.php:886
msgid "Slide to adjust your degree of friendship"
msgstr "Deslizar para ajustar el grado de amistad"
-#: ../../Zotlabs/Module/Connedit.php:871 ../../Zotlabs/Module/Rate.php:155
+#: ../../Zotlabs/Module/Connedit.php:887 ../../Zotlabs/Module/Rate.php:155
#: ../../include/js_strings.php:20
msgid "Rating"
msgstr "Valoración"
-#: ../../Zotlabs/Module/Connedit.php:872
+#: ../../Zotlabs/Module/Connedit.php:888
msgid "Slide to adjust your rating"
msgstr "Deslizar para ajustar su valoración"
-#: ../../Zotlabs/Module/Connedit.php:873 ../../Zotlabs/Module/Connedit.php:878
+#: ../../Zotlabs/Module/Connedit.php:889 ../../Zotlabs/Module/Connedit.php:894
msgid "Optionally explain your rating"
msgstr "Opcionalmente, puede explicar su valoración"
-#: ../../Zotlabs/Module/Connedit.php:875
+#: ../../Zotlabs/Module/Connedit.php:891
msgid "Custom Filter"
msgstr "Filtro personalizado"
-#: ../../Zotlabs/Module/Connedit.php:876
+#: ../../Zotlabs/Module/Connedit.php:892
msgid "Only import posts with this text"
msgstr "Importar solo entradas que contengan este texto"
-#: ../../Zotlabs/Module/Connedit.php:877
+#: ../../Zotlabs/Module/Connedit.php:893
msgid "Do not import posts with this text"
msgstr "No importar entradas que contengan este texto"
-#: ../../Zotlabs/Module/Connedit.php:879
+#: ../../Zotlabs/Module/Connedit.php:895
msgid "This information is public!"
msgstr "¡Esta información es pública!"
-#: ../../Zotlabs/Module/Connedit.php:884
+#: ../../Zotlabs/Module/Connedit.php:900
msgid "Connection Pending Approval"
msgstr "Conexión pendiente de aprobación"
-#: ../../Zotlabs/Module/Connedit.php:889
+#: ../../Zotlabs/Module/Connedit.php:905
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr "Por favor, escoja el perfil que quiere mostrar a %s cuando esté viendo su perfil de forma segura."
-#: ../../Zotlabs/Module/Connedit.php:896
+#: ../../Zotlabs/Module/Connedit.php:912
msgid ""
"Some permissions may be inherited from your channel's <a "
"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
@@ -5977,11 +5978,11 @@ msgid ""
"they wont have any impact unless the inherited setting changes."
msgstr "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. Puede cambiar estos ajustes aquí, pero no tendrán ningún consecuencia hasta que cambie los ajustes heredados."
-#: ../../Zotlabs/Module/Connedit.php:897
+#: ../../Zotlabs/Module/Connedit.php:913
msgid "Last update:"
msgstr "Última actualización:"
-#: ../../Zotlabs/Module/Connedit.php:905
+#: ../../Zotlabs/Module/Connedit.php:921
msgid "Details"
msgstr "Detalles"
@@ -6024,8 +6025,8 @@ msgid "Please enter a link URL:"
msgstr "Por favor, introduzca la dirección del enlace:"
#: ../../Zotlabs/Module/Chat.php:221 ../../Zotlabs/Module/Mail.php:294
-#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:781
-#: ../../addon/hsse/hsse.php:255 ../../include/conversation.php:1458
+#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:809
+#: ../../addon/hsse/hsse.php:255 ../../include/conversation.php:1461
msgid "Encrypt text"
msgstr "Cifrar texto"
@@ -6058,13 +6059,13 @@ msgstr "Caducidad"
msgid "min"
msgstr "min"
-#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:320
-#: ../../include/features.php:391 ../../include/nav.php:414
+#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:342
+#: ../../include/features.php:383 ../../include/nav.php:444
msgid "Photos"
msgstr "Fotos"
-#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:315
-#: ../../Zotlabs/Storage/Browser.php:272 ../../include/nav.php:422
+#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:337
+#: ../../Zotlabs/Storage/Browser.php:272 ../../include/nav.php:452
msgid "Files"
msgstr "Ficheros"
@@ -6104,7 +6105,7 @@ msgstr "El menú se puede usar para guardar marcadores"
msgid "Submit and proceed"
msgstr "Enviar y proceder"
-#: ../../Zotlabs/Module/Menu.php:170 ../../include/text.php:2466
+#: ../../Zotlabs/Module/Menu.php:170 ../../include/text.php:2535
msgid "Menus"
msgstr "Menús"
@@ -6156,12 +6157,12 @@ msgstr "El título del menú tal como será visto por los demás"
msgid "Allow bookmarks"
msgstr "Permitir marcadores"
-#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2467
+#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2536
msgid "Layouts"
msgstr "Plantillas"
-#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:323
-#: ../../include/nav.php:168 ../../include/nav.php:289
+#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:345
+#: ../../include/nav.php:168 ../../include/nav.php:319
#: ../../include/help.php:117 ../../include/help.php:125
msgid "Help"
msgstr "Ayuda"
@@ -6178,11 +6179,11 @@ msgstr "Descripción de la plantilla"
msgid "Download PDL file"
msgstr "Descargar el fichero PDL"
-#: ../../Zotlabs/Module/Notes.php:55
+#: ../../Zotlabs/Module/Notes.php:56
msgid "Notes App"
msgstr "App Notas"
-#: ../../Zotlabs/Module/Notes.php:56
+#: ../../Zotlabs/Module/Notes.php:57
msgid "A simple notes app with a widget (note: notes are not encrypted)"
msgstr "Una simple aplicación de notas con un widget (aviso: las notas no están encriptadas)"
@@ -6227,13 +6228,13 @@ msgstr "Token de validación"
msgid "Post not found."
msgstr "Mensaje no encontrado."
-#: ../../Zotlabs/Module/Tagger.php:77 ../../include/markdown.php:202
-#: ../../include/bbcode.php:354
+#: ../../Zotlabs/Module/Tagger.php:77 ../../include/markdown.php:200
+#: ../../include/bbcode.php:343
msgid "post"
msgstr "la entrada"
#: ../../Zotlabs/Module/Tagger.php:79 ../../include/conversation.php:146
-#: ../../include/text.php:2036
+#: ../../include/text.php:2099
msgid "comment"
msgstr "el comentario"
@@ -6242,21 +6243,73 @@ msgstr "el comentario"
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s ha etiquetado %3$s de %2$s con %4$s"
-#: ../../Zotlabs/Module/Pconfig.php:27 ../../Zotlabs/Module/Pconfig.php:63
+#: ../../Zotlabs/Module/Pconfig.php:32 ../../Zotlabs/Module/Pconfig.php:68
msgid "This setting requires special processing and editing has been blocked."
msgstr "Este ajuste necesita de un proceso especial y la edición ha sido bloqueada."
-#: ../../Zotlabs/Module/Pconfig.php:52
+#: ../../Zotlabs/Module/Pconfig.php:57
msgid "Configuration Editor"
msgstr "Editor de configuración"
-#: ../../Zotlabs/Module/Pconfig.php:53
+#: ../../Zotlabs/Module/Pconfig.php:58
msgid ""
"Warning: Changing some settings could render your channel inoperable. Please"
" leave this page unless you are comfortable with and knowledgeable about how"
" to correctly use this feature."
msgstr "Atención: El cambio de algunos ajustes puede volver inutilizable su canal. Por favor, abandone la página excepto que esté seguro y sepa cómo usar correctamente esta característica."
+#: ../../Zotlabs/Module/Affinity.php:35
+msgid "Affinity Tool settings updated."
+msgstr "Actualización de los ajustes de Affinity Tool."
+
+#: ../../Zotlabs/Module/Affinity.php:47
+msgid ""
+"This app presents a slider control in your connection editor and also on "
+"your network page. The slider represents your degree of friendship "
+"(affinity) with each connection. It allows you to zoom in or out and display"
+" conversations from only your closest friends or everybody in your stream."
+msgstr "Esta aplicación presenta un control deslizante en su editor de conexión y también en su página de red. El control deslizante representa su grado de amistad (afinidad) con cada conexión. Le permite acercar o alejar y mostrar conversaciones sólo de sus amigos más cercanos o de todo el mundo en su stream."
+
+#: ../../Zotlabs/Module/Affinity.php:52
+msgid "Affinity Tool App"
+msgstr "App Affinity Tool "
+
+#: ../../Zotlabs/Module/Affinity.php:57
+msgid ""
+"The numbers below represent the minimum and maximum slider default positions"
+" for your network/stream page as a percentage."
+msgstr "Los números que aparecen a continuación representan las posiciones predeterminadas mínimas y máximas de los controles deslizantes para su red/stream en forma de porcentaje."
+
+#: ../../Zotlabs/Module/Affinity.php:64
+msgid "Default maximum affinity level"
+msgstr "Nivel máximo de afinidad por defecto"
+
+#: ../../Zotlabs/Module/Affinity.php:64
+msgid "0-99 default 99"
+msgstr "0-99 por defecto 99"
+
+#: ../../Zotlabs/Module/Affinity.php:70
+msgid "Default minimum affinity level"
+msgstr "Nivel mínimo de afinidad por defecto"
+
+#: ../../Zotlabs/Module/Affinity.php:70
+msgid "0-99 - default 0"
+msgstr "0-99 - por defecto 0"
+
+#: ../../Zotlabs/Module/Affinity.php:76
+msgid "Persistent affinity levels"
+msgstr "Niveles de afinidad persistentes"
+
+#: ../../Zotlabs/Module/Affinity.php:76
+msgid ""
+"If disabled the max and min levels will be reset to default after page "
+"reload"
+msgstr "Si está desactivado, los niveles máximo y mínimo se restablecerán a los valores predeterminados después de recargar la página."
+
+#: ../../Zotlabs/Module/Affinity.php:84
+msgid "Affinity Tool Settings"
+msgstr "Ajustes de Affinity Tool"
+
#: ../../Zotlabs/Module/Defperms.php:189
msgid "Default Permissions App"
msgstr "App Permisos por defecto"
@@ -6300,76 +6353,76 @@ msgstr "El grupo de canales ha sido creado."
msgid "Could not create privacy group."
msgstr "No se puede crear el grupo de canales"
-#: ../../Zotlabs/Module/Group.php:61 ../../Zotlabs/Module/Group.php:200
-#: ../../include/items.php:4167
+#: ../../Zotlabs/Module/Group.php:61 ../../Zotlabs/Module/Group.php:213
+#: ../../include/items.php:4275
msgid "Privacy group not found."
msgstr "Grupo de canales no encontrado."
-#: ../../Zotlabs/Module/Group.php:77
+#: ../../Zotlabs/Module/Group.php:80
msgid "Privacy group updated."
msgstr "Grupo de canales actualizado."
-#: ../../Zotlabs/Module/Group.php:101
+#: ../../Zotlabs/Module/Group.php:106
msgid "Privacy Groups App"
msgstr "App Grupos de canales"
-#: ../../Zotlabs/Module/Group.php:102
+#: ../../Zotlabs/Module/Group.php:107
msgid "Management of privacy groups"
msgstr "Gestión de grupos de canales"
-#: ../../Zotlabs/Module/Group.php:132 ../../Zotlabs/Module/Group.php:143
-#: ../../Zotlabs/Lib/Apps.php:339 ../../Zotlabs/Lib/Group.php:324
-#: ../../Zotlabs/Widget/Activity_filter.php:70 ../../include/nav.php:95
+#: ../../Zotlabs/Module/Group.php:141 ../../Zotlabs/Module/Group.php:153
+#: ../../Zotlabs/Lib/Apps.php:361 ../../Zotlabs/Lib/Group.php:324
+#: ../../Zotlabs/Widget/Activity_filter.php:41 ../../include/nav.php:95
#: ../../include/group.php:320
msgid "Privacy Groups"
msgstr "Grupos de canales"
-#: ../../Zotlabs/Module/Group.php:133
+#: ../../Zotlabs/Module/Group.php:142
msgid "Add Group"
msgstr "Agregar un grupo"
-#: ../../Zotlabs/Module/Group.php:137
+#: ../../Zotlabs/Module/Group.php:146
msgid "Privacy group name"
msgstr "Nombre del grupo"
-#: ../../Zotlabs/Module/Group.php:138 ../../Zotlabs/Module/Group.php:239
+#: ../../Zotlabs/Module/Group.php:147 ../../Zotlabs/Module/Group.php:256
msgid "Members are visible to other channels"
msgstr "Los miembros son visibles para otros canales"
-#: ../../Zotlabs/Module/Group.php:145 ../../Zotlabs/Module/Help.php:81
+#: ../../Zotlabs/Module/Group.php:155 ../../Zotlabs/Module/Help.php:81
msgid "Members"
msgstr "Miembros"
-#: ../../Zotlabs/Module/Group.php:170
+#: ../../Zotlabs/Module/Group.php:182
msgid "Privacy group removed."
msgstr "Grupo de canales eliminado."
-#: ../../Zotlabs/Module/Group.php:172
+#: ../../Zotlabs/Module/Group.php:185
msgid "Unable to remove privacy group."
msgstr "No se puede eliminar el grupo de canales."
-#: ../../Zotlabs/Module/Group.php:234
+#: ../../Zotlabs/Module/Group.php:251
#, php-format
msgid "Privacy Group: %s"
msgstr "Grupo privado %s"
-#: ../../Zotlabs/Module/Group.php:236
+#: ../../Zotlabs/Module/Group.php:253
msgid "Privacy group name: "
msgstr "Nombre del grupo de canales:"
-#: ../../Zotlabs/Module/Group.php:241
+#: ../../Zotlabs/Module/Group.php:258
msgid "Delete Group"
msgstr "Eliminar grupo"
-#: ../../Zotlabs/Module/Group.php:251
+#: ../../Zotlabs/Module/Group.php:269
msgid "Group members"
msgstr "Miembros del grupo"
-#: ../../Zotlabs/Module/Group.php:253
+#: ../../Zotlabs/Module/Group.php:271
msgid "Not in this group"
msgstr "No en este grupo"
-#: ../../Zotlabs/Module/Group.php:285
+#: ../../Zotlabs/Module/Group.php:303
msgid "Click a channel to toggle membership"
msgstr "Haga clic en un canal para cambiar los miembros"
@@ -6464,7 +6517,7 @@ msgid "View this profile"
msgstr "Ver este perfil"
#: ../../Zotlabs/Module/Profiles.php:725 ../../Zotlabs/Module/Profiles.php:824
-#: ../../include/channel.php:1326
+#: ../../include/channel.php:1375
msgid "Edit visibility"
msgstr "Editar visibilidad"
@@ -6476,7 +6529,7 @@ msgstr "Gestión del perfil"
msgid "Change cover photo"
msgstr "Cambiar la imagen de portada del perfil"
-#: ../../Zotlabs/Module/Profiles.php:728 ../../include/channel.php:1296
+#: ../../Zotlabs/Module/Profiles.php:728 ../../include/channel.php:1345
msgid "Change profile photo"
msgstr "Cambiar la foto del perfil"
@@ -6642,11 +6695,11 @@ msgstr "Mis otros canales"
msgid "Communications"
msgstr "Comunicaciones"
-#: ../../Zotlabs/Module/Profiles.php:820 ../../include/channel.php:1322
+#: ../../Zotlabs/Module/Profiles.php:820 ../../include/channel.php:1371
msgid "Profile Image"
msgstr "Imagen del perfil"
-#: ../../Zotlabs/Module/Profiles.php:830 ../../include/channel.php:1303
+#: ../../Zotlabs/Module/Profiles.php:830 ../../include/channel.php:1352
#: ../../include/nav.php:109
msgid "Edit Profiles"
msgstr "Editar perfiles"
@@ -6726,7 +6779,7 @@ msgstr "Editar la página web"
msgid "Create a new channel"
msgstr "Crear un nuevo canal"
-#: ../../Zotlabs/Module/Manage.php:170 ../../Zotlabs/Lib/Apps.php:312
+#: ../../Zotlabs/Module/Manage.php:170 ../../Zotlabs/Lib/Apps.php:334
#: ../../include/nav.php:92
msgid "Channel Manager"
msgstr "Administración de canales"
@@ -6761,20 +6814,20 @@ msgstr "%d nuevas solicitudes de conexión"
msgid "Delegated Channel"
msgstr "Canal delegado"
-#: ../../Zotlabs/Module/Cards.php:46
+#: ../../Zotlabs/Module/Cards.php:51
msgid "Cards App"
msgstr "App de Fichas"
-#: ../../Zotlabs/Module/Cards.php:47
+#: ../../Zotlabs/Module/Cards.php:52
msgid "Create personal planning cards"
msgstr "Crear fichas de planificación personal"
-#: ../../Zotlabs/Module/Cards.php:108
+#: ../../Zotlabs/Module/Cards.php:112
msgid "Add Card"
msgstr "Añadir una ficha"
-#: ../../Zotlabs/Module/Cards.php:203 ../../Zotlabs/Lib/Apps.php:303
-#: ../../include/nav.php:471
+#: ../../Zotlabs/Module/Cards.php:207 ../../Zotlabs/Lib/Apps.php:325
+#: ../../include/nav.php:501
msgid "Cards"
msgstr "Fichas"
@@ -6873,8 +6926,8 @@ msgstr "Exportar elementos de una página web"
msgid "Export selected"
msgstr "Exportar los elementos seleccionados"
-#: ../../Zotlabs/Module/Webpages.php:252 ../../Zotlabs/Lib/Apps.php:316
-#: ../../include/nav.php:494
+#: ../../Zotlabs/Module/Webpages.php:252 ../../Zotlabs/Lib/Apps.php:338
+#: ../../include/nav.php:524
msgid "Webpages"
msgstr "Páginas web"
@@ -6916,13 +6969,13 @@ msgid ""
" password."
msgstr "Los cambios en el nombre de un canal no está permitida hasta pasadas 48 horas desde el cambio de contraseña de la cuenta."
-#: ../../Zotlabs/Module/Changeaddr.php:46 ../../include/channel.php:221
-#: ../../include/channel.php:606
+#: ../../Zotlabs/Module/Changeaddr.php:46 ../../include/channel.php:222
+#: ../../include/channel.php:655
msgid "Reserved nickname. Please choose another."
msgstr "Sobrenombre en uso. Por favor, elija otro."
-#: ../../Zotlabs/Module/Changeaddr.php:51 ../../include/channel.php:226
-#: ../../include/channel.php:611
+#: ../../Zotlabs/Module/Changeaddr.php:51 ../../include/channel.php:227
+#: ../../include/channel.php:660
msgid ""
"Nickname has unsupported characters or is already being used on this site."
msgstr "El alias contiene caracteres no admitidos o está ya en uso por otros miembros de este sitio."
@@ -6951,69 +7004,69 @@ msgstr "El elemento no es editable"
msgid "Edit post"
msgstr "Editar la entrada"
-#: ../../Zotlabs/Module/Dreport.php:45
+#: ../../Zotlabs/Module/Dreport.php:56
msgid "Invalid message"
msgstr "Mensaje no válido"
-#: ../../Zotlabs/Module/Dreport.php:78
+#: ../../Zotlabs/Module/Dreport.php:90
msgid "no results"
msgstr "sin resultados"
-#: ../../Zotlabs/Module/Dreport.php:93
+#: ../../Zotlabs/Module/Dreport.php:104
msgid "channel sync processed"
msgstr "se ha realizado la sincronización del canal"
-#: ../../Zotlabs/Module/Dreport.php:97
+#: ../../Zotlabs/Module/Dreport.php:108
msgid "queued"
msgstr "encolado"
-#: ../../Zotlabs/Module/Dreport.php:101
+#: ../../Zotlabs/Module/Dreport.php:112
msgid "posted"
msgstr "enviado"
-#: ../../Zotlabs/Module/Dreport.php:105
+#: ../../Zotlabs/Module/Dreport.php:116
msgid "accepted for delivery"
msgstr "aceptado para el envío"
-#: ../../Zotlabs/Module/Dreport.php:109
+#: ../../Zotlabs/Module/Dreport.php:120
msgid "updated"
msgstr "actualizado"
-#: ../../Zotlabs/Module/Dreport.php:112
+#: ../../Zotlabs/Module/Dreport.php:123
msgid "update ignored"
msgstr "actualización ignorada"
-#: ../../Zotlabs/Module/Dreport.php:115
+#: ../../Zotlabs/Module/Dreport.php:126
msgid "permission denied"
msgstr "permiso denegado"
-#: ../../Zotlabs/Module/Dreport.php:119
+#: ../../Zotlabs/Module/Dreport.php:130
msgid "recipient not found"
msgstr "destinatario no encontrado"
-#: ../../Zotlabs/Module/Dreport.php:122
+#: ../../Zotlabs/Module/Dreport.php:133
msgid "mail recalled"
msgstr "mensaje de correo revocado"
-#: ../../Zotlabs/Module/Dreport.php:125
+#: ../../Zotlabs/Module/Dreport.php:136
msgid "duplicate mail received"
msgstr "se ha recibido mensaje duplicado"
-#: ../../Zotlabs/Module/Dreport.php:128
+#: ../../Zotlabs/Module/Dreport.php:139
msgid "mail delivered"
msgstr "correo enviado"
-#: ../../Zotlabs/Module/Dreport.php:148
+#: ../../Zotlabs/Module/Dreport.php:159
#, php-format
msgid "Delivery report for %1$s"
msgstr "Informe de entrega para %1$s"
-#: ../../Zotlabs/Module/Dreport.php:151 ../../Zotlabs/Widget/Wiki_pages.php:41
+#: ../../Zotlabs/Module/Dreport.php:162 ../../Zotlabs/Widget/Wiki_pages.php:41
#: ../../Zotlabs/Widget/Wiki_pages.php:98
msgid "Options"
msgstr "Opciones"
-#: ../../Zotlabs/Module/Dreport.php:152
+#: ../../Zotlabs/Module/Dreport.php:163
msgid "Redeliver"
msgstr "Volver a enviar"
@@ -7041,7 +7094,7 @@ msgstr "Importar automáticamente contenido de otros canales o \"feeds\""
msgid "*"
msgstr "*"
-#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:344
+#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:366
msgid "Channel Sources"
msgstr "Orígenes de los contenidos del canal"
@@ -7110,89 +7163,89 @@ msgstr "Fuente eliminada"
msgid "Unable to remove source."
msgstr "No se puede eliminar la fuente."
-#: ../../Zotlabs/Module/Like.php:54
+#: ../../Zotlabs/Module/Like.php:56
msgid "Like/Dislike"
msgstr "Me gusta/No me gusta"
-#: ../../Zotlabs/Module/Like.php:59
+#: ../../Zotlabs/Module/Like.php:61
msgid "This action is restricted to members."
msgstr "Esta acción está restringida solo para miembros."
-#: ../../Zotlabs/Module/Like.php:60
+#: ../../Zotlabs/Module/Like.php:62
msgid ""
"Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a "
"href=\"register\">register as a new $Projectname member</a> to continue."
msgstr "Por favor, <a href=\"rmagic\">identifíquese con su $Projectname ID</a> o <a href=\"register\">rregístrese como un nuevo $Projectname member</a> para continuar."
-#: ../../Zotlabs/Module/Like.php:109 ../../Zotlabs/Module/Like.php:135
-#: ../../Zotlabs/Module/Like.php:173
+#: ../../Zotlabs/Module/Like.php:111 ../../Zotlabs/Module/Like.php:137
+#: ../../Zotlabs/Module/Like.php:175
msgid "Invalid request."
msgstr "Solicitud incorrecta."
-#: ../../Zotlabs/Module/Like.php:121 ../../include/conversation.php:122
+#: ../../Zotlabs/Module/Like.php:123 ../../include/conversation.php:122
msgid "channel"
msgstr "el canal"
-#: ../../Zotlabs/Module/Like.php:150
+#: ../../Zotlabs/Module/Like.php:152
msgid "thing"
msgstr "elemento"
-#: ../../Zotlabs/Module/Like.php:196
+#: ../../Zotlabs/Module/Like.php:198
msgid "Channel unavailable."
msgstr "Canal no disponible."
-#: ../../Zotlabs/Module/Like.php:244
+#: ../../Zotlabs/Module/Like.php:246
msgid "Previous action reversed."
msgstr "Acción anterior revocada."
-#: ../../Zotlabs/Module/Like.php:438 ../../Zotlabs/Lib/Activity.php:1605
-#: ../../addon/diaspora/Receiver.php:1568 ../../addon/pubcrawl/as.php:1546
+#: ../../Zotlabs/Module/Like.php:447 ../../Zotlabs/Lib/Activity.php:1994
+#: ../../addon/diaspora/Receiver.php:1491 ../../addon/pubcrawl/as.php:1540
#: ../../include/conversation.php:160
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "A %1$s le gusta %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:440 ../../Zotlabs/Lib/Activity.php:1607
-#: ../../addon/pubcrawl/as.php:1548 ../../include/conversation.php:163
+#: ../../Zotlabs/Module/Like.php:449 ../../Zotlabs/Lib/Activity.php:1996
+#: ../../addon/pubcrawl/as.php:1542 ../../include/conversation.php:163
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "A %1$s no le gusta %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:442
+#: ../../Zotlabs/Module/Like.php:451
#, php-format
msgid "%1$s agrees with %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s está de acuerdo"
-#: ../../Zotlabs/Module/Like.php:444
+#: ../../Zotlabs/Module/Like.php:453
#, php-format
msgid "%1$s doesn't agree with %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s no está de acuerdo"
-#: ../../Zotlabs/Module/Like.php:446
+#: ../../Zotlabs/Module/Like.php:455
#, php-format
msgid "%1$s abstains from a decision on %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s se abstiene"
-#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2111
+#: ../../Zotlabs/Module/Like.php:457 ../../addon/diaspora/Receiver.php:2137
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s participa"
-#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2113
+#: ../../Zotlabs/Module/Like.php:459 ../../addon/diaspora/Receiver.php:2139
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s no participa"
-#: ../../Zotlabs/Module/Like.php:452 ../../addon/diaspora/Receiver.php:2115
+#: ../../Zotlabs/Module/Like.php:461 ../../addon/diaspora/Receiver.php:2141
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s quizá participe"
-#: ../../Zotlabs/Module/Like.php:564
+#: ../../Zotlabs/Module/Like.php:572
msgid "Action completed."
msgstr "Acción completada."
-#: ../../Zotlabs/Module/Like.php:565
+#: ../../Zotlabs/Module/Like.php:573
msgid "Thank you."
msgstr "Gracias."
@@ -7219,12 +7272,12 @@ msgstr "Estado:"
msgid "Homepage: "
msgstr "Página personal:"
-#: ../../Zotlabs/Module/Directory.php:323 ../../include/channel.php:1571
+#: ../../Zotlabs/Module/Directory.php:323 ../../include/channel.php:1620
msgid "Age:"
msgstr "Edad:"
-#: ../../Zotlabs/Module/Directory.php:328 ../../include/channel.php:1398
-#: ../../include/event.php:54 ../../include/event.php:86
+#: ../../Zotlabs/Module/Directory.php:328 ../../include/channel.php:1447
+#: ../../include/event.php:58 ../../include/event.php:90
msgid "Location:"
msgstr "Ubicación:"
@@ -7232,17 +7285,17 @@ msgstr "Ubicación:"
msgid "Description:"
msgstr "Descripción:"
-#: ../../Zotlabs/Module/Directory.php:339 ../../include/channel.php:1600
+#: ../../Zotlabs/Module/Directory.php:339 ../../include/channel.php:1649
msgid "Hometown:"
msgstr "Lugar de nacimiento:"
-#: ../../Zotlabs/Module/Directory.php:341 ../../include/channel.php:1606
+#: ../../Zotlabs/Module/Directory.php:341 ../../include/channel.php:1655
msgid "About:"
msgstr "Sobre mí:"
#: ../../Zotlabs/Module/Directory.php:342 ../../Zotlabs/Module/Suggest.php:71
#: ../../Zotlabs/Widget/Follow.php:32 ../../Zotlabs/Widget/Suggestions.php:44
-#: ../../include/conversation.php:1058 ../../include/channel.php:1383
+#: ../../include/conversation.php:1058 ../../include/channel.php:1432
#: ../../include/connections.php:110
msgid "Connect"
msgstr "Conectar"
@@ -7409,7 +7462,7 @@ msgid "Send"
msgstr "Enviar"
#: ../../Zotlabs/Module/Mail.php:292 ../../Zotlabs/Module/Mail.php:434
-#: ../../addon/hsse/hsse.php:250 ../../include/conversation.php:1453
+#: ../../addon/hsse/hsse.php:250 ../../include/conversation.php:1456
msgid "Set expiration date"
msgstr "Configurar fecha de caducidad"
@@ -7501,12 +7554,12 @@ msgstr "plantilla"
msgid "menu"
msgstr "menú"
-#: ../../Zotlabs/Module/Impel.php:183
+#: ../../Zotlabs/Module/Impel.php:185
#, php-format
msgid "%s element installed"
msgstr "%s elemento instalado"
-#: ../../Zotlabs/Module/Impel.php:186
+#: ../../Zotlabs/Module/Impel.php:188
#, php-format
msgid "%s element installation failed"
msgstr "Elemento con instalación fallida: %s"
@@ -7535,7 +7588,7 @@ msgstr "Escriba un nombre de carpeta"
msgid "or select an existing folder (doubleclick)"
msgstr "o seleccione una (con un doble click)"
-#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:164
+#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:181
msgid "Save to Folder"
msgstr "Guardar en carpeta"
@@ -7655,7 +7708,7 @@ msgstr "no"
msgid "yes"
msgstr "sí"
-#: ../../Zotlabs/Module/Register.php:289 ../../boot.php:1605
+#: ../../Zotlabs/Module/Register.php:289 ../../boot.php:1609
#: ../../include/nav.php:156
msgid "Register"
msgstr "Registrarse"
@@ -7671,30 +7724,30 @@ msgstr "Este sitio requiere verificación por correo electrónico. Después de c
msgid "Cover Photos"
msgstr "Imágenes de portada del perfil"
-#: ../../Zotlabs/Module/Cover_photo.php:269 ../../include/items.php:4544
+#: ../../Zotlabs/Module/Cover_photo.php:269 ../../include/items.php:4652
msgid "female"
msgstr "mujer"
-#: ../../Zotlabs/Module/Cover_photo.php:270 ../../include/items.php:4545
+#: ../../Zotlabs/Module/Cover_photo.php:270 ../../include/items.php:4653
#, php-format
msgid "%1$s updated her %2$s"
msgstr "%1$s ha actualizado su %2$s"
-#: ../../Zotlabs/Module/Cover_photo.php:271 ../../include/items.php:4546
+#: ../../Zotlabs/Module/Cover_photo.php:271 ../../include/items.php:4654
msgid "male"
msgstr "hombre"
-#: ../../Zotlabs/Module/Cover_photo.php:272 ../../include/items.php:4547
+#: ../../Zotlabs/Module/Cover_photo.php:272 ../../include/items.php:4655
#, php-format
msgid "%1$s updated his %2$s"
msgstr "%1$s ha actualizado su %2$s"
-#: ../../Zotlabs/Module/Cover_photo.php:274 ../../include/items.php:4549
+#: ../../Zotlabs/Module/Cover_photo.php:274 ../../include/items.php:4657
#, php-format
msgid "%1$s updated their %2$s"
msgstr "%1$s ha actualizado su %2$s"
-#: ../../Zotlabs/Module/Cover_photo.php:276 ../../include/channel.php:2088
+#: ../../Zotlabs/Module/Cover_photo.php:276 ../../include/channel.php:2137
msgid "cover photo"
msgstr "Imagen de portada del perfil"
@@ -7710,7 +7763,7 @@ msgstr "Cambiar la foto de portada del perfil"
msgid "Documentation Search"
msgstr "Búsqueda de Documentación"
-#: ../../Zotlabs/Module/Help.php:80 ../../include/nav.php:404
+#: ../../Zotlabs/Module/Help.php:80 ../../include/nav.php:434
msgid "About"
msgstr "Mi perfil"
@@ -7734,11 +7787,11 @@ msgstr "Documentación de $Projectname"
msgid "Contents"
msgstr "Contenidos"
-#: ../../Zotlabs/Module/Display.php:393
+#: ../../Zotlabs/Module/Display.php:391
msgid "Article"
msgstr "Artículo"
-#: ../../Zotlabs/Module/Display.php:445
+#: ../../Zotlabs/Module/Display.php:443
msgid "Item has been removed."
msgstr "Se ha eliminado el elemento."
@@ -7754,27 +7807,27 @@ msgstr "Eliminar etiqueta del elemento."
msgid "Select a tag to remove: "
msgstr "Seleccionar una etiqueta para eliminar:"
-#: ../../Zotlabs/Module/Network.php:107
+#: ../../Zotlabs/Module/Network.php:109
msgid "No such group"
msgstr "No se encuentra el grupo"
-#: ../../Zotlabs/Module/Network.php:148
+#: ../../Zotlabs/Module/Network.php:158
msgid "No such channel"
msgstr "No se encuentra el canal"
-#: ../../Zotlabs/Module/Network.php:231
+#: ../../Zotlabs/Module/Network.php:242
msgid "Privacy group is empty"
msgstr "El grupo de canales está vacío"
-#: ../../Zotlabs/Module/Network.php:242
+#: ../../Zotlabs/Module/Network.php:252
msgid "Privacy group: "
msgstr "Grupo de canales: "
-#: ../../Zotlabs/Module/Network.php:291 ../../addon/redred/redred.php:65
+#: ../../Zotlabs/Module/Network.php:325 ../../addon/redred/Mod_Redred.php:29
msgid "Invalid channel."
msgstr "El canal no es válido."
-#: ../../Zotlabs/Module/Acl.php:359
+#: ../../Zotlabs/Module/Acl.php:360
msgid "network"
msgstr "red"
@@ -7878,47 +7931,43 @@ msgstr "Cuentas caducadas"
msgid "Expiring accounts"
msgstr "Cuentas que caducan"
-#: ../../Zotlabs/Module/Admin.php:116
-msgid "Clones"
-msgstr "Clones"
-
-#: ../../Zotlabs/Module/Admin.php:122
+#: ../../Zotlabs/Module/Admin.php:120
msgid "Message queues"
msgstr "Mensajes en cola"
-#: ../../Zotlabs/Module/Admin.php:136
+#: ../../Zotlabs/Module/Admin.php:134
msgid "Your software should be updated"
msgstr "Debe actualizar su software"
-#: ../../Zotlabs/Module/Admin.php:141
+#: ../../Zotlabs/Module/Admin.php:139
msgid "Summary"
msgstr "Sumario"
-#: ../../Zotlabs/Module/Admin.php:144
+#: ../../Zotlabs/Module/Admin.php:142
msgid "Registered accounts"
msgstr "Cuentas registradas"
-#: ../../Zotlabs/Module/Admin.php:145
+#: ../../Zotlabs/Module/Admin.php:143
msgid "Pending registrations"
msgstr "Registros pendientes"
-#: ../../Zotlabs/Module/Admin.php:146
+#: ../../Zotlabs/Module/Admin.php:144
msgid "Registered channels"
msgstr "Canales registrados"
-#: ../../Zotlabs/Module/Admin.php:147
+#: ../../Zotlabs/Module/Admin.php:145
msgid "Active addons"
msgstr "Addons acivos"
-#: ../../Zotlabs/Module/Admin.php:148
+#: ../../Zotlabs/Module/Admin.php:146
msgid "Version"
msgstr "Versión"
-#: ../../Zotlabs/Module/Admin.php:149
+#: ../../Zotlabs/Module/Admin.php:147
msgid "Repository version (master)"
msgstr "Versión del repositorio (master)"
-#: ../../Zotlabs/Module/Admin.php:150
+#: ../../Zotlabs/Module/Admin.php:148
msgid "Repository version (dev)"
msgstr "Versión del repositorio (dev)"
@@ -7971,7 +8020,7 @@ msgid ""
"Password reset failed."
msgstr "La solicitud no ha podido ser verificada. (Puede que la haya enviado con anterioridad) El restablecimiento de la contraseña ha fallado."
-#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1634
+#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1638
msgid "Password Reset"
msgstr "Restablecer la contraseña"
@@ -8033,7 +8082,7 @@ msgid "OAuth authentication tokens for mobile and remote apps"
msgstr "Tokens de autenticación de OAuth para aplicaciones móviles y remotas"
#: ../../Zotlabs/Module/Oauth.php:114 ../../Zotlabs/Module/Oauth.php:140
-#: ../../addon/statusnet/statusnet.php:894 ../../addon/twitter/twitter.php:784
+#: ../../addon/statusnet/statusnet.php:596 ../../addon/twitter/twitter.php:614
msgid "Consumer Key"
msgstr "Consumer Key"
@@ -8050,14 +8099,39 @@ msgid "Connected OAuth Apps"
msgstr "Apps OAuth conectadas"
#: ../../Zotlabs/Module/Notifications.php:60
-#: ../../Zotlabs/Lib/ThreadItem.php:422
+#: ../../Zotlabs/Lib/ThreadItem.php:450
msgid "Mark all seen"
msgstr "Marcar todo como visto"
-#: ../../Zotlabs/Lib/Activity.php:1417 ../../Zotlabs/Lib/Activity.php:1614
-#: ../../widget/Netselect/Netselect.php:42 ../../addon/pubcrawl/as.php:1221
-#: ../../addon/pubcrawl/as.php:1376 ../../addon/pubcrawl/as.php:1555
-#: ../../include/network.php:1778
+#: ../../Zotlabs/Lib/Activity.php:1458
+#, php-format
+msgid "Likes %1$s's %2$s"
+msgstr "Gusta de %2$sde %1$s"
+
+#: ../../Zotlabs/Lib/Activity.php:1461
+#, php-format
+msgid "Doesn't like %1$s's %2$s"
+msgstr "No le gusta %2$sde %1$s"
+
+#: ../../Zotlabs/Lib/Activity.php:1464
+#, php-format
+msgid "Will attend %1$s's %2$s"
+msgstr "Asistirá %2$sde %1$s"
+
+#: ../../Zotlabs/Lib/Activity.php:1467
+#, php-format
+msgid "Will not attend %1$s's %2$s"
+msgstr "No asistirá %2$sde %1$s"
+
+#: ../../Zotlabs/Lib/Activity.php:1470
+#, php-format
+msgid "May attend %1$s's %2$s"
+msgstr "Puede asistir %2$sde %1$s"
+
+#: ../../Zotlabs/Lib/Activity.php:1806 ../../Zotlabs/Lib/Activity.php:2003
+#: ../../widget/Netselect/Netselect.php:42 ../../addon/pubcrawl/as.php:1214
+#: ../../addon/pubcrawl/as.php:1369 ../../addon/pubcrawl/as.php:1549
+#: ../../include/network.php:1720
msgid "ActivityPub"
msgstr "ActivityPub"
@@ -8085,179 +8159,183 @@ msgstr "4. Experto - Puedo escribir código informático"
msgid "5. Wizard - I probably know more than you do"
msgstr "5. Colaborador - probablemente sé más que tú"
-#: ../../Zotlabs/Lib/Libzot.php:663 ../../include/zot.php:800
+#: ../../Zotlabs/Lib/Libzot.php:652 ../../include/zot.php:802
msgid "Unable to verify channel signature"
msgstr "No ha sido posible de verificar la firma del canal"
-#: ../../Zotlabs/Lib/Apps.php:301
+#: ../../Zotlabs/Lib/Apps.php:322
msgid "Apps"
msgstr "Aplicaciones (apps)"
-#: ../../Zotlabs/Lib/Apps.php:304
+#: ../../Zotlabs/Lib/Apps.php:323
+msgid "Affinity Tool"
+msgstr "Herramienta de afinidad"
+
+#: ../../Zotlabs/Lib/Apps.php:326
msgid "Site Admin"
msgstr "Administrador del sitio"
-#: ../../Zotlabs/Lib/Apps.php:305 ../../addon/buglink/buglink.php:16
+#: ../../Zotlabs/Lib/Apps.php:327 ../../addon/buglink/buglink.php:16
msgid "Report Bug"
msgstr "Informe de errores"
-#: ../../Zotlabs/Lib/Apps.php:306 ../../include/nav.php:460
+#: ../../Zotlabs/Lib/Apps.php:328 ../../include/nav.php:490
msgid "Bookmarks"
msgstr "Marcadores"
-#: ../../Zotlabs/Lib/Apps.php:307 ../../Zotlabs/Widget/Chatroom_list.php:16
-#: ../../include/nav.php:447 ../../include/nav.php:450
+#: ../../Zotlabs/Lib/Apps.php:329 ../../Zotlabs/Widget/Chatroom_list.php:16
+#: ../../include/nav.php:477 ../../include/nav.php:480
msgid "Chatrooms"
msgstr "Salas de chat"
-#: ../../Zotlabs/Lib/Apps.php:309
+#: ../../Zotlabs/Lib/Apps.php:331
msgid "Remote Diagnostics"
msgstr "Diagnóstico remoto"
-#: ../../Zotlabs/Lib/Apps.php:310 ../../include/features.php:373
+#: ../../Zotlabs/Lib/Apps.php:332 ../../include/features.php:365
msgid "Suggest Channels"
msgstr "Sugerir canales"
-#: ../../Zotlabs/Lib/Apps.php:311 ../../boot.php:1625
+#: ../../Zotlabs/Lib/Apps.php:333 ../../boot.php:1629
#: ../../include/nav.php:118 ../../include/nav.php:122
msgid "Login"
msgstr "Iniciar sesión"
-#: ../../Zotlabs/Lib/Apps.php:313
+#: ../../Zotlabs/Lib/Apps.php:335
msgid "Stream"
msgstr "Stream"
-#: ../../Zotlabs/Lib/Apps.php:317 ../../include/nav.php:509
+#: ../../Zotlabs/Lib/Apps.php:339 ../../include/nav.php:539
msgid "Wiki"
msgstr "Wiki"
-#: ../../Zotlabs/Lib/Apps.php:318 ../../include/features.php:96
+#: ../../Zotlabs/Lib/Apps.php:340 ../../include/features.php:96
msgid "Channel Home"
msgstr "Mi canal"
-#: ../../Zotlabs/Lib/Apps.php:321 ../../include/features.php:269
+#: ../../Zotlabs/Lib/Apps.php:343 ../../include/features.php:269
msgid "Events"
msgstr "Eventos"
-#: ../../Zotlabs/Lib/Apps.php:322 ../../include/features.php:176
+#: ../../Zotlabs/Lib/Apps.php:344 ../../include/features.php:176
msgid "Directory"
msgstr "Directorio"
-#: ../../Zotlabs/Lib/Apps.php:324
+#: ../../Zotlabs/Lib/Apps.php:346
msgid "Mail"
msgstr "Correo"
-#: ../../Zotlabs/Lib/Apps.php:327
+#: ../../Zotlabs/Lib/Apps.php:349
msgid "Chat"
msgstr "Chat"
-#: ../../Zotlabs/Lib/Apps.php:329
+#: ../../Zotlabs/Lib/Apps.php:351
msgid "Probe"
msgstr "Probar"
-#: ../../Zotlabs/Lib/Apps.php:330
+#: ../../Zotlabs/Lib/Apps.php:352
msgid "Suggest"
msgstr "Sugerir"
-#: ../../Zotlabs/Lib/Apps.php:331
+#: ../../Zotlabs/Lib/Apps.php:353
msgid "Random Channel"
msgstr "Canal aleatorio"
-#: ../../Zotlabs/Lib/Apps.php:332
+#: ../../Zotlabs/Lib/Apps.php:354
msgid "Invite"
msgstr "Invitar"
-#: ../../Zotlabs/Lib/Apps.php:333 ../../Zotlabs/Widget/Admin.php:26
+#: ../../Zotlabs/Lib/Apps.php:355 ../../Zotlabs/Widget/Admin.php:26
msgid "Features"
msgstr "Funcionalidades"
-#: ../../Zotlabs/Lib/Apps.php:334 ../../addon/openid/MysqlProvider.php:69
+#: ../../Zotlabs/Lib/Apps.php:356 ../../addon/openid/MysqlProvider.php:69
msgid "Language"
msgstr "Idioma"
-#: ../../Zotlabs/Lib/Apps.php:335
+#: ../../Zotlabs/Lib/Apps.php:357
msgid "Post"
msgstr "Publicación"
-#: ../../Zotlabs/Lib/Apps.php:336 ../../addon/openid/MysqlProvider.php:58
+#: ../../Zotlabs/Lib/Apps.php:358 ../../addon/openid/MysqlProvider.php:58
#: ../../addon/openid/MysqlProvider.php:59
#: ../../addon/openid/MysqlProvider.php:60
msgid "Profile Photo"
msgstr "Foto del perfil"
-#: ../../Zotlabs/Lib/Apps.php:338 ../../include/features.php:405
+#: ../../Zotlabs/Lib/Apps.php:360 ../../include/features.php:397
msgid "Profiles"
msgstr "Perfiles"
-#: ../../Zotlabs/Lib/Apps.php:340
+#: ../../Zotlabs/Lib/Apps.php:362
msgid "Notifications"
msgstr "Notificaciones"
-#: ../../Zotlabs/Lib/Apps.php:341
+#: ../../Zotlabs/Lib/Apps.php:363
msgid "Order Apps"
msgstr "Ordenar las apps"
-#: ../../Zotlabs/Lib/Apps.php:342 ../../include/features.php:82
+#: ../../Zotlabs/Lib/Apps.php:364 ../../include/features.php:82
msgid "CalDAV"
msgstr "CalDAV"
-#: ../../Zotlabs/Lib/Apps.php:343
+#: ../../Zotlabs/Lib/Apps.php:365
msgid "CardDAV"
msgstr "CardDAV"
-#: ../../Zotlabs/Lib/Apps.php:345
+#: ../../Zotlabs/Lib/Apps.php:367
msgid "Guest Access"
msgstr "Acceso para invitados"
-#: ../../Zotlabs/Lib/Apps.php:346 ../../Zotlabs/Widget/Notes.php:21
+#: ../../Zotlabs/Lib/Apps.php:368 ../../Zotlabs/Widget/Notes.php:21
msgid "Notes"
msgstr "Notas"
-#: ../../Zotlabs/Lib/Apps.php:347
+#: ../../Zotlabs/Lib/Apps.php:369
msgid "OAuth Apps Manager"
msgstr "Administrador de apps OAuth"
-#: ../../Zotlabs/Lib/Apps.php:348
+#: ../../Zotlabs/Lib/Apps.php:370
msgid "OAuth2 Apps Manager"
msgstr "Administrador de apps OAuth2"
-#: ../../Zotlabs/Lib/Apps.php:349
+#: ../../Zotlabs/Lib/Apps.php:371
msgid "PDL Editor"
msgstr "Editor PDL"
-#: ../../Zotlabs/Lib/Apps.php:351
+#: ../../Zotlabs/Lib/Apps.php:373
msgid "Premium Channel"
msgstr "Canal premium"
-#: ../../Zotlabs/Lib/Apps.php:353
+#: ../../Zotlabs/Lib/Apps.php:375
msgid "My Chatrooms"
msgstr "Mis salas de chat"
-#: ../../Zotlabs/Lib/Apps.php:354
+#: ../../Zotlabs/Lib/Apps.php:376
msgid "Channel Export"
msgstr "Exportar canal"
-#: ../../Zotlabs/Lib/Apps.php:531
+#: ../../Zotlabs/Lib/Apps.php:553
msgid "Purchase"
msgstr "Comprar"
-#: ../../Zotlabs/Lib/Apps.php:536
+#: ../../Zotlabs/Lib/Apps.php:558
msgid "Undelete"
msgstr "Recuperar"
-#: ../../Zotlabs/Lib/Apps.php:545
+#: ../../Zotlabs/Lib/Apps.php:567
msgid "Add to app-tray"
msgstr "Añadir a la bandeja de aplicaciones"
-#: ../../Zotlabs/Lib/Apps.php:546
+#: ../../Zotlabs/Lib/Apps.php:568
msgid "Remove from app-tray"
msgstr "Quitar de la bandeja de aplicaciones"
-#: ../../Zotlabs/Lib/Apps.php:547
+#: ../../Zotlabs/Lib/Apps.php:569
msgid "Pin to navbar"
msgstr "Fijar en la barra de navegación"
-#: ../../Zotlabs/Lib/Apps.php:548
+#: ../../Zotlabs/Lib/Apps.php:570
msgid "Unpin from navbar"
msgstr "Quitar de la barra de navegación"
@@ -8354,8 +8432,8 @@ msgstr "Fecha"
msgid "Compare"
msgstr "Comparar"
-#: ../../Zotlabs/Lib/NativeWikiPage.php:603 ../../include/bbcode.php:746
-#: ../../include/bbcode.php:916
+#: ../../Zotlabs/Lib/NativeWikiPage.php:603 ../../include/bbcode.php:735
+#: ../../include/bbcode.php:905
msgid "Different viewers will see this text differently"
msgstr "Visitantes diferentes verán este texto de forma distinta"
@@ -8490,7 +8568,7 @@ msgstr "Sala no encontrada."
msgid "Room is full"
msgstr "La sala está llena."
-#: ../../Zotlabs/Lib/Libsync.php:733 ../../include/zot.php:2571
+#: ../../Zotlabs/Lib/Libsync.php:733 ../../include/zot.php:2591
#, php-format
msgid "Unable to verify site signature for %s"
msgstr "No ha sido posible de verificar la firma del sitio para %s"
@@ -8499,8 +8577,8 @@ msgstr "No ha sido posible de verificar la firma del sitio para %s"
msgid "$Projectname Notification"
msgstr "Notificación de $Projectname"
-#: ../../Zotlabs/Lib/Enotify.php:61 ../../addon/diaspora/util.php:308
-#: ../../addon/diaspora/util.php:321 ../../addon/diaspora/p.php:48
+#: ../../Zotlabs/Lib/Enotify.php:61 ../../addon/diaspora/util.php:313
+#: ../../addon/diaspora/util.php:326 ../../addon/diaspora/p.php:48
msgid "$projectname"
msgstr "$projectname"
@@ -8763,11 +8841,11 @@ msgstr "ha editado una entrada fechada el %s"
msgid "edited a comment dated %s"
msgstr "ha editado un comentario fechado el %s"
-#: ../../Zotlabs/Lib/NativeWiki.php:152
+#: ../../Zotlabs/Lib/NativeWiki.php:143
msgid "Wiki updated successfully"
msgstr "El wiki se ha actualizado con éxito"
-#: ../../Zotlabs/Lib/NativeWiki.php:206
+#: ../../Zotlabs/Lib/NativeWiki.php:197
msgid "Wiki files deleted successfully"
msgstr "Se han borrado con éxito los ficheros del wiki"
@@ -8781,210 +8859,214 @@ msgstr "Error de actualización en %s"
msgid "Update %s failed. See error logs."
msgstr "La actualización %s ha fallado. Mire el informe de errores."
-#: ../../Zotlabs/Lib/ThreadItem.php:99 ../../include/conversation.php:700
+#: ../../Zotlabs/Lib/ThreadItem.php:102 ../../include/conversation.php:700
msgid "Private Message"
msgstr "Mensaje Privado"
-#: ../../Zotlabs/Lib/ThreadItem.php:154 ../../Zotlabs/Storage/Browser.php:280
+#: ../../Zotlabs/Lib/ThreadItem.php:129
+msgid "Privacy conflict. Discretion advised."
+msgstr "Conflicto de privacidad. Se aconseja discreción."
+
+#: ../../Zotlabs/Lib/ThreadItem.php:171 ../../Zotlabs/Storage/Browser.php:280
msgid "Admin Delete"
msgstr "Eliminar admin"
-#: ../../Zotlabs/Lib/ThreadItem.php:160 ../../include/conversation.php:690
+#: ../../Zotlabs/Lib/ThreadItem.php:177 ../../include/conversation.php:690
msgid "Select"
msgstr "Seleccionar"
-#: ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../Zotlabs/Lib/ThreadItem.php:202
msgid "I will attend"
msgstr "Participaré"
-#: ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../Zotlabs/Lib/ThreadItem.php:202
msgid "I will not attend"
msgstr "No participaré"
-#: ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../Zotlabs/Lib/ThreadItem.php:202
msgid "I might attend"
msgstr "Quizá participe"
-#: ../../Zotlabs/Lib/ThreadItem.php:195
+#: ../../Zotlabs/Lib/ThreadItem.php:212
msgid "I agree"
msgstr "Estoy de acuerdo"
-#: ../../Zotlabs/Lib/ThreadItem.php:195
+#: ../../Zotlabs/Lib/ThreadItem.php:212
msgid "I disagree"
msgstr "No estoy de acuerdo"
-#: ../../Zotlabs/Lib/ThreadItem.php:195
+#: ../../Zotlabs/Lib/ThreadItem.php:212
msgid "I abstain"
msgstr "Me abstengo"
-#: ../../Zotlabs/Lib/ThreadItem.php:249 ../../include/conversation.php:695
+#: ../../Zotlabs/Lib/ThreadItem.php:266 ../../include/conversation.php:695
msgid "Toggle Star Status"
msgstr "Activar o desactivar el estado de entrada preferida"
-#: ../../Zotlabs/Lib/ThreadItem.php:260 ../../include/conversation.php:707
+#: ../../Zotlabs/Lib/ThreadItem.php:277 ../../include/conversation.php:707
msgid "Message signature validated"
msgstr "Firma de mensaje validada"
-#: ../../Zotlabs/Lib/ThreadItem.php:261 ../../include/conversation.php:708
+#: ../../Zotlabs/Lib/ThreadItem.php:278 ../../include/conversation.php:708
msgid "Message signature incorrect"
msgstr "Firma de mensaje incorrecta"
-#: ../../Zotlabs/Lib/ThreadItem.php:269
+#: ../../Zotlabs/Lib/ThreadItem.php:286
msgid "Add Tag"
msgstr "Añadir etiqueta"
-#: ../../Zotlabs/Lib/ThreadItem.php:273 ../../include/conversation.php:891
+#: ../../Zotlabs/Lib/ThreadItem.php:290 ../../include/conversation.php:891
msgid "Conversation Tools"
msgstr "Herramientas de conversación"
-#: ../../Zotlabs/Lib/ThreadItem.php:289 ../../include/taxonomy.php:575
+#: ../../Zotlabs/Lib/ThreadItem.php:306 ../../include/taxonomy.php:575
msgid "like"
msgstr "me gusta"
-#: ../../Zotlabs/Lib/ThreadItem.php:290 ../../include/taxonomy.php:576
+#: ../../Zotlabs/Lib/ThreadItem.php:307 ../../include/taxonomy.php:576
msgid "dislike"
msgstr "no me gusta"
-#: ../../Zotlabs/Lib/ThreadItem.php:294
+#: ../../Zotlabs/Lib/ThreadItem.php:317
msgid "Share This"
msgstr "Compartir esto"
-#: ../../Zotlabs/Lib/ThreadItem.php:294
+#: ../../Zotlabs/Lib/ThreadItem.php:317
msgid "share"
msgstr "compartir"
-#: ../../Zotlabs/Lib/ThreadItem.php:303
+#: ../../Zotlabs/Lib/ThreadItem.php:327
msgid "Delivery Report"
msgstr "Informe de transmisión"
-#: ../../Zotlabs/Lib/ThreadItem.php:321
+#: ../../Zotlabs/Lib/ThreadItem.php:347
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%d comentario"
msgstr[1] "%d comentarios"
-#: ../../Zotlabs/Lib/ThreadItem.php:355 ../../Zotlabs/Lib/ThreadItem.php:356
+#: ../../Zotlabs/Lib/ThreadItem.php:381 ../../Zotlabs/Lib/ThreadItem.php:382
#, php-format
msgid "View %s's profile - %s"
msgstr "Ver el perfil de %s - %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:359
+#: ../../Zotlabs/Lib/ThreadItem.php:385
msgid "to"
msgstr "a"
-#: ../../Zotlabs/Lib/ThreadItem.php:360
+#: ../../Zotlabs/Lib/ThreadItem.php:386
msgid "via"
msgstr "mediante"
-#: ../../Zotlabs/Lib/ThreadItem.php:361
+#: ../../Zotlabs/Lib/ThreadItem.php:387
msgid "Wall-to-Wall"
msgstr "De página del perfil a página del perfil (de \"muro\" a \"muro\")"
-#: ../../Zotlabs/Lib/ThreadItem.php:362
+#: ../../Zotlabs/Lib/ThreadItem.php:388
msgid "via Wall-To-Wall:"
msgstr "Mediante el procedimiento página del perfil a página del perfil (de \"muro\" a \"muro\")"
-#: ../../Zotlabs/Lib/ThreadItem.php:375 ../../include/conversation.php:766
+#: ../../Zotlabs/Lib/ThreadItem.php:402 ../../include/conversation.php:766
#, php-format
msgid "from %s"
msgstr "desde %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:378 ../../include/conversation.php:769
+#: ../../Zotlabs/Lib/ThreadItem.php:405 ../../include/conversation.php:769
#, php-format
msgid "last edited: %s"
msgstr "último cambio: %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:379 ../../include/conversation.php:770
+#: ../../Zotlabs/Lib/ThreadItem.php:406 ../../include/conversation.php:770
#, php-format
msgid "Expires: %s"
msgstr "Caduca: %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:387
+#: ../../Zotlabs/Lib/ThreadItem.php:414
msgid "Attend"
msgstr "Participar o asistir"
-#: ../../Zotlabs/Lib/ThreadItem.php:388
+#: ../../Zotlabs/Lib/ThreadItem.php:415
msgid "Attendance Options"
msgstr "Opciones de participación o asistencia"
-#: ../../Zotlabs/Lib/ThreadItem.php:389
+#: ../../Zotlabs/Lib/ThreadItem.php:416
msgid "Vote"
msgstr "Votar"
-#: ../../Zotlabs/Lib/ThreadItem.php:390
+#: ../../Zotlabs/Lib/ThreadItem.php:417
msgid "Voting Options"
msgstr "Opciones de votación"
-#: ../../Zotlabs/Lib/ThreadItem.php:411
+#: ../../Zotlabs/Lib/ThreadItem.php:439
#: ../../addon/bookmarker/bookmarker.php:38
msgid "Save Bookmarks"
msgstr "Guardar en Marcadores"
-#: ../../Zotlabs/Lib/ThreadItem.php:412
+#: ../../Zotlabs/Lib/ThreadItem.php:440
msgid "Add to Calendar"
msgstr "Añadir al calendario"
-#: ../../Zotlabs/Lib/ThreadItem.php:440 ../../include/conversation.php:483
+#: ../../Zotlabs/Lib/ThreadItem.php:468 ../../include/conversation.php:483
msgid "This is an unsaved preview"
msgstr "Esta es una previsualización sin guardar"
-#: ../../Zotlabs/Lib/ThreadItem.php:473 ../../include/js_strings.php:7
+#: ../../Zotlabs/Lib/ThreadItem.php:501 ../../include/js_strings.php:7
#, php-format
msgid "%s show all"
msgstr "%s mostrar todo"
-#: ../../Zotlabs/Lib/ThreadItem.php:768 ../../addon/hsse/hsse.php:200
-#: ../../include/conversation.php:1403
+#: ../../Zotlabs/Lib/ThreadItem.php:796 ../../addon/hsse/hsse.php:200
+#: ../../include/conversation.php:1406
msgid "Bold"
msgstr "Negrita"
-#: ../../Zotlabs/Lib/ThreadItem.php:769 ../../addon/hsse/hsse.php:201
-#: ../../include/conversation.php:1404
+#: ../../Zotlabs/Lib/ThreadItem.php:797 ../../addon/hsse/hsse.php:201
+#: ../../include/conversation.php:1407
msgid "Italic"
msgstr "Itálico "
-#: ../../Zotlabs/Lib/ThreadItem.php:770 ../../addon/hsse/hsse.php:202
-#: ../../include/conversation.php:1405
+#: ../../Zotlabs/Lib/ThreadItem.php:798 ../../addon/hsse/hsse.php:202
+#: ../../include/conversation.php:1408
msgid "Underline"
msgstr "Subrayar"
-#: ../../Zotlabs/Lib/ThreadItem.php:771 ../../addon/hsse/hsse.php:203
-#: ../../include/conversation.php:1406
+#: ../../Zotlabs/Lib/ThreadItem.php:799 ../../addon/hsse/hsse.php:203
+#: ../../include/conversation.php:1409
msgid "Quote"
msgstr "Citar"
-#: ../../Zotlabs/Lib/ThreadItem.php:772 ../../addon/hsse/hsse.php:204
-#: ../../include/conversation.php:1407
+#: ../../Zotlabs/Lib/ThreadItem.php:800 ../../addon/hsse/hsse.php:204
+#: ../../include/conversation.php:1410
msgid "Code"
msgstr "Código"
-#: ../../Zotlabs/Lib/ThreadItem.php:773
+#: ../../Zotlabs/Lib/ThreadItem.php:801
msgid "Image"
msgstr "Imagen"
-#: ../../Zotlabs/Lib/ThreadItem.php:774 ../../addon/hsse/hsse.php:205
-#: ../../include/conversation.php:1408
+#: ../../Zotlabs/Lib/ThreadItem.php:802 ../../addon/hsse/hsse.php:205
+#: ../../include/conversation.php:1411
msgid "Attach/Upload file"
msgstr "Adjuntar/cargar fichero"
-#: ../../Zotlabs/Lib/ThreadItem.php:775
+#: ../../Zotlabs/Lib/ThreadItem.php:803
msgid "Insert Link"
msgstr "Insertar enlace"
-#: ../../Zotlabs/Lib/ThreadItem.php:776
+#: ../../Zotlabs/Lib/ThreadItem.php:804
msgid "Video"
msgstr "Vídeo"
-#: ../../Zotlabs/Lib/ThreadItem.php:786
+#: ../../Zotlabs/Lib/ThreadItem.php:814
msgid "Your full name (required)"
msgstr "Su nombre completo (requerido)"
-#: ../../Zotlabs/Lib/ThreadItem.php:787
+#: ../../Zotlabs/Lib/ThreadItem.php:815
msgid "Your email address (required)"
msgstr "Su dirección de correo electrónico (requerido)"
-#: ../../Zotlabs/Lib/ThreadItem.php:788
+#: ../../Zotlabs/Lib/ThreadItem.php:816
msgid "Your website URL (optional)"
msgstr "La URL de su sitio web (opcional)"
@@ -9004,7 +9086,7 @@ msgstr "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo
msgid "parent"
msgstr "padre"
-#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2824
+#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2941
msgid "Collection"
msgstr "Colección"
@@ -9016,8 +9098,8 @@ msgstr "Principal"
msgid "Addressbook"
msgstr "Libreta de direcciones"
-#: ../../Zotlabs/Storage/Browser.php:140 ../../include/nav.php:433
-#: ../../include/nav.php:436
+#: ../../Zotlabs/Storage/Browser.php:140 ../../include/nav.php:463
+#: ../../include/nav.php:466
msgid "Calendar"
msgstr "Calendario"
@@ -9068,7 +9150,7 @@ msgid "Drop files here to immediately upload"
msgstr "Arrastre los ficheros aquí para subirlos de forma inmediata"
#: ../../Zotlabs/Widget/Forums.php:100
-#: ../../Zotlabs/Widget/Activity_filter.php:102
+#: ../../Zotlabs/Widget/Activity_filter.php:73
#: ../../Zotlabs/Widget/Notifications.php:119
#: ../../Zotlabs/Widget/Notifications.php:120
msgid "Forums"
@@ -9151,8 +9233,8 @@ msgid "Select an addressbook to import to"
msgstr "Seleccionar una agenda para importarla"
#: ../../Zotlabs/Widget/Appcategories.php:43
-#: ../../include/contact_widgets.php:97 ../../include/contact_widgets.php:141
-#: ../../include/contact_widgets.php:186 ../../include/taxonomy.php:409
+#: ../../include/contact_widgets.php:96 ../../include/contact_widgets.php:139
+#: ../../include/contact_widgets.php:184 ../../include/taxonomy.php:409
#: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511
#: ../../include/taxonomy.php:532
msgid "Categories"
@@ -9160,8 +9242,8 @@ msgstr "Temas"
#: ../../Zotlabs/Widget/Appcategories.php:46 ../../Zotlabs/Widget/Filer.php:31
#: ../../widget/Netselect/Netselect.php:26
-#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:100
-#: ../../include/contact_widgets.php:144 ../../include/contact_widgets.php:189
+#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:99
+#: ../../include/contact_widgets.php:142 ../../include/contact_widgets.php:187
msgid "Everything"
msgstr "Todo"
@@ -9230,71 +9312,67 @@ msgctxt "widget"
msgid "Activity"
msgstr "Actividad"
-#: ../../Zotlabs/Widget/Activity_filter.php:26
-msgid "Personal Posts"
-msgstr "Entradas personales"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:30
-msgid "Show posts that mention or involve me"
-msgstr "Mostrar entradas que me mencionen o involucren"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:41
-msgid "Starred Posts"
-msgstr "Entradas preferidas"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:45
-msgid "Show posts that I have starred"
-msgstr "Mostrar entradas que he señalado como preferidas"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:65
+#: ../../Zotlabs/Widget/Activity_filter.php:36
#, php-format
msgid "Show posts related to the %s privacy group"
msgstr "Mostrar entradas relacionadas con el grupo %s"
-#: ../../Zotlabs/Widget/Activity_filter.php:74
+#: ../../Zotlabs/Widget/Activity_filter.php:45
msgid "Show my privacy groups"
msgstr "Mostrar mis grupos de canales"
-#: ../../Zotlabs/Widget/Activity_filter.php:95
+#: ../../Zotlabs/Widget/Activity_filter.php:66
msgid "Show posts to this forum"
msgstr "Mostrar las entradas en este foro"
-#: ../../Zotlabs/Widget/Activity_filter.php:106
+#: ../../Zotlabs/Widget/Activity_filter.php:77
msgid "Show forums"
msgstr "Mostrar los foros"
-#: ../../Zotlabs/Widget/Activity_filter.php:130
+#: ../../Zotlabs/Widget/Activity_filter.php:91
+msgid "Starred Posts"
+msgstr "Entradas preferidas"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:95
+msgid "Show posts that I have starred"
+msgstr "Mostrar entradas que he señalado como preferidas"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:106
+msgid "Personal Posts"
+msgstr "Entradas personales"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:110
+msgid "Show posts that mention or involve me"
+msgstr "Mostrar entradas que me mencionen o involucren"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:131
#, php-format
msgid "Show posts that I have filed to %s"
msgstr "Mostrar las entradas que he enviado a %s"
-#: ../../Zotlabs/Widget/Activity_filter.php:136
+#: ../../Zotlabs/Widget/Activity_filter.php:137
#: ../../Zotlabs/Widget/Filer.php:28 ../../include/contact_widgets.php:53
#: ../../include/features.php:325
msgid "Saved Folders"
msgstr "Carpetas guardadas"
-#: ../../Zotlabs/Widget/Activity_filter.php:140
+#: ../../Zotlabs/Widget/Activity_filter.php:141
msgid "Show filed post categories"
msgstr "Mostrar los temas de las entradas archivadas"
-#: ../../Zotlabs/Widget/Activity_filter.php:154
+#: ../../Zotlabs/Widget/Activity_filter.php:155
msgid "Panel search"
msgstr "Panel de búsqueda"
-#: ../../Zotlabs/Widget/Activity_filter.php:164
-#: ../../Zotlabs/Widget/Notifications.php:27
-#: ../../Zotlabs/Widget/Notifications.php:46
-#: ../../Zotlabs/Widget/Notifications.php:122
-#: ../../Zotlabs/Widget/Notifications.php:153
+#: ../../Zotlabs/Widget/Activity_filter.php:165
msgid "Filter by name"
msgstr "Filtrar por nombre"
-#: ../../Zotlabs/Widget/Activity_filter.php:179
+#: ../../Zotlabs/Widget/Activity_filter.php:180
msgid "Remove active filter"
msgstr "Eliminar el filtro activo"
-#: ../../Zotlabs/Widget/Activity_filter.php:195
+#: ../../Zotlabs/Widget/Activity_filter.php:196
msgid "Stream Filters"
msgstr "Filtros del stream"
@@ -9368,7 +9446,7 @@ msgstr "Páginas del wiki"
msgid "Page name"
msgstr "Nombre de la página"
-#: ../../Zotlabs/Widget/Affinity.php:45
+#: ../../Zotlabs/Widget/Affinity.php:54
msgid "Refresh"
msgstr "Recargar"
@@ -9517,15 +9595,11 @@ msgstr "Configuración de la cuenta"
msgid "Channel settings"
msgstr "Configuración del canal"
-#: ../../Zotlabs/Widget/Settings_menu.php:47
+#: ../../Zotlabs/Widget/Settings_menu.php:46
msgid "Display settings"
msgstr "Ajustes de visualización"
#: ../../Zotlabs/Widget/Settings_menu.php:53
-msgid "Addon settings"
-msgstr "Ajustes de los complementos"
-
-#: ../../Zotlabs/Widget/Settings_menu.php:60
msgid "Manage locations"
msgstr "Gestión de ubicaciones (clones) del canal"
@@ -9555,6 +9629,13 @@ msgstr "Marcar todas las notificaciones como leídas"
msgid "Show new posts only"
msgstr "Mostrar solo las entradas nuevas"
+#: ../../Zotlabs/Widget/Notifications.php:27
+#: ../../Zotlabs/Widget/Notifications.php:46
+#: ../../Zotlabs/Widget/Notifications.php:122
+#: ../../Zotlabs/Widget/Notifications.php:153
+msgid "Filter by name or address"
+msgstr "Filtrar por nombre o dirección"
+
#: ../../Zotlabs/Widget/Notifications.php:35
msgid "New Home Activity"
msgstr "Nueva actividad en su página principal"
@@ -9661,67 +9742,67 @@ msgstr "No se ha encontrado el canal de origen."
msgid "Network/Protocol"
msgstr "Red / Protocolo"
-#: ../../widget/Netselect/Netselect.php:28 ../../include/network.php:1782
+#: ../../widget/Netselect/Netselect.php:28 ../../include/network.php:1724
msgid "Zot"
msgstr "Zot"
-#: ../../widget/Netselect/Netselect.php:31 ../../include/network.php:1780
+#: ../../widget/Netselect/Netselect.php:31 ../../include/network.php:1722
msgid "Diaspora"
msgstr "Diaspora"
-#: ../../widget/Netselect/Netselect.php:33 ../../include/network.php:1773
-#: ../../include/network.php:1774
+#: ../../widget/Netselect/Netselect.php:33 ../../include/network.php:1715
+#: ../../include/network.php:1716
msgid "Friendica"
msgstr "Friendica"
-#: ../../widget/Netselect/Netselect.php:38 ../../include/network.php:1775
+#: ../../widget/Netselect/Netselect.php:38 ../../include/network.php:1717
msgid "OStatus"
msgstr "OStatus"
-#: ../../boot.php:1604
+#: ../../boot.php:1608
msgid "Create an account to access services and applications"
msgstr "Crear una cuenta para acceder a los servicios y aplicaciones"
-#: ../../boot.php:1624 ../../include/nav.php:103 ../../include/nav.php:132
+#: ../../boot.php:1628 ../../include/nav.php:103 ../../include/nav.php:132
#: ../../include/nav.php:151
msgid "Logout"
msgstr "Finalizar sesión"
-#: ../../boot.php:1628
+#: ../../boot.php:1632
msgid "Login/Email"
msgstr "Inicio de sesión / Correo electrónico"
-#: ../../boot.php:1629
+#: ../../boot.php:1633
msgid "Password"
msgstr "Contraseña"
-#: ../../boot.php:1630
+#: ../../boot.php:1634
msgid "Remember me"
msgstr "Recordarme"
-#: ../../boot.php:1633
+#: ../../boot.php:1637
msgid "Forgot your password?"
msgstr "¿Olvidó su contraseña?"
-#: ../../boot.php:2431
+#: ../../boot.php:2433
#, php-format
msgid "[$Projectname] Website SSL error for %s"
msgstr "[$Projectname] Error SSL del sitio web en %s"
-#: ../../boot.php:2436
+#: ../../boot.php:2438
msgid "Website SSL certificate is not valid. Please correct."
msgstr "El certificado SSL del sitio web no es válido. Por favor, solucione el problema."
-#: ../../boot.php:2552
+#: ../../boot.php:2554
#, php-format
msgid "[$Projectname] Cron tasks not running on %s"
msgstr "[$Projectname] Las tareas de Cron no están funcionando en %s"
-#: ../../boot.php:2557
+#: ../../boot.php:2559
msgid "Cron/Scheduled tasks not running."
msgstr "Las tareas del Planificador/Cron no están funcionando."
-#: ../../boot.php:2558 ../../include/datetime.php:238
+#: ../../boot.php:2560 ../../include/datetime.php:238
msgid "never"
msgstr "nunca"
@@ -9854,7 +9935,7 @@ msgid "Errors encountered deleting database table "
msgstr "Errores encontrados al eliminar la tabla de la base de datos"
#: ../../addon/rendezvous/rendezvous.php:95
-#: ../../addon/twitter/twitter.php:782
+#: ../../addon/twitter/twitter.php:612
msgid "Submit Settings"
msgstr "Enviar los ajustes"
@@ -9979,15 +10060,23 @@ msgstr "Cree una nueva cita y comparta los enlaces de acceso con los que desea i
msgid "You have no rendezvous. Press the button above to create a rendezvous!"
msgstr "No tiene ninguna cita. ¡Presione el botón de arriba para crear una!"
-#: ../../addon/skeleton/skeleton.php:59
+#: ../../addon/skeleton/Mod_Skeleton.php:32
+msgid "Skeleton App"
+msgstr "App Skeleton"
+
+#: ../../addon/skeleton/Mod_Skeleton.php:33
+msgid "A skeleton for addons, you can copy/paste"
+msgstr "Skeleton para los addons, puede copiar/pegar"
+
+#: ../../addon/skeleton/Mod_Skeleton.php:40
msgid "Some setting"
msgstr "Algunos ajustes"
-#: ../../addon/skeleton/skeleton.php:61
+#: ../../addon/skeleton/Mod_Skeleton.php:40
msgid "A setting"
msgstr "Un ajuste"
-#: ../../addon/skeleton/skeleton.php:64
+#: ../../addon/skeleton/Mod_Skeleton.php:48
msgid "Skeleton Settings"
msgstr "Ajustes de Skeleton"
@@ -9998,6 +10087,10 @@ msgid ""
"locations."
msgstr "El protocolo de GNU-Social no admite la independencia de la ubicación. Las\n conexiones que realice dentro de esa red pueden ser inaccesibles desde \nubicaciones de canales alternativos."
+#: ../../addon/gnusoc/Mod_Gnusoc.php:22
+msgid "GNU-Social Protocol App"
+msgstr "App Protocolo GNU-Social"
+
#: ../../addon/gnusoc/Mod_Gnusoc.php:34
msgid "GNU-Social Protocol"
msgstr "Protocolo GNU-Social"
@@ -10011,17 +10104,22 @@ msgstr "Seguir"
msgid "%1$s is now following %2$s"
msgstr "%1$s está siguiendo ahora a %2$s"
-#: ../../addon/planets/planets.php:121
-msgid "Planets Settings updated."
-msgstr "Se han guardado los ajustes de Planets."
+#: ../../addon/planets/Mod_Planets.php:20
+#: ../../addon/planets/Mod_Planets.php:23
+msgid "Random Planet App"
+msgstr "App Random Planet"
-#: ../../addon/planets/planets.php:149
-msgid "Enable Planets Plugin"
-msgstr "Habilitar el plugin Planets"
+#: ../../addon/planets/Mod_Planets.php:23
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:26
+#: ../../addon/nsabait/Mod_Nsabait.php:24 ../../addon/hsse/Mod_Hsse.php:26
+#: ../../addon/authchoose/Mod_Authchoose.php:33
+msgid "Installed"
+msgstr "Instalado"
-#: ../../addon/planets/planets.php:153
-msgid "Planets Settings"
-msgstr "Ajustes de Planets"
+#: ../../addon/planets/Mod_Planets.php:25
+msgid ""
+"Set a random planet from the Star Wars Empire as your location when posting"
+msgstr "Establecer un planeta aleatorio del Imperio de la Guerra de las Galaxias como su ubicación cuando publique."
#: ../../addon/openclipatar/openclipatar.php:50
#: ../../addon/openclipatar/openclipatar.php:128
@@ -10052,7 +10150,7 @@ msgstr "Regresar después"
msgid "Page to load after image selection."
msgstr "Página para cargar después de la selección de imágenes."
-#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1307
+#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1356
#: ../../include/nav.php:111
msgid "Edit Profile"
msgstr "Editar el perfil"
@@ -10141,10 +10239,96 @@ msgid ""
"view"
msgstr "Proporcionar una opción de edición de fotos para ocultar las fotos inapropiadas de la vista de álbum predeterminada"
+#: ../../addon/totp/Settings/Totp.php:90
+msgid ""
+"You haven't set a TOTP secret yet.\n"
+"Please click the button below to generate one and register this site\n"
+"with your preferred authenticator app."
+msgstr "Aún no ha establecido un TOTP secret.\nPor favor, haga clic en el botón de abajo para generar uno y registrar este sitio\ncon su aplicación de autenticación preferida."
+
+#: ../../addon/totp/Settings/Totp.php:93
+msgid "Your TOTP secret is"
+msgstr "Su TOTP secret es "
+
+#: ../../addon/totp/Settings/Totp.php:94
+msgid ""
+"Be sure to save it somewhere in case you lose or replace your mobile device.\n"
+"Use your mobile device to scan the QR code below to register this site\n"
+"with your preferred authenticator app."
+msgstr "Asegúrese de guardarlo en algún lugar en caso de que pierda o reemplace su dispositivo móvil.\nUtilice su dispositivo móvil para escanear el código QR a continuación para registrar este sitio\ncon su aplicación de autenticación preferida."
+
+#: ../../addon/totp/Settings/Totp.php:99
+msgid "Test"
+msgstr "Test"
+
+#: ../../addon/totp/Settings/Totp.php:100
+msgid "Generate New Secret"
+msgstr "Generar un nuevo Secret"
+
+#: ../../addon/totp/Settings/Totp.php:101
+msgid "Go"
+msgstr "Ir"
+
+#: ../../addon/totp/Settings/Totp.php:102
+msgid "Enter your password"
+msgstr "Introduzca su contraseña"
+
+#: ../../addon/totp/Settings/Totp.php:103
+msgid "enter TOTP code from your device"
+msgstr "introduzca el código TOTP desde su dispositivo"
+
+#: ../../addon/totp/Settings/Totp.php:104
+msgid "Pass!"
+msgstr "¡Pase!"
+
+#: ../../addon/totp/Settings/Totp.php:105
+msgid "Fail"
+msgstr "Fallo"
+
+#: ../../addon/totp/Settings/Totp.php:106
+msgid "Incorrect password, try again."
+msgstr "Contraseña incorrecta, inténtelo de nuevo."
+
+#: ../../addon/totp/Settings/Totp.php:107
+msgid "Record your new TOTP secret and rescan the QR code above."
+msgstr "Registre su nuevo TOTP secret y vuelva a escanear el código QR de arriba"
+
+#: ../../addon/totp/Settings/Totp.php:115
+msgid "TOTP Settings"
+msgstr "Ajustes de TOTP"
+
+#: ../../addon/totp/Mod_Totp.php:23
+msgid "TOTP Two-Step Verification"
+msgstr "Verificación en dos pasos de TOTP"
+
+#: ../../addon/totp/Mod_Totp.php:24
+msgid "Enter the 2-step verification generated by your authenticator app:"
+msgstr "Introduzca la verificación en 2 pasos generada por su app de autenticación: "
+
+#: ../../addon/totp/Mod_Totp.php:25
+msgid "Success!"
+msgstr "¡Éxito!"
+
+#: ../../addon/totp/Mod_Totp.php:26
+msgid "Invalid code, please try again."
+msgstr "Código inválido, por favor inténtelo de nuevo."
+
+#: ../../addon/totp/Mod_Totp.php:27
+msgid "Too many invalid codes..."
+msgstr "Demasiados códigos no válidos..."
+
+#: ../../addon/totp/Mod_Totp.php:28
+msgid "Verify"
+msgstr "Verficar"
+
#: ../../addon/wppost/Mod_Wppost.php:28
msgid "Wordpress Settings saved."
msgstr "Se han guardado los ajustes de WordPress."
+#: ../../addon/wppost/Mod_Wppost.php:41
+msgid "Wordpress Post App"
+msgstr "App Publicar en Wordpress"
+
#: ../../addon/wppost/Mod_Wppost.php:42
msgid "Post to WordPress or anything else which uses the wordpress XMLRPC API"
msgstr "Publicar en WordPress o cualquier otra cosa que utilice la API XMLRPC de wordpress"
@@ -10202,6 +10386,10 @@ msgstr "ver - %s"
msgid "NSFW Settings saved."
msgstr "Se han guardado los ajustes de NSFW."
+#: ../../addon/nsfw/Mod_Nsfw.php:33
+msgid "NSFW App"
+msgstr "App NSFW"
+
#: ../../addon/nsfw/Mod_Nsfw.php:34
msgid "Collapse content that contains predefined words"
msgstr "Ocultar el contenido que contiene palabras predefinidas"
@@ -10228,57 +10416,81 @@ msgstr "Palabra, /expresión regular/, lang=xx, lang!=xx"
msgid "NSFW"
msgstr "NSFW"
-#: ../../addon/ijpost/ijpost.php:42
-msgid "Post to Insanejournal"
-msgstr "Publicar en Insanejournal"
+#: ../../addon/queueworker/Mod_Queueworker.php:73
+msgid "Max queueworker threads"
+msgstr "Máximo de hilos en la cola"
+
+#: ../../addon/queueworker/Mod_Queueworker.php:87
+msgid "Assume workers dead after ___ seconds"
+msgstr "Asumir que el proceso de trabajo está muerto después de ___ segundos"
+
+#: ../../addon/queueworker/Mod_Queueworker.php:99
+msgid "Queueworker Settings"
+msgstr "Configuración del gestor de procesos de trabajo en cola"
+
+#: ../../addon/ijpost/Mod_Ijpost.php:23
+msgid "Insane Journal Crosspost Connector Settings saved."
+msgstr "Se han guardado los ajustes del Conector de publicación cruzada de InsaneJournal."
+
+#: ../../addon/ijpost/Mod_Ijpost.php:35
+msgid "Insane Journal Crosspost Connector App"
+msgstr "App Ajustes del Conector de publicación cruzada de InsaneJournal"
-#: ../../addon/ijpost/ijpost.php:73
-msgid "Enable InsaneJournal Post Plugin"
-msgstr "Habilitar el plugin de publicación en InsaneJournal"
+#: ../../addon/ijpost/Mod_Ijpost.php:36
+msgid "Relay public postings to Insane Journal"
+msgstr "Retransmisión de entradas públicas a Insane Journal"
-#: ../../addon/ijpost/ijpost.php:77
+#: ../../addon/ijpost/Mod_Ijpost.php:53
msgid "InsaneJournal username"
msgstr "Nombre de usuario en InsaneJournal"
-#: ../../addon/ijpost/ijpost.php:81
+#: ../../addon/ijpost/Mod_Ijpost.php:57
msgid "InsaneJournal password"
msgstr "Contraseña en InsaneJournal"
-#: ../../addon/ijpost/ijpost.php:85
+#: ../../addon/ijpost/Mod_Ijpost.php:61
msgid "Post to InsaneJournal by default"
msgstr "Publicar por defecto en InsaneJournal"
-#: ../../addon/ijpost/ijpost.php:89
-msgid "InsaneJournal Post Settings"
-msgstr "Ajustes de publicación en InsaneJournal"
+#: ../../addon/ijpost/Mod_Ijpost.php:69
+msgid "Insane Journal Crosspost Connector"
+msgstr "Conector de publicación cruzada de InsaneJournal"
-#: ../../addon/ijpost/ijpost.php:104
-msgid "Insane Journal Settings saved."
-msgstr "Se han guardado los ajustes de InsaneJournal."
+#: ../../addon/ijpost/ijpost.php:45
+msgid "Post to Insane Journal"
+msgstr "Publicar en Insane Journal"
-#: ../../addon/dwpost/dwpost.php:42
+#: ../../addon/dwpost/dwpost.php:48
msgid "Post to Dreamwidth"
msgstr "Publicar en Dreamwidth"
-#: ../../addon/dwpost/dwpost.php:73
-msgid "Enable Dreamwidth Post Plugin"
-msgstr "Activar el plugin de publicación en Dreamwidth"
+#: ../../addon/dwpost/Mod_Dwpost.php:24
+msgid "Dreamwidth Crosspost Connector Settings saved."
+msgstr "Se han guardado los ajustes del conector de publicación cruzada Dreamwidth."
-#: ../../addon/dwpost/dwpost.php:77
+#: ../../addon/dwpost/Mod_Dwpost.php:36
+msgid "Dreamwidth Crosspost Connector App"
+msgstr "App Dreamwidth Crosspost Connector"
+
+#: ../../addon/dwpost/Mod_Dwpost.php:37
+msgid "Relay public postings to Dreamwidth"
+msgstr "Retransmisión de entradas públicas a Dreamwidth"
+
+#: ../../addon/dwpost/Mod_Dwpost.php:52
msgid "Dreamwidth username"
msgstr "Nombre de usuario en Dreamwidth"
-#: ../../addon/dwpost/dwpost.php:81
+#: ../../addon/dwpost/Mod_Dwpost.php:56
msgid "Dreamwidth password"
msgstr "Contraseña en Dreamwidth"
-#: ../../addon/dwpost/dwpost.php:85
+#: ../../addon/dwpost/Mod_Dwpost.php:60
msgid "Post to Dreamwidth by default"
msgstr "Publicar en Dreamwidth de forma predeterminada"
-#: ../../addon/dwpost/dwpost.php:89
-msgid "Dreamwidth Post Settings"
-msgstr "Ajustes de publicación en Dreamwidth"
+#: ../../addon/dwpost/Mod_Dwpost.php:68
+msgid "Dreamwidth Crosspost Connector"
+msgstr "Dreamwidth Crosspost Connector"
#: ../../addon/notifyadmin/notifyadmin.php:34
msgid "New registration"
@@ -10411,69 +10623,73 @@ msgstr "Límite máximo de importación"
msgid "0 or blank to import all available"
msgstr "0 o en blanco para importar todos los disponibles"
-#: ../../addon/irc/irc.php:45
+#: ../../addon/irc/Mod_Irc.php:23 ../../addon/irc/irc.php:41
+msgid "Popular Channels"
+msgstr "Canales populares"
+
+#: ../../addon/irc/irc.php:37
msgid "Channels to auto connect"
msgstr "Canales para conexión automática"
-#: ../../addon/irc/irc.php:45 ../../addon/irc/irc.php:49
+#: ../../addon/irc/irc.php:37 ../../addon/irc/irc.php:41
msgid "Comma separated list"
msgstr "Lista separada por comas"
-#: ../../addon/irc/irc.php:49 ../../addon/irc/irc.php:96
-msgid "Popular Channels"
-msgstr "Canales populares"
-
-#: ../../addon/irc/irc.php:53
+#: ../../addon/irc/irc.php:45
msgid "IRC Settings"
msgstr "Ajustes de IRC"
-#: ../../addon/irc/irc.php:69
+#: ../../addon/irc/irc.php:54
msgid "IRC settings saved."
msgstr "Se han guardado los ajustes de IRC."
-#: ../../addon/irc/irc.php:74
+#: ../../addon/irc/irc.php:58
msgid "IRC Chatroom"
msgstr "Sala de chat IRC"
-#: ../../addon/gallery/gallery.php:47 ../../addon/gallery/Mod_Gallery.php:115
+#: ../../addon/gallery/gallery.php:38 ../../addon/gallery/Mod_Gallery.php:135
msgid "Gallery"
msgstr "Galería"
-#: ../../addon/gallery/gallery.php:50
+#: ../../addon/gallery/gallery.php:41
msgid "Photo Gallery"
msgstr "Galería de fotos"
-#: ../../addon/gallery/Mod_Gallery.php:57
+#: ../../addon/gallery/Mod_Gallery.php:58
+msgid "Gallery App"
+msgstr "App Gallery"
+
+#: ../../addon/gallery/Mod_Gallery.php:59
msgid "A simple gallery for your photo albums"
msgstr "Una galería sencilla para sus álbumes de fotos"
-#: ../../addon/ljpost/ljpost.php:42
-msgid "Post to LiveJournal"
-msgstr "Publicar en LiveJournal"
+#: ../../addon/ljpost/Mod_Ljpost.php:36
+msgid "Livejournal Crosspost Connector App"
+msgstr "App Livejournal Crosspost Connector"
-#: ../../addon/ljpost/ljpost.php:70
-msgid "Enable LiveJournal Post Plugin"
-msgstr "Habilitar el plugin de publicación en LiveJournal"
+#: ../../addon/ljpost/Mod_Ljpost.php:37
+msgid "Relay public posts to Livejournal"
+msgstr "Retransmisión de entradas públicas a Livejournal"
-#: ../../addon/ljpost/ljpost.php:74
-msgid "LiveJournal username"
-msgstr "Nombre de usuario en LiveJournal"
+#: ../../addon/ljpost/Mod_Ljpost.php:54
+msgid "Livejournal username"
+msgstr "Nombre de usuario en Livejournal"
-#: ../../addon/ljpost/ljpost.php:78
-msgid "LiveJournal password"
-msgstr "Contraseña en LiveJournal"
+#: ../../addon/ljpost/Mod_Ljpost.php:58
+msgid "Livejournal password"
+msgstr "Contraseña en Livejournal"
-#: ../../addon/ljpost/ljpost.php:82
-msgid "Post to LiveJournal by default"
-msgstr "Publicar en LiveJournal por defecto"
+#: ../../addon/ljpost/Mod_Ljpost.php:62
+msgid "Post to Livejournal by default"
+msgstr "Publicar en Livejournal por defecto"
-#: ../../addon/ljpost/ljpost.php:86
-msgid "LiveJournal Post Settings"
-msgstr "Ajustes de publicación en LiveJournal"
+#: ../../addon/ljpost/Mod_Ljpost.php:70
+msgid "Livejournal Crosspost Connector"
+msgstr "Livejournal Crosspost Connector"
-#: ../../addon/ljpost/ljpost.php:101
-msgid "LiveJournal Settings saved."
-msgstr "Se han guardado los ajustes de LiveJournal."
+#: ../../addon/ljpost/ljpost.php:45
+msgid "Post to Livejournal"
+msgstr "Publicar en Livejournal"
#: ../../addon/openid/openid.php:49
msgid ""
@@ -10493,7 +10709,8 @@ msgstr "Nombre"
msgid "Last Name"
msgstr "Apellido"
-#: ../../addon/openid/MysqlProvider.php:54 ../../addon/redred/redred.php:111
+#: ../../addon/openid/MysqlProvider.php:54
+#: ../../addon/redred/Mod_Redred.php:75
msgid "Nickname"
msgstr "Alias"
@@ -10554,12 +10771,12 @@ msgid "Login failed."
msgstr "El acceso ha fallado."
#: ../../addon/openid/Mod_Id.php:85 ../../include/selectors.php:60
-#: ../../include/selectors.php:77 ../../include/channel.php:1487
+#: ../../include/selectors.php:77 ../../include/channel.php:1536
msgid "Male"
msgstr "Hombre"
#: ../../addon/openid/Mod_Id.php:87 ../../include/selectors.php:60
-#: ../../include/selectors.php:77 ../../include/channel.php:1485
+#: ../../include/selectors.php:77 ../../include/channel.php:1534
msgid "Female"
msgstr "Mujer"
@@ -10579,6 +10796,10 @@ msgstr "No lo menciones."
msgid "&lt;blush&gt;"
msgstr "&lt;sonrojo&gt;"
+#: ../../addon/startpage/Mod_Startpage.php:50
+msgid "Startpage App"
+msgstr "App Startpage"
+
#: ../../addon/startpage/Mod_Startpage.php:51
msgid "Set a preferred page to load on login from home page"
msgstr "Establecer una página preferida para cargar al iniciar sesión desde la página de inicio"
@@ -10750,6 +10971,11 @@ msgstr "una declaración de amor eterno"
msgid "declared undying love for"
msgstr "ha declarado amor eterno a"
+#: ../../addon/diaspora/Receiver.php:1495
+#, php-format
+msgid "%1$s dislikes %2$s's %3$s"
+msgstr "a %1$s no le gusta el %3$s de %2$s"
+
#: ../../addon/diaspora/Mod_Diaspora.php:40
msgid "Diaspora Protocol Settings updated."
msgstr "Los ajustes del protocolo de Diaspora se han actualizado."
@@ -10761,6 +10987,10 @@ msgid ""
"locations."
msgstr "El protocolo de Diaspora no admite la independencia de la ubicación. Las conexiones que realice dentro de esa red pueden ser inaccesibles desde ubicaciones de canales alternativos."
+#: ../../addon/diaspora/Mod_Diaspora.php:55
+msgid "Diaspora Protocol App"
+msgstr "App Protocolo Diaspora"
+
#: ../../addon/diaspora/Mod_Diaspora.php:74
msgid "Allow any Diaspora member to comment on your public posts"
msgstr "Permitir a cualquier miembro de Diaspora comentar sus entradas públicas"
@@ -10786,10 +11016,36 @@ msgstr "Protocolo Diaspora"
msgid "No username found in import file."
msgstr "No se ha encontrado el nombre de usuario en el fichero de importación."
-#: ../../addon/diaspora/import_diaspora.php:43 ../../include/import.php:72
+#: ../../addon/diaspora/import_diaspora.php:43 ../../include/import.php:73
msgid "Unable to create a unique channel address. Import failed."
msgstr "No se ha podido crear una dirección de canal única. Ha fallado la importación."
+#: ../../addon/photocache/Mod_Photocache.php:27
+msgid "Photo Cache settings saved."
+msgstr "Se ha guardado la configuración de la caché de fotos."
+
+#: ../../addon/photocache/Mod_Photocache.php:36
+msgid ""
+"Photo Cache addon saves a copy of images from external sites locally to "
+"increase your anonymity in the web."
+msgstr "El complemento Photo Cache guarda localmente una copia de las imágenes de sitios externos para aumentar su anonimato en la Web."
+
+#: ../../addon/photocache/Mod_Photocache.php:42
+msgid "Photo Cache App"
+msgstr "App Photo Cache"
+
+#: ../../addon/photocache/Mod_Photocache.php:53
+msgid "Minimal photo size for caching"
+msgstr "Tamaño mínimo de la foto para el almacenamiento en caché"
+
+#: ../../addon/photocache/Mod_Photocache.php:55
+msgid "In pixels. From 1 up to 1024, 0 will be replaced with system default."
+msgstr "En píxeles. Desde 1 hasta 1024, 0 será reemplazado por el predeterminado del sistema."
+
+#: ../../addon/photocache/Mod_Photocache.php:64
+msgid "Photo Cache"
+msgstr "Photo Cache"
+
#: ../../addon/testdrive/testdrive.php:104
#, php-format
msgid "Your account on %s will expire in a few days."
@@ -10803,6 +11059,11 @@ msgstr "Su cuenta de prueba de $Productname está a punto de caducar."
msgid "Add some colour to tag clouds"
msgstr "Añadir color a las nubes de etiquetas"
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:21
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:26
+msgid "Rainbow Tag App"
+msgstr "App Etiqueta Arcoiris"
+
#: ../../addon/rainbowtag/Mod_Rainbowtag.php:34
msgid "Rainbow Tag"
msgstr "Etiqueta Arcoiris"
@@ -10859,7 +11120,7 @@ msgid ""
msgstr "El addon Libravatar también está instalado. Por favor deshabilite el addon de Libravatar o este addon de Gravatar.<br> El addon de Libravatar volverá a Gravatar si no se encuentra nada en Libravatar."
#: ../../addon/gravatar/gravatar.php:150
-#: ../../addon/msgfooter/msgfooter.php:46 ../../addon/xmpp/xmpp.php:91
+#: ../../addon/msgfooter/msgfooter.php:46 ../../addon/xmpp/xmpp.php:43
msgid "Save Settings"
msgstr "Guardar ajustes"
@@ -10903,46 +11164,26 @@ msgstr "Modificado desde la fecha yyyy-mm-dd"
msgid "Until modified date yyyy-mm-dd"
msgstr "Modificado hasta la fecha yyyy-mm-dd"
-#: ../../addon/visage/visage.php:93
+#: ../../addon/visage/Mod_Visage.php:21
+msgid "Who viewed my channel/profile"
+msgstr "Quién ha visto mi canal/perfi"
+
+#: ../../addon/visage/Mod_Visage.php:25
msgid "Recent Channel/Profile Viewers"
msgstr "Visitantes recientes del canal o perfil"
-#: ../../addon/visage/visage.php:98
-msgid "This plugin/addon has not been configured."
-msgstr "El plugin o complemento no se ha configurado."
-
-#: ../../addon/visage/visage.php:99
-#, php-format
-msgid "Please visit the Visage settings on %s"
-msgstr "Por favor, revise los ajustes de Visage en %s"
-
-#: ../../addon/visage/visage.php:99
-msgid "your feature settings page"
-msgstr "su página de ajustes de las funcionalidades"
-
-#: ../../addon/visage/visage.php:112
+#: ../../addon/visage/Mod_Visage.php:36
msgid "No entries."
msgstr "No hay entradas."
-#: ../../addon/visage/visage.php:166
-msgid "Enable Visage Visitor Logging"
-msgstr "Habilitar el registro de visitantes de Visage"
-
-#: ../../addon/visage/visage.php:170
-msgid "Visage Settings"
-msgstr "Ajustes de Visage"
-
-#: ../../addon/nsabait/nsabait.php:125
-msgid "Nsabait Settings updated."
-msgstr "Se han actualizado los ajustes de Nsabait"
-
-#: ../../addon/nsabait/nsabait.php:157
-msgid "Enable NSAbait Plugin"
-msgstr "Habilitar el plugin NSAbait"
+#: ../../addon/nsabait/Mod_Nsabait.php:20
+#: ../../addon/nsabait/Mod_Nsabait.php:24
+msgid "NSA Bait App"
+msgstr "App NSA Bait "
-#: ../../addon/nsabait/nsabait.php:161
-msgid "NSAbait Settings"
-msgstr "Ajustes de NSAbait"
+#: ../../addon/nsabait/Mod_Nsabait.php:26
+msgid "Make yourself a political target"
+msgstr "Conviértase en un objetivo político"
#: ../../addon/mailtest/mailtest.php:19
msgid "Send test email"
@@ -10976,40 +11217,40 @@ msgstr "Usar markdown para editar las entradas"
msgid "View Larger"
msgstr "Ver más grande"
-#: ../../addon/openstreetmap/openstreetmap.php:169
+#: ../../addon/openstreetmap/openstreetmap.php:170
msgid "Tile Server URL"
msgstr "URL del servidor de mosaicos de imágenes "
-#: ../../addon/openstreetmap/openstreetmap.php:169
+#: ../../addon/openstreetmap/openstreetmap.php:170
msgid ""
"A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" "
"target=\"_blank\">public tile servers</a>"
msgstr "Una lista de <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">servidores públicos de mosaicos de imágenes</a>"
-#: ../../addon/openstreetmap/openstreetmap.php:170
+#: ../../addon/openstreetmap/openstreetmap.php:171
msgid "Nominatim (reverse geocoding) Server URL"
msgstr "URL del servidor nominatim (geocodificación inversa)"
-#: ../../addon/openstreetmap/openstreetmap.php:170
+#: ../../addon/openstreetmap/openstreetmap.php:171
msgid ""
"A list of <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim\" "
"target=\"_blank\">Nominatim servers</a>"
msgstr "Una lista de <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\">servidores nominatim</a>"
-#: ../../addon/openstreetmap/openstreetmap.php:171
+#: ../../addon/openstreetmap/openstreetmap.php:172
msgid "Default zoom"
msgstr "Zoom predeterminado"
-#: ../../addon/openstreetmap/openstreetmap.php:171
+#: ../../addon/openstreetmap/openstreetmap.php:172
msgid ""
"The default zoom level. (1:world, 18:highest, also depends on tile server)"
msgstr "El nivel de zoom predeterminado. (1: mundo, 18: el más alto, también depende del servidor del mosaico de imágenes)"
-#: ../../addon/openstreetmap/openstreetmap.php:172
+#: ../../addon/openstreetmap/openstreetmap.php:173
msgid "Include marker on map"
msgstr "Incluir un marcador en el mapa"
-#: ../../addon/openstreetmap/openstreetmap.php:172
+#: ../../addon/openstreetmap/openstreetmap.php:173
msgid "Include a marker on the map."
msgstr "Incluir un marcador en el mapa."
@@ -11017,121 +11258,129 @@ msgstr "Incluir un marcador en el mapa."
msgid "text to include in all outgoing posts from this site"
msgstr "texto a incluir en todos los mensajes salientes de este sitio"
-#: ../../addon/fuzzloc/fuzzloc.php:148
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:22
msgid "Fuzzloc Settings updated."
msgstr "Los ajustes de Fuzzloc se han actualizado."
-#: ../../addon/fuzzloc/fuzzloc.php:175
-msgid ""
-"Fuzzloc allows you to blur your precise location if your channel uses "
-"browser location mapping."
-msgstr "Fuzzloc le permite desdibujar su ubicación precisa si su canal utiliza la asignación de ubicación del navegador."
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:34
+msgid "Fuzzy Location App"
+msgstr "App Fuzzy Location"
-#: ../../addon/fuzzloc/fuzzloc.php:178
-msgid "Enable Fuzzloc Plugin"
-msgstr "Habilitar el plugin Fuzzloc"
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:35
+msgid ""
+"Blur your precise location if your channel uses browser location mapping"
+msgstr "Desdibujar su ubicación precisa si su canal utiliza el mapeo de ubicación del navegador"
-#: ../../addon/fuzzloc/fuzzloc.php:182
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:40
msgid "Minimum offset in meters"
msgstr "Offset mínimo en metros"
-#: ../../addon/fuzzloc/fuzzloc.php:186
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:44
msgid "Maximum offset in meters"
msgstr "Offset máximo en metros"
-#: ../../addon/fuzzloc/fuzzloc.php:191
-msgid "Fuzzloc Settings"
-msgstr "Ajustes de Fuzzloc"
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:53
+msgid "Fuzzy Location"
+msgstr "Fuzzy Location"
-#: ../../addon/rtof/rtof.php:45
+#: ../../addon/rtof/rtof.php:51
msgid "Post to Friendica"
msgstr "Publicar en Friendica"
-#: ../../addon/rtof/rtof.php:62
-msgid "rtof Settings saved."
-msgstr "Se han guardado los ajustes de rtof"
+#: ../../addon/rtof/Mod_Rtof.php:24
+msgid "Friendica Crosspost Connector Settings saved."
+msgstr "Se han guardado los ajustes del conector de publicación cruzada con Friendica."
-#: ../../addon/rtof/rtof.php:81
-msgid "Allow posting to Friendica"
-msgstr "Permitir publicar en Friendica"
+#: ../../addon/rtof/Mod_Rtof.php:36
+msgid "Friendica Crosspost Connector App"
+msgstr "App Friendica Crosspost Connector"
-#: ../../addon/rtof/rtof.php:85
+#: ../../addon/rtof/Mod_Rtof.php:37
+msgid "Relay public postings to a connected Friendica account"
+msgstr "Retransmisión de entradas públicas a una cuenta Friendica conectada"
+
+#: ../../addon/rtof/Mod_Rtof.php:49
msgid "Send public postings to Friendica by default"
msgstr "Enviar entradas públicas a Friendica por defecto"
-#: ../../addon/rtof/rtof.php:89
+#: ../../addon/rtof/Mod_Rtof.php:53
msgid "Friendica API Path"
msgstr "Ruta a la API de Friendica"
-#: ../../addon/rtof/rtof.php:89 ../../addon/redred/redred.php:103
+#: ../../addon/rtof/Mod_Rtof.php:53 ../../addon/redred/Mod_Redred.php:67
msgid "https://{sitename}/api"
msgstr "https://{sitename}/api"
-#: ../../addon/rtof/rtof.php:93
+#: ../../addon/rtof/Mod_Rtof.php:57
msgid "Friendica login name"
msgstr "Nombre de inicio de sesión en Friendica"
-#: ../../addon/rtof/rtof.php:97
+#: ../../addon/rtof/Mod_Rtof.php:61
msgid "Friendica password"
msgstr "Contraseña de Friendica"
-#: ../../addon/rtof/rtof.php:101
-msgid "Hubzilla to Friendica Post Settings"
-msgstr "Ajustes de publicación de Hubzilla a Friendica"
+#: ../../addon/rtof/Mod_Rtof.php:69
+msgid "Friendica Crosspost Connector"
+msgstr "Friendica Crosspost Connector"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:96
+msgid "Jappixmini App"
+msgstr "App Jappixmini"
-#: ../../addon/jappixmini/jappixmini.php:305 ../../include/channel.php:1403
-#: ../../include/channel.php:1574
+#: ../../addon/jappixmini/Mod_Jappixmini.php:97
+msgid "Provides a Facebook-like chat using Jappix Mini"
+msgstr "Proporciona un chat similar al de Facebook utilizando Jappix Mini"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:157
+#: ../../include/channel.php:1452 ../../include/channel.php:1623
msgid "Status:"
msgstr "Estado:"
-#: ../../addon/jappixmini/jappixmini.php:309
-msgid "Activate addon"
-msgstr "Habilitar complemento"
-
-#: ../../addon/jappixmini/jappixmini.php:313
+#: ../../addon/jappixmini/Mod_Jappixmini.php:161
msgid "Hide Jappixmini Chat-Widget from the webinterface"
msgstr "Ocultar el widget de chat Jappixmini en la interfaz web"
-#: ../../addon/jappixmini/jappixmini.php:318
+#: ../../addon/jappixmini/Mod_Jappixmini.php:166
msgid "Jabber username"
msgstr "Nombre de usuario en Jabber"
-#: ../../addon/jappixmini/jappixmini.php:324
+#: ../../addon/jappixmini/Mod_Jappixmini.php:172
msgid "Jabber server"
msgstr "Servidor de Jabber"
-#: ../../addon/jappixmini/jappixmini.php:330
+#: ../../addon/jappixmini/Mod_Jappixmini.php:178
msgid "Jabber BOSH host URL"
msgstr "URL del host BOSH de Jabber"
-#: ../../addon/jappixmini/jappixmini.php:337
+#: ../../addon/jappixmini/Mod_Jappixmini.php:185
msgid "Jabber password"
msgstr "Contraseña en Jabber"
-#: ../../addon/jappixmini/jappixmini.php:343
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
msgid "Encrypt Jabber password with Hubzilla password"
msgstr "Cifrar la contraseña de Jabber con la contraseña de Hubzilla"
-#: ../../addon/jappixmini/jappixmini.php:347 ../../addon/redred/redred.php:115
+#: ../../addon/jappixmini/Mod_Jappixmini.php:195
+#: ../../addon/redred/Mod_Redred.php:79
msgid "Hubzilla password"
msgstr "Contraseña de Hubzilla"
-#: ../../addon/jappixmini/jappixmini.php:351
-#: ../../addon/jappixmini/jappixmini.php:355
+#: ../../addon/jappixmini/Mod_Jappixmini.php:199
+#: ../../addon/jappixmini/Mod_Jappixmini.php:203
msgid "Approve subscription requests from Hubzilla contacts automatically"
msgstr "Aprobar automáticamente las solicitudes de suscripción de los contactos de Hubzilla"
-#: ../../addon/jappixmini/jappixmini.php:359
+#: ../../addon/jappixmini/Mod_Jappixmini.php:207
msgid "Purge internal list of jabber addresses of contacts"
msgstr "Purgar la lista interna de las direcciones de contactos de jabber"
-#: ../../addon/jappixmini/jappixmini.php:364
+#: ../../addon/jappixmini/Mod_Jappixmini.php:212
msgid "Configuration Help"
msgstr "Ayuda para los ajustes"
-#: ../../addon/jappixmini/jappixmini.php:371
-msgid "Jappix Mini Settings"
-msgstr "Ajustes de Jappix Mini"
+#: ../../addon/jappixmini/Mod_Jappixmini.php:258
+msgid "Jappixmini Settings"
+msgstr "Ajustes de Jappixmini"
#: ../../addon/upgrade_info/upgrade_info.php:43
msgid "Your channel has been upgraded to the latest $Projectname version."
@@ -11163,81 +11412,85 @@ msgstr "Información de actualización"
msgid "Do not show this again"
msgstr "No mostrar esto de nuevo"
-#: ../../addon/channelreputation/channelreputation.php:101
-#: ../../addon/channelreputation/channelreputation.php:102
+#: ../../addon/channelreputation/channelreputation.php:98
+#: ../../addon/channelreputation/channelreputation.php:99
#: ../../addon/cart/myshop.php:141 ../../addon/cart/myshop.php:177
#: ../../addon/cart/myshop.php:211 ../../addon/cart/myshop.php:259
#: ../../addon/cart/myshop.php:294 ../../addon/cart/myshop.php:317
msgid "Access Denied"
msgstr "Acceso denegado"
-#: ../../addon/channelreputation/channelreputation.php:109
+#: ../../addon/channelreputation/channelreputation.php:106
msgid "Enable Community Moderation"
msgstr "Habilitar la moderación de la comunidad"
-#: ../../addon/channelreputation/channelreputation.php:117
+#: ../../addon/channelreputation/channelreputation.php:114
msgid "Reputation automatically given to new members"
msgstr "La reputación se otorga automáticamente a los nuevos miembros"
-#: ../../addon/channelreputation/channelreputation.php:118
+#: ../../addon/channelreputation/channelreputation.php:115
msgid "Reputation will never fall below this value"
msgstr "La reputación nunca caerá por debajo de este valor"
-#: ../../addon/channelreputation/channelreputation.php:119
+#: ../../addon/channelreputation/channelreputation.php:116
msgid "Minimum reputation before posting is allowed"
msgstr "Reputación mínima antes de que se permita el envío de entradas"
-#: ../../addon/channelreputation/channelreputation.php:120
+#: ../../addon/channelreputation/channelreputation.php:117
msgid "Minimum reputation before commenting is allowed"
msgstr "Mínima reputación antes de que se permitan los comentarios"
-#: ../../addon/channelreputation/channelreputation.php:121
+#: ../../addon/channelreputation/channelreputation.php:118
msgid "Minimum reputation before a member is able to moderate other posts"
msgstr "Reputación mínima antes de que un miembro sea capaz de moderar otros mensajes"
-#: ../../addon/channelreputation/channelreputation.php:122
+#: ../../addon/channelreputation/channelreputation.php:119
msgid ""
"Max ratio of moderator's reputation that can be added to/deducted from "
"reputation of person being moderated"
msgstr "Proporción máxima de la reputación del moderador que puede ser añadida/descontada de la reputación de la persona que está siendo moderada."
-#: ../../addon/channelreputation/channelreputation.php:123
+#: ../../addon/channelreputation/channelreputation.php:120
msgid "Reputation \"cost\" to post"
msgstr "\"Coste\" de la reputación a contabilizar"
-#: ../../addon/channelreputation/channelreputation.php:124
+#: ../../addon/channelreputation/channelreputation.php:121
msgid "Reputation \"cost\" to comment"
msgstr "\"Coste\" de la reputación para comentar"
-#: ../../addon/channelreputation/channelreputation.php:125
+#: ../../addon/channelreputation/channelreputation.php:122
msgid ""
"Reputation automatically recovers at this rate per hour until it reaches "
"minimum_to_post"
msgstr "La reputación se recupera automáticamente a esta tasa por hora hasta que alcanza el mínimo_a_post"
-#: ../../addon/channelreputation/channelreputation.php:126
+#: ../../addon/channelreputation/channelreputation.php:123
msgid ""
"When minimum_to_moderate > reputation > minimum_to_post reputation recovers "
"at this rate per hour"
msgstr "Cuando el mínimo_a_moderar > reputación > mínimo_a_publicar la reputación se recupera a esta tasa por hora "
-#: ../../addon/channelreputation/channelreputation.php:138
+#: ../../addon/channelreputation/channelreputation.php:137
msgid "Community Moderation Settings"
msgstr "Configuración de la moderación de la comunidad"
-#: ../../addon/channelreputation/channelreputation.php:359
+#: ../../addon/channelreputation/channelreputation.php:365
msgid "Can moderate reputation on my channel."
msgstr "Se puede moderar la reputación en mi canal."
-#: ../../addon/channelreputation/channelreputation.php:544
-#: ../../addon/channelreputation/channelreputation.php:547
+#: ../../addon/channelreputation/channelreputation.php:549
+#: ../../addon/channelreputation/channelreputation.php:552
msgid "Channel Reputation"
msgstr "Reputación del canal"
-#: ../../addon/superblock/superblock.php:318
+#: ../../addon/superblock/superblock.php:337
msgid "Block Completely"
msgstr "Bloquear completamente"
+#: ../../addon/superblock/Mod_Superblock.php:20
+msgid "Superblock App"
+msgstr "App Superblock"
+
#: ../../addon/superblock/Mod_Superblock.php:21
msgid "Block channels"
msgstr "Bloquear canales"
@@ -11254,61 +11507,72 @@ msgstr "Actualmente bloqueado"
msgid "No channels currently blocked"
msgstr "No hay canales bloqueados actualmente"
-#: ../../addon/nofed/nofed.php:42
-msgid "Federate"
-msgstr "Federar"
-
-#: ../../addon/nofed/nofed.php:56
+#: ../../addon/nofed/Mod_Nofed.php:21
msgid "nofed Settings saved."
msgstr "Se han guardado los ajustes de nofed."
-#: ../../addon/nofed/nofed.php:72
-msgid "Allow Federation Toggle"
-msgstr "Permitir alternancia de federación"
+#: ../../addon/nofed/Mod_Nofed.php:33
+msgid "No Federation App"
+msgstr "App No Federation"
+
+#: ../../addon/nofed/Mod_Nofed.php:34
+msgid ""
+"Prevent posting from being federated to anybody. It will exist only on your "
+"channel page."
+msgstr "Evitar que la entrada sea federada con nadie. Sólo existirá en la página de su canal."
-#: ../../addon/nofed/nofed.php:76
+#: ../../addon/nofed/Mod_Nofed.php:42
msgid "Federate posts by default"
msgstr "Federar las publicaciones por defecto"
-#: ../../addon/nofed/nofed.php:80
-msgid "NoFed Settings"
-msgstr "Ajustes de NoFed"
+#: ../../addon/nofed/Mod_Nofed.php:50
+msgid "No Federation"
+msgstr "No Federation"
-#: ../../addon/redred/redred.php:45
-msgid "Post to Red"
-msgstr "Enviar a Red"
+#: ../../addon/nofed/nofed.php:47
+msgid "Federate"
+msgstr "Federar"
-#: ../../addon/redred/redred.php:60
+#: ../../addon/redred/Mod_Redred.php:24
msgid "Channel is required."
msgstr "Se requiere un canal."
-#: ../../addon/redred/redred.php:76
-msgid "redred Settings saved."
-msgstr "Se han salvado los ajustes de redred."
+#: ../../addon/redred/Mod_Redred.php:38
+msgid "Hubzilla Crosspost Connector Settings saved."
+msgstr "Se han guardado los ajustes de Hubzilla Crosspost Connector"
+
+#: ../../addon/redred/Mod_Redred.php:50
+#: ../../addon/statusnet/Mod_Statusnet.php:146
+msgid "Hubzilla Crosspost Connector App"
+msgstr "App Hubzilla Crosspost Connector"
-#: ../../addon/redred/redred.php:95
-msgid "Allow posting to another Hubzilla Channel"
-msgstr "Permitir la publicación en otro canal de Hubzilla"
+#: ../../addon/redred/Mod_Redred.php:51
+msgid "Relay public postings to another Hubzilla channel"
+msgstr "Retransmisión de entradas a otro canal de Hubzilla"
-#: ../../addon/redred/redred.php:99
+#: ../../addon/redred/Mod_Redred.php:63
msgid "Send public postings to Hubzilla channel by default"
msgstr "Enviar entradas públicas al canal Hubzilla por defecto"
-#: ../../addon/redred/redred.php:103
+#: ../../addon/redred/Mod_Redred.php:67
msgid "Hubzilla API Path"
msgstr "Ruta de la API de Hubzilla"
-#: ../../addon/redred/redred.php:107
+#: ../../addon/redred/Mod_Redred.php:71
msgid "Hubzilla login name"
msgstr "Nombre de inicio de sesión en Hubzilla"
-#: ../../addon/redred/redred.php:111
+#: ../../addon/redred/Mod_Redred.php:75
msgid "Hubzilla channel name"
msgstr "Nombre del canal de Hubzilla"
-#: ../../addon/redred/redred.php:119
-msgid "Hubzilla Crosspost Settings"
-msgstr "Ajustes de Hubzilla Crosspost"
+#: ../../addon/redred/Mod_Redred.php:87
+msgid "Hubzilla Crosspost Connector"
+msgstr "Hubzilla Crosspost Connector"
+
+#: ../../addon/redred/redred.php:50
+msgid "Post to Hubzilla"
+msgstr "Publicar en Hubzilla"
#: ../../addon/logrot/logrot.php:36
msgid "Logfile archive directory"
@@ -11350,6 +11614,10 @@ msgstr "Contraseña de inicio de sesión en Friendica"
msgid "WYSIWYG status editor"
msgstr "Editor de estado de WYSIWYG"
+#: ../../addon/hsse/Mod_Hsse.php:21 ../../addon/hsse/Mod_Hsse.php:26
+msgid "WYSIWYG Status App"
+msgstr "App WYSIWYG Status"
+
#: ../../addon/hsse/Mod_Hsse.php:34
msgid "WYSIWYG Status"
msgstr "Estado de WYSIWYG"
@@ -11386,35 +11654,35 @@ msgstr "Comentarios habilitados"
msgid "Comments disabled"
msgstr "Comentarios deshabilitados"
-#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1398
+#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1401
msgid "Page link name"
msgstr "Nombre del enlace de la página"
-#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1401
+#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1404
msgid "Post as"
msgstr "Publicar como"
-#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1415
+#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1418
msgid "Toggle voting"
msgstr "Cambiar votación"
-#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1418
+#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1421
msgid "Disable comments"
msgstr "Dehabilitar los comentarios"
-#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1419
+#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1422
msgid "Toggle comments"
msgstr "Activar o desactivar los comentarios"
-#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1427
+#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1430
msgid "Categories (optional, comma-separated list)"
msgstr "Temas (opcional, lista separada por comas)"
-#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1450
+#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1453
msgid "Other networks and post services"
msgstr "Otras redes y servicios de publicación"
-#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1456
+#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1459
msgid "Set publish date"
msgstr "Establecer la fecha de publicación"
@@ -11429,6 +11697,10 @@ msgid ""
"locations."
msgstr "El protocolo ActivityPub no soporta la independencia de ubicación. Las conexiones que realice dentro de esa red pueden no ser accesibles desde ubicaciones de canales alternativos."
+#: ../../addon/pubcrawl/Mod_Pubcrawl.php:40
+msgid "Activitypub Protocol App"
+msgstr "App Protocolo Activitypub"
+
#: ../../addon/pubcrawl/Mod_Pubcrawl.php:48
msgid "Deliver to ActivityPub recipients in privacy groups"
msgstr "Entregar a los destinatarios de ActivityPub en grupos de canales"
@@ -11459,73 +11731,69 @@ msgstr "Servidores y recursos del proyecto"
msgid "Project Creator and Tech Lead"
msgstr "Creador del proyecto y director técnico"
-#: ../../addon/donate/donate.php:23
-msgid "Admin, developer, directorymin, support bloke"
-msgstr "Administrador, desarrollador, administrador del directorio, trabajador de apoyo"
-
-#: ../../addon/donate/donate.php:50
+#: ../../addon/donate/donate.php:49
msgid ""
"And the hundreds of other people and organisations who helped make the "
"Hubzilla possible."
msgstr "Y los cientos de personas y organizaciones más que ayudaron a hacer posible Hubzilla."
-#: ../../addon/donate/donate.php:53
+#: ../../addon/donate/donate.php:52
msgid ""
"The Redmatrix/Hubzilla projects are provided primarily by volunteers giving "
"their time and expertise - and often paying out of pocket for services they "
"share with others."
msgstr "Los proyectos Redmatrix / Hubzilla están proporcionados principalmente por voluntarios que les prestan su tiempo y experiencia, pagando a menudo de su bolsillo por los servicios que comparten con otros."
-#: ../../addon/donate/donate.php:54
+#: ../../addon/donate/donate.php:53
msgid ""
"There is no corporate funding and no ads, and we do not collect and sell "
"your personal information. (We don't control your personal information - "
"<strong>you do</strong>.)"
msgstr "No hay financiación corporativa ni publicidad y no recogemos ni vendemos su información personal. (De hecho, no tenemos control sobre sus datos privados. <Strong>Usted lo tiene</strong>.)"
-#: ../../addon/donate/donate.php:55
+#: ../../addon/donate/donate.php:54
msgid ""
"Help support our ground-breaking work in decentralisation, web identity, and"
" privacy."
msgstr "Ayude apoyando nuestro trabajo pionero en la descentralización, la identidad web, y la privacidad."
-#: ../../addon/donate/donate.php:57
+#: ../../addon/donate/donate.php:56
msgid ""
"Your donations keep servers and services running and also helps us to "
"provide innovative new features and continued development."
msgstr "Sus donaciones mantienen servidores y servicios en ejecución y también nos ayudan a proporcionar nuevas características innovadoras y a mantener el desarrollo de forma continuada."
-#: ../../addon/donate/donate.php:60
+#: ../../addon/donate/donate.php:59
msgid "Donate"
msgstr "Donar"
-#: ../../addon/donate/donate.php:62
+#: ../../addon/donate/donate.php:61
msgid ""
"Choose a project, developer, or public hub to support with a one-time "
"donation"
msgstr "Elija un proyecto, desarrollador, o \"hub\" público para apoyar con una donación de una sola vez"
-#: ../../addon/donate/donate.php:63
+#: ../../addon/donate/donate.php:62
msgid "Donate Now"
msgstr "Donar ahora"
-#: ../../addon/donate/donate.php:64
+#: ../../addon/donate/donate.php:63
msgid ""
"<strong><em>Or</em></strong> become a project sponsor (Hubzilla Project "
"only)"
msgstr "<strong><em>O</em></strong> convertirse en un patrocinador del proyecto (sólo del proyecto Hubzilla)"
-#: ../../addon/donate/donate.php:65
+#: ../../addon/donate/donate.php:64
msgid ""
"Please indicate if you would like your first name or full name (or nothing) "
"to appear in our sponsor listing"
msgstr "Por favor, indique si desea que su nombre de pila o el nombre completo (o nada) aparezca en nuestra lista de patrocinadores"
-#: ../../addon/donate/donate.php:66
+#: ../../addon/donate/donate.php:65
msgid "Sponsor"
msgstr "Patrocinador"
-#: ../../addon/donate/donate.php:69
+#: ../../addon/donate/donate.php:68
msgid "Special thanks to: "
msgstr "Agradecimiento especial a: "
@@ -11575,128 +11843,137 @@ msgstr "Mostrar para tocadores zurdos"
msgid "Quick Reference"
msgstr "Referencia rápida"
-#: ../../addon/libertree/libertree.php:38
+#: ../../addon/libertree/libertree.php:43
msgid "Post to Libertree"
msgstr "Publicar en Libertree"
-#: ../../addon/libertree/libertree.php:69
-msgid "Enable Libertree Post Plugin"
-msgstr "Habilitar el plugin de publicación en Libertree"
+#: ../../addon/libertree/Mod_Libertree.php:25
+msgid "Libertree Crosspost Connector Settings saved."
+msgstr "Se han guardado los ajustes del conector de publicación cruzada con Libertree."
+
+#: ../../addon/libertree/Mod_Libertree.php:35
+msgid "Libertree Crosspost Connector App"
+msgstr "App Libertree Crosspost Connector"
-#: ../../addon/libertree/libertree.php:73
+#: ../../addon/libertree/Mod_Libertree.php:36
+msgid "Relay public posts to Libertree"
+msgstr "Retransmisión de entradas públicas a Libertree"
+
+#: ../../addon/libertree/Mod_Libertree.php:51
msgid "Libertree API token"
msgstr "Token de la API de Libertree"
-#: ../../addon/libertree/libertree.php:77
+#: ../../addon/libertree/Mod_Libertree.php:55
msgid "Libertree site URL"
msgstr "URL del servidor de Libertree"
-#: ../../addon/libertree/libertree.php:81
+#: ../../addon/libertree/Mod_Libertree.php:59
msgid "Post to Libertree by default"
msgstr "Publicar en Libertree por defecto"
-#: ../../addon/libertree/libertree.php:85
-msgid "Libertree Post Settings"
-msgstr "Ajustes de publicación en Libertree"
-
-#: ../../addon/libertree/libertree.php:99
-msgid "Libertree Settings saved."
-msgstr "Se han guardado los ajustes de Libertree."
-
-#: ../../addon/flattrwidget/flattrwidget.php:45
-msgid "Flattr this!"
-msgstr "¡Apoyar esto en Flattr!"
+#: ../../addon/libertree/Mod_Libertree.php:67
+msgid "Libertree Crosspost Connector"
+msgstr "Libertree Crosspost Connector"
-#: ../../addon/flattrwidget/flattrwidget.php:83
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:41
msgid "Flattr widget settings updated."
msgstr "Los ajustes del widget Flattr han sido actualizados."
-#: ../../addon/flattrwidget/flattrwidget.php:100
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:53
+msgid "Flattr Widget App"
+msgstr "App Flattr Widget"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:54
+msgid "Add a Flattr button to your channel page"
+msgstr "Proporcionar un botón Flattr a la página de su canal"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:65
msgid "Flattr user"
msgstr "Usuario en Flattr"
-#: ../../addon/flattrwidget/flattrwidget.php:104
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:69
msgid "URL of the Thing to flattr"
msgstr "URL de la Cosa para apoyar en flattr"
-#: ../../addon/flattrwidget/flattrwidget.php:104
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:69
msgid "If empty channel URL is used"
msgstr "Si está vacío, se usa la URL del canal"
-#: ../../addon/flattrwidget/flattrwidget.php:108
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:73
msgid "Title of the Thing to flattr"
msgstr "Título de la Cosa para apoyar en flattr"
-#: ../../addon/flattrwidget/flattrwidget.php:108
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:73
msgid "If empty \"channel name on The Hubzilla\" will be used"
msgstr "Si está vacío, se usará \"nombre del canal en Hubzilla\""
-#: ../../addon/flattrwidget/flattrwidget.php:112
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77
msgid "Static or dynamic flattr button"
msgstr "Botón de flattr estático o dinámico"
-#: ../../addon/flattrwidget/flattrwidget.php:112
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77
msgid "static"
msgstr "estático"
-#: ../../addon/flattrwidget/flattrwidget.php:112
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77
msgid "dynamic"
msgstr "dinámico"
-#: ../../addon/flattrwidget/flattrwidget.php:116
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81
msgid "Alignment of the widget"
msgstr "Alineamiento del widget"
-#: ../../addon/flattrwidget/flattrwidget.php:116
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81
msgid "left"
msgstr "izquierda"
-#: ../../addon/flattrwidget/flattrwidget.php:116
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81
msgid "right"
msgstr "derecha"
-#: ../../addon/flattrwidget/flattrwidget.php:120
-msgid "Enable Flattr widget"
-msgstr "Habilitar el widget Flattr"
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:89
+msgid "Flattr Widget"
+msgstr "Flattr Widget"
-#: ../../addon/flattrwidget/flattrwidget.php:124
-msgid "Flattr Widget Settings"
-msgstr "Ajustes del widget Flattr"
-
-#: ../../addon/statusnet/statusnet.php:143
-msgid "Post to GNU social"
-msgstr "Publicar en GNU social"
+#: ../../addon/flattrwidget/flattrwidget.php:50
+msgid "Flattr this!"
+msgstr "¡Apoyar esto en Flattr!"
-#: ../../addon/statusnet/statusnet.php:195
+#: ../../addon/statusnet/Mod_Statusnet.php:61
msgid ""
"Please contact your site administrator.<br />The provided API URL is not "
"valid."
msgstr "Por favor, contacte con el administrador de su sitio.<br />La URL de la API proporcionada no es válida."
-#: ../../addon/statusnet/statusnet.php:232
+#: ../../addon/statusnet/Mod_Statusnet.php:98
msgid "We could not contact the GNU social API with the Path you entered."
msgstr "No podemos conectar con la API de GNU social con la ruta que ha proporcionado."
-#: ../../addon/statusnet/statusnet.php:266
+#: ../../addon/statusnet/Mod_Statusnet.php:130
msgid "GNU social settings updated."
msgstr "Se han guardado los ajustes de GNU social."
-#: ../../addon/statusnet/statusnet.php:310
+#: ../../addon/statusnet/Mod_Statusnet.php:147
+msgid ""
+"Relay public postings to a connected GNU social account (formerly StatusNet)"
+msgstr "Retransmisión de entradas públicas a una cuenta conectada de GNU social (antiguo StarusNet)"
+
+#: ../../addon/statusnet/Mod_Statusnet.php:181
msgid "Globally Available GNU social OAuthKeys"
msgstr "OAuthKeys globales de GNU social disponibles"
-#: ../../addon/statusnet/statusnet.php:312
+#: ../../addon/statusnet/Mod_Statusnet.php:183
msgid ""
"There are preconfigured OAuth key pairs for some GNU social servers "
"available. If you are using one of them, please use these credentials.<br "
"/>If not feel free to connect to any other GNU social instance (see below)."
msgstr "Existen pares de claves OAuth preconfiguradas disponibles para algunos servidores libres de GNU social. Si está usando uno de ellos, utilice estas credenciales.<br />Si no se siente libre de conectarse a cualquier otra instancia de GNU social (vea a continuación)."
-#: ../../addon/statusnet/statusnet.php:327
+#: ../../addon/statusnet/Mod_Statusnet.php:198
msgid "Provide your own OAuth Credentials"
msgstr "Proporcione sus propias credenciales de OAuth"
-#: ../../addon/statusnet/statusnet.php:329
+#: ../../addon/statusnet/Mod_Statusnet.php:200
msgid ""
"No consumer key pair for GNU social found. Register your Hubzilla Account as"
" an desktop client on your GNU social account, copy the consumer key pair "
@@ -11705,27 +11982,27 @@ msgid ""
"Hubzilla installation at your favourite GNU social installation."
msgstr "No se ha encontrado un par de claves de consumidor para GNU social. Registre su cuenta de Hubzilla como un cliente de escritorio en su cuenta social GNU, copie el par de claves de consumidor aquí y escriba la dirección raíz de la API.<br />Antes de registrar su propio par de claves OAuth, pregunte al administrador si ya hay un par de claves para esta instalación de Hubzilla en su instalación GNU social favorita."
-#: ../../addon/statusnet/statusnet.php:333
+#: ../../addon/statusnet/Mod_Statusnet.php:204
msgid "OAuth Consumer Key"
msgstr "OAuth Consumer Key"
-#: ../../addon/statusnet/statusnet.php:337
+#: ../../addon/statusnet/Mod_Statusnet.php:208
msgid "OAuth Consumer Secret"
msgstr "OAuth Consumer Secret"
-#: ../../addon/statusnet/statusnet.php:341
+#: ../../addon/statusnet/Mod_Statusnet.php:212
msgid "Base API Path"
msgstr "Ruta base de la API"
-#: ../../addon/statusnet/statusnet.php:341
+#: ../../addon/statusnet/Mod_Statusnet.php:212
msgid "Remember the trailing /"
msgstr "Recuerde la barra /"
-#: ../../addon/statusnet/statusnet.php:345
+#: ../../addon/statusnet/Mod_Statusnet.php:216
msgid "GNU social application name"
msgstr "Nombre de la aplicación de GNU social"
-#: ../../addon/statusnet/statusnet.php:368
+#: ../../addon/statusnet/Mod_Statusnet.php:239
msgid ""
"To connect to your GNU social account click the button below to get a "
"security code from GNU social which you have to copy into the input box "
@@ -11733,31 +12010,32 @@ msgid ""
"posted to GNU social."
msgstr "Para conectarse a su cuenta de GNU social, haga clic en el botón de abajo para obtener un código de seguridad de GNU social que tiene que copiar en el cuadro de entrada a continuación y envíe el formulario. Solo sus <strong>entradas</strong> públicas aparecerán en GNU social."
-#: ../../addon/statusnet/statusnet.php:370
+#: ../../addon/statusnet/Mod_Statusnet.php:241
msgid "Log in with GNU social"
msgstr "Inicio de sesión en GNU social"
-#: ../../addon/statusnet/statusnet.php:373
+#: ../../addon/statusnet/Mod_Statusnet.php:244
msgid "Copy the security code from GNU social here"
msgstr "Copiar aquí el código de seguridad de GNU social"
-#: ../../addon/statusnet/statusnet.php:383
+#: ../../addon/statusnet/Mod_Statusnet.php:254
msgid "Cancel Connection Process"
msgstr "Cancelar el proceso de conexión"
-#: ../../addon/statusnet/statusnet.php:385
+#: ../../addon/statusnet/Mod_Statusnet.php:256
msgid "Current GNU social API is"
msgstr "La API actual de GNU social es "
-#: ../../addon/statusnet/statusnet.php:389
+#: ../../addon/statusnet/Mod_Statusnet.php:260
msgid "Cancel GNU social Connection"
msgstr "Cancelar la conexión de GNU social"
-#: ../../addon/statusnet/statusnet.php:401 ../../addon/twitter/twitter.php:236
+#: ../../addon/statusnet/Mod_Statusnet.php:272
+#: ../../addon/twitter/Mod_Twitter.php:147
msgid "Currently connected to: "
msgstr "Actualmente está conectado a: "
-#: ../../addon/statusnet/statusnet.php:406
+#: ../../addon/statusnet/Mod_Statusnet.php:277
msgid ""
"<strong>Note</strong>: Due your privacy settings (<em>Hide your profile "
"details from unknown viewers?</em>) the link potentially included in public "
@@ -11765,39 +12043,34 @@ msgid ""
"informing the visitor that the access to your profile has been restricted."
msgstr "<strong>Aviso</strong>: Debido a su configuración de privacidad (<em>Ocultar los detalles de su perfil a los visitantes desconocidos?</em>) el vínculo potencialmente incluido en las entradas públicas retransmitidas a GNU social llevará al visitante a una página en blanco que le informará de que el acceso a su perfil ha sido restringido."
-#: ../../addon/statusnet/statusnet.php:411
-msgid "Allow posting to GNU social"
-msgstr "Habilitar la publicación en GNU social"
-
-#: ../../addon/statusnet/statusnet.php:411
-msgid ""
-"If enabled your public postings can be posted to the associated GNU-social "
-"account"
-msgstr "Si está habilitado, sus entradas públicas se pueden publicar en la cuenta GNU-social asociada"
-
-#: ../../addon/statusnet/statusnet.php:415
+#: ../../addon/statusnet/Mod_Statusnet.php:282
msgid "Post to GNU social by default"
msgstr "Publicar en GNU social por defecto"
-#: ../../addon/statusnet/statusnet.php:415
+#: ../../addon/statusnet/Mod_Statusnet.php:282
msgid ""
"If enabled your public postings will be posted to the associated GNU-social "
"account by default"
msgstr "Si está activado, sus entradas públicas se publicarán en la cuenta GNU-social asociada de forma predeterminada"
-#: ../../addon/statusnet/statusnet.php:424 ../../addon/twitter/twitter.php:264
+#: ../../addon/statusnet/Mod_Statusnet.php:291
+#: ../../addon/twitter/Mod_Twitter.php:171
msgid "Clear OAuth configuration"
msgstr "Limpiar la configuración de OAuth"
-#: ../../addon/statusnet/statusnet.php:432
-msgid "GNU social Post Settings"
-msgstr "Ajustes de publicación en GNU social"
+#: ../../addon/statusnet/Mod_Statusnet.php:303
+msgid "GNU-Social Crosspost Connector"
+msgstr "GNU-Social Crosspost Connector"
-#: ../../addon/statusnet/statusnet.php:892
+#: ../../addon/statusnet/statusnet.php:145
+msgid "Post to GNU social"
+msgstr "Publicar en GNU social"
+
+#: ../../addon/statusnet/statusnet.php:594
msgid "API URL"
msgstr "URL de la API"
-#: ../../addon/statusnet/statusnet.php:895
+#: ../../addon/statusnet/statusnet.php:597
msgid "Application name"
msgstr "Nombre de la aplicación"
@@ -11813,57 +12086,65 @@ msgstr "Generador QR"
msgid "Enter some text"
msgstr "Escribir algún texto"
-#: ../../addon/chess/chess.php:353 ../../addon/chess/chess.php:542
+#: ../../addon/chess/Mod_Chess.php:180 ../../addon/chess/Mod_Chess.php:377
msgid "Invalid game."
msgstr "Juego no válido."
-#: ../../addon/chess/chess.php:359 ../../addon/chess/chess.php:582
+#: ../../addon/chess/Mod_Chess.php:186 ../../addon/chess/Mod_Chess.php:417
msgid "You are not a player in this game."
msgstr "Usted no participa en este juego."
-#: ../../addon/chess/chess.php:415
+#: ../../addon/chess/Mod_Chess.php:242
msgid "You must be a local channel to create a game."
msgstr "Debe ser un canal local para crear un juego"
-#: ../../addon/chess/chess.php:433
+#: ../../addon/chess/Mod_Chess.php:260
msgid "You must select one opponent that is not yourself."
msgstr "Debe seleccionar un oponente que no sea usted mismo."
-#: ../../addon/chess/chess.php:444
+#: ../../addon/chess/Mod_Chess.php:271
msgid "Random color chosen."
msgstr "Elegido un color aleatorio."
-#: ../../addon/chess/chess.php:452
+#: ../../addon/chess/Mod_Chess.php:279
msgid "Error creating new game."
msgstr "Error al crear un nuevo juego."
-#: ../../addon/chess/chess.php:486 ../../include/channel.php:1158
+#: ../../addon/chess/Mod_Chess.php:306 ../../include/channel.php:1207
msgid "Requested channel is not available."
msgstr "El canal solicitado no está disponible."
-#: ../../addon/chess/chess.php:500
+#: ../../addon/chess/Mod_Chess.php:311 ../../addon/chess/Mod_Chess.php:333
+msgid "Chess not installed."
+msgstr "Chess no está instalado."
+
+#: ../../addon/chess/Mod_Chess.php:326
msgid "You must select a local channel /chess/channelname"
msgstr "Debe seleccionar un canal local /chess/nombredelcanal"
-#: ../../addon/chess/chess.php:1066
+#: ../../addon/chess/chess.php:642
msgid "Enable notifications"
msgstr "Habilitar notificaciones"
-#: ../../addon/twitter/twitter.php:102
-msgid "Post to Twitter"
-msgstr "Publicar en Twitter"
-
-#: ../../addon/twitter/twitter.php:158
+#: ../../addon/twitter/Mod_Twitter.php:65
msgid "Twitter settings updated."
msgstr "Se han actualizado los ajustes de Twitter."
-#: ../../addon/twitter/twitter.php:187
+#: ../../addon/twitter/Mod_Twitter.php:78
+msgid "Twitter Crosspost Connector App"
+msgstr "App Twitter Crosspost Connector"
+
+#: ../../addon/twitter/Mod_Twitter.php:79
+msgid "Relay public posts to Twitter"
+msgstr "Retransmisión de entradas públicas a Twitter"
+
+#: ../../addon/twitter/Mod_Twitter.php:103
msgid ""
"No consumer key pair for Twitter found. Please contact your site "
"administrator."
msgstr "No se encontró ningún par de \"consumer key\" para Twitter. Póngase en contacto con el administrador del sitio."
-#: ../../addon/twitter/twitter.php:209
+#: ../../addon/twitter/Mod_Twitter.php:125
msgid ""
"At this Hubzilla instance the Twitter plugin was enabled but you have not "
"yet connected your account to your Twitter account. To do so click the "
@@ -11872,15 +12153,15 @@ msgid ""
" be posted to Twitter."
msgstr "En esta instancia de Hubzilla, el complemento de Twitter estaba habilitado pero aún no ha conectado su cuenta a la cuenta de Twitter. Para ello, haga clic en el botón de abajo, para obtener un PIN de Twitter que debe copiar en el cuadro de entrada a continuación y enviar el formulario. Solo sus entradas <strong>públicas</ strong> se publicarán en Twitter."
-#: ../../addon/twitter/twitter.php:211
+#: ../../addon/twitter/Mod_Twitter.php:127
msgid "Log in with Twitter"
msgstr "Iniciar sesión en Twitter"
-#: ../../addon/twitter/twitter.php:214
+#: ../../addon/twitter/Mod_Twitter.php:130
msgid "Copy the PIN from Twitter here"
msgstr "Copiar aquí el PIN de Twitter"
-#: ../../addon/twitter/twitter.php:241
+#: ../../addon/twitter/Mod_Twitter.php:152
msgid ""
"<strong>Note:</strong> Due your privacy settings (<em>Hide your profile "
"details from unknown viewers?</em>) the link potentially included in public "
@@ -11888,47 +12169,45 @@ msgid ""
"the visitor that the access to your profile has been restricted."
msgstr "<strong>Aviso:</strong> Debido a su configuración de privacidad (<em>Ocultar los detalles de su perfil a los visitantes desconocidos?</em>), el enlace potencialmente incluido en las entradas públicas retransmitidas a Twitter llevará al visitante a una página en blanco informándolo de que el acceso a su perfil ha sido restringido."
-#: ../../addon/twitter/twitter.php:246
-msgid "Allow posting to Twitter"
-msgstr "Permitir la publicación en Twitter"
-
-#: ../../addon/twitter/twitter.php:246
-msgid ""
-"If enabled your public postings can be posted to the associated Twitter "
-"account"
-msgstr "Si está activado, sus entradas públicas se pueden publicar en la cuenta de Twitter asociada"
-
-#: ../../addon/twitter/twitter.php:250
+#: ../../addon/twitter/Mod_Twitter.php:157
msgid "Twitter post length"
msgstr "Longitud del mensaje en Twitter"
-#: ../../addon/twitter/twitter.php:250
+#: ../../addon/twitter/Mod_Twitter.php:157
msgid "Maximum tweet length"
msgstr "Longitud máxima del tweet"
-#: ../../addon/twitter/twitter.php:255
+#: ../../addon/twitter/Mod_Twitter.php:162
msgid "Send public postings to Twitter by default"
msgstr "Enviar mensajes públicos a Twitter de forma predeterminada"
-#: ../../addon/twitter/twitter.php:255
+#: ../../addon/twitter/Mod_Twitter.php:162
msgid ""
"If enabled your public postings will be posted to the associated Twitter "
"account by default"
msgstr "Si está activado, sus entradas públicas se publicarán en la cuenta de Twitter asociada de forma predeterminada."
-#: ../../addon/twitter/twitter.php:273
-msgid "Twitter Post Settings"
-msgstr "Ajustes de publicación en Twitter"
+#: ../../addon/twitter/Mod_Twitter.php:181
+msgid "Twitter Crosspost Connector"
+msgstr "Twitter Crosspost Connector"
+
+#: ../../addon/twitter/twitter.php:107
+msgid "Post to Twitter"
+msgstr "Publicar en Twitter"
-#: ../../addon/smileybutton/smileybutton.php:211
-msgid "Deactivate the feature"
-msgstr "Desactivar la funcionalidad"
+#: ../../addon/smileybutton/Mod_Smileybutton.php:35
+msgid "Smileybutton App"
+msgstr "App Smileybutton"
-#: ../../addon/smileybutton/smileybutton.php:215
+#: ../../addon/smileybutton/Mod_Smileybutton.php:36
+msgid "Adds a smileybutton to the jot editor"
+msgstr "Añade un botón de emoticonos al editor jot"
+
+#: ../../addon/smileybutton/Mod_Smileybutton.php:44
msgid "Hide the button and show the smilies directly."
msgstr "Ocultar el botón y mostrar los smilies directamente."
-#: ../../addon/smileybutton/smileybutton.php:219
+#: ../../addon/smileybutton/Mod_Smileybutton.php:52
msgid "Smileybutton Settings"
msgstr "Ajustes de Smileybutton"
@@ -11944,7 +12223,7 @@ msgstr "Permitir pagos manuales"
msgid "Base Merchant Currency"
msgstr "Divida base del vendedor"
-#: ../../addon/cart/Settings/Cart.php:111 ../../addon/cart/cart.php:1262
+#: ../../addon/cart/Settings/Cart.php:111 ../../addon/cart/cart.php:1263
msgid "Cart Settings"
msgstr "Configuración del carro de la compra"
@@ -11952,7 +12231,7 @@ msgstr "Configuración del carro de la compra"
msgid "Access Denied."
msgstr "Acceso denegado"
-#: ../../addon/cart/myshop.php:111 ../../addon/cart/cart.php:1330
+#: ../../addon/cart/myshop.php:111 ../../addon/cart/cart.php:1334
msgid "Order Not Found"
msgstr "No se ha encontrado el pedido"
@@ -11965,53 +12244,53 @@ msgstr "Elemento no válido"
msgid "DB Cleanup Failure"
msgstr "Fallo de limpieza de la base de datos"
-#: ../../addon/cart/cart.php:564
+#: ../../addon/cart/cart.php:565
msgid "[cart] Item Added"
msgstr "[cesta] Artículo añadido"
-#: ../../addon/cart/cart.php:952
+#: ../../addon/cart/cart.php:953
msgid "Order already checked out."
msgstr "El pedido ya ha sido revisado"
-#: ../../addon/cart/cart.php:1255
+#: ../../addon/cart/cart.php:1256
msgid "Drop database tables when uninstalling."
msgstr "Eliminar tablas de la base de datos al desinstalar."
-#: ../../addon/cart/cart.php:1274 ../../addon/cart/cart.php:1277
+#: ../../addon/cart/cart.php:1275 ../../addon/cart/cart.php:1278
msgid "Shop"
msgstr "Comprar"
-#: ../../addon/cart/cart.php:1391
+#: ../../addon/cart/cart.php:1395
msgid "Cart utilities for orders and payments"
msgstr "Utilidades del carro para pedidos y pagos"
-#: ../../addon/cart/cart.php:1429
+#: ../../addon/cart/cart.php:1433
msgid "You must be logged into the Grid to shop."
msgstr "Debe iniciar sesión en la red para comprar."
-#: ../../addon/cart/cart.php:1462
+#: ../../addon/cart/cart.php:1466
#: ../../addon/cart/submodules/paypalbutton.php:392
#: ../../addon/cart/manual_payments.php:68
msgid "Order not found."
msgstr "El pedido no se ha encontrado."
-#: ../../addon/cart/cart.php:1470
+#: ../../addon/cart/cart.php:1474
msgid "Access denied."
msgstr "Acceso denegado"
-#: ../../addon/cart/cart.php:1522 ../../addon/cart/cart.php:1665
+#: ../../addon/cart/cart.php:1526 ../../addon/cart/cart.php:1669
msgid "No Order Found"
msgstr "No se ha encontrado ningún pedido"
-#: ../../addon/cart/cart.php:1531
+#: ../../addon/cart/cart.php:1535
msgid "An unknown error has occurred Please start again."
msgstr "Se ha producido un error desconocido Vuelva a empezar."
-#: ../../addon/cart/cart.php:1698
+#: ../../addon/cart/cart.php:1702
msgid "Invalid Payment Type. Please start again."
msgstr "Tipo de pago no válido. Por favor, empiece de nuevo."
-#: ../../addon/cart/cart.php:1705
+#: ../../addon/cart/cart.php:1709
msgid "Order not found"
msgstr "El pedido no se ha encontrado"
@@ -12384,6 +12663,10 @@ msgstr "¡Bienvenido/a a Hubzilla! ¿Quiere hacer un recorrido por la interfaz d
msgid "Send your identity to all websites"
msgstr "Enviar su identidad a todos los sitios web"
+#: ../../addon/sendzid/Mod_Sendzid.php:20
+msgid "Sendzid App"
+msgstr "App Sendzid"
+
#: ../../addon/sendzid/Mod_Sendzid.php:32
msgid "Send ZID"
msgstr "Enviar ZID"
@@ -12442,23 +12725,36 @@ msgstr "¡El juego del \"gato\"!"
msgid "I won!"
msgstr "¡He ganado yo!"
-#: ../../addon/pageheader/pageheader.php:43
+#: ../../addon/pageheader/Mod_Pageheader.php:22
+msgid "pageheader Settings saved."
+msgstr "Se han guardado los ajustes del encabezado de página."
+
+#: ../../addon/pageheader/Mod_Pageheader.php:34
+msgid "Page Header App"
+msgstr "App Page Header"
+
+#: ../../addon/pageheader/Mod_Pageheader.php:35
+msgid "Inserts a page header"
+msgstr "Inserta un encabezado de página"
+
+#: ../../addon/pageheader/Mod_Pageheader.php:43
msgid "Message to display on every page on this server"
msgstr "Mensaje para mostrar en todas las páginas de este servidor"
-#: ../../addon/pageheader/pageheader.php:48
-msgid "Pageheader Settings"
-msgstr "Ajustes del encabezado de página"
-
-#: ../../addon/pageheader/pageheader.php:64
-msgid "pageheader Settings saved."
-msgstr "Se han guardado los ajustes del encabezado de página."
+#: ../../addon/pageheader/Mod_Pageheader.php:51
+msgid "Page Header"
+msgstr "Page Header"
#: ../../addon/authchoose/Mod_Authchoose.php:22
msgid ""
"Allow magic authentication only to websites of your immediate connections"
msgstr "Permitir la autenticación mágica sólo a los sitios web de sus conexiones próximas"
+#: ../../addon/authchoose/Mod_Authchoose.php:28
+#: ../../addon/authchoose/Mod_Authchoose.php:33
+msgid "Authchoose App"
+msgstr "App Authchoose"
+
#: ../../addon/authchoose/Mod_Authchoose.php:39
msgid "Authchoose"
msgstr "Autoseleccionar"
@@ -12551,35 +12847,39 @@ msgstr "envidioso/a"
msgid "jealous"
msgstr "celoso/a"
-#: ../../addon/xmpp/xmpp.php:31
+#: ../../addon/xmpp/Mod_Xmpp.php:23
msgid "XMPP settings updated."
msgstr "Se han actualizado los ajustes de XMPP."
-#: ../../addon/xmpp/xmpp.php:53
-msgid "Enable Chat"
-msgstr "Habilitar el chat"
+#: ../../addon/xmpp/Mod_Xmpp.php:35
+msgid "XMPP App"
+msgstr "App XMPP"
+
+#: ../../addon/xmpp/Mod_Xmpp.php:36
+msgid "Embedded XMPP (Jabber) client"
+msgstr "Cliente XMPP (Jabber) integrado"
-#: ../../addon/xmpp/xmpp.php:58
+#: ../../addon/xmpp/Mod_Xmpp.php:52
msgid "Individual credentials"
msgstr "Credenciales individuales"
-#: ../../addon/xmpp/xmpp.php:64
+#: ../../addon/xmpp/Mod_Xmpp.php:58
msgid "Jabber BOSH server"
msgstr "Servidor BOSH de Jabber"
-#: ../../addon/xmpp/xmpp.php:69
+#: ../../addon/xmpp/Mod_Xmpp.php:67
msgid "XMPP Settings"
msgstr "Ajustes de XMPP"
-#: ../../addon/xmpp/xmpp.php:92
+#: ../../addon/xmpp/xmpp.php:44
msgid "Jabber BOSH host"
msgstr "BOSH de Jabber"
-#: ../../addon/xmpp/xmpp.php:93
+#: ../../addon/xmpp/xmpp.php:45
msgid "Use central userbase"
msgstr "Usar la base de usuarios central"
-#: ../../addon/xmpp/xmpp.php:93
+#: ../../addon/xmpp/xmpp.php:45
msgid ""
"If enabled, members will automatically login to an ejabberd server that has "
"to be installed on this machine with synchronized credentials via the "
@@ -12590,65 +12890,69 @@ msgstr "Si está habilitado, los miembros se conectarán automáticamente a un s
msgid "Who likes me?"
msgstr "¿Quién me ha puesto \"Me gusta\"?"
-#: ../../addon/pumpio/pumpio.php:148
-msgid "You are now authenticated to pumpio."
-msgstr "Ahora está autenticado en pump.io."
+#: ../../addon/pumpio/Mod_Pumpio.php:40
+msgid "Pump.io Settings saved."
+msgstr "Se han guardado los ajustes de Pump.io"
-#: ../../addon/pumpio/pumpio.php:149
-msgid "return to the featured settings page"
-msgstr "Volver a la página de configuración destacada"
+#: ../../addon/pumpio/Mod_Pumpio.php:53
+msgid "Pump.io Crosspost Connector App"
+msgstr "App Pump.io Crosspost Connector"
-#: ../../addon/pumpio/pumpio.php:163
-msgid "Post to Pump.io"
-msgstr "Publicar en Pump.io"
+#: ../../addon/pumpio/Mod_Pumpio.php:54
+msgid "Relay public posts to pump.io"
+msgstr "Retransmisión de entradas públicas a pump.io"
-#: ../../addon/pumpio/pumpio.php:198
+#: ../../addon/pumpio/Mod_Pumpio.php:73
msgid "Pump.io servername"
msgstr "Nombre del servidor de Pump.io"
-#: ../../addon/pumpio/pumpio.php:198
+#: ../../addon/pumpio/Mod_Pumpio.php:73
msgid "Without \"http://\" or \"https://\""
msgstr "Sin \"http://\" or \"https://\""
-#: ../../addon/pumpio/pumpio.php:202
+#: ../../addon/pumpio/Mod_Pumpio.php:77
msgid "Pump.io username"
msgstr "Nombre de usuario en Pump.io"
-#: ../../addon/pumpio/pumpio.php:202
+#: ../../addon/pumpio/Mod_Pumpio.php:77
msgid "Without the servername"
msgstr "Sin el nombre del servidor"
-#: ../../addon/pumpio/pumpio.php:213
+#: ../../addon/pumpio/Mod_Pumpio.php:88
msgid "You are not authenticated to pumpio"
msgstr "No está autenticado en pump.io"
-#: ../../addon/pumpio/pumpio.php:215
+#: ../../addon/pumpio/Mod_Pumpio.php:90
msgid "(Re-)Authenticate your pump.io connection"
msgstr "(Re-)Autenticar su conexión en pump.io"
-#: ../../addon/pumpio/pumpio.php:219
-msgid "Enable pump.io Post Plugin"
-msgstr "Habilitar el plugin de publicación en pump.io"
-
-#: ../../addon/pumpio/pumpio.php:223
+#: ../../addon/pumpio/Mod_Pumpio.php:94
msgid "Post to pump.io by default"
msgstr "Publicar por defecto en pump.io"
-#: ../../addon/pumpio/pumpio.php:227
+#: ../../addon/pumpio/Mod_Pumpio.php:98
msgid "Should posts be public"
msgstr "¿Las entradas deben ser públicas?"
-#: ../../addon/pumpio/pumpio.php:231
+#: ../../addon/pumpio/Mod_Pumpio.php:102
msgid "Mirror all public posts"
msgstr "Reflejar todos los mensajes públicos"
-#: ../../addon/pumpio/pumpio.php:237
-msgid "Pump.io Post Settings"
-msgstr "Ajustes de publicación en pump.io"
+#: ../../addon/pumpio/Mod_Pumpio.php:112
+msgid "Pump.io Crosspost Connector"
+msgstr "Pump.io Crosspost Connector"
+
+#: ../../addon/pumpio/pumpio.php:152
+msgid "You are now authenticated to pumpio."
+msgstr "Ahora está autenticado en pump.io."
+
+#: ../../addon/pumpio/pumpio.php:153
+msgid "return to the featured settings page"
+msgstr "Volver a la página de configuración destacada"
-#: ../../addon/pumpio/pumpio.php:266
-msgid "PumpIO Settings saved."
-msgstr "Se han guardado los ajustes de PumpIO."
+#: ../../addon/pumpio/pumpio.php:168
+msgid "Post to Pump.io"
+msgstr "Publicar en Pump.io"
#: ../../addon/ldapauth/ldapauth.php:70
msgid "An account has been created for you."
@@ -12766,11 +13070,11 @@ msgstr "Transexual"
msgid "Hermaphrodite"
msgstr "Hermafrodita"
-#: ../../include/selectors.php:60 ../../include/channel.php:1491
+#: ../../include/selectors.php:60 ../../include/channel.php:1540
msgid "Neuter"
msgstr "Neutral"
-#: ../../include/selectors.php:60 ../../include/channel.php:1493
+#: ../../include/selectors.php:60 ../../include/channel.php:1542
msgid "Non-specific"
msgstr "No especificado"
@@ -12970,8 +13274,8 @@ msgstr "%1$s ahora está conectado/a con %2$s"
msgid "%1$s poked %2$s"
msgstr "%1$s ha dado un toque a %2$s"
-#: ../../include/conversation.php:251 ../../include/text.php:1146
-#: ../../include/text.php:1150
+#: ../../include/conversation.php:251 ../../include/text.php:1176
+#: ../../include/text.php:1180
msgid "poked"
msgstr "ha dado un toque a"
@@ -13069,42 +13373,42 @@ msgstr "A %s le gusta esto."
msgid "%s don't like this."
msgstr "A %s no le gusta esto."
-#: ../../include/conversation.php:1699
+#: ../../include/conversation.php:1708
msgctxt "noun"
msgid "Attending"
msgid_plural "Attending"
msgstr[0] "Participaré"
msgstr[1] "Participaré"
-#: ../../include/conversation.php:1702
+#: ../../include/conversation.php:1711
msgctxt "noun"
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] "No participaré"
msgstr[1] "No participaré"
-#: ../../include/conversation.php:1705
+#: ../../include/conversation.php:1714
msgctxt "noun"
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] "Indeciso/a"
msgstr[1] "Indecisos/as"
-#: ../../include/conversation.php:1708
+#: ../../include/conversation.php:1717
msgctxt "noun"
msgid "Agree"
msgid_plural "Agrees"
msgstr[0] "De acuerdo"
msgstr[1] "De acuerdo"
-#: ../../include/conversation.php:1711
+#: ../../include/conversation.php:1720
msgctxt "noun"
msgid "Disagree"
msgid_plural "Disagrees"
msgstr[0] "En desacuerdo"
msgstr[1] "En desacuerdo"
-#: ../../include/conversation.php:1714
+#: ../../include/conversation.php:1723
msgctxt "noun"
msgid "Abstain"
msgid_plural "Abstains"
@@ -13116,11 +13420,11 @@ msgstr[1] "Se abstienen"
msgid "%1$s's bookmarks"
msgstr "Marcadores de %1$s"
-#: ../../include/import.php:25
+#: ../../include/import.php:26
msgid "Unable to import a removed channel."
msgstr "No se puede importar un canal eliminado."
-#: ../../include/import.php:51
+#: ../../include/import.php:52
msgid ""
"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado."
@@ -13129,369 +13433,369 @@ msgstr "No se ha podido crear un canal con un identificador que ya existe en est
msgid "Cloned channel not found. Import failed."
msgstr "No se ha podido importar el canal porque el canal clonado no se ha encontrado."
-#: ../../include/text.php:498
+#: ../../include/text.php:501
msgid "prev"
msgstr "anterior"
-#: ../../include/text.php:500
+#: ../../include/text.php:503
msgid "first"
msgstr "primera"
-#: ../../include/text.php:529
+#: ../../include/text.php:532
msgid "last"
msgstr "última"
-#: ../../include/text.php:532
+#: ../../include/text.php:535
msgid "next"
msgstr "próxima"
-#: ../../include/text.php:543
+#: ../../include/text.php:553
msgid "older"
msgstr "más antiguas"
-#: ../../include/text.php:545
+#: ../../include/text.php:555
msgid "newer"
msgstr "más recientes"
-#: ../../include/text.php:969
+#: ../../include/text.php:979
msgid "No connections"
msgstr "Sin conexiones"
-#: ../../include/text.php:1001
+#: ../../include/text.php:1011
#, php-format
msgid "View all %s connections"
msgstr "Ver todas las %s conexiones"
-#: ../../include/text.php:1057
+#: ../../include/text.php:1073
#, php-format
msgid "Network: %s"
msgstr "Red %s"
-#: ../../include/text.php:1146 ../../include/text.php:1150
+#: ../../include/text.php:1176 ../../include/text.php:1180
msgid "poke"
msgstr "un toque"
-#: ../../include/text.php:1151
+#: ../../include/text.php:1181
msgid "ping"
msgstr "un \"ping\""
-#: ../../include/text.php:1151
+#: ../../include/text.php:1181
msgid "pinged"
msgstr "ha enviado un \"ping\" a"
-#: ../../include/text.php:1152
+#: ../../include/text.php:1182
msgid "prod"
msgstr "una incitación "
-#: ../../include/text.php:1152
+#: ../../include/text.php:1182
msgid "prodded"
msgstr "ha incitado a "
-#: ../../include/text.php:1153
+#: ../../include/text.php:1183
msgid "slap"
msgstr "una bofetada "
-#: ../../include/text.php:1153
+#: ../../include/text.php:1183
msgid "slapped"
msgstr "ha abofeteado a "
-#: ../../include/text.php:1154
+#: ../../include/text.php:1184
msgid "finger"
msgstr "un \"finger\" "
-#: ../../include/text.php:1154
+#: ../../include/text.php:1184
msgid "fingered"
msgstr "envió un \"finger\" a"
-#: ../../include/text.php:1155
+#: ../../include/text.php:1185
msgid "rebuff"
msgstr "un reproche"
-#: ../../include/text.php:1155
+#: ../../include/text.php:1185
msgid "rebuffed"
msgstr "ha hecho un reproche a "
-#: ../../include/text.php:1178
+#: ../../include/text.php:1208
msgid "happy"
msgstr "feliz "
-#: ../../include/text.php:1179
+#: ../../include/text.php:1209
msgid "sad"
msgstr "triste "
-#: ../../include/text.php:1180
+#: ../../include/text.php:1210
msgid "mellow"
msgstr "tranquilo/a"
-#: ../../include/text.php:1181
+#: ../../include/text.php:1211
msgid "tired"
msgstr "cansado/a "
-#: ../../include/text.php:1182
+#: ../../include/text.php:1212
msgid "perky"
msgstr "vivaz"
-#: ../../include/text.php:1183
+#: ../../include/text.php:1213
msgid "angry"
msgstr "enfadado/a"
-#: ../../include/text.php:1184
+#: ../../include/text.php:1214
msgid "stupefied"
msgstr "asombrado/a"
-#: ../../include/text.php:1185
+#: ../../include/text.php:1215
msgid "puzzled"
msgstr "perplejo/a"
-#: ../../include/text.php:1186
+#: ../../include/text.php:1216
msgid "interested"
msgstr "interesado/a"
-#: ../../include/text.php:1187
+#: ../../include/text.php:1217
msgid "bitter"
msgstr "amargado/a"
-#: ../../include/text.php:1188
+#: ../../include/text.php:1218
msgid "cheerful"
msgstr "alegre"
-#: ../../include/text.php:1189
+#: ../../include/text.php:1219
msgid "alive"
msgstr "animado/a"
-#: ../../include/text.php:1190
+#: ../../include/text.php:1220
msgid "annoyed"
msgstr "molesto/a"
-#: ../../include/text.php:1191
+#: ../../include/text.php:1221
msgid "anxious"
msgstr "ansioso/a"
-#: ../../include/text.php:1192
+#: ../../include/text.php:1222
msgid "cranky"
msgstr "de mal humor"
-#: ../../include/text.php:1193
+#: ../../include/text.php:1223
msgid "disturbed"
msgstr "perturbado/a"
-#: ../../include/text.php:1194
+#: ../../include/text.php:1224
msgid "frustrated"
msgstr "frustrado/a"
-#: ../../include/text.php:1195
+#: ../../include/text.php:1225
msgid "depressed"
msgstr "deprimido/a"
-#: ../../include/text.php:1196
+#: ../../include/text.php:1226
msgid "motivated"
msgstr "motivado/a"
-#: ../../include/text.php:1197
+#: ../../include/text.php:1227
msgid "relaxed"
msgstr "relajado/a"
-#: ../../include/text.php:1198
+#: ../../include/text.php:1228
msgid "surprised"
msgstr "sorprendido/a"
-#: ../../include/text.php:1377 ../../include/js_strings.php:95
+#: ../../include/text.php:1416 ../../include/js_strings.php:95
msgid "Monday"
msgstr "lunes"
-#: ../../include/text.php:1377 ../../include/js_strings.php:96
+#: ../../include/text.php:1416 ../../include/js_strings.php:96
msgid "Tuesday"
msgstr "martes"
-#: ../../include/text.php:1377 ../../include/js_strings.php:97
+#: ../../include/text.php:1416 ../../include/js_strings.php:97
msgid "Wednesday"
msgstr "miércoles"
-#: ../../include/text.php:1377 ../../include/js_strings.php:98
+#: ../../include/text.php:1416 ../../include/js_strings.php:98
msgid "Thursday"
msgstr "jueves"
-#: ../../include/text.php:1377 ../../include/js_strings.php:99
+#: ../../include/text.php:1416 ../../include/js_strings.php:99
msgid "Friday"
msgstr "viernes"
-#: ../../include/text.php:1377 ../../include/js_strings.php:100
+#: ../../include/text.php:1416 ../../include/js_strings.php:100
msgid "Saturday"
msgstr "sábado"
-#: ../../include/text.php:1377 ../../include/js_strings.php:94
+#: ../../include/text.php:1416 ../../include/js_strings.php:94
msgid "Sunday"
msgstr "domingo"
-#: ../../include/text.php:1381 ../../include/js_strings.php:70
+#: ../../include/text.php:1420 ../../include/js_strings.php:70
msgid "January"
msgstr "enero"
-#: ../../include/text.php:1381 ../../include/js_strings.php:71
+#: ../../include/text.php:1420 ../../include/js_strings.php:71
msgid "February"
msgstr "febrero"
-#: ../../include/text.php:1381 ../../include/js_strings.php:72
+#: ../../include/text.php:1420 ../../include/js_strings.php:72
msgid "March"
msgstr "marzo"
-#: ../../include/text.php:1381 ../../include/js_strings.php:73
+#: ../../include/text.php:1420 ../../include/js_strings.php:73
msgid "April"
msgstr "abril"
-#: ../../include/text.php:1381
+#: ../../include/text.php:1420
msgid "May"
msgstr "mayo"
-#: ../../include/text.php:1381 ../../include/js_strings.php:75
+#: ../../include/text.php:1420 ../../include/js_strings.php:75
msgid "June"
msgstr "junio"
-#: ../../include/text.php:1381 ../../include/js_strings.php:76
+#: ../../include/text.php:1420 ../../include/js_strings.php:76
msgid "July"
msgstr "julio"
-#: ../../include/text.php:1381 ../../include/js_strings.php:77
+#: ../../include/text.php:1420 ../../include/js_strings.php:77
msgid "August"
msgstr "agosto"
-#: ../../include/text.php:1381 ../../include/js_strings.php:78
+#: ../../include/text.php:1420 ../../include/js_strings.php:78
msgid "September"
msgstr "septiembre"
-#: ../../include/text.php:1381 ../../include/js_strings.php:79
+#: ../../include/text.php:1420 ../../include/js_strings.php:79
msgid "October"
msgstr "octubre"
-#: ../../include/text.php:1381 ../../include/js_strings.php:80
+#: ../../include/text.php:1420 ../../include/js_strings.php:80
msgid "November"
msgstr "noviembre"
-#: ../../include/text.php:1381 ../../include/js_strings.php:81
+#: ../../include/text.php:1420 ../../include/js_strings.php:81
msgid "December"
msgstr "diciembre"
-#: ../../include/text.php:1455
+#: ../../include/text.php:1494
msgid "Unknown Attachment"
msgstr "Adjunto no reconocido"
-#: ../../include/text.php:1457 ../../include/feedutils.php:860
+#: ../../include/text.php:1496 ../../include/feedutils.php:858
msgid "unknown"
msgstr "desconocido"
-#: ../../include/text.php:1493
+#: ../../include/text.php:1532
msgid "remove category"
msgstr "eliminar el tema"
-#: ../../include/text.php:1567
+#: ../../include/text.php:1606
msgid "remove from file"
msgstr "eliminar del fichero"
-#: ../../include/text.php:1709 ../../include/message.php:13
+#: ../../include/text.php:1765 ../../include/message.php:13
msgid "Download binary/encrypted content"
msgstr "Descargar contenido binario o cifrado"
-#: ../../include/text.php:1872 ../../include/language.php:423
+#: ../../include/text.php:1935 ../../include/language.php:423
msgid "default"
msgstr "por defecto"
-#: ../../include/text.php:1880
+#: ../../include/text.php:1943
msgid "Page layout"
msgstr "Plantilla de la página"
-#: ../../include/text.php:1880
+#: ../../include/text.php:1943
msgid "You can create your own with the layouts tool"
msgstr "Puede crear su propia disposición gráfica con la herramienta de plantillas"
-#: ../../include/text.php:1891
+#: ../../include/text.php:1954
msgid "HTML"
msgstr "HTML"
-#: ../../include/text.php:1894
+#: ../../include/text.php:1957
msgid "Comanche Layout"
msgstr "Plantilla de Comanche"
-#: ../../include/text.php:1899
+#: ../../include/text.php:1962
msgid "PHP"
msgstr "PHP"
-#: ../../include/text.php:1908
+#: ../../include/text.php:1971
msgid "Page content type"
msgstr "Tipo de contenido de la página"
-#: ../../include/text.php:2041
+#: ../../include/text.php:2104
msgid "activity"
msgstr "la/su actividad"
-#: ../../include/text.php:2142
+#: ../../include/text.php:2205
msgid "a-z, 0-9, -, and _ only"
msgstr "a-z, 0-9, -, and _ only"
-#: ../../include/text.php:2462
+#: ../../include/text.php:2531
msgid "Design Tools"
msgstr "Herramientas de diseño web"
-#: ../../include/text.php:2468
+#: ../../include/text.php:2537
msgid "Pages"
msgstr "Páginas"
-#: ../../include/text.php:2490
+#: ../../include/text.php:2559
msgid "Import website..."
msgstr "Importar un sitio web..."
-#: ../../include/text.php:2491
+#: ../../include/text.php:2560
msgid "Select folder to import"
msgstr "Seleccionar la carpeta que se va a importar"
-#: ../../include/text.php:2492
+#: ../../include/text.php:2561
msgid "Import from a zipped folder:"
msgstr "Importar desde una carpeta comprimida: "
-#: ../../include/text.php:2493
+#: ../../include/text.php:2562
msgid "Import from cloud files:"
msgstr "Importar desde los ficheros en la nube: "
-#: ../../include/text.php:2494
+#: ../../include/text.php:2563
msgid "/cloud/channel/path/to/folder"
msgstr "/cloud/canal/ruta/a la/carpeta"
-#: ../../include/text.php:2495
+#: ../../include/text.php:2564
msgid "Enter path to website files"
msgstr "Ruta a los ficheros del sitio web"
-#: ../../include/text.php:2496
+#: ../../include/text.php:2565
msgid "Select folder"
msgstr "Seleccionar la carpeta"
-#: ../../include/text.php:2497
+#: ../../include/text.php:2566
msgid "Export website..."
msgstr "Exportar un sitio web..."
-#: ../../include/text.php:2498
+#: ../../include/text.php:2567
msgid "Export to a zip file"
msgstr "Exportar a un fichero comprimido .zip"
-#: ../../include/text.php:2499
+#: ../../include/text.php:2568
msgid "website.zip"
msgstr "sitio_web.zip"
-#: ../../include/text.php:2500
+#: ../../include/text.php:2569
msgid "Enter a name for the zip file."
msgstr "Escriba un nombre para el fichero zip."
-#: ../../include/text.php:2501
+#: ../../include/text.php:2570
msgid "Export to cloud files"
msgstr "Exportar a la nube de ficheros"
-#: ../../include/text.php:2502
+#: ../../include/text.php:2571
msgid "/path/to/export/folder"
msgstr "/ruta/para/exportar/carpeta"
-#: ../../include/text.php:2503
+#: ../../include/text.php:2572
msgid "Enter a path to a cloud files destination."
msgstr "Escriba una ruta de destino a la nube de ficheros."
-#: ../../include/text.php:2504
+#: ../../include/text.php:2573
msgid "Specify folder"
msgstr "Especificar una carpeta"
@@ -13530,16 +13834,16 @@ msgstr "Invitar a amigos"
msgid "Advanced example: name=fred and country=iceland"
msgstr "Ejemplo avanzado: nombre=juan y país=españa"
-#: ../../include/contact_widgets.php:223
+#: ../../include/contact_widgets.php:218
msgid "Common Connections"
msgstr "Conexiones comunes"
-#: ../../include/contact_widgets.php:228
+#: ../../include/contact_widgets.php:222
#, php-format
msgid "View all %d common connections"
msgstr "Ver todas las %d conexiones comunes"
-#: ../../include/markdown.php:200 ../../include/bbcode.php:358
+#: ../../include/markdown.php:198 ../../include/bbcode.php:347
#, php-format
msgid "%1$s wrote the following %2$s %3$s"
msgstr "%1$s escribió %2$s siguiente %3$s"
@@ -13895,92 +14199,92 @@ msgstr "[sin asunto]"
msgid "Stored post could not be verified."
msgstr "No se han podido verificar las publicaciones guardadas."
-#: ../../include/activities.php:41
+#: ../../include/activities.php:42
msgid " and "
msgstr " y "
-#: ../../include/activities.php:49
+#: ../../include/activities.php:50
msgid "public profile"
msgstr "el perfil público"
-#: ../../include/activities.php:58
+#: ../../include/activities.php:59
#, php-format
msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
msgstr "%1$s ha cambiado %2$s a &ldquo;%3$s&rdquo;"
-#: ../../include/activities.php:59
+#: ../../include/activities.php:60
#, php-format
msgid "Visit %1$s's %2$s"
msgstr "Visitar %2$s de %1$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 ha actualizado %2$s, cambiando %3$s."
-#: ../../include/attach.php:265 ../../include/attach.php:374
+#: ../../include/attach.php:267 ../../include/attach.php:376
msgid "Item was not found."
msgstr "Elemento no encontrado."
-#: ../../include/attach.php:282
+#: ../../include/attach.php:284
msgid "Unknown error."
msgstr "Error desconocido"
-#: ../../include/attach.php:567
+#: ../../include/attach.php:569
msgid "No source file."
msgstr "Ningún fichero de origen"
-#: ../../include/attach.php:589
+#: ../../include/attach.php:591
msgid "Cannot locate file to replace"
msgstr "No se puede localizar el fichero que va a ser sustituido."
-#: ../../include/attach.php:608
+#: ../../include/attach.php:610
msgid "Cannot locate file to revise/update"
msgstr "No se puede localizar el fichero para revisar/actualizar"
-#: ../../include/attach.php:750
+#: ../../include/attach.php:752
#, php-format
msgid "File exceeds size limit of %d"
msgstr "El fichero supera el limite de tamaño de %d"
-#: ../../include/attach.php:771
+#: ../../include/attach.php:773
#, php-format
msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr "Ha alcanzado su límite de %1$.0f Mbytes de almacenamiento de adjuntos."
-#: ../../include/attach.php:953
+#: ../../include/attach.php:955
msgid "File upload failed. Possible system limit or action terminated."
msgstr "Error de carga, posiblemente por limite del sistema o porque la acción ha finalizado."
-#: ../../include/attach.php:982
+#: ../../include/attach.php:984
msgid "Stored file could not be verified. Upload failed."
msgstr "El fichero almacenado no ha podido ser verificado. El envío ha fallado."
-#: ../../include/attach.php:1056 ../../include/attach.php:1072
+#: ../../include/attach.php:1058 ../../include/attach.php:1074
msgid "Path not available."
msgstr "Ruta no disponible."
-#: ../../include/attach.php:1121 ../../include/attach.php:1286
+#: ../../include/attach.php:1123 ../../include/attach.php:1288
msgid "Empty pathname"
msgstr "Ruta vacía"
-#: ../../include/attach.php:1147
+#: ../../include/attach.php:1149
msgid "duplicate filename or path"
msgstr "Nombre duplicado de ruta o fichero"
-#: ../../include/attach.php:1172
+#: ../../include/attach.php:1174
msgid "Path not found."
msgstr "Ruta no encontrada"
-#: ../../include/attach.php:1240
+#: ../../include/attach.php:1242
msgid "mkdir failed."
msgstr "mkdir ha fallado."
-#: ../../include/attach.php:1244
+#: ../../include/attach.php:1246
msgid "database storage failed."
msgstr "el almacenamiento en la base de datos ha fallado."
-#: ../../include/attach.php:1292
+#: ../../include/attach.php:1294
msgid "Empty path"
msgstr "Ruta vacía"
@@ -13990,301 +14294,297 @@ msgid ""
"form has been opened for too long (>3 hours) before submitting it."
msgstr "El \"token\" de seguridad del formulario no es correcto. Esto ha ocurrido probablemente porque el formulario ha estado abierto demasiado tiempo (>3 horas) antes de ser enviado"
-#: ../../include/items.php:911 ../../include/items.php:971
+#: ../../include/items.php:955 ../../include/items.php:1015
msgid "(Unknown)"
msgstr "(Desconocido)"
-#: ../../include/items.php:1157
+#: ../../include/items.php:1203
msgid "Visible to anybody on the internet."
msgstr "Visible para cualquiera en internet."
-#: ../../include/items.php:1159
+#: ../../include/items.php:1205
msgid "Visible to you only."
msgstr "Visible sólo para usted."
-#: ../../include/items.php:1161
+#: ../../include/items.php:1207
msgid "Visible to anybody in this network."
msgstr "Visible para cualquiera en esta red."
-#: ../../include/items.php:1163
+#: ../../include/items.php:1209
msgid "Visible to anybody authenticated."
msgstr "Visible para cualquiera que esté autenticado."
-#: ../../include/items.php:1165
+#: ../../include/items.php:1211
#, php-format
msgid "Visible to anybody on %s."
msgstr "Visible para cualquiera en %s."
-#: ../../include/items.php:1167
+#: ../../include/items.php:1213
msgid "Visible to all connections."
msgstr "Visible para todas las conexiones."
-#: ../../include/items.php:1169
+#: ../../include/items.php:1215
msgid "Visible to approved connections."
msgstr "Visible para las conexiones permitidas."
-#: ../../include/items.php:1171
+#: ../../include/items.php:1217
msgid "Visible to specific connections."
msgstr "Visible para conexiones específicas."
-#: ../../include/items.php:4183
+#: ../../include/items.php:4291
msgid "Privacy group is empty."
msgstr "El grupo de canales está vacío."
-#: ../../include/items.php:4190
+#: ../../include/items.php:4298
#, php-format
msgid "Privacy group: %s"
msgstr "Grupo de canales: %s"
-#: ../../include/items.php:4202
+#: ../../include/items.php:4310
msgid "Connection not found."
msgstr "Conexión no encontrada"
-#: ../../include/items.php:4551
+#: ../../include/items.php:4659
msgid "profile photo"
msgstr "foto del perfil"
-#: ../../include/items.php:4742
+#: ../../include/items.php:4851
#, php-format
msgid "[Edited %s]"
msgstr "[se ha editado %s]"
-#: ../../include/items.php:4742
+#: ../../include/items.php:4851
msgctxt "edit_activity"
msgid "Post"
msgstr "Publicar"
-#: ../../include/items.php:4742
+#: ../../include/items.php:4851
msgctxt "edit_activity"
msgid "Comment"
msgstr "Comentar"
-#: ../../include/channel.php:42
+#: ../../include/channel.php:43
msgid "Unable to obtain identity information from database"
msgstr "No ha sido posible obtener información sobre la identidad desde la base de datos"
-#: ../../include/channel.php:75
+#: ../../include/channel.php:76
msgid "Empty name"
msgstr "Nombre vacío"
-#: ../../include/channel.php:78
+#: ../../include/channel.php:79
msgid "Name too long"
msgstr "Nombre demasiado largo"
-#: ../../include/channel.php:195
+#: ../../include/channel.php:196
msgid "No account identifier"
msgstr "Ningún identificador de la cuenta"
-#: ../../include/channel.php:207
+#: ../../include/channel.php:208
msgid "Nickname is required."
msgstr "Se requiere un sobrenombre (alias)."
-#: ../../include/channel.php:284
+#: ../../include/channel.php:287
msgid "Unable to retrieve created identity"
msgstr "No ha sido posible recuperar la identidad creada"
-#: ../../include/channel.php:380
+#: ../../include/channel.php:429
msgid "Default Profile"
msgstr "Perfil principal"
-#: ../../include/channel.php:539 ../../include/channel.php:628
+#: ../../include/channel.php:588 ../../include/channel.php:677
msgid "Unable to retrieve modified identity"
msgstr "No se puede recuperar la identidad modficada"
-#: ../../include/channel.php:1304
+#: ../../include/channel.php:1353
msgid "Create New Profile"
msgstr "Crear un nuevo perfil"
-#: ../../include/channel.php:1325
+#: ../../include/channel.php:1374
msgid "Visible to everybody"
msgstr "Visible para todos"
-#: ../../include/channel.php:1402 ../../include/channel.php:1530
+#: ../../include/channel.php:1451 ../../include/channel.php:1579
msgid "Gender:"
msgstr "Género:"
-#: ../../include/channel.php:1404 ../../include/channel.php:1598
+#: ../../include/channel.php:1453 ../../include/channel.php:1647
msgid "Homepage:"
msgstr "Página personal:"
-#: ../../include/channel.php:1405
+#: ../../include/channel.php:1454
msgid "Online Now"
msgstr "Ahora en línea"
-#: ../../include/channel.php:1458
+#: ../../include/channel.php:1507
msgid "Change your profile photo"
msgstr "Cambiar su foto del perfil"
-#: ../../include/channel.php:1489
+#: ../../include/channel.php:1538
msgid "Trans"
msgstr "Trans"
-#: ../../include/channel.php:1535
+#: ../../include/channel.php:1584
msgid "Like this channel"
msgstr "Me gusta este canal"
-#: ../../include/channel.php:1559
+#: ../../include/channel.php:1608
msgid "j F, Y"
msgstr "j F Y"
-#: ../../include/channel.php:1560
+#: ../../include/channel.php:1609
msgid "j F"
msgstr "j F"
-#: ../../include/channel.php:1567
+#: ../../include/channel.php:1616
msgid "Birthday:"
msgstr "Cumpleaños:"
-#: ../../include/channel.php:1580
+#: ../../include/channel.php:1629
#, php-format
msgid "for %1$d %2$s"
msgstr "por %1$d %2$s"
-#: ../../include/channel.php:1592
+#: ../../include/channel.php:1641
msgid "Tags:"
msgstr "Etiquetas:"
-#: ../../include/channel.php:1596
+#: ../../include/channel.php:1645
msgid "Sexual Preference:"
msgstr "Orientación sexual:"
-#: ../../include/channel.php:1602
+#: ../../include/channel.php:1651
msgid "Political Views:"
msgstr "Posición política:"
-#: ../../include/channel.php:1604
+#: ../../include/channel.php:1653
msgid "Religion:"
msgstr "Religión:"
-#: ../../include/channel.php:1608
+#: ../../include/channel.php:1657
msgid "Hobbies/Interests:"
msgstr "Aficciones o intereses:"
-#: ../../include/channel.php:1610
+#: ../../include/channel.php:1659
msgid "Likes:"
msgstr "Me gusta:"
-#: ../../include/channel.php:1612
+#: ../../include/channel.php:1661
msgid "Dislikes:"
msgstr "No me gusta:"
-#: ../../include/channel.php:1614
+#: ../../include/channel.php:1663
msgid "Contact information and Social Networks:"
msgstr "Información de contacto y redes sociales:"
-#: ../../include/channel.php:1616
+#: ../../include/channel.php:1665
msgid "My other channels:"
msgstr "Mis otros canales:"
-#: ../../include/channel.php:1618
+#: ../../include/channel.php:1667
msgid "Musical interests:"
msgstr "Preferencias musicales:"
-#: ../../include/channel.php:1620
+#: ../../include/channel.php:1669
msgid "Books, literature:"
msgstr "Libros, literatura:"
-#: ../../include/channel.php:1622
+#: ../../include/channel.php:1671
msgid "Television:"
msgstr "Televisión:"
-#: ../../include/channel.php:1624
+#: ../../include/channel.php:1673
msgid "Film/dance/culture/entertainment:"
msgstr "Cine, danza, cultura, entretenimiento:"
-#: ../../include/channel.php:1626
+#: ../../include/channel.php:1675
msgid "Love/Romance:"
msgstr "Vida sentimental o amorosa:"
-#: ../../include/channel.php:1628
+#: ../../include/channel.php:1677
msgid "Work/employment:"
msgstr "Trabajo:"
-#: ../../include/channel.php:1630
+#: ../../include/channel.php:1679
msgid "School/education:"
msgstr "Estudios:"
-#: ../../include/channel.php:1653
+#: ../../include/channel.php:1702
msgid "Like this thing"
msgstr "Me gusta esto"
-#: ../../include/event.php:24 ../../include/event.php:71
+#: ../../include/event.php:28 ../../include/event.php:75
msgid "l F d, Y \\@ g:i A"
msgstr "l d de F, Y \\@ G:i"
-#: ../../include/event.php:32 ../../include/event.php:75
+#: ../../include/event.php:36 ../../include/event.php:79
msgid "Starts:"
msgstr "Comienza:"
-#: ../../include/event.php:42 ../../include/event.php:79
+#: ../../include/event.php:46 ../../include/event.php:83
msgid "Finishes:"
msgstr "Finaliza:"
-#: ../../include/event.php:1011
+#: ../../include/event.php:1020
msgid "This event has been added to your calendar."
msgstr "Este evento ha sido añadido a su calendario."
-#: ../../include/event.php:1227
+#: ../../include/event.php:1239
msgid "Not specified"
msgstr "Sin especificar"
-#: ../../include/event.php:1228
+#: ../../include/event.php:1240
msgid "Needs Action"
msgstr "Necesita de una intervención"
-#: ../../include/event.php:1229
+#: ../../include/event.php:1241
msgid "Completed"
msgstr "Completado/a"
-#: ../../include/event.php:1230
+#: ../../include/event.php:1242
msgid "In Process"
msgstr "En proceso"
-#: ../../include/event.php:1231
+#: ../../include/event.php:1243
msgid "Cancelled"
msgstr "Cancelado/a"
-#: ../../include/event.php:1310 ../../include/connections.php:698
+#: ../../include/event.php:1322 ../../include/connections.php:698
msgid "Home, Voice"
msgstr "Llamadas particulares"
-#: ../../include/event.php:1311 ../../include/connections.php:699
+#: ../../include/event.php:1323 ../../include/connections.php:699
msgid "Home, Fax"
msgstr "Fax particular"
-#: ../../include/event.php:1313 ../../include/connections.php:701
+#: ../../include/event.php:1325 ../../include/connections.php:701
msgid "Work, Voice"
msgstr "Llamadas de trabajo"
-#: ../../include/event.php:1314 ../../include/connections.php:702
+#: ../../include/event.php:1326 ../../include/connections.php:702
msgid "Work, Fax"
msgstr "Fax de trabajo"
-#: ../../include/network.php:770
-msgid "view full size"
-msgstr "Ver en el tamaño original"
-
-#: ../../include/network.php:1776
+#: ../../include/network.php:1718
msgid "GNU-Social"
msgstr "GNU Social"
-#: ../../include/network.php:1777
+#: ../../include/network.php:1719
msgid "RSS/Atom"
msgstr "RSS/Atom"
-#: ../../include/network.php:1781
+#: ../../include/network.php:1723
msgid "Facebook"
msgstr "Facebook"
-#: ../../include/network.php:1783
+#: ../../include/network.php:1725
msgid "LinkedIn"
msgstr "LinkedIn"
-#: ../../include/network.php:1784
+#: ../../include/network.php:1726
msgid "XMPP/IM"
msgstr "XMPP/IM"
-#: ../../include/network.php:1785
+#: ../../include/network.php:1727
msgid "MySpace"
msgstr "MySpace"
@@ -14321,22 +14621,17 @@ msgid ""
" permissions set who is allowed to view the post."
msgstr "Los permisos de la entrada %s no se pueden cambiar %s una vez que se ha compartido.</br /> Estos permisos establecen quién está autorizado para ver el mensaje."
-#: ../../include/dba/dba_driver.php:178
-#, php-format
-msgid "Cannot locate DNS info for database server '%s'"
-msgstr "No se ha podido localizar información de DNS para el servidor de base de datos “%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
-#: ../../include/bbcode.php:1218 ../../include/bbcode.php:1223
-#: ../../include/bbcode.php:1226 ../../include/bbcode.php:1231
-#: ../../include/bbcode.php:1234 ../../include/bbcode.php:1237
-#: ../../include/bbcode.php:1240
+#: ../../include/bbcode.php:200 ../../include/bbcode.php:1190
+#: ../../include/bbcode.php:1193 ../../include/bbcode.php:1198
+#: ../../include/bbcode.php:1201 ../../include/bbcode.php:1204
+#: ../../include/bbcode.php:1207 ../../include/bbcode.php:1212
+#: ../../include/bbcode.php:1215 ../../include/bbcode.php:1220
+#: ../../include/bbcode.php:1223 ../../include/bbcode.php:1226
+#: ../../include/bbcode.php:1229
msgid "Image/photo"
msgstr "Imagen/foto"
-#: ../../include/bbcode.php:239 ../../include/bbcode.php:1251
+#: ../../include/bbcode.php:239 ../../include/bbcode.php:1240
msgid "Encrypted content"
msgstr "Contenido cifrado"
@@ -14352,51 +14647,51 @@ msgid ""
"to install it on this site."
msgstr "Esta entrada contiene el elemento instalable %s, sin embargo le faltan permisos para instalarlo en este sitio."
-#: ../../include/bbcode.php:350
+#: ../../include/bbcode.php:339
msgid "card"
msgstr "ficha"
-#: ../../include/bbcode.php:352
+#: ../../include/bbcode.php:341
msgid "article"
msgstr "el artículo"
-#: ../../include/bbcode.php:435 ../../include/bbcode.php:443
+#: ../../include/bbcode.php:424 ../../include/bbcode.php:432
msgid "Click to open/close"
msgstr "Pulsar para abrir/cerrar"
-#: ../../include/bbcode.php:443
+#: ../../include/bbcode.php:432
msgid "spoiler"
msgstr "spoiler"
-#: ../../include/bbcode.php:456
+#: ../../include/bbcode.php:445
msgid "View article"
msgstr "Ver el artículo"
-#: ../../include/bbcode.php:456
+#: ../../include/bbcode.php:445
msgid "View summary"
msgstr "Ver sumario"
-#: ../../include/bbcode.php:1189
+#: ../../include/bbcode.php:1178
msgid "$1 wrote:"
msgstr "$1 escribió:"
-#: ../../include/oembed.php:224
+#: ../../include/oembed.php:226
msgid "View PDF"
msgstr "Ver PDF"
-#: ../../include/oembed.php:347
+#: ../../include/oembed.php:356
msgid " by "
msgstr "por"
-#: ../../include/oembed.php:348
+#: ../../include/oembed.php:357
msgid " on "
msgstr "en"
-#: ../../include/oembed.php:377
+#: ../../include/oembed.php:386
msgid "Embedded content"
msgstr "Contenido incorporado"
-#: ../../include/oembed.php:386
+#: ../../include/oembed.php:395
msgid "Embedding disabled"
msgstr "Incrustación deshabilitada"
@@ -14429,11 +14724,11 @@ msgstr "Nube de etiquetas"
msgid "Provide a personal tag cloud on your channel page"
msgstr "Proveer nube de etiquetas personal en su página de canal"
-#: ../../include/features.php:116 ../../include/features.php:381
+#: ../../include/features.php:116 ../../include/features.php:373
msgid "Use blog/list mode"
msgstr "Usar el modo blog/lista"
-#: ../../include/features.php:117 ../../include/features.php:382
+#: ../../include/features.php:117 ../../include/features.php:374
msgid "Comments will be displayed separately"
msgstr "Los comentarios se mostrarán por separado"
@@ -14644,47 +14939,39 @@ msgstr "Filtro de entradas personales"
msgid "Ability to display only posts that you've interacted on"
msgstr "Posibilidad de mostrar sólo los mensajes en los que usted haya interactuado"
-#: ../../include/features.php:365
-msgid "Affinity Tool"
-msgstr "Herramienta de afinidad"
-
#: ../../include/features.php:366
-msgid "Filter stream activity by depth of relationships"
-msgstr "Filtrar el contenido según la profundidad de las relaciones"
-
-#: ../../include/features.php:374
msgid "Show friend and connection suggestions"
msgstr "Mostrar sugerencias de amigos y conexiones"
-#: ../../include/features.php:395
+#: ../../include/features.php:387
msgid "Photo Location"
msgstr "Ubicación de las fotos"
-#: ../../include/features.php:396
+#: ../../include/features.php:388
msgid "If location data is available on uploaded photos, link this to a map."
msgstr "Si los datos de ubicación están disponibles en las fotos subidas, enlazar estas a un mapa."
-#: ../../include/features.php:409
+#: ../../include/features.php:401
msgid "Advanced Profiles"
msgstr "Perfiles avanzados"
-#: ../../include/features.php:410
+#: ../../include/features.php:402
msgid "Additional profile sections and selections"
msgstr "Secciones y selecciones de perfil adicionales"
-#: ../../include/features.php:417
+#: ../../include/features.php:409
msgid "Profile Import/Export"
msgstr "Importar/Exportar perfil"
-#: ../../include/features.php:418
+#: ../../include/features.php:410
msgid "Save and load profile details across sites/channels"
msgstr "Guardar y cargar detalles del perfil a través de sitios/canales"
-#: ../../include/features.php:425
+#: ../../include/features.php:417
msgid "Multiple Profiles"
msgstr "Múltiples perfiles"
-#: ../../include/features.php:426
+#: ../../include/features.php:418
msgid "Ability to create multiple profiles"
msgstr "Capacidad de crear múltiples perfiles"
@@ -14929,55 +15216,55 @@ msgstr "Buscar en el sitio @nombre, !foro, #tag, ?docs, contenido"
msgid "Site Setup and Configuration"
msgstr "Ajustes y configuración del sitio"
-#: ../../include/nav.php:299
+#: ../../include/nav.php:329
msgid "@name, !forum, #tag, ?doc, content"
msgstr "@nombre, !foro, #tag, ?docs, contenido"
-#: ../../include/nav.php:300
+#: ../../include/nav.php:330
msgid "Please wait..."
msgstr "Espere por favor…"
-#: ../../include/nav.php:306
+#: ../../include/nav.php:336
msgid "Add Apps"
msgstr "Añadir aplicaciones"
-#: ../../include/nav.php:307
+#: ../../include/nav.php:337
msgid "Arrange Apps"
msgstr "Organizar aplicaciones"
-#: ../../include/nav.php:308
+#: ../../include/nav.php:338
msgid "Toggle System Apps"
msgstr "Alternar aplicaciones de sistema"
-#: ../../include/nav.php:394
+#: ../../include/nav.php:424
msgid "Status Messages and Posts"
msgstr "Mensajes de estado y publicaciones"
-#: ../../include/nav.php:407
+#: ../../include/nav.php:437
msgid "Profile Details"
msgstr "Detalles del perfil"
-#: ../../include/nav.php:417 ../../include/photos.php:667
+#: ../../include/nav.php:447 ../../include/photos.php:669
msgid "Photo Albums"
msgstr "Álbumes de fotos"
-#: ../../include/nav.php:425
+#: ../../include/nav.php:455
msgid "Files and Storage"
msgstr "Ficheros y repositorio"
-#: ../../include/nav.php:463
+#: ../../include/nav.php:493
msgid "Saved Bookmarks"
msgstr "Marcadores guardados"
-#: ../../include/nav.php:474
+#: ../../include/nav.php:504
msgid "View Cards"
msgstr "Ver las fichas"
-#: ../../include/nav.php:485
+#: ../../include/nav.php:515
msgid "View Articles"
msgstr "Ver los artículos"
-#: ../../include/nav.php:497
+#: ../../include/nav.php:527
msgid "View Webpages"
msgstr "Ver páginas web"
@@ -15004,15 +15291,15 @@ msgctxt "photo_upload"
msgid "%1$s posted %2$s to %3$s"
msgstr "%1$s ha publicado %2$s en %3$s"
-#: ../../include/photos.php:672
+#: ../../include/photos.php:674
msgid "Upload New Photos"
msgstr "Subir nuevas fotos"
-#: ../../include/zot.php:773
+#: ../../include/zot.php:775
msgid "Invalid data packet"
msgstr "Paquete de datos no válido"
-#: ../../include/zot.php:4235
+#: ../../include/zot.php:4288
msgid "invalid target signature"
msgstr "La firma recibida no es válida"
diff --git a/view/es-es/hstrings.php b/view/es-es/hstrings.php
index 1dd38b930..bb4c3728f 100644
--- a/view/es-es/hstrings.php
+++ b/view/es-es/hstrings.php
@@ -370,6 +370,7 @@ App::$strings["Unable to check command line PHP, as shell_exec() is disabled. Th
App::$strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La línea de comandos PHP de su sistema no tiene activado \"register_argc_argv\".";
App::$strings["This is required for message delivery to work."] = "Esto es necesario para que funcione la transmisión de mensajes.";
App::$strings["PHP register_argc_argv"] = "PHP register_argc_argv";
+App::$strings["This is not sufficient to upload larger images or files. You should be able to upload at least 4 MB at once."] = "Esto no es suficiente para subir imágenes o archivos más grandes. Usted debe ser capaz de subir al menos 4 MB a la vez.";
App::$strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "La carga máxima que se le permite subir está establecida en %s. El tamaño máximo de un fichero está establecido en %s. Está permitido subir hasta un máximo de %d ficheros de una sola vez.";
App::$strings["You can adjust these settings in the server php.ini file."] = "Puede ajustar estos valores en el fichero php.ini de su servidor.";
App::$strings["PHP upload limits"] = "Límites PHP de subida";
@@ -827,13 +828,7 @@ App::$strings["Remove Account"] = "Eliminar cuenta";
App::$strings["Remove this account including all its channels"] = "Eliminar esta cuenta incluyendo todos sus canales";
App::$strings["Profiles Settings"] = "Gestión de los perfiles";
App::$strings["Channel Manager Settings"] = "Ajustes del administrador de canales";
-App::$strings["Affinity Slider settings updated."] = "Se han actualizado los ajustes del controlador de afinidad.";
App::$strings["No feature settings configured"] = "No se ha establecido la configuración de los complementos";
-App::$strings["Default maximum affinity level"] = "Nivel máximo de afinidad por defecto";
-App::$strings["0-99 default 99"] = "0-99 por defecto 99";
-App::$strings["Default minimum affinity level"] = "Nivel mínimo de afinidad por defecto";
-App::$strings["0-99 - default 0"] = "0-99 - por defecto 0";
-App::$strings["Affinity Slider Settings"] = "Ajustes del controlador de afinidad";
App::$strings["Addon Settings"] = "Ajustes de los complementos";
App::$strings["Please save/submit changes to any panel before opening another."] = "Guarde o envíe los cambios a cualquier panel antes de abrir otro.";
App::$strings["Max height of content (in pixels)"] = "Altura máxima del contenido (en píxeles)";
@@ -1116,6 +1111,8 @@ App::$strings["Cannot delete Home"] = "No se puede eliminar la página principal
App::$strings["Current Revision"] = "Revisión actual";
App::$strings["Selected Revision"] = "Revisión seleccionada";
App::$strings["You must be authenticated."] = "Debe estar autenticado.";
+App::$strings["&#x1f501; Repeated %1\$s's %2\$s"] = "&#x1f501; Repetidos %2\$sde %1\$s";
+App::$strings["Post repeated"] = "Entrada repetida";
App::$strings["toggle full screen mode"] = "cambiar al modo de pantalla completa";
App::$strings["Layout updated."] = "Plantilla actualizada.";
App::$strings["PDL Editor App"] = "App Editor PDL";
@@ -1315,6 +1312,17 @@ App::$strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s ha etiquetado %3
App::$strings["This setting requires special processing and editing has been blocked."] = "Este ajuste necesita de un proceso especial y la edición ha sido bloqueada.";
App::$strings["Configuration Editor"] = "Editor de configuración";
App::$strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Atención: El cambio de algunos ajustes puede volver inutilizable su canal. Por favor, abandone la página excepto que esté seguro y sepa cómo usar correctamente esta característica.";
+App::$strings["Affinity Tool settings updated."] = "Actualización de los ajustes de Affinity Tool.";
+App::$strings["This app presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship (affinity) with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream."] = "Esta aplicación presenta un control deslizante en su editor de conexión y también en su página de red. El control deslizante representa su grado de amistad (afinidad) con cada conexión. Le permite acercar o alejar y mostrar conversaciones sólo de sus amigos más cercanos o de todo el mundo en su stream.";
+App::$strings["Affinity Tool App"] = "App Affinity Tool ";
+App::$strings["The numbers below represent the minimum and maximum slider default positions for your network/stream page as a percentage."] = "Los números que aparecen a continuación representan las posiciones predeterminadas mínimas y máximas de los controles deslizantes para su red/stream en forma de porcentaje.";
+App::$strings["Default maximum affinity level"] = "Nivel máximo de afinidad por defecto";
+App::$strings["0-99 default 99"] = "0-99 por defecto 99";
+App::$strings["Default minimum affinity level"] = "Nivel mínimo de afinidad por defecto";
+App::$strings["0-99 - default 0"] = "0-99 - por defecto 0";
+App::$strings["Persistent affinity levels"] = "Niveles de afinidad persistentes";
+App::$strings["If disabled the max and min levels will be reset to default after page reload"] = "Si está desactivado, los niveles máximo y mínimo se restablecerán a los valores predeterminados después de recargar la página.";
+App::$strings["Affinity Tool Settings"] = "Ajustes de Affinity Tool";
App::$strings["Default Permissions App"] = "App Permisos por defecto";
App::$strings["Set custom default permissions for new connections"] = "Establecer permisos predeterminados personalizados para nuevas conexiones";
App::$strings["Automatic approval settings"] = "Opciones de autorización automática";
@@ -1699,7 +1707,6 @@ App::$strings["View Connections"] = "Ver conexiones";
App::$strings["Blocked accounts"] = "Cuentas bloqueadas";
App::$strings["Expired accounts"] = "Cuentas caducadas";
App::$strings["Expiring accounts"] = "Cuentas que caducan";
-App::$strings["Clones"] = "Clones";
App::$strings["Message queues"] = "Mensajes en cola";
App::$strings["Your software should be updated"] = "Debe actualizar su software";
App::$strings["Summary"] = "Sumario";
@@ -1740,6 +1747,11 @@ App::$strings["Icon url"] = "Dirección del icono";
App::$strings["Application not found."] = "Aplicación no encontrada.";
App::$strings["Connected OAuth Apps"] = "Apps OAuth conectadas";
App::$strings["Mark all seen"] = "Marcar todo como visto";
+App::$strings["Likes %1\$s's %2\$s"] = "Gusta de %2\$sde %1\$s";
+App::$strings["Doesn't like %1\$s's %2\$s"] = "No le gusta %2\$sde %1\$s";
+App::$strings["Will attend %1\$s's %2\$s"] = "Asistirá %2\$sde %1\$s";
+App::$strings["Will not attend %1\$s's %2\$s"] = "No asistirá %2\$sde %1\$s";
+App::$strings["May attend %1\$s's %2\$s"] = "Puede asistir %2\$sde %1\$s";
App::$strings["ActivityPub"] = "ActivityPub";
App::$strings["0. Beginner/Basic"] = "0. Principiante/Básico";
App::$strings["1. Novice - not skilled but willing to learn"] = "1. Novato: no cualificado, pero dispuesto a aprender";
@@ -1749,6 +1761,7 @@ App::$strings["4. Expert - I can write computer code"] = "4. Experto - Puedo esc
App::$strings["5. Wizard - I probably know more than you do"] = "5. Colaborador - probablemente sé más que tú";
App::$strings["Unable to verify channel signature"] = "No ha sido posible de verificar la firma del canal";
App::$strings["Apps"] = "Aplicaciones (apps)";
+App::$strings["Affinity Tool"] = "Herramienta de afinidad";
App::$strings["Site Admin"] = "Administrador del sitio";
App::$strings["Report Bug"] = "Informe de errores";
App::$strings["Bookmarks"] = "Marcadores";
@@ -1902,6 +1915,7 @@ App::$strings["Wiki files deleted successfully"] = "Se han borrado con éxito lo
App::$strings["Update Error at %s"] = "Error de actualización en %s";
App::$strings["Update %s failed. See error logs."] = "La actualización %s ha fallado. Mire el informe de errores.";
App::$strings["Private Message"] = "Mensaje Privado";
+App::$strings["Privacy conflict. Discretion advised."] = "Conflicto de privacidad. Se aconseja discreción.";
App::$strings["Admin Delete"] = "Eliminar admin";
App::$strings["Select"] = "Seleccionar";
App::$strings["I will attend"] = "Participaré";
@@ -2008,14 +2022,14 @@ App::$strings["Rating Tools"] = "Valoraciones";
App::$strings["Rate Me"] = "Valorar este canal";
App::$strings["View Ratings"] = "Mostrar las valoraciones";
App::$strings["__ctx:widget__ Activity"] = "Actividad";
-App::$strings["Personal Posts"] = "Entradas personales";
-App::$strings["Show posts that mention or involve me"] = "Mostrar entradas que me mencionen o involucren";
-App::$strings["Starred Posts"] = "Entradas preferidas";
-App::$strings["Show posts that I have starred"] = "Mostrar entradas que he señalado como preferidas";
App::$strings["Show posts related to the %s privacy group"] = "Mostrar entradas relacionadas con el grupo %s";
App::$strings["Show my privacy groups"] = "Mostrar mis grupos de canales";
App::$strings["Show posts to this forum"] = "Mostrar las entradas en este foro";
App::$strings["Show forums"] = "Mostrar los foros";
+App::$strings["Starred Posts"] = "Entradas preferidas";
+App::$strings["Show posts that I have starred"] = "Mostrar entradas que he señalado como preferidas";
+App::$strings["Personal Posts"] = "Entradas personales";
+App::$strings["Show posts that mention or involve me"] = "Mostrar entradas que me mencionen o involucren";
App::$strings["Show posts that I have filed to %s"] = "Mostrar las entradas que he enviado a %s";
App::$strings["Saved Folders"] = "Carpetas guardadas";
App::$strings["Show filed post categories"] = "Mostrar los temas de las entradas archivadas";
@@ -2078,7 +2092,6 @@ App::$strings["Addon Features"] = "Características del addon";
App::$strings["Account settings"] = "Configuración de la cuenta";
App::$strings["Channel settings"] = "Configuración del canal";
App::$strings["Display settings"] = "Ajustes de visualización";
-App::$strings["Addon settings"] = "Ajustes de los complementos";
App::$strings["Manage locations"] = "Gestión de ubicaciones (clones) del canal";
App::$strings["Bookmarked Chatrooms"] = "Salas de chat preferidas";
App::$strings["New Network Activity"] = "Nueva actividad en la red";
@@ -2086,6 +2099,7 @@ App::$strings["New Network Activity Notifications"] = "Avisos de nueva actividad
App::$strings["View your network activity"] = "Ver su actividad en la red";
App::$strings["Mark all notifications read"] = "Marcar todas las notificaciones como leídas";
App::$strings["Show new posts only"] = "Mostrar solo las entradas nuevas";
+App::$strings["Filter by name or address"] = "Filtrar por nombre o dirección";
App::$strings["New Home Activity"] = "Nueva actividad en su página principal";
App::$strings["New Home Activity Notifications"] = "Avisos de nueva actividad en su página principal";
App::$strings["View your home activity"] = "Ver su actividad en su página principal";
@@ -2179,16 +2193,19 @@ App::$strings["Enter a note to be displayed when you are within the specified pr
App::$strings["Add new rendezvous"] = "Añadir una nueva cita";
App::$strings["Create a new rendezvous and share the access link with those you wish to invite to the group. Those who open the link become members of the rendezvous. They can view other member locations, add markers to the map, or share their own locations with the group."] = "Cree una nueva cita y comparta los enlaces de acceso con los que desea invitar al grupo. Aquellos que abran el enlace se convertirán en miembros de la cita. Pueden ver otras ubicaciones de miembros, añadir marcadores al mapa o compartir sus propias ubicaciones con el grupo.";
App::$strings["You have no rendezvous. Press the button above to create a rendezvous!"] = "No tiene ninguna cita. ¡Presione el botón de arriba para crear una!";
+App::$strings["Skeleton App"] = "App Skeleton";
+App::$strings["A skeleton for addons, you can copy/paste"] = "Skeleton para los addons, puede copiar/pegar";
App::$strings["Some setting"] = "Algunos ajustes";
App::$strings["A setting"] = "Un ajuste";
App::$strings["Skeleton Settings"] = "Ajustes de Skeleton";
App::$strings["The GNU-Social protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "El protocolo de GNU-Social no admite la independencia de la ubicación. Las\n conexiones que realice dentro de esa red pueden ser inaccesibles desde \nubicaciones de canales alternativos.";
+App::$strings["GNU-Social Protocol App"] = "App Protocolo GNU-Social";
App::$strings["GNU-Social Protocol"] = "Protocolo GNU-Social";
App::$strings["Follow"] = "Seguir";
App::$strings["%1\$s is now following %2\$s"] = "%1\$s está siguiendo ahora a %2\$s";
-App::$strings["Planets Settings updated."] = "Se han guardado los ajustes de Planets.";
-App::$strings["Enable Planets Plugin"] = "Habilitar el plugin Planets";
-App::$strings["Planets Settings"] = "Ajustes de Planets";
+App::$strings["Random Planet App"] = "App Random Planet";
+App::$strings["Installed"] = "Instalado";
+App::$strings["Set a random planet from the Star Wars Empire as your location when posting"] = "Establecer un planeta aleatorio del Imperio de la Guerra de las Galaxias como su ubicación cuando publique.";
App::$strings["System defaults:"] = "Valores predeterminados del sistema: ";
App::$strings["Preferred Clipart IDs"] = "IDs de las imágenes clipart preferidas";
App::$strings["List of preferred clipart ids. These will be shown first."] = "Lista de ids de imágenes de clipart preferidas. Se verán en primer lugar.";
@@ -2217,7 +2234,27 @@ App::$strings["Unknown error. Please try again later."] = "Error desconocido. Po
App::$strings["Profile photo updated successfully."] = "Se ha actualizado con éxito la foto de perfil.";
App::$strings["Flag Adult Photos"] = "Indicador (\"flag\") de fotos de adultos";
App::$strings["Provide photo edit option to hide inappropriate photos from default album view"] = "Proporcionar una opción de edición de fotos para ocultar las fotos inapropiadas de la vista de álbum predeterminada";
+App::$strings["You haven't set a TOTP secret yet.\nPlease click the button below to generate one and register this site\nwith your preferred authenticator app."] = "Aún no ha establecido un TOTP secret.\nPor favor, haga clic en el botón de abajo para generar uno y registrar este sitio\ncon su aplicación de autenticación preferida.";
+App::$strings["Your TOTP secret is"] = "Su TOTP secret es ";
+App::$strings["Be sure to save it somewhere in case you lose or replace your mobile device.\nUse your mobile device to scan the QR code below to register this site\nwith your preferred authenticator app."] = "Asegúrese de guardarlo en algún lugar en caso de que pierda o reemplace su dispositivo móvil.\nUtilice su dispositivo móvil para escanear el código QR a continuación para registrar este sitio\ncon su aplicación de autenticación preferida.";
+App::$strings["Test"] = "Test";
+App::$strings["Generate New Secret"] = "Generar un nuevo Secret";
+App::$strings["Go"] = "Ir";
+App::$strings["Enter your password"] = "Introduzca su contraseña";
+App::$strings["enter TOTP code from your device"] = "introduzca el código TOTP desde su dispositivo";
+App::$strings["Pass!"] = "¡Pase!";
+App::$strings["Fail"] = "Fallo";
+App::$strings["Incorrect password, try again."] = "Contraseña incorrecta, inténtelo de nuevo.";
+App::$strings["Record your new TOTP secret and rescan the QR code above."] = "Registre su nuevo TOTP secret y vuelva a escanear el código QR de arriba";
+App::$strings["TOTP Settings"] = "Ajustes de TOTP";
+App::$strings["TOTP Two-Step Verification"] = "Verificación en dos pasos de TOTP";
+App::$strings["Enter the 2-step verification generated by your authenticator app:"] = "Introduzca la verificación en 2 pasos generada por su app de autenticación: ";
+App::$strings["Success!"] = "¡Éxito!";
+App::$strings["Invalid code, please try again."] = "Código inválido, por favor inténtelo de nuevo.";
+App::$strings["Too many invalid codes..."] = "Demasiados códigos no válidos...";
+App::$strings["Verify"] = "Verficar";
App::$strings["Wordpress Settings saved."] = "Se han guardado los ajustes de WordPress.";
+App::$strings["Wordpress Post App"] = "App Publicar en Wordpress";
App::$strings["Post to WordPress or anything else which uses the wordpress XMLRPC API"] = "Publicar en WordPress o cualquier otra cosa que utilice la API XMLRPC de wordpress";
App::$strings["WordPress username"] = "Nombre de usuario de WordPress";
App::$strings["WordPress password"] = "Contraseña de WordPress";
@@ -2232,24 +2269,31 @@ App::$strings["Post to WordPress"] = "Publicar en WordPress";
App::$strings["Possible adult content"] = "Posible contenido para adultos";
App::$strings["%s - view"] = "ver - %s";
App::$strings["NSFW Settings saved."] = "Se han guardado los ajustes de NSFW.";
+App::$strings["NSFW App"] = "App NSFW";
App::$strings["Collapse content that contains predefined words"] = "Ocultar el contenido que contiene palabras predefinidas";
App::$strings["This app looks in posts for the words/text you specify below, and collapses any content containing those keywords so it is not displayed at inappropriate times, such as sexual innuendo that may be improper in a work setting. It is polite and recommended to tag any content containing nudity with #NSFW. This filter can also match any other word/text you specify, and can thereby be used as a general purpose content filter."] = "Esta aplicación busca en los mensajes las palabras o texto que especifique a continuación, y oculta cualquier contenido que contenga esas palabras clave, para que no se muestren en momentos inapropiados, como insinuaciones sexuales que puedan ser inapropiadas en un entorno laboral. Es cortés y recomendable etiquetar cualquier contenido que contenga desnudos con #NSFW. Este filtro también puede coincidir con cualquier otra palabra o texto que especifique y, por lo tanto, puede utilizarse como filtro de contenido de propósito general.";
App::$strings["Comma separated list of keywords to hide"] = "Lista separada por comas de palabras clave para ocultar";
App::$strings["Word, /regular-expression/, lang=xx, lang!=xx"] = "Palabra, /expresión regular/, lang=xx, lang!=xx";
App::$strings["NSFW"] = "NSFW";
-App::$strings["Post to Insanejournal"] = "Publicar en Insanejournal";
-App::$strings["Enable InsaneJournal Post Plugin"] = "Habilitar el plugin de publicación en InsaneJournal";
+App::$strings["Max queueworker threads"] = "Máximo de hilos en la cola";
+App::$strings["Assume workers dead after ___ seconds"] = "Asumir que el proceso de trabajo está muerto después de ___ segundos";
+App::$strings["Queueworker Settings"] = "Configuración del gestor de procesos de trabajo en cola";
+App::$strings["Insane Journal Crosspost Connector Settings saved."] = "Se han guardado los ajustes del Conector de publicación cruzada de InsaneJournal.";
+App::$strings["Insane Journal Crosspost Connector App"] = "App Ajustes del Conector de publicación cruzada de InsaneJournal";
+App::$strings["Relay public postings to Insane Journal"] = "Retransmisión de entradas públicas a Insane Journal";
App::$strings["InsaneJournal username"] = "Nombre de usuario en InsaneJournal";
App::$strings["InsaneJournal password"] = "Contraseña en InsaneJournal";
App::$strings["Post to InsaneJournal by default"] = "Publicar por defecto en InsaneJournal";
-App::$strings["InsaneJournal Post Settings"] = "Ajustes de publicación en InsaneJournal";
-App::$strings["Insane Journal Settings saved."] = "Se han guardado los ajustes de InsaneJournal.";
+App::$strings["Insane Journal Crosspost Connector"] = "Conector de publicación cruzada de InsaneJournal";
+App::$strings["Post to Insane Journal"] = "Publicar en Insane Journal";
App::$strings["Post to Dreamwidth"] = "Publicar en Dreamwidth";
-App::$strings["Enable Dreamwidth Post Plugin"] = "Activar el plugin de publicación en Dreamwidth";
+App::$strings["Dreamwidth Crosspost Connector Settings saved."] = "Se han guardado los ajustes del conector de publicación cruzada Dreamwidth.";
+App::$strings["Dreamwidth Crosspost Connector App"] = "App Dreamwidth Crosspost Connector";
+App::$strings["Relay public postings to Dreamwidth"] = "Retransmisión de entradas públicas a Dreamwidth";
App::$strings["Dreamwidth username"] = "Nombre de usuario en Dreamwidth";
App::$strings["Dreamwidth password"] = "Contraseña en Dreamwidth";
App::$strings["Post to Dreamwidth by default"] = "Publicar en Dreamwidth de forma predeterminada";
-App::$strings["Dreamwidth Post Settings"] = "Ajustes de publicación en Dreamwidth";
+App::$strings["Dreamwidth Crosspost Connector"] = "Dreamwidth Crosspost Connector";
App::$strings["New registration"] = "Nuevo registro";
App::$strings["Message sent to %s. New account registration: %s"] = "Mensaje enviado a %s. Registro de una nueva cuenta: %s";
App::$strings["Hubzilla Directory Stats"] = "Estadísticas de directorio de Hubzilla";
@@ -2281,22 +2325,23 @@ App::$strings["Import just this album"] = "Importar solo este álbum";
App::$strings["Leave blank to import all albums"] = "Dejar en blanco para importar todos los álbumes";
App::$strings["Maximum count to import"] = "Límite máximo de importación";
App::$strings["0 or blank to import all available"] = "0 o en blanco para importar todos los disponibles";
+App::$strings["Popular Channels"] = "Canales populares";
App::$strings["Channels to auto connect"] = "Canales para conexión automática";
App::$strings["Comma separated list"] = "Lista separada por comas";
-App::$strings["Popular Channels"] = "Canales populares";
App::$strings["IRC Settings"] = "Ajustes de IRC";
App::$strings["IRC settings saved."] = "Se han guardado los ajustes de IRC.";
App::$strings["IRC Chatroom"] = "Sala de chat IRC";
App::$strings["Gallery"] = "Galería";
App::$strings["Photo Gallery"] = "Galería de fotos";
+App::$strings["Gallery App"] = "App Gallery";
App::$strings["A simple gallery for your photo albums"] = "Una galería sencilla para sus álbumes de fotos";
-App::$strings["Post to LiveJournal"] = "Publicar en LiveJournal";
-App::$strings["Enable LiveJournal Post Plugin"] = "Habilitar el plugin de publicación en LiveJournal";
-App::$strings["LiveJournal username"] = "Nombre de usuario en LiveJournal";
-App::$strings["LiveJournal password"] = "Contraseña en LiveJournal";
-App::$strings["Post to LiveJournal by default"] = "Publicar en LiveJournal por defecto";
-App::$strings["LiveJournal Post Settings"] = "Ajustes de publicación en LiveJournal";
-App::$strings["LiveJournal Settings saved."] = "Se han guardado los ajustes de LiveJournal.";
+App::$strings["Livejournal Crosspost Connector App"] = "App Livejournal Crosspost Connector";
+App::$strings["Relay public posts to Livejournal"] = "Retransmisión de entradas públicas a Livejournal";
+App::$strings["Livejournal username"] = "Nombre de usuario en Livejournal";
+App::$strings["Livejournal password"] = "Contraseña en Livejournal";
+App::$strings["Post to Livejournal by default"] = "Publicar en Livejournal por defecto";
+App::$strings["Livejournal Crosspost Connector"] = "Livejournal Crosspost Connector";
+App::$strings["Post to Livejournal"] = "Publicar en Livejournal";
App::$strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Encontramos un problema al iniciar sesión con el OpenID que proporcionó. Compruebe si el ID está correctamente escrito.";
App::$strings["The error message was:"] = "El mensaje de error ha sido: ";
App::$strings["First Name"] = "Nombre";
@@ -2322,6 +2367,7 @@ App::$strings["You're welcome."] = "Bienvenido.";
App::$strings["Ah shucks..."] = "Ah, joder...";
App::$strings["Don't mention it."] = "No lo menciones.";
App::$strings["&lt;blush&gt;"] = "&lt;sonrojo&gt;";
+App::$strings["Startpage App"] = "App Startpage";
App::$strings["Set a preferred page to load on login from home page"] = "Establecer una página preferida para cargar al iniciar sesión desde la página de inicio";
App::$strings["Page to load after login"] = "Página para cargar tras el inicio de sesión";
App::$strings["Examples: &quot;apps&quot;, &quot;network?f=&gid=37&quot; (privacy collection), &quot;channel&quot; or &quot;notifications/system&quot; (leave blank for default network page (grid)."] = "Ejemplos: &quot;aplicaciones&quot;, &quot;mi red?f=&gid=37&quot; (grupo de canales), &quot;mi canal&quot; or &quot;notificaciones del sistema&quot; (dejar en blanco para la página de mi red por defecto (grid).";
@@ -2364,8 +2410,10 @@ App::$strings["bonk"] = "un golpe";
App::$strings["bonked"] = "ha golpeado a";
App::$strings["declare undying love for"] = "una declaración de amor eterno";
App::$strings["declared undying love for"] = "ha declarado amor eterno a";
+App::$strings["%1\$s dislikes %2\$s's %3\$s"] = "a %1\$s no le gusta el %3\$s de %2\$s";
App::$strings["Diaspora Protocol Settings updated."] = "Los ajustes del protocolo de Diaspora se han actualizado.";
App::$strings["The diaspora protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "El protocolo de Diaspora no admite la independencia de la ubicación. Las conexiones que realice dentro de esa red pueden ser inaccesibles desde ubicaciones de canales alternativos.";
+App::$strings["Diaspora Protocol App"] = "App Protocolo Diaspora";
App::$strings["Allow any Diaspora member to comment on your public posts"] = "Permitir a cualquier miembro de Diaspora comentar sus entradas públicas";
App::$strings["Prevent your hashtags from being redirected to other sites"] = "Impedir que sus \"hashtags\" sean redirigidos a otros sitios ";
App::$strings["Sign and forward posts and comments with no existing Diaspora signature"] = "Firmar y enviar entradas y comentarios sin firma de Diaspora";
@@ -2373,9 +2421,16 @@ App::$strings["Followed hashtags (comma separated, do not include the #)"] = "\"
App::$strings["Diaspora Protocol"] = "Protocolo Diaspora";
App::$strings["No username found in import file."] = "No se ha encontrado el nombre de usuario en el fichero de importación.";
App::$strings["Unable to create a unique channel address. Import failed."] = "No se ha podido crear una dirección de canal única. Ha fallado la importación.";
+App::$strings["Photo Cache settings saved."] = "Se ha guardado la configuración de la caché de fotos.";
+App::$strings["Photo Cache addon saves a copy of images from external sites locally to increase your anonymity in the web."] = "El complemento Photo Cache guarda localmente una copia de las imágenes de sitios externos para aumentar su anonimato en la Web.";
+App::$strings["Photo Cache App"] = "App Photo Cache";
+App::$strings["Minimal photo size for caching"] = "Tamaño mínimo de la foto para el almacenamiento en caché";
+App::$strings["In pixels. From 1 up to 1024, 0 will be replaced with system default."] = "En píxeles. Desde 1 hasta 1024, 0 será reemplazado por el predeterminado del sistema.";
+App::$strings["Photo Cache"] = "Photo Cache";
App::$strings["Your account on %s will expire in a few days."] = "Su cuenta en %s caducará en unos pocos días.";
App::$strings["Your $Productname test account is about to expire."] = "Su cuenta de prueba de $Productname está a punto de caducar.";
App::$strings["Add some colour to tag clouds"] = "Añadir color a las nubes de etiquetas";
+App::$strings["Rainbow Tag App"] = "App Etiqueta Arcoiris";
App::$strings["Rainbow Tag"] = "Etiqueta Arcoiris";
App::$strings["Show Upload Limits"] = "Mostrar los límites de subida";
App::$strings["Hubzilla configured maximum size: "] = "Tamaño máximo configurado por Hubzilla: ";
@@ -2400,16 +2455,11 @@ App::$strings["This will import all your cloud files from another server."] = "E
App::$strings["Hubzilla Server base URL"] = "URL base del servidor Hubzilla";
App::$strings["Since modified date yyyy-mm-dd"] = "Modificado desde la fecha yyyy-mm-dd";
App::$strings["Until modified date yyyy-mm-dd"] = "Modificado hasta la fecha yyyy-mm-dd";
+App::$strings["Who viewed my channel/profile"] = "Quién ha visto mi canal/perfi";
App::$strings["Recent Channel/Profile Viewers"] = "Visitantes recientes del canal o perfil";
-App::$strings["This plugin/addon has not been configured."] = "El plugin o complemento no se ha configurado.";
-App::$strings["Please visit the Visage settings on %s"] = "Por favor, revise los ajustes de Visage en %s";
-App::$strings["your feature settings page"] = "su página de ajustes de las funcionalidades";
App::$strings["No entries."] = "No hay entradas.";
-App::$strings["Enable Visage Visitor Logging"] = "Habilitar el registro de visitantes de Visage";
-App::$strings["Visage Settings"] = "Ajustes de Visage";
-App::$strings["Nsabait Settings updated."] = "Se han actualizado los ajustes de Nsabait";
-App::$strings["Enable NSAbait Plugin"] = "Habilitar el plugin NSAbait";
-App::$strings["NSAbait Settings"] = "Ajustes de NSAbait";
+App::$strings["NSA Bait App"] = "App NSA Bait ";
+App::$strings["Make yourself a political target"] = "Conviértase en un objetivo político";
App::$strings["Send test email"] = "Enviar un correo electrónico de prueba";
App::$strings["No recipients found."] = "No se han encontrado destinatarios.";
App::$strings["Mail sent."] = "El correo electrónico ha sido enviado.";
@@ -2428,22 +2478,24 @@ App::$strings["Include marker on map"] = "Incluir un marcador en el mapa";
App::$strings["Include a marker on the map."] = "Incluir un marcador en el mapa.";
App::$strings["text to include in all outgoing posts from this site"] = "texto a incluir en todos los mensajes salientes de este sitio";
App::$strings["Fuzzloc Settings updated."] = "Los ajustes de Fuzzloc se han actualizado.";
-App::$strings["Fuzzloc allows you to blur your precise location if your channel uses browser location mapping."] = "Fuzzloc le permite desdibujar su ubicación precisa si su canal utiliza la asignación de ubicación del navegador.";
-App::$strings["Enable Fuzzloc Plugin"] = "Habilitar el plugin Fuzzloc";
+App::$strings["Fuzzy Location App"] = "App Fuzzy Location";
+App::$strings["Blur your precise location if your channel uses browser location mapping"] = "Desdibujar su ubicación precisa si su canal utiliza el mapeo de ubicación del navegador";
App::$strings["Minimum offset in meters"] = "Offset mínimo en metros";
App::$strings["Maximum offset in meters"] = "Offset máximo en metros";
-App::$strings["Fuzzloc Settings"] = "Ajustes de Fuzzloc";
+App::$strings["Fuzzy Location"] = "Fuzzy Location";
App::$strings["Post to Friendica"] = "Publicar en Friendica";
-App::$strings["rtof Settings saved."] = "Se han guardado los ajustes de rtof";
-App::$strings["Allow posting to Friendica"] = "Permitir publicar en Friendica";
+App::$strings["Friendica Crosspost Connector Settings saved."] = "Se han guardado los ajustes del conector de publicación cruzada con Friendica.";
+App::$strings["Friendica Crosspost Connector App"] = "App Friendica Crosspost Connector";
+App::$strings["Relay public postings to a connected Friendica account"] = "Retransmisión de entradas públicas a una cuenta Friendica conectada";
App::$strings["Send public postings to Friendica by default"] = "Enviar entradas públicas a Friendica por defecto";
App::$strings["Friendica API Path"] = "Ruta a la API de Friendica";
App::$strings["https://{sitename}/api"] = "https://{sitename}/api";
App::$strings["Friendica login name"] = "Nombre de inicio de sesión en Friendica";
App::$strings["Friendica password"] = "Contraseña de Friendica";
-App::$strings["Hubzilla to Friendica Post Settings"] = "Ajustes de publicación de Hubzilla a Friendica";
+App::$strings["Friendica Crosspost Connector"] = "Friendica Crosspost Connector";
+App::$strings["Jappixmini App"] = "App Jappixmini";
+App::$strings["Provides a Facebook-like chat using Jappix Mini"] = "Proporciona un chat similar al de Facebook utilizando Jappix Mini";
App::$strings["Status:"] = "Estado:";
-App::$strings["Activate addon"] = "Habilitar complemento";
App::$strings["Hide Jappixmini Chat-Widget from the webinterface"] = "Ocultar el widget de chat Jappixmini en la interfaz web";
App::$strings["Jabber username"] = "Nombre de usuario en Jabber";
App::$strings["Jabber server"] = "Servidor de Jabber";
@@ -2454,7 +2506,7 @@ App::$strings["Hubzilla password"] = "Contraseña de Hubzilla";
App::$strings["Approve subscription requests from Hubzilla contacts automatically"] = "Aprobar automáticamente las solicitudes de suscripción de los contactos de Hubzilla";
App::$strings["Purge internal list of jabber addresses of contacts"] = "Purgar la lista interna de las direcciones de contactos de jabber";
App::$strings["Configuration Help"] = "Ayuda para los ajustes";
-App::$strings["Jappix Mini Settings"] = "Ajustes de Jappix Mini";
+App::$strings["Jappixmini Settings"] = "Ajustes de Jappixmini";
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";
@@ -2478,24 +2530,27 @@ App::$strings["Community Moderation Settings"] = "Configuración de la moderaci
App::$strings["Can moderate reputation on my channel."] = "Se puede moderar la reputación en mi canal.";
App::$strings["Channel Reputation"] = "Reputación del canal";
App::$strings["Block Completely"] = "Bloquear completamente";
+App::$strings["Superblock App"] = "App Superblock";
App::$strings["Block channels"] = "Bloquear canales";
App::$strings["superblock settings updated"] = "se han actualizado los ajustes de superblock";
App::$strings["Currently blocked"] = "Actualmente bloqueado";
App::$strings["No channels currently blocked"] = "No hay canales bloqueados actualmente";
-App::$strings["Federate"] = "Federar";
App::$strings["nofed Settings saved."] = "Se han guardado los ajustes de nofed.";
-App::$strings["Allow Federation Toggle"] = "Permitir alternancia de federación";
+App::$strings["No Federation App"] = "App No Federation";
+App::$strings["Prevent posting from being federated to anybody. It will exist only on your channel page."] = "Evitar que la entrada sea federada con nadie. Sólo existirá en la página de su canal.";
App::$strings["Federate posts by default"] = "Federar las publicaciones por defecto";
-App::$strings["NoFed Settings"] = "Ajustes de NoFed";
-App::$strings["Post to Red"] = "Enviar a Red";
+App::$strings["No Federation"] = "No Federation";
+App::$strings["Federate"] = "Federar";
App::$strings["Channel is required."] = "Se requiere un canal.";
-App::$strings["redred Settings saved."] = "Se han salvado los ajustes de redred.";
-App::$strings["Allow posting to another Hubzilla Channel"] = "Permitir la publicación en otro canal de Hubzilla";
+App::$strings["Hubzilla Crosspost Connector Settings saved."] = "Se han guardado los ajustes de Hubzilla Crosspost Connector";
+App::$strings["Hubzilla Crosspost Connector App"] = "App Hubzilla Crosspost Connector";
+App::$strings["Relay public postings to another Hubzilla channel"] = "Retransmisión de entradas a otro canal de Hubzilla";
App::$strings["Send public postings to Hubzilla channel by default"] = "Enviar entradas públicas al canal Hubzilla por defecto";
App::$strings["Hubzilla API Path"] = "Ruta de la API de Hubzilla";
App::$strings["Hubzilla login name"] = "Nombre de inicio de sesión en Hubzilla";
App::$strings["Hubzilla channel name"] = "Nombre del canal de Hubzilla";
-App::$strings["Hubzilla Crosspost Settings"] = "Ajustes de Hubzilla Crosspost";
+App::$strings["Hubzilla Crosspost Connector"] = "Hubzilla Crosspost Connector";
+App::$strings["Post to Hubzilla"] = "Publicar en Hubzilla";
App::$strings["Logfile archive directory"] = "Directorio de los ficheros de informe";
App::$strings["Directory to store rotated logs"] = "Directorio para almacenar los informes rotados";
App::$strings["Logfile size in bytes before rotating"] = "Tamaño del fichero de informe en bytes antes de rotarlo";
@@ -2506,6 +2561,7 @@ App::$strings["Friendica Server base URL"] = "URL base del servidor de Friendica
App::$strings["Friendica Login Username"] = "Nombre de inicio de sesión en Friendica";
App::$strings["Friendica Login Password"] = "Contraseña de inicio de sesión en Friendica";
App::$strings["WYSIWYG status editor"] = "Editor de estado de WYSIWYG";
+App::$strings["WYSIWYG Status App"] = "App WYSIWYG Status";
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";
@@ -2525,6 +2581,7 @@ App::$strings["Other networks and post services"] = "Otras redes y servicios de
App::$strings["Set publish date"] = "Establecer la fecha de publicación";
App::$strings["ActivityPub Protocol Settings updated."] = "Se han actualizado los ajustes del protocolo ActivityPub.";
App::$strings["The activitypub protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "El protocolo ActivityPub no soporta la independencia de ubicación. Las conexiones que realice dentro de esa red pueden no ser accesibles desde ubicaciones de canales alternativos.";
+App::$strings["Activitypub Protocol App"] = "App Protocolo Activitypub";
App::$strings["Deliver to ActivityPub recipients in privacy groups"] = "Entregar a los destinatarios de ActivityPub en grupos de canales";
App::$strings["May result in a large number of mentions and expose all the members of your privacy group"] = "Puede resultar en un gran número de menciones y exponer a todos los miembros de su grupo de canales";
App::$strings["Send multi-media HTML articles"] = "Enviar artículos multimedia en HTML";
@@ -2532,7 +2589,6 @@ App::$strings["Not supported by some microblog services such as Mastodon"] = "No
App::$strings["Activitypub Protocol"] = "Protocolo Activitypub";
App::$strings["Project Servers and Resources"] = "Servidores y recursos del proyecto";
App::$strings["Project Creator and Tech Lead"] = "Creador del proyecto y director técnico";
-App::$strings["Admin, developer, directorymin, support bloke"] = "Administrador, desarrollador, administrador del directorio, trabajador de apoyo";
App::$strings["And the hundreds of other people and organisations who helped make the Hubzilla possible."] = "Y los cientos de personas y organizaciones más que ayudaron a hacer posible 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."] = "Los proyectos Redmatrix / Hubzilla están proporcionados principalmente por voluntarios que les prestan su tiempo y experiencia, pagando a menudo de su bolsillo por los servicios que comparten con otros.";
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>.)"] = "No hay financiación corporativa ni publicidad y no recogemos ni vendemos su información personal. (De hecho, no tenemos control sobre sus datos privados. <Strong>Usted lo tiene</strong>.)";
@@ -2555,14 +2611,16 @@ App::$strings["Chord name: example: Em7"] = "Nombre del acorde, por ejemplo: Em7
App::$strings["Show for left handed stringing"] = "Mostrar para tocadores zurdos";
App::$strings["Quick Reference"] = "Referencia rápida";
App::$strings["Post to Libertree"] = "Publicar en Libertree";
-App::$strings["Enable Libertree Post Plugin"] = "Habilitar el plugin de publicación en Libertree";
+App::$strings["Libertree Crosspost Connector Settings saved."] = "Se han guardado los ajustes del conector de publicación cruzada con Libertree.";
+App::$strings["Libertree Crosspost Connector App"] = "App Libertree Crosspost Connector";
+App::$strings["Relay public posts to Libertree"] = "Retransmisión de entradas públicas a Libertree";
App::$strings["Libertree API token"] = "Token de la API de Libertree";
App::$strings["Libertree site URL"] = "URL del servidor de Libertree";
App::$strings["Post to Libertree by default"] = "Publicar en Libertree por defecto";
-App::$strings["Libertree Post Settings"] = "Ajustes de publicación en Libertree";
-App::$strings["Libertree Settings saved."] = "Se han guardado los ajustes de Libertree.";
-App::$strings["Flattr this!"] = "¡Apoyar esto en Flattr!";
+App::$strings["Libertree Crosspost Connector"] = "Libertree Crosspost Connector";
App::$strings["Flattr widget settings updated."] = "Los ajustes del widget Flattr han sido actualizados.";
+App::$strings["Flattr Widget App"] = "App Flattr Widget";
+App::$strings["Add a Flattr button to your channel page"] = "Proporcionar un botón Flattr a la página de su canal";
App::$strings["Flattr user"] = "Usuario en Flattr";
App::$strings["URL of the Thing to flattr"] = "URL de la Cosa para apoyar en flattr";
App::$strings["If empty channel URL is used"] = "Si está vacío, se usa la URL del canal";
@@ -2574,12 +2632,12 @@ App::$strings["dynamic"] = "dinámico";
App::$strings["Alignment of the widget"] = "Alineamiento del widget";
App::$strings["left"] = "izquierda";
App::$strings["right"] = "derecha";
-App::$strings["Enable Flattr widget"] = "Habilitar el widget Flattr";
-App::$strings["Flattr Widget Settings"] = "Ajustes del widget Flattr";
-App::$strings["Post to GNU social"] = "Publicar en GNU social";
+App::$strings["Flattr Widget"] = "Flattr Widget";
+App::$strings["Flattr this!"] = "¡Apoyar esto en Flattr!";
App::$strings["Please contact your site administrator.<br />The provided API URL is not valid."] = "Por favor, contacte con el administrador de su sitio.<br />La URL de la API proporcionada no es válida.";
App::$strings["We could not contact the GNU social API with the Path you entered."] = "No podemos conectar con la API de GNU social con la ruta que ha proporcionado.";
App::$strings["GNU social settings updated."] = "Se han guardado los ajustes de GNU social.";
+App::$strings["Relay public postings to a connected GNU social account (formerly StatusNet)"] = "Retransmisión de entradas públicas a una cuenta conectada de GNU social (antiguo StarusNet)";
App::$strings["Globally Available GNU social OAuthKeys"] = "OAuthKeys globales de GNU social disponibles";
App::$strings["There are preconfigured OAuth key pairs for some GNU social servers available. If you are using one of them, please use these credentials.<br />If not feel free to connect to any other GNU social instance (see below)."] = "Existen pares de claves OAuth preconfiguradas disponibles para algunos servidores libres de GNU social. Si está usando uno de ellos, utilice estas credenciales.<br />Si no se siente libre de conectarse a cualquier otra instancia de GNU social (vea a continuación).";
App::$strings["Provide your own OAuth Credentials"] = "Proporcione sus propias credenciales de OAuth";
@@ -2597,12 +2655,11 @@ App::$strings["Current GNU social API is"] = "La API actual de GNU social es ";
App::$strings["Cancel GNU social Connection"] = "Cancelar la conexión de GNU social";
App::$strings["Currently connected to: "] = "Actualmente está conectado a: ";
App::$strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to GNU social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Aviso</strong>: Debido a su configuración de privacidad (<em>Ocultar los detalles de su perfil a los visitantes desconocidos?</em>) el vínculo potencialmente incluido en las entradas públicas retransmitidas a GNU social llevará al visitante a una página en blanco que le informará de que el acceso a su perfil ha sido restringido.";
-App::$strings["Allow posting to GNU social"] = "Habilitar la publicación en GNU social";
-App::$strings["If enabled your public postings can be posted to the associated GNU-social account"] = "Si está habilitado, sus entradas públicas se pueden publicar en la cuenta GNU-social asociada";
App::$strings["Post to GNU social by default"] = "Publicar en GNU social por defecto";
App::$strings["If enabled your public postings will be posted to the associated GNU-social account by default"] = "Si está activado, sus entradas públicas se publicarán en la cuenta GNU-social asociada de forma predeterminada";
App::$strings["Clear OAuth configuration"] = "Limpiar la configuración de OAuth";
-App::$strings["GNU social Post Settings"] = "Ajustes de publicación en GNU social";
+App::$strings["GNU-Social Crosspost Connector"] = "GNU-Social Crosspost Connector";
+App::$strings["Post to GNU social"] = "Publicar en GNU social";
App::$strings["API URL"] = "URL de la API";
App::$strings["Application name"] = "Nombre de la aplicación";
App::$strings["QR code"] = "Código QR";
@@ -2615,23 +2672,25 @@ App::$strings["You must select one opponent that is not yourself."] = "Debe sele
App::$strings["Random color chosen."] = "Elegido un color aleatorio.";
App::$strings["Error creating new game."] = "Error al crear un nuevo juego.";
App::$strings["Requested channel is not available."] = "El canal solicitado no está disponible.";
+App::$strings["Chess not installed."] = "Chess no está instalado.";
App::$strings["You must select a local channel /chess/channelname"] = "Debe seleccionar un canal local /chess/nombredelcanal";
App::$strings["Enable notifications"] = "Habilitar notificaciones";
-App::$strings["Post to Twitter"] = "Publicar en Twitter";
App::$strings["Twitter settings updated."] = "Se han actualizado los ajustes de Twitter.";
+App::$strings["Twitter Crosspost Connector App"] = "App Twitter Crosspost Connector";
+App::$strings["Relay public posts to Twitter"] = "Retransmisión de entradas públicas a Twitter";
App::$strings["No consumer key pair for Twitter found. Please contact your site administrator."] = "No se encontró ningún par de \"consumer key\" para Twitter. Póngase en contacto con el administrador del sitio.";
App::$strings["At this Hubzilla instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter."] = "En esta instancia de Hubzilla, el complemento de Twitter estaba habilitado pero aún no ha conectado su cuenta a la cuenta de Twitter. Para ello, haga clic en el botón de abajo, para obtener un PIN de Twitter que debe copiar en el cuadro de entrada a continuación y enviar el formulario. Solo sus entradas <strong>públicas</ strong> se publicarán en Twitter.";
App::$strings["Log in with Twitter"] = "Iniciar sesión en Twitter";
App::$strings["Copy the PIN from Twitter here"] = "Copiar aquí el PIN de Twitter";
App::$strings["<strong>Note:</strong> Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Aviso:</strong> Debido a su configuración de privacidad (<em>Ocultar los detalles de su perfil a los visitantes desconocidos?</em>), el enlace potencialmente incluido en las entradas públicas retransmitidas a Twitter llevará al visitante a una página en blanco informándolo de que el acceso a su perfil ha sido restringido.";
-App::$strings["Allow posting to Twitter"] = "Permitir la publicación en Twitter";
-App::$strings["If enabled your public postings can be posted to the associated Twitter account"] = "Si está activado, sus entradas públicas se pueden publicar en la cuenta de Twitter asociada";
App::$strings["Twitter post length"] = "Longitud del mensaje en Twitter";
App::$strings["Maximum tweet length"] = "Longitud máxima del tweet";
App::$strings["Send public postings to Twitter by default"] = "Enviar mensajes públicos a Twitter de forma predeterminada";
App::$strings["If enabled your public postings will be posted to the associated Twitter account by default"] = "Si está activado, sus entradas públicas se publicarán en la cuenta de Twitter asociada de forma predeterminada.";
-App::$strings["Twitter Post Settings"] = "Ajustes de publicación en Twitter";
-App::$strings["Deactivate the feature"] = "Desactivar la funcionalidad";
+App::$strings["Twitter Crosspost Connector"] = "Twitter Crosspost Connector";
+App::$strings["Post to Twitter"] = "Publicar en Twitter";
+App::$strings["Smileybutton App"] = "App Smileybutton";
+App::$strings["Adds a smileybutton to the jot editor"] = "Añade un botón de emoticonos al editor jot";
App::$strings["Hide the button and show the smilies directly."] = "Ocultar el botón y mostrar los smilies directamente.";
App::$strings["Smileybutton Settings"] = "Ajustes de Smileybutton";
App::$strings["Enable Test Catalog"] = "Habilitar el catálogo de pruebas";
@@ -2737,6 +2796,7 @@ App::$strings["If you see this icon you can be sure that the sender is who it sa
App::$strings["Danger! It seems someone tried to forge a message! This message is not necessarily from who it says it is from!"] = "¡Peligro! ¡Parece que alguien intentó falsificar un mensaje! ¡Este mensaje no es necesariamente de quien dice que es!";
App::$strings["Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can pause it at any time and continue where you left off by reloading the page, or navigting to another page.</p><p>You can also advance by pressing the return key"] = "¡Bienvenido/a a Hubzilla! ¿Quiere hacer un recorrido por la interfaz de usuario?</p> <p> Puede detenerlo en cualquier momento y continuar donde lo dejó recargando la página o navegando a otra.</p> <p> También puede avanzar pulsando la tecla de retorno";
App::$strings["Send your identity to all websites"] = "Enviar su identidad a todos los sitios web";
+App::$strings["Sendzid App"] = "App Sendzid";
App::$strings["Send ZID"] = "Enviar ZID";
App::$strings["Three Dimensional Tic-Tac-Toe"] = "Juego en 3D Tic-Tac-Toe";
App::$strings["3D Tic-Tac-Toe"] = "3D Tic-Tac-Toe";
@@ -2750,10 +2810,13 @@ App::$strings["I'm going first this time..."] = "Yo voy primero esta vez...";
App::$strings["You won!"] = "¡Usted ha ganado!";
App::$strings["\"Cat\" game!"] = "¡El juego del \"gato\"!";
App::$strings["I won!"] = "¡He ganado yo!";
-App::$strings["Message to display on every page on this server"] = "Mensaje para mostrar en todas las páginas de este servidor";
-App::$strings["Pageheader Settings"] = "Ajustes del encabezado de página";
App::$strings["pageheader Settings saved."] = "Se han guardado los ajustes del encabezado de página.";
+App::$strings["Page Header App"] = "App Page Header";
+App::$strings["Inserts a page header"] = "Inserta un encabezado de página";
+App::$strings["Message to display on every page on this server"] = "Mensaje para mostrar en todas las páginas de este servidor";
+App::$strings["Page Header"] = "Page Header";
App::$strings["Allow magic authentication only to websites of your immediate connections"] = "Permitir la autenticación mágica sólo a los sitios web de sus conexiones próximas";
+App::$strings["Authchoose App"] = "App Authchoose";
App::$strings["Authchoose"] = "Autoseleccionar";
App::$strings["lonely"] = "Solo/a";
App::$strings["drunk"] = "ebrio/a";
@@ -2778,7 +2841,8 @@ App::$strings["defeated"] = "derrotado/a";
App::$strings["envious"] = "envidioso/a";
App::$strings["jealous"] = "celoso/a";
App::$strings["XMPP settings updated."] = "Se han actualizado los ajustes de XMPP.";
-App::$strings["Enable Chat"] = "Habilitar el chat";
+App::$strings["XMPP App"] = "App XMPP";
+App::$strings["Embedded XMPP (Jabber) client"] = "Cliente XMPP (Jabber) integrado";
App::$strings["Individual credentials"] = "Credenciales individuales";
App::$strings["Jabber BOSH server"] = "Servidor BOSH de Jabber";
App::$strings["XMPP Settings"] = "Ajustes de XMPP";
@@ -2786,21 +2850,22 @@ App::$strings["Jabber BOSH host"] = "BOSH de Jabber";
App::$strings["Use central userbase"] = "Usar la base de usuarios central";
App::$strings["If enabled, members will automatically login to an ejabberd server that has to be installed on this machine with synchronized credentials via the \"auth_ejabberd.php\" script."] = "Si está habilitado, los miembros se conectarán automáticamente a un servidor ejabberd que debe instalarse en esta máquina con credenciales sincronizadas a través del script \"auth ejabberd.php\".";
App::$strings["Who likes me?"] = "¿Quién me ha puesto \"Me gusta\"?";
-App::$strings["You are now authenticated to pumpio."] = "Ahora está autenticado en pump.io.";
-App::$strings["return to the featured settings page"] = "Volver a la página de configuración destacada";
-App::$strings["Post to Pump.io"] = "Publicar en Pump.io";
+App::$strings["Pump.io Settings saved."] = "Se han guardado los ajustes de Pump.io";
+App::$strings["Pump.io Crosspost Connector App"] = "App Pump.io Crosspost Connector";
+App::$strings["Relay public posts to pump.io"] = "Retransmisión de entradas públicas a pump.io";
App::$strings["Pump.io servername"] = "Nombre del servidor de Pump.io";
App::$strings["Without \"http://\" or \"https://\""] = "Sin \"http://\" or \"https://\"";
App::$strings["Pump.io username"] = "Nombre de usuario en Pump.io";
App::$strings["Without the servername"] = "Sin el nombre del servidor";
App::$strings["You are not authenticated to pumpio"] = "No está autenticado en pump.io";
App::$strings["(Re-)Authenticate your pump.io connection"] = "(Re-)Autenticar su conexión en pump.io";
-App::$strings["Enable pump.io Post Plugin"] = "Habilitar el plugin de publicación en pump.io";
App::$strings["Post to pump.io by default"] = "Publicar por defecto en pump.io";
App::$strings["Should posts be public"] = "¿Las entradas deben ser públicas?";
App::$strings["Mirror all public posts"] = "Reflejar todos los mensajes públicos";
-App::$strings["Pump.io Post Settings"] = "Ajustes de publicación en pump.io";
-App::$strings["PumpIO Settings saved."] = "Se han guardado los ajustes de PumpIO.";
+App::$strings["Pump.io Crosspost Connector"] = "Pump.io Crosspost Connector";
+App::$strings["You are now authenticated to pumpio."] = "Ahora está autenticado en pump.io.";
+App::$strings["return to the featured settings page"] = "Volver a la página de configuración destacada";
+App::$strings["Post to Pump.io"] = "Publicar en Pump.io";
App::$strings["An account has been created for you."] = "Se ha creado una cuenta para usted.";
App::$strings["Authentication successful but rejected: account creation is disabled."] = "Autenticación correcta pero rechazada: la creación de cuentas está deshabilitada.";
App::$strings["__ctx:opensearch__ Search %1\$s (%2\$s)"] = "Buscar %1\$s (%2\$s)";
@@ -3226,7 +3291,6 @@ App::$strings["Home, Voice"] = "Llamadas particulares";
App::$strings["Home, Fax"] = "Fax particular";
App::$strings["Work, Voice"] = "Llamadas de trabajo";
App::$strings["Work, Fax"] = "Fax de trabajo";
-App::$strings["view full size"] = "Ver en el tamaño original";
App::$strings["GNU-Social"] = "GNU Social";
App::$strings["RSS/Atom"] = "RSS/Atom";
App::$strings["Facebook"] = "Facebook";
@@ -3240,7 +3304,6 @@ App::$strings["Select \"Show\" to allow viewing. \"Don't show\" lets you overrid
App::$strings["Show"] = "Mostrar";
App::$strings["Don't show"] = "No mostrar";
App::$strings["Post permissions %s cannot be changed %s after a post is shared.</br />These permissions set who is allowed to view the post."] = "Los permisos de la entrada %s no se pueden cambiar %s una vez que se ha compartido.</br /> Estos permisos establecen quién está autorizado para ver el mensaje.";
-App::$strings["Cannot locate DNS info for database server '%s'"] = "No se ha podido localizar información de DNS para el servidor de base de datos “%s”";
App::$strings["Image/photo"] = "Imagen/foto";
App::$strings["Encrypted content"] = "Contenido cifrado";
App::$strings["Install %1\$s element %2\$s"] = "Instalar el elemento de%1\$s%2\$s";
@@ -3315,8 +3378,6 @@ App::$strings["Forum Filter"] = "Filtro de foro";
App::$strings["Ability to display only posts of a specific forum"] = "Posibilidad de mostrar sólo los mensajes de un foro específico";
App::$strings["Personal Posts Filter"] = "Filtro de entradas personales";
App::$strings["Ability to display only posts that you've interacted on"] = "Posibilidad de mostrar sólo los mensajes en los que usted haya interactuado";
-App::$strings["Affinity Tool"] = "Herramienta de afinidad";
-App::$strings["Filter stream activity by depth of relationships"] = "Filtrar el contenido según la profundidad de las relaciones";
App::$strings["Show friend and connection suggestions"] = "Mostrar sugerencias de amigos y conexiones";
App::$strings["Photo Location"] = "Ubicación de las fotos";
App::$strings["If location data is available on uploaded photos, link this to a map."] = "Si los datos de ubicación están disponibles en las fotos subidas, enlazar estas a un mapa.";
diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js
index 6b77f0631..278a0a176 100644
--- a/view/js/autocomplete.js
+++ b/view/js/autocomplete.js
@@ -216,8 +216,6 @@ function string2bb(element) {
});
textcomplete.register([contacts,forums,smilies,tags]);
});
-
-
};
})( jQuery );
diff --git a/view/js/main.js b/view/js/main.js
index 7a047cd42..1322c2112 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -44,6 +44,17 @@ $(document).ready(function() {
$(document).on('click', '.conversation-settings-link', getConversationSettings);
$(document).on('click', '#settings_module_ajax_submit', postConversationSettings);
+ $(document).on('click focus', '.comment-edit-form textarea', function(e) {
+ if(! this.autocomplete_handled) {
+ /* autocomplete @nicknames */
+ $(this).editor_autocomplete(baseurl+"/acl?f=&n=1");
+ /* autocomplete bbcode */
+ $(this).bbco_autocomplete('bbcode');
+
+ this.autocomplete_handled = true;
+ }
+ });
+
var tf = new Function('n', 's', 'var k = s.split("/")['+aStr['plural_func']+']; return (k ? k : s);');
jQuery.timeago.settings.strings = {
@@ -239,7 +250,11 @@ function handle_comment_form(e) {
},10000);
});
- function commentSaveChanges(convId,isFinal = false) {
+ function commentSaveChanges(convId, isFinal) {
+
+ if(typeof isFinal === 'undefined')
+ isFinal = false;
+
if(auto_save_draft) {
tmp = $('#' + emptyCommentElm).val();
if(tmp) {
@@ -385,12 +400,12 @@ function viewsrc(id) {
function showHideComments(id) {
if( $('#collapsed-comments-' + id).is(':visible')) {
$('#collapsed-comments-' + id + ' .autotime').timeago('dispose');
- $('#collapsed-comments-' + id).slideUp();
+ $('#collapsed-comments-' + id).hide();
$('#hide-comments-' + id).html(aStr.showmore);
$('#hide-comments-total-' + id).show();
} else {
$('#collapsed-comments-' + id + ' .autotime').timeago();
- $('#collapsed-comments-' + id).slideDown();
+ $('#collapsed-comments-' + id).show();
$('#hide-comments-' + id).html(aStr.showfewer);
$('#hide-comments-total-' + id).hide();
}
@@ -453,6 +468,9 @@ function notificationsUpdate(cached_data) {
$.get(pingCmd,function(data) {
// Put the object into storage
+ if(! data)
+ return;
+
sessionStorage.setItem('notifications_cache', JSON.stringify(data));
var fnotifs = [];
@@ -716,6 +734,7 @@ function updateConvItems(mode,data) {
title.replace(/\s+$/, '');
if (title) {
savedTitle = title + " " + savedTitle;
+ document.title = title;
}
}
}
@@ -751,12 +770,7 @@ function updateConvItems(mode,data) {
mediaPlaying = false;
});
- /* autocomplete @nicknames */
- $(".comment-edit-form textarea").editor_autocomplete(baseurl+"/acl?f=&n=1");
- /* autocomplete bbcode */
- $(".comment-edit-form textarea").bbco_autocomplete('bbcode');
-
- var bimgs = ((preloadImages) ? false : $(".wall-item-body img").not(function() { return this.complete; }));
+ var bimgs = $(".wall-item-body img, .wall-photo-item img").not(function() { return this.complete; });
var bimgcount = bimgs.length;
if (bimgcount) {
@@ -764,22 +778,38 @@ function updateConvItems(mode,data) {
bimgcount--;
if (! bimgcount) {
collapseHeight();
+
+ if(bParam_mid && mode === 'replace')
+ scrollToItem();
+
+ $(document.body).trigger("sticky_kit:recalc");
}
});
} else {
collapseHeight();
+
+ if(bParam_mid && mode === 'replace')
+ scrollToItem();
+
+ $(document.body).trigger("sticky_kit:recalc");
}
+}
+
+function scrollToItem() {
// auto-scroll to a particular comment in a thread (designated by mid) when in single-thread mode
// use the same method to generate the submid as we use in ThreadItem,
// base64_encode + replace(['+','='],['','']);
+ if(justifiedGalleryActive)
+ return;
+
var submid = ((bParam_mid.length) ? bParam_mid : 'abcdefg');
var encoded = ((submid.substr(0,4) == 'b64.') ? true : false);
var submid_encoded = ((encoded) ? submid.substr(4) : window.btoa(submid));
submid_encoded = submid_encoded.replace(/[\+\=]/g,'');
- if($('.item_' + submid_encoded).length && !$('.item_' + submid_encoded).hasClass('toplevel_item') && mode == 'replace') {
+ if($('.item_' + submid_encoded).length && !$('.item_' + submid_encoded).hasClass('toplevel_item')) {
if($('.collapsed-comments').length) {
var scrolltoid = $('.collapsed-comments').attr('id').substring(19);
$('#collapsed-comments-' + scrolltoid + ' .autotime').timeago();
@@ -787,11 +817,9 @@ function updateConvItems(mode,data) {
$('#hide-comments-' + scrolltoid).html(aStr.showfewer);
$('#hide-comments-total-' + scrolltoid).hide();
}
- $('html, body').animate({ scrollTop: $('.item_' + submid_encoded).offset().top - $('nav').outerHeight() }, 'slow');
+ $('html, body').animate({ scrollTop: $('.item_' + submid_encoded).offset().top - $('nav').outerHeight(true) }, 'slow');
$('.item_' + submid_encoded).addClass('item-highlight');
}
-
- $(document.body).trigger("sticky_kit:recalc");
}
function collapseHeight() {
@@ -888,7 +916,12 @@ function liveUpdate(notify_id) {
if((src === null) || (stopped) || (! profile_uid)) { $('.like-rotator').hide(); return; }
- if(($('.comment-edit-text.expanded').length) || (in_progress) || (mediaPlaying)) {
+ // if auto updates are enabled and a comment box is open,
+ // prevent live updates until the comment is submitted
+
+ var lockUpdates = (($('.comment-edit-text.expanded').length && (! bParam_static)) ? true : false);
+
+ if(lockUpdates || in_progress || mediaPlaying) {
if(livetime) {
clearTimeout(livetime);
}
@@ -981,7 +1014,7 @@ function liveUpdate(notify_id) {
$("#profile-jot-text-loading").hide();
// adjust scroll position if new content was added above viewport
- if(update_mode === 'update') {
+ if(update_mode === 'update' && !justifiedGalleryActive) {
$(window).scrollTop($(window).scrollTop() + $("#region_2").height() - orgHeight + contentHeightDiff);
}
diff --git a/view/ru/hmessages.po b/view/ru/hmessages.po
index d21f707d1..2c394e84c 100644
--- a/view/ru/hmessages.po
+++ b/view/ru/hmessages.po
@@ -1,18 +1,18 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# hubzilla
+# Copyright (C) 2012-2016 hubzilla
+# This file is distributed under the same license as the hubzilla package.
+# Mike Macgirvin, 2012
#
# Translators:
# Alex <info@pixelbits.de>, 2016-2017
-# Max Kostikov <max@kostikov.co>, 2018
+# Max Kostikov <max@kostikov.co>, 2018-2019
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: hubzilla\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-18 11:03+0200\n"
-"PO-Revision-Date: 2018-10-18 11:06+0200\n"
+"POT-Creation-Date: 2019-02-19 15:46+0200\n"
+"PO-Revision-Date: 2019-02-19 15:58+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"
@@ -21,4778 +21,618 @@ msgstr ""
"Language: ru\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : (n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2))\n"
-#: ../../util/nconfig.php:34
-msgid "Source channel not found."
-msgstr "Канал-источник не найден."
-
-#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3087
-#: ../../Zotlabs/Module/Admin/Site.php:187
-msgid "Default"
-msgstr "По умолчанию"
-
-#: ../../view/theme/redbasic/php/config.php:16
-#: ../../view/theme/redbasic/php/config.php:19
-msgid "Focus (Hubzilla default)"
-msgstr "Фокус (по умолчанию Hubzilla)"
-
-#: ../../view/theme/redbasic/php/config.php:94 ../../include/js_strings.php:22
-#: ../../Zotlabs/Module/Mail.php:431 ../../Zotlabs/Module/Pconfig.php:111
-#: ../../Zotlabs/Module/Defperms.php:265 ../../Zotlabs/Module/Permcats.php:128
-#: ../../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/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
-#: ../../Zotlabs/Module/Chat.php:211 ../../Zotlabs/Module/Chat.php:250
-#: ../../Zotlabs/Module/Oauth2.php:116
-#: ../../Zotlabs/Module/Settings/Manage.php:41
-#: ../../Zotlabs/Module/Settings/Calendar.php:41
-#: ../../Zotlabs/Module/Settings/Account.php:103
-#: ../../Zotlabs/Module/Settings/Conversation.php:48
-#: ../../Zotlabs/Module/Settings/Editor.php:41
-#: ../../Zotlabs/Module/Settings/Display.php:189
-#: ../../Zotlabs/Module/Settings/Features.php:46
-#: ../../Zotlabs/Module/Settings/Network.php:61
-#: ../../Zotlabs/Module/Settings/Events.php:41
-#: ../../Zotlabs/Module/Settings/Channel_home.php:89
-#: ../../Zotlabs/Module/Settings/Directory.php:41
-#: ../../Zotlabs/Module/Settings/Photos.php:41
-#: ../../Zotlabs/Module/Settings/Profiles.php:50
-#: ../../Zotlabs/Module/Settings/Featured.php:54
-#: ../../Zotlabs/Module/Settings/Connections.php:41
-#: ../../Zotlabs/Module/Settings/Channel.php:493
-#: ../../Zotlabs/Module/Filestorage.php:183 ../../Zotlabs/Module/Cal.php:344
-#: ../../Zotlabs/Module/Setup.php:308 ../../Zotlabs/Module/Setup.php:349
-#: ../../Zotlabs/Module/Mitem.php:259
-#: ../../Zotlabs/Module/Admin/Features.php:66
-#: ../../Zotlabs/Module/Admin/Logs.php:84
-#: ../../Zotlabs/Module/Admin/Channels.php:147
-#: ../../Zotlabs/Module/Admin/Security.php:112
-#: ../../Zotlabs/Module/Admin/Addons.php:438
-#: ../../Zotlabs/Module/Admin/Site.php:289
-#: ../../Zotlabs/Module/Admin/Profs.php:178
-#: ../../Zotlabs/Module/Admin/Themes.php:158
-#: ../../Zotlabs/Module/Admin/Accounts.php:168
-#: ../../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/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
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:89
-#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:191
-#: ../../extend/addon/hzaddons/redphotos/redphotos.php:136
-#: ../../extend/addon/hzaddons/rtof/rtof.php:101
-#: ../../extend/addon/hzaddons/ijpost/ijpost.php:89
-#: ../../extend/addon/hzaddons/redfiles/redfiles.php:124
-#: ../../extend/addon/hzaddons/twitter/twitter.php:221
-#: ../../extend/addon/hzaddons/twitter/twitter.php:268
-#: ../../extend/addon/hzaddons/logrot/logrot.php:35
-#: ../../extend/addon/hzaddons/likebanner/likebanner.php:57
-#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:168
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:371
-#: ../../extend/addon/hzaddons/piwik/piwik.php:95
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:237
-#: ../../extend/addon/hzaddons/nsabait/nsabait.php:161
-#: ../../extend/addon/hzaddons/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/statusnet/statusnet.php:322
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:380
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:432
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:900
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:139
-#: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:73
-#: ../../extend/addon/hzaddons/cart/Settings/Cart.php:114
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:410
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:640
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:248
-#: ../../extend/addon/hzaddons/cart/cart.php:1263
-#: ../../extend/addon/hzaddons/nofed/nofed.php:80
-#: ../../extend/addon/hzaddons/planets/planets.php:153
-#: ../../extend/addon/hzaddons/pageheader/pageheader.php:48
-#: ../../extend/addon/hzaddons/hubwall/hubwall.php:95
-#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:219
-#: ../../extend/addon/hzaddons/frphotos/frphotos.php:97
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:124
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:69
-#: ../../extend/addon/hzaddons/visage/visage.php:170
-#: ../../extend/addon/hzaddons/irc/irc.php:53
-#: ../../extend/addon/hzaddons/chords/Mod_Chords.php:60
-#: ../../extend/addon/hzaddons/libertree/libertree.php:85
-#: ../../extend/addon/hzaddons/redred/redred.php:119
-#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:63
-#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:99
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:97
-#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:61
-#: ../../extend/addon/hzaddons/skeleton/skeleton.php:65
-msgid "Submit"
-msgstr "Отправить"
-
-#: ../../view/theme/redbasic/php/config.php:98
-msgid "Theme settings"
-msgstr "Настройки темы"
-
-#: ../../view/theme/redbasic/php/config.php:99
-msgid "Narrow navbar"
-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
-#: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681
-#: ../../Zotlabs/Module/Photos.php:699 ../../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
-#: ../../Zotlabs/Module/Settings/Channel.php:309
-#: ../../Zotlabs/Module/Filestorage.php:178
-#: ../../Zotlabs/Module/Filestorage.php:186
-#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Menu.php:162
-#: ../../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/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 ../../Zotlabs/Lib/Libzotdir.php:165
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:73
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:85
-#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:178
-#: ../../extend/addon/hzaddons/rtof/rtof.php:81
-#: ../../extend/addon/hzaddons/rtof/rtof.php:85
-#: ../../extend/addon/hzaddons/ijpost/ijpost.php:73
-#: ../../extend/addon/hzaddons/ijpost/ijpost.php:85
-#: ../../extend/addon/hzaddons/twitter/twitter.php:246
-#: ../../extend/addon/hzaddons/twitter/twitter.php:255
-#: ../../extend/addon/hzaddons/twitter/twitter.php:264
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:309
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:313
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:343
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:351
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:355
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:359
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:219
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:223
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:227
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:231
-#: ../../extend/addon/hzaddons/nsabait/nsabait.php:157
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:70
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:82
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:389
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:411
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:415
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:424
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:111
-#: ../../extend/addon/hzaddons/cart/Settings/Cart.php:59
-#: ../../extend/addon/hzaddons/cart/Settings/Cart.php:71
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:153
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:425
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:64
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:646
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:650
-#: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:87
-#: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:95
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:63
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:254
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:258
-#: ../../extend/addon/hzaddons/cart/cart.php:1257
-#: ../../extend/addon/hzaddons/nofed/nofed.php:72
-#: ../../extend/addon/hzaddons/nofed/nofed.php:76
-#: ../../extend/addon/hzaddons/planets/planets.php:149
-#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:211
-#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:215
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:120
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:53
-#: ../../extend/addon/hzaddons/visage/visage.php:166
-#: ../../extend/addon/hzaddons/libertree/libertree.php:69
-#: ../../extend/addon/hzaddons/libertree/libertree.php:81
-#: ../../extend/addon/hzaddons/redred/redred.php:95
-#: ../../extend/addon/hzaddons/redred/redred.php:99
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:82
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:86
-msgid "No"
-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
-#: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681
-#: ../../Zotlabs/Module/Photos.php:699 ../../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
-#: ../../Zotlabs/Module/Settings/Channel.php:309
-#: ../../Zotlabs/Module/Filestorage.php:178
-#: ../../Zotlabs/Module/Filestorage.php:186
-#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Menu.php:162
-#: ../../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/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
-#: ../../Zotlabs/Lib/Libzotdir.php:165
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:73
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:85
-#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:178
-#: ../../extend/addon/hzaddons/rtof/rtof.php:81
-#: ../../extend/addon/hzaddons/rtof/rtof.php:85
-#: ../../extend/addon/hzaddons/ijpost/ijpost.php:73
-#: ../../extend/addon/hzaddons/ijpost/ijpost.php:85
-#: ../../extend/addon/hzaddons/twitter/twitter.php:246
-#: ../../extend/addon/hzaddons/twitter/twitter.php:255
-#: ../../extend/addon/hzaddons/twitter/twitter.php:264
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:309
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:313
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:343
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:351
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:355
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:359
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:219
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:223
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:227
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:231
-#: ../../extend/addon/hzaddons/nsabait/nsabait.php:157
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:70
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:82
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:389
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:411
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:415
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:424
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:111
-#: ../../extend/addon/hzaddons/cart/Settings/Cart.php:59
-#: ../../extend/addon/hzaddons/cart/Settings/Cart.php:71
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:153
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:425
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:64
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:646
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:650
-#: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:87
-#: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:95
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:63
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:254
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:258
-#: ../../extend/addon/hzaddons/cart/cart.php:1257
-#: ../../extend/addon/hzaddons/nofed/nofed.php:72
-#: ../../extend/addon/hzaddons/nofed/nofed.php:76
-#: ../../extend/addon/hzaddons/planets/planets.php:149
-#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:211
-#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:215
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:120
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:53
-#: ../../extend/addon/hzaddons/visage/visage.php:166
-#: ../../extend/addon/hzaddons/libertree/libertree.php:69
-#: ../../extend/addon/hzaddons/libertree/libertree.php:81
-#: ../../extend/addon/hzaddons/redred/redred.php:95
-#: ../../extend/addon/hzaddons/redred/redred.php:99
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:82
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:86
-msgid "Yes"
-msgstr "Да"
-
-#: ../../view/theme/redbasic/php/config.php:100
-msgid "Navigation bar background color"
-msgstr "Панель навигации, цвет фона"
-
-#: ../../view/theme/redbasic/php/config.php:101
-msgid "Navigation bar icon color "
-msgstr "Панель навигации, цвет значков"
-
-#: ../../view/theme/redbasic/php/config.php:102
-msgid "Navigation bar active icon color "
-msgstr "Панель навигации, цвет активного значка"
-
-#: ../../view/theme/redbasic/php/config.php:103
-msgid "Link color"
-msgstr "Цвет ссылок"
-
-#: ../../view/theme/redbasic/php/config.php:104
-msgid "Set font-color for banner"
-msgstr "Цвет текста в шапке"
-
-#: ../../view/theme/redbasic/php/config.php:105
-msgid "Set the background color"
-msgstr "Цвет фона"
-
-#: ../../view/theme/redbasic/php/config.php:106
-msgid "Set the background image"
-msgstr "Фоновое изображение"
+#: ../../Zotlabs/Access/Permissions.php:56
+msgid "Can view my channel stream and posts"
+msgstr "Может просматривать мой поток и сообщения"
-#: ../../view/theme/redbasic/php/config.php:107
-msgid "Set the background color of items"
-msgstr "Цвет фона элементов"
+#: ../../Zotlabs/Access/Permissions.php:57
+msgid "Can send me their channel stream and posts"
+msgstr "Может присылать мне свои потоки и сообщения"
-#: ../../view/theme/redbasic/php/config.php:108
-msgid "Set the background color of comments"
-msgstr "Цвет фона комментариев"
+#: ../../Zotlabs/Access/Permissions.php:58
+msgid "Can view my default channel profile"
+msgstr "Может просматривать мой стандартный профиль канала"
-#: ../../view/theme/redbasic/php/config.php:109
-msgid "Set font-size for the entire application"
-msgstr "Установить системный размер шрифта"
+#: ../../Zotlabs/Access/Permissions.php:59
+msgid "Can view my connections"
+msgstr "Может просматривать мои контакты"
-#: ../../view/theme/redbasic/php/config.php:109
-msgid "Examples: 1rem, 100%, 16px"
-msgstr "Например: 1rem, 100%, 16px"
+#: ../../Zotlabs/Access/Permissions.php:60
+msgid "Can view my file storage and photos"
+msgstr "Может просматривать мое хранилище файлов"
-#: ../../view/theme/redbasic/php/config.php:110
-msgid "Set font-color for posts and comments"
-msgstr "Цвет шрифта для постов и комментариев"
+#: ../../Zotlabs/Access/Permissions.php:61
+msgid "Can upload/modify my file storage and photos"
+msgstr "Может загружать/изменять мои файлы и фотографии в хранилище"
-#: ../../view/theme/redbasic/php/config.php:111
-msgid "Set radius of corners"
-msgstr "Радиус скруглений"
+#: ../../Zotlabs/Access/Permissions.php:62
+msgid "Can view my channel webpages"
+msgstr "Может просматривать мои веб-страницы"
-#: ../../view/theme/redbasic/php/config.php:111
-msgid "Example: 4px"
-msgstr "Например: 4px"
+#: ../../Zotlabs/Access/Permissions.php:63
+msgid "Can view my wiki pages"
+msgstr "Может просматривать мои вики-страницы"
-#: ../../view/theme/redbasic/php/config.php:112
-msgid "Set shadow depth of photos"
-msgstr "Глубина теней фотографий"
+#: ../../Zotlabs/Access/Permissions.php:64
+msgid "Can create/edit my channel webpages"
+msgstr "Может редактировать мои веб-страницы"
-#: ../../view/theme/redbasic/php/config.php:113
-msgid "Set maximum width of content region in pixel"
-msgstr "Максимальная ширина содержания региона (в пикселях)"
+#: ../../Zotlabs/Access/Permissions.php:65
+msgid "Can write to my wiki pages"
+msgstr "Может редактировать мои вики-страницы"
-#: ../../view/theme/redbasic/php/config.php:113
-msgid "Leave empty for default width"
-msgstr "Оставьте пустым для ширины по умолчанию"
+#: ../../Zotlabs/Access/Permissions.php:66
+msgid "Can post on my channel (wall) page"
+msgstr "Может публиковать на моей странице канала"
-#: ../../view/theme/redbasic/php/config.php:114
-msgid "Set size of conversation author photo"
-msgstr "Размер фотографии автора беседы"
+#: ../../Zotlabs/Access/Permissions.php:67
+msgid "Can comment on or like my posts"
+msgstr "Может прокомментировать или отмечать как понравившиеся мои публикации"
-#: ../../view/theme/redbasic/php/config.php:115
-msgid "Set size of followup author photos"
-msgstr "Размер фотографий подписчиков"
+#: ../../Zotlabs/Access/Permissions.php:68
+msgid "Can send me private mail messages"
+msgstr "Может отправлять мне личные сообщения по эл. почте"
-#: ../../view/theme/redbasic/php/config.php:116
-msgid "Show advanced settings"
-msgstr "Показать расширенные настройки"
+#: ../../Zotlabs/Access/Permissions.php:69
+msgid "Can like/dislike profiles and profile things"
+msgstr "Может комментировать или отмечать как нравится/ненравится мой профиль"
-#: ../../include/selectors.php:18
-msgid "Profile to assign new connections"
-msgstr "Назначить профиль для новых контактов"
+#: ../../Zotlabs/Access/Permissions.php:70
+msgid "Can forward to all my channel connections via ! mentions in posts"
+msgstr "Может пересылать всем подписчикам моего канала используя ! в публикациях"
-#: ../../include/selectors.php:41
-msgid "Frequently"
-msgstr "Часто"
+#: ../../Zotlabs/Access/Permissions.php:71
+msgid "Can chat with me"
+msgstr "Может общаться со мной в чате"
-#: ../../include/selectors.php:42
-msgid "Hourly"
-msgstr "Ежечасно"
+#: ../../Zotlabs/Access/Permissions.php:72
+msgid "Can source my public posts in derived channels"
+msgstr "Может использовать мои публичные сообщения в клонированных лентах сообщений"
-#: ../../include/selectors.php:43
-msgid "Twice daily"
-msgstr "Дважды в день"
+#: ../../Zotlabs/Access/Permissions.php:73
+msgid "Can administer my channel"
+msgstr "Может администрировать мой канал"
-#: ../../include/selectors.php:44
-msgid "Daily"
-msgstr "Ежедневно"
+#: ../../Zotlabs/Access/PermissionRoles.php:283
+msgid "Social Networking"
+msgstr "Социальная Сеть"
-#: ../../include/selectors.php:45
-msgid "Weekly"
-msgstr "Еженедельно"
+#: ../../Zotlabs/Access/PermissionRoles.php:284
+msgid "Social - Federation"
+msgstr "Социальная - Федерация"
-#: ../../include/selectors.php:46
-msgid "Monthly"
-msgstr "Ежемесячно"
+#: ../../Zotlabs/Access/PermissionRoles.php:285
+msgid "Social - Mostly Public"
+msgstr "Социальная - В основном общественный"
-#: ../../include/selectors.php:60 ../../include/selectors.php:77
-#: ../../include/channel.php:1487
-#: ../../extend/addon/hzaddons/openid/Mod_Id.php:85
-msgid "Male"
-msgstr "Мужчина"
+#: ../../Zotlabs/Access/PermissionRoles.php:286
+msgid "Social - Restricted"
+msgstr "Социальная - Ограниченный"
-#: ../../include/selectors.php:60 ../../include/selectors.php:77
-#: ../../include/channel.php:1485
-#: ../../extend/addon/hzaddons/openid/Mod_Id.php:87
-msgid "Female"
-msgstr "Женщина"
+#: ../../Zotlabs/Access/PermissionRoles.php:287
+msgid "Social - Private"
+msgstr "Социальная - Частный"
-#: ../../include/selectors.php:60
-msgid "Currently Male"
-msgstr "В настоящее время мужской"
+#: ../../Zotlabs/Access/PermissionRoles.php:290
+msgid "Community Forum"
+msgstr "Форум сообщества"
-#: ../../include/selectors.php:60
-msgid "Currently Female"
-msgstr "В настоящее время женский"
+#: ../../Zotlabs/Access/PermissionRoles.php:291
+msgid "Forum - Mostly Public"
+msgstr "Форум - В основном общественный"
-#: ../../include/selectors.php:60
-msgid "Mostly Male"
-msgstr "В основном мужской"
+#: ../../Zotlabs/Access/PermissionRoles.php:292
+msgid "Forum - Restricted"
+msgstr "Форум - Ограниченный"
-#: ../../include/selectors.php:60
-msgid "Mostly Female"
-msgstr "В основном женский"
+#: ../../Zotlabs/Access/PermissionRoles.php:293
+msgid "Forum - Private"
+msgstr "Форум - Частный"
-#: ../../include/selectors.php:60
-msgid "Transgender"
-msgstr "Трансгендер"
+#: ../../Zotlabs/Access/PermissionRoles.php:296
+msgid "Feed Republish"
+msgstr "Публиковать ленты новостей"
-#: ../../include/selectors.php:60
-msgid "Intersex"
-msgstr "Интерсексуал"
+#: ../../Zotlabs/Access/PermissionRoles.php:297
+msgid "Feed - Mostly Public"
+msgstr "Ленты новостей - В основном общественный"
-#: ../../include/selectors.php:60
-msgid "Transsexual"
-msgstr "Транссексуал"
+#: ../../Zotlabs/Access/PermissionRoles.php:298
+msgid "Feed - Restricted"
+msgstr "Ленты новостей - Ограниченный"
-#: ../../include/selectors.php:60
-msgid "Hermaphrodite"
-msgstr "Гермафродит"
+#: ../../Zotlabs/Access/PermissionRoles.php:301
+msgid "Special Purpose"
+msgstr "Спец. назначение"
-#: ../../include/selectors.php:60 ../../include/channel.php:1491
-msgid "Neuter"
-msgstr "Среднего рода"
+#: ../../Zotlabs/Access/PermissionRoles.php:302
+msgid "Special - Celebrity/Soapbox"
+msgstr "Спец. назначение - Знаменитость/Soapbox"
-#: ../../include/selectors.php:60 ../../include/channel.php:1493
-msgid "Non-specific"
-msgstr "Неспецифический"
+#: ../../Zotlabs/Access/PermissionRoles.php:303
+msgid "Special - Group Repository"
+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
-#: ../../Zotlabs/Module/Cdav.php:1227 ../../Zotlabs/Module/Profiles.php:795
-#: ../../Zotlabs/Module/Connedit.php:919
#: ../../Zotlabs/Access/PermissionRoles.php:306
+#: ../../Zotlabs/Module/Cdav.php:1227 ../../Zotlabs/Module/Connedit.php:935
+#: ../../Zotlabs/Module/Profiles.php:795 ../../include/selectors.php:60
+#: ../../include/selectors.php:77 ../../include/selectors.php:115
+#: ../../include/selectors.php:151 ../../include/event.php:1327
+#: ../../include/event.php:1334 ../../include/connections.php:703
+#: ../../include/connections.php:710
msgid "Other"
msgstr "Другой"
-#: ../../include/selectors.php:60
-msgid "Undecided"
-msgstr "Не решил"
-
-#: ../../include/selectors.php:96 ../../include/selectors.php:115
-msgid "Males"
-msgstr "Мужчины"
-
-#: ../../include/selectors.php:96 ../../include/selectors.php:115
-msgid "Females"
-msgstr "Женщины"
-
-#: ../../include/selectors.php:96
-msgid "Gay"
-msgstr "Гей"
-
-#: ../../include/selectors.php:96
-msgid "Lesbian"
-msgstr "Лесбиянка"
-
-#: ../../include/selectors.php:96
-msgid "No Preference"
-msgstr "Без предпочтений"
-
-#: ../../include/selectors.php:96
-msgid "Bisexual"
-msgstr "Бисексуал"
-
-#: ../../include/selectors.php:96
-msgid "Autosexual"
-msgstr "Автосексуал"
-
-#: ../../include/selectors.php:96
-msgid "Abstinent"
-msgstr "Воздержание"
-
-#: ../../include/selectors.php:96
-msgid "Virgin"
-msgstr "Девственник"
-
-#: ../../include/selectors.php:96
-msgid "Deviant"
-msgstr "Отклоняющийся от нормы"
-
-#: ../../include/selectors.php:96
-msgid "Fetish"
-msgstr "Фетишист"
-
-#: ../../include/selectors.php:96
-msgid "Oodles"
-msgstr "Множественный"
-
-#: ../../include/selectors.php:96
-msgid "Nonsexual"
-msgstr "Асексуал"
-
-#: ../../include/selectors.php:134 ../../include/selectors.php:151
-msgid "Single"
-msgstr "Одиночка"
-
-#: ../../include/selectors.php:134
-msgid "Lonely"
-msgstr "Одинокий"
-
-#: ../../include/selectors.php:134
-msgid "Available"
-msgstr "Свободен"
-
-#: ../../include/selectors.php:134
-msgid "Unavailable"
-msgstr "Занят"
-
-#: ../../include/selectors.php:134
-msgid "Has crush"
-msgstr "Влюблён"
-
-#: ../../include/selectors.php:134
-msgid "Infatuated"
-msgstr "без ума"
-
-#: ../../include/selectors.php:134 ../../include/selectors.php:151
-msgid "Dating"
-msgstr "Встречаюсь"
-
-#: ../../include/selectors.php:134
-msgid "Unfaithful"
-msgstr "Неверный"
-
-#: ../../include/selectors.php:134
-msgid "Sex Addict"
-msgstr "Эротоман"
-
-#: ../../include/selectors.php:134 ../../include/channel.php:444
-#: ../../include/channel.php:445 ../../include/channel.php:452
-#: ../../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
-msgid "Friends"
-msgstr "Друзья"
-
-#: ../../include/selectors.php:134
-msgid "Friends/Benefits"
-msgstr "Друзья / Выгоды"
-
-#: ../../include/selectors.php:134
-msgid "Casual"
-msgstr "Легкомысленный"
-
-#: ../../include/selectors.php:134
-msgid "Engaged"
-msgstr "Помолвлен"
-
-#: ../../include/selectors.php:134 ../../include/selectors.php:151
-msgid "Married"
-msgstr "В браке"
-
-#: ../../include/selectors.php:134
-msgid "Imaginarily married"
-msgstr "В воображаемом браке"
-
-#: ../../include/selectors.php:134
-msgid "Partners"
-msgstr "Партнёрство"
-
-#: ../../include/selectors.php:134 ../../include/selectors.php:151
-msgid "Cohabiting"
-msgstr "Сожительствующие"
-
-#: ../../include/selectors.php:134
-msgid "Common law"
-msgstr "Гражданский брак"
-
-#: ../../include/selectors.php:134
-msgid "Happy"
-msgstr "Счастлив"
-
-#: ../../include/selectors.php:134
-msgid "Not looking"
-msgstr "Не нуждаюсь"
-
-#: ../../include/selectors.php:134
-msgid "Swinger"
-msgstr "Свингер"
-
-#: ../../include/selectors.php:134
-msgid "Betrayed"
-msgstr "Предан"
-
-#: ../../include/selectors.php:134 ../../include/selectors.php:151
-msgid "Separated"
-msgstr "Разделён"
-
-#: ../../include/selectors.php:134
-msgid "Unstable"
-msgstr "Нестабильно"
-
-#: ../../include/selectors.php:134 ../../include/selectors.php:151
-msgid "Divorced"
-msgstr "В разводе"
-
-#: ../../include/selectors.php:134
-msgid "Imaginarily divorced"
-msgstr "В воображаемом разводе"
-
-#: ../../include/selectors.php:134 ../../include/selectors.php:151
-msgid "Widowed"
-msgstr "Вдовец / вдова"
-
-#: ../../include/selectors.php:134
-msgid "Uncertain"
-msgstr "Неопределенный"
-
-#: ../../include/selectors.php:134 ../../include/selectors.php:151
-msgid "It's complicated"
-msgstr "Это сложно"
-
-#: ../../include/selectors.php:134
-msgid "Don't care"
-msgstr "Всё равно"
+#: ../../Zotlabs/Access/PermissionRoles.php:307
+msgid "Custom/Expert Mode"
+msgstr "Экспертный режим"
-#: ../../include/selectors.php:134
-msgid "Ask me"
-msgstr "Спроси меня"
+#: ../../Zotlabs/Module/Blocks.php:33 ../../Zotlabs/Module/Articles.php:42
+#: ../../Zotlabs/Module/Editlayout.php:31 ../../Zotlabs/Module/Connect.php:17
+#: ../../Zotlabs/Module/Achievements.php:15 ../../Zotlabs/Module/Hcard.php:12
+#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Profile.php:20
+#: ../../Zotlabs/Module/Menu.php:91 ../../Zotlabs/Module/Layouts.php:31
+#: ../../Zotlabs/Module/Editwebpage.php:32 ../../Zotlabs/Module/Cards.php:42
+#: ../../Zotlabs/Module/Webpages.php:39 ../../Zotlabs/Module/Filestorage.php:51
+#: ../../addon/gallery/Mod_Gallery.php:49 ../../include/channel.php:1253
+msgid "Requested profile is not available."
+msgstr "Запрашиваемый профиль не доступен."
-#: ../../include/photos.php:27 ../../include/items.php:3675
-#: ../../include/attach.php:150 ../../include/attach.php:197
-#: ../../include/attach.php:270 ../../include/attach.php:379
-#: ../../include/attach.php:393 ../../include/attach.php:400
-#: ../../include/attach.php:482 ../../include/attach.php:1042
-#: ../../include/attach.php:1116 ../../include/attach.php:1281
-#: ../../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/Achievements.php:34
-#: ../../Zotlabs/Module/Display.php:448 ../../Zotlabs/Module/Poke.php:157
-#: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101
-#: ../../Zotlabs/Module/Appman.php:87 ../../Zotlabs/Module/Profiles.php:198
-#: ../../Zotlabs/Module/Profiles.php:635 ../../Zotlabs/Module/Photos.php:69
-#: ../../Zotlabs/Module/Page.php:34 ../../Zotlabs/Module/Page.php:133
-#: ../../Zotlabs/Module/Api.php:24 ../../Zotlabs/Module/Events.php:271
+#: ../../Zotlabs/Module/Blocks.php:73 ../../Zotlabs/Module/Blocks.php:80
+#: ../../Zotlabs/Module/Invite.php:21 ../../Zotlabs/Module/Invite.php:102
+#: ../../Zotlabs/Module/Articles.php:88 ../../Zotlabs/Module/Editlayout.php:67
+#: ../../Zotlabs/Module/Editlayout.php:90 ../../Zotlabs/Module/Channel.php:168
+#: ../../Zotlabs/Module/Channel.php:335 ../../Zotlabs/Module/Channel.php:374
+#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Locs.php:87
+#: ../../Zotlabs/Module/Mitem.php:129 ../../Zotlabs/Module/Events.php:271
+#: ../../Zotlabs/Module/Appman.php:87 ../../Zotlabs/Module/Regmod.php:20
+#: ../../Zotlabs/Module/Article_edit.php:51
#: ../../Zotlabs/Module/New_channel.php:105
-#: ../../Zotlabs/Module/New_channel.php:130 ../../Zotlabs/Module/Block.php:24
-#: ../../Zotlabs/Module/Block.php:74 ../../Zotlabs/Module/Cover_photo.php:313
-#: ../../Zotlabs/Module/Cover_photo.php:326
-#: ../../Zotlabs/Module/Sharedwithme.php:16
+#: ../../Zotlabs/Module/New_channel.php:130
+#: ../../Zotlabs/Module/Sharedwithme.php:16 ../../Zotlabs/Module/Setup.php:209
+#: ../../Zotlabs/Module/Moderate.php:13
+#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Thing.php:280
+#: ../../Zotlabs/Module/Thing.php:300 ../../Zotlabs/Module/Thing.php:341
+#: ../../Zotlabs/Module/Api.php:24 ../../Zotlabs/Module/Editblock.php:67
+#: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101
+#: ../../Zotlabs/Module/Mood.php:126 ../../Zotlabs/Module/Connections.php:32
+#: ../../Zotlabs/Module/Viewsrc.php:19 ../../Zotlabs/Module/Bookmarks.php:70
+#: ../../Zotlabs/Module/Photos.php:69 ../../Zotlabs/Module/Wiki.php:59
+#: ../../Zotlabs/Module/Wiki.php:285 ../../Zotlabs/Module/Wiki.php:428
+#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Poke.php:157
+#: ../../Zotlabs/Module/Profile_photo.php:302
+#: ../../Zotlabs/Module/Profile_photo.php:315
+#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Item.php:376
+#: ../../Zotlabs/Module/Item.php:395 ../../Zotlabs/Module/Item.php:405
+#: ../../Zotlabs/Module/Item.php:1281 ../../Zotlabs/Module/Page.php:34
+#: ../../Zotlabs/Module/Page.php:133 ../../Zotlabs/Module/Connedit.php:399
+#: ../../Zotlabs/Module/Chat.php:115 ../../Zotlabs/Module/Chat.php:120
+#: ../../Zotlabs/Module/Menu.php:129 ../../Zotlabs/Module/Menu.php:140
+#: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78
+#: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Module/Cloud.php:40
+#: ../../Zotlabs/Module/Defperms.php:181 ../../Zotlabs/Module/Group.php:14
+#: ../../Zotlabs/Module/Group.php:30 ../../Zotlabs/Module/Profiles.php:198
+#: ../../Zotlabs/Module/Profiles.php:635
+#: ../../Zotlabs/Module/Editwebpage.php:68
+#: ../../Zotlabs/Module/Editwebpage.php:89
+#: ../../Zotlabs/Module/Editwebpage.php:107
+#: ../../Zotlabs/Module/Editwebpage.php:121 ../../Zotlabs/Module/Manage.php:10
+#: ../../Zotlabs/Module/Cards.php:86 ../../Zotlabs/Module/Webpages.php:133
+#: ../../Zotlabs/Module/Block.php:24 ../../Zotlabs/Module/Block.php:74
+#: ../../Zotlabs/Module/Editpost.php:17 ../../Zotlabs/Module/Sources.php:80
+#: ../../Zotlabs/Module/Like.php:187 ../../Zotlabs/Module/Suggest.php:32
+#: ../../Zotlabs/Module/Message.php:18 ../../Zotlabs/Module/Mail.php:146
#: ../../Zotlabs/Module/Register.php:77
-#: ../../Zotlabs/Module/Viewconnections.php:28
-#: ../../Zotlabs/Module/Viewconnections.php:33
-#: ../../Zotlabs/Module/Rate.php:113 ../../Zotlabs/Module/Regmod.php:20
-#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Locs.php:87
-#: ../../Zotlabs/Module/Sources.php:80 ../../Zotlabs/Module/Chat.php:115
-#: ../../Zotlabs/Module/Chat.php:120 ../../Zotlabs/Module/Editlayout.php:67
-#: ../../Zotlabs/Module/Editlayout.php:90
+#: ../../Zotlabs/Module/Cover_photo.php:313
+#: ../../Zotlabs/Module/Cover_photo.php:326
+#: ../../Zotlabs/Module/Display.php:446 ../../Zotlabs/Module/Network.php:19
#: ../../Zotlabs/Module/Filestorage.php:15
#: ../../Zotlabs/Module/Filestorage.php:70
#: ../../Zotlabs/Module/Filestorage.php:96
-#: ../../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/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
-#: ../../Zotlabs/Module/Mitem.php:129 ../../Zotlabs/Module/Notifications.php:11
-#: ../../Zotlabs/Module/Editwebpage.php:68
-#: ../../Zotlabs/Module/Editwebpage.php:89
-#: ../../Zotlabs/Module/Editwebpage.php:107
-#: ../../Zotlabs/Module/Editwebpage.php:121
-#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Thing.php:280
-#: ../../Zotlabs/Module/Thing.php:300 ../../Zotlabs/Module/Thing.php:341
-#: ../../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/Group.php:14 ../../Zotlabs/Module/Group.php:30
-#: ../../Zotlabs/Module/Connections.php:32 ../../Zotlabs/Module/Mood.php:124
+#: ../../Zotlabs/Module/Filestorage.php:140 ../../Zotlabs/Module/Common.php:38
+#: ../../Zotlabs/Module/Viewconnections.php:28
+#: ../../Zotlabs/Module/Viewconnections.php:33
+#: ../../Zotlabs/Module/Service_limits.php:11 ../../Zotlabs/Module/Rate.php:113
#: ../../Zotlabs/Module/Card_edit.php:51
-#: ../../Zotlabs/Module/Article_edit.php:51 ../../Zotlabs/Module/Blocks.php:73
-#: ../../Zotlabs/Module/Blocks.php:80 ../../Zotlabs/Module/Invite.php:21
-#: ../../Zotlabs/Module/Invite.php:102 ../../Zotlabs/Module/Articles.php:80
-#: ../../Zotlabs/Module/Cloud.php:40 ../../Zotlabs/Module/Pdledit.php:34
-#: ../../Zotlabs/Module/Wiki.php:59 ../../Zotlabs/Module/Wiki.php:285
-#: ../../Zotlabs/Module/Wiki.php:428 ../../Zotlabs/Module/Manage.php:10
-#: ../../Zotlabs/Module/Suggest.php:32 ../../Zotlabs/Module/Cards.php:81
-#: ../../Zotlabs/Module/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/pumpio/pumpio.php:40
-#: ../../extend/addon/hzaddons/openid/Mod_Id.php:53
-#: ../../extend/addon/hzaddons/keepout/keepout.php:36
+#: ../../Zotlabs/Module/Notifications.php:11 ../../Zotlabs/Lib/Chatroom.php:133
+#: ../../Zotlabs/Web/WebServer.php:123 ../../addon/keepout/keepout.php:36
+#: ../../addon/flashcards/Mod_Flashcards.php:167
+#: ../../addon/openid/Mod_Id.php:53 ../../addon/pumpio/pumpio.php:44
+#: ../../include/attach.php:150 ../../include/attach.php:199
+#: ../../include/attach.php:272 ../../include/attach.php:381
+#: ../../include/attach.php:395 ../../include/attach.php:402
+#: ../../include/attach.php:484 ../../include/attach.php:1044
+#: ../../include/attach.php:1118 ../../include/attach.php:1283
+#: ../../include/items.php:3781 ../../include/photos.php:27
msgid "Permission denied."
msgstr "Доступ запрещен."
-#: ../../include/photos.php:151
-#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
-msgstr "Файл превышает предельный размер для сайта в %lu байт"
-
-#: ../../include/photos.php:162
-msgid "Image file is empty."
-msgstr "Файл изображения пуст."
-
-#: ../../include/photos.php:196 ../../Zotlabs/Module/Cover_photo.php:205
-#: ../../Zotlabs/Module/Profile_photo.php:225
-msgid "Unable to process image"
-msgstr "Не удается обработать изображение"
-
-#: ../../include/photos.php:327
-msgid "Photo storage failed."
-msgstr "Ошибка хранилища фотографий."
-
-#: ../../include/photos.php:376
-msgid "a new photo"
-msgstr "новая фотография"
-
-#: ../../include/photos.php:380
-#, php-format
-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
-msgid "Photo Albums"
-msgstr "Фотоальбомы"
-
-#: ../../include/photos.php:668 ../../Zotlabs/Module/Photos.php:1367
-#: ../../Zotlabs/Module/Photos.php:1380 ../../Zotlabs/Module/Photos.php:1381
-msgid "Recent Photos"
-msgstr "Последние фотографии"
-
-#: ../../include/photos.php:672
-msgid "Upload New Photos"
-msgstr "Загрузить новые фотографии"
-
-#: ../../include/oembed.php:224
-msgid "View PDF"
-msgstr "Просмотреть PDF"
-
-#: ../../include/oembed.php:347
-msgid " by "
-msgstr " по "
-
-#: ../../include/oembed.php:348
-msgid " on "
-msgstr " на "
-
-#: ../../include/oembed.php:377
-msgid "Embedded content"
-msgstr "Встроенное содержимое"
-
-#: ../../include/oembed.php:386
-msgid "Embedding disabled"
-msgstr "Встраивание отключено"
-
-#: ../../include/security.php:541
-msgid ""
-"The form security token was not correct. This probably happened because the "
-"form has been opened for too long (>3 hours) before submitting it."
-msgstr "Не верный токен безопасности для формы. Вероятно, это произошло потому, что форма была открыта слишком долго (> 3-х часов) перед его отправкой."
-
-#: ../../include/contact_widgets.php:11
-#, php-format
-msgid "%d invitation available"
-msgid_plural "%d invitations available"
-msgstr[0] "доступно %d приглашение"
-msgstr[1] "доступны %d приглашения"
-msgstr[2] "доступны %d приглашений"
-
-#: ../../include/contact_widgets.php:16 ../../Zotlabs/Module/Admin/Site.php:293
-msgid "Advanced"
-msgstr "Дополнительно"
-
-#: ../../include/contact_widgets.php:19
-msgid "Find Channels"
-msgstr "Поиск каналов"
-
-#: ../../include/contact_widgets.php:20
-msgid "Enter name or interest"
-msgstr "Впишите имя или интерес"
-
-#: ../../include/contact_widgets.php:21
-msgid "Connect/Follow"
-msgstr "Подключить / отслеживать"
-
-#: ../../include/contact_widgets.php:22
-msgid "Examples: Robert Morgenstein, Fishing"
-msgstr "Примеры: Владимир Ильич, Революционер"
-
-#: ../../include/contact_widgets.php:23 ../../Zotlabs/Module/Directory.php:405
-#: ../../Zotlabs/Module/Directory.php:410
-#: ../../Zotlabs/Module/Connections.php:341
-msgid "Find"
-msgstr "Поиск"
-
-#: ../../include/contact_widgets.php:24 ../../Zotlabs/Module/Directory.php:409
-#: ../../Zotlabs/Module/Suggest.php:79
-msgid "Channel Suggestions"
-msgstr "Рекомендации каналов"
-
-#: ../../include/contact_widgets.php:26
-msgid "Random Profile"
-msgstr "Случайный профиль"
-
-#: ../../include/contact_widgets.php:27
-msgid "Invite Friends"
-msgstr "Пригласить друзей"
-
-#: ../../include/contact_widgets.php:29
-msgid "Advanced example: name=fred and country=iceland"
-msgstr "Расширенный пример: name=ivan and country=russia"
+#: ../../Zotlabs/Module/Blocks.php:97 ../../Zotlabs/Module/Blocks.php:155
+#: ../../Zotlabs/Module/Editblock.php:113
+msgid "Block Name"
+msgstr "Название блока"
-#: ../../include/contact_widgets.php:53 ../../include/features.php:325
-#: ../../Zotlabs/Widget/Filer.php:28
-#: ../../Zotlabs/Widget/Activity_filter.php:136
-msgid "Saved Folders"
-msgstr "Сохранённые каталоги"
+#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2534
+msgid "Blocks"
+msgstr "Блокировки"
-#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:100
-#: ../../include/contact_widgets.php:144 ../../include/contact_widgets.php:189
-#: ../../Zotlabs/Widget/Filer.php:31 ../../Zotlabs/Widget/Appcategories.php:46
-msgid "Everything"
-msgstr "Всё"
+#: ../../Zotlabs/Module/Blocks.php:156
+msgid "Block Title"
+msgstr "Заблокировать заголовок"
-#: ../../include/contact_widgets.php:97 ../../include/contact_widgets.php:141
-#: ../../include/contact_widgets.php:186 ../../include/taxonomy.php:409
-#: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511
-#: ../../include/taxonomy.php:532 ../../Zotlabs/Widget/Appcategories.php:43
-msgid "Categories"
-msgstr "Категории"
+#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Menu.php:177
+#: ../../Zotlabs/Module/Layouts.php:191 ../../Zotlabs/Module/Webpages.php:266
+msgid "Created"
+msgstr "Создано"
-#: ../../include/contact_widgets.php:223
-msgid "Common Connections"
-msgstr "Общие контакты"
+#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Menu.php:178
+#: ../../Zotlabs/Module/Layouts.php:192 ../../Zotlabs/Module/Webpages.php:267
+msgid "Edited"
+msgstr "Отредактировано"
-#: ../../include/contact_widgets.php:228
-#, php-format
-msgid "View all %d common connections"
-msgstr "Просмотреть все %d общих контактов"
+#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:116
+#: ../../Zotlabs/Module/Cdav.php:1230 ../../Zotlabs/Module/New_channel.php:189
+#: ../../Zotlabs/Module/Connedit.php:938 ../../Zotlabs/Module/Menu.php:181
+#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:798
+#: ../../Zotlabs/Module/Cards.php:113 ../../Zotlabs/Module/Webpages.php:254
+#: ../../Zotlabs/Storage/Browser.php:276 ../../Zotlabs/Storage/Browser.php:390
+#: ../../Zotlabs/Widget/Cdav.php:128 ../../Zotlabs/Widget/Cdav.php:165
+msgid "Create"
+msgstr "Создать"
-#: ../../include/menu.php:118 ../../include/channel.php:1303
-#: ../../include/channel.php:1307 ../../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
-#: ../../Zotlabs/Module/Admin/Profs.php:175
-#: ../../Zotlabs/Module/Editwebpage.php:142 ../../Zotlabs/Module/Thing.php:266
-#: ../../Zotlabs/Module/Webpages.php:255 ../../Zotlabs/Module/Group.php:235
+#: ../../Zotlabs/Module/Blocks.php:160 ../../Zotlabs/Module/Editlayout.php:114
+#: ../../Zotlabs/Module/Article_edit.php:99
+#: ../../Zotlabs/Module/Admin/Profs.php:175 ../../Zotlabs/Module/Thing.php:266
+#: ../../Zotlabs/Module/Oauth2.php:194 ../../Zotlabs/Module/Editblock.php:114
#: ../../Zotlabs/Module/Connections.php:284
#: ../../Zotlabs/Module/Connections.php:322
-#: ../../Zotlabs/Module/Connections.php:342
-#: ../../Zotlabs/Module/Card_edit.php:99
-#: ../../Zotlabs/Module/Article_edit.php:99 ../../Zotlabs/Module/Blocks.php:160
-#: ../../Zotlabs/Module/Wiki.php:211 ../../Zotlabs/Module/Wiki.php:384
-#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Widget/Cdav.php:126
-#: ../../Zotlabs/Widget/Cdav.php:162 ../../Zotlabs/Lib/Apps.php:534
-#: ../../Zotlabs/Lib/ThreadItem.php:130
+#: ../../Zotlabs/Module/Connections.php:342 ../../Zotlabs/Module/Wiki.php:211
+#: ../../Zotlabs/Module/Wiki.php:384 ../../Zotlabs/Module/Menu.php:175
+#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Group.php:252
+#: ../../Zotlabs/Module/Editwebpage.php:142
+#: ../../Zotlabs/Module/Webpages.php:255 ../../Zotlabs/Module/Card_edit.php:99
+#: ../../Zotlabs/Module/Oauth.php:173 ../../Zotlabs/Lib/Apps.php:556
+#: ../../Zotlabs/Lib/ThreadItem.php:147 ../../Zotlabs/Storage/Browser.php:290
+#: ../../Zotlabs/Widget/Cdav.php:126 ../../Zotlabs/Widget/Cdav.php:162
+#: ../../include/channel.php:1352 ../../include/channel.php:1356
+#: ../../include/menu.php:118
msgid "Edit"
msgstr "Изменить"
-#: ../../include/channel.php:42
-msgid "Unable to obtain identity information from database"
-msgstr "Невозможно получить идентификационную информацию из базы данных"
-
-#: ../../include/channel.php:75
-msgid "Empty name"
-msgstr "Пустое имя"
-
-#: ../../include/channel.php:78
-msgid "Name too long"
-msgstr "Слишком длинное имя"
-
-#: ../../include/channel.php:195
-msgid "No account identifier"
-msgstr "Идентификатор аккаунта отсутствует"
-
-#: ../../include/channel.php:207
-msgid "Nickname is required."
-msgstr "Требуется псевдоним."
-
-#: ../../include/channel.php:221 ../../include/channel.php:606
-#: ../../Zotlabs/Module/Changeaddr.php:46
-msgid "Reserved nickname. Please choose another."
-msgstr "Зарезервированый псевдоним. Пожалуйста, выберите другой."
-
-#: ../../include/channel.php:226 ../../include/channel.php:611
-#: ../../Zotlabs/Module/Changeaddr.php:51
-msgid ""
-"Nickname has unsupported characters or is already being used on this site."
-msgstr "Псевдоним имеет недопустимые символы или уже используется на этом сайте."
-
-#: ../../include/channel.php:284
-msgid "Unable to retrieve created identity"
-msgstr "Не удается получить созданный идентификатор"
-
-#: ../../include/channel.php:380
-msgid "Default Profile"
-msgstr "Профиль по умолчанию"
-
-#: ../../include/channel.php:539 ../../include/channel.php:628
-msgid "Unable to retrieve modified identity"
-msgstr "Не удается найти изменённый идентификатор"
-
-#: ../../include/channel.php:1158
-#: ../../extend/addon/hzaddons/chess/chess.php:486
-msgid "Requested channel is not available."
-msgstr "Запрошенный канал не доступен."
-
-#: ../../include/channel.php:1204 ../../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
-#: ../../Zotlabs/Module/Hcard.php:12 ../../Zotlabs/Module/Editwebpage.php:32
-#: ../../Zotlabs/Module/Webpages.php:39 ../../Zotlabs/Module/Blocks.php:33
-#: ../../Zotlabs/Module/Articles.php:34 ../../Zotlabs/Module/Connect.php:17
-#: ../../Zotlabs/Module/Cards.php:37 ../../Zotlabs/Module/Layouts.php:31
-#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:47
-msgid "Requested profile is not available."
-msgstr "Запрашиваемый профиль не доступен."
-
-#: ../../include/channel.php:1296 ../../Zotlabs/Module/Profiles.php:728
-msgid "Change profile photo"
-msgstr "Изменить фотографию профиля"
-
-#: ../../include/channel.php:1303 ../../include/nav.php:109
-#: ../../Zotlabs/Module/Profiles.php:830
-msgid "Edit Profiles"
-msgstr "Редактирование профилей"
-
-#: ../../include/channel.php:1304
-msgid "Create New Profile"
-msgstr "Создать новый профиль"
-
-#: ../../include/channel.php:1307 ../../include/nav.php:111
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:58
-msgid "Edit Profile"
-msgstr "Редактировать профиль"
-
-#: ../../include/channel.php:1322 ../../Zotlabs/Module/Profiles.php:820
-msgid "Profile Image"
-msgstr "Изображение профиля"
-
-#: ../../include/channel.php:1325
-msgid "Visible to everybody"
-msgstr "Видно всем"
-
-#: ../../include/channel.php:1326 ../../Zotlabs/Module/Profiles.php:725
-#: ../../Zotlabs/Module/Profiles.php:824
-msgid "Edit visibility"
-msgstr "Редактировать видимость"
-
-#: ../../include/channel.php:1383 ../../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/event.php:86 ../../Zotlabs/Module/Directory.php:328
-msgid "Location:"
-msgstr "Местоположение:"
-
-#: ../../include/channel.php:1402 ../../include/channel.php:1530
-msgid "Gender:"
-msgstr "Пол:"
-
-#: ../../include/channel.php:1403 ../../include/channel.php:1574
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:305
-msgid "Status:"
-msgstr "Статус:"
-
-#: ../../include/channel.php:1404 ../../include/channel.php:1598
-msgid "Homepage:"
-msgstr "Домашняя страница:"
-
-#: ../../include/channel.php:1405
-msgid "Online Now"
-msgstr "Сейчас в сети"
-
-#: ../../include/channel.php:1458
-msgid "Change your profile photo"
-msgstr "Изменить фотографию вашего профиля"
-
-#: ../../include/channel.php:1489
-msgid "Trans"
-msgstr "Трансексуал"
-
-#: ../../include/channel.php:1528 ../../Zotlabs/Module/Settings/Channel.php:499
-msgid "Full Name:"
-msgstr "Полное имя:"
-
-#: ../../include/channel.php:1535
-msgid "Like this channel"
-msgstr "нравится этот канал"
-
-#: ../../include/channel.php:1546 ../../include/conversation.php:1693
-#: ../../include/taxonomy.php:661 ../../Zotlabs/Module/Photos.php:1162
-#: ../../Zotlabs/Lib/ThreadItem.php:218
-msgctxt "noun"
-msgid "Like"
-msgid_plural "Likes"
-msgstr[0] "Нравится"
-msgstr[1] "Нравится"
-msgstr[2] "Нравится"
-
-#: ../../include/channel.php:1559
-msgid "j F, Y"
-msgstr ""
-
-#: ../../include/channel.php:1560
-msgid "j F"
-msgstr ""
-
-#: ../../include/channel.php:1567
-msgid "Birthday:"
-msgstr "День рождения:"
-
-#: ../../include/channel.php:1571 ../../Zotlabs/Module/Directory.php:323
-msgid "Age:"
-msgstr "Возраст:"
-
-#: ../../include/channel.php:1580
-#, php-format
-msgid "for %1$d %2$s"
-msgstr "для %1$d %2$s"
-
-#: ../../include/channel.php:1592
-msgid "Tags:"
-msgstr "Теги:"
-
-#: ../../include/channel.php:1596
-msgid "Sexual Preference:"
-msgstr "Сексуальные предпочтения:"
-
-#: ../../include/channel.php:1600 ../../Zotlabs/Module/Directory.php:339
-msgid "Hometown:"
-msgstr "Родной город:"
-
-#: ../../include/channel.php:1602
-msgid "Political Views:"
-msgstr "Политические взгляды:"
-
-#: ../../include/channel.php:1604
-msgid "Religion:"
-msgstr "Религия:"
-
-#: ../../include/channel.php:1606 ../../Zotlabs/Module/Directory.php:341
-msgid "About:"
-msgstr "О себе:"
-
-#: ../../include/channel.php:1608
-msgid "Hobbies/Interests:"
-msgstr "Хобби / интересы:"
-
-#: ../../include/channel.php:1610
-msgid "Likes:"
-msgstr "Что вам нравится:"
-
-#: ../../include/channel.php:1612
-msgid "Dislikes:"
-msgstr "Что вам не нравится:"
-
-#: ../../include/channel.php:1614
-msgid "Contact information and Social Networks:"
-msgstr "Контактная информация и социальные сети:"
-
-#: ../../include/channel.php:1616
-msgid "My other channels:"
-msgstr "Мои другие каналы:"
-
-#: ../../include/channel.php:1618
-msgid "Musical interests:"
-msgstr "Музыкальные интересы:"
-
-#: ../../include/channel.php:1620
-msgid "Books, literature:"
-msgstr "Книги, литература:"
-
-#: ../../include/channel.php:1622
-msgid "Television:"
-msgstr "Телевидение:"
-
-#: ../../include/channel.php:1624
-msgid "Film/dance/culture/entertainment:"
-msgstr "Кино / танцы / культура / развлечения:"
-
-#: ../../include/channel.php:1626
-msgid "Love/Romance:"
-msgstr "Любовь / романтика:"
-
-#: ../../include/channel.php:1628
-msgid "Work/employment:"
-msgstr "Работа / занятость:"
-
-#: ../../include/channel.php:1630
-msgid "School/education:"
-msgstr "Школа / образование:"
-
-#: ../../include/channel.php:1651 ../../Zotlabs/Module/Profperm.php:113
-#: ../../Zotlabs/Lib/Apps.php:337
-msgid "Profile"
-msgstr "Профиль"
-
-#: ../../include/channel.php:1653
-msgid "Like this thing"
-msgstr "нравится этo"
-
-#: ../../include/channel.php:1654 ../../Zotlabs/Module/Events.php:692
-#: ../../Zotlabs/Module/Cal.php:340
-msgid "Export"
-msgstr "Экспорт"
-
-#: ../../include/channel.php:2088 ../../Zotlabs/Module/Cover_photo.php:276
-msgid "cover photo"
-msgstr "фотография обложки"
-
-#: ../../include/channel.php:2341 ../../boot.php:1626
-#: ../../Zotlabs/Module/Rmagic.php:75
-msgid "Remote Authentication"
-msgstr "Удаленная аутентификация"
-
-#: ../../include/channel.php:2342 ../../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
-msgid "Authenticate"
-msgstr "Проверка подлинности"
-
-#: ../../include/channel.php:2497 ../../Zotlabs/Module/Admin/Accounts.php:91
-#, php-format
-msgid "Account '%s' deleted"
-msgstr "Аккаунт '%s' удален"
-
-#: ../../include/message.php:13 ../../include/text.php:1709
-msgid "Download binary/encrypted content"
-msgstr "Загрузить двоичное / зашифрованное содержимое"
-
-#: ../../include/message.php:41
-msgid "Unable to determine sender."
-msgstr "Невозможно определить отправителя."
-
-#: ../../include/message.php:80
-msgid "No recipient provided."
-msgstr "Получатель не предоставлен."
-
-#: ../../include/message.php:85
-msgid "[no subject]"
-msgstr "[без темы]"
-
-#: ../../include/message.php:215
-msgid "Stored post could not be verified."
-msgstr "Сохранённая публикация не может быть проверена."
-
-#: ../../include/markdown.php:200 ../../include/bbcode.php:358
-#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
-msgstr "%1$s была создана %2$s %3$s"
-
-#: ../../include/markdown.php:202 ../../include/bbcode.php:354
-#: ../../Zotlabs/Module/Tagger.php:77
-msgid "post"
-msgstr "публикация"
-
-#: ../../include/items.php:384 ../../Zotlabs/Module/Dreport.php:10
-#: ../../Zotlabs/Module/Dreport.php:68 ../../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
-#: ../../Zotlabs/Web/WebServer.php:122
-#: ../../extend/addon/hzaddons/redphotos/redphotos.php:119
-#: ../../extend/addon/hzaddons/redfiles/redfiles.php:109
-#: ../../extend/addon/hzaddons/hzfiles/hzfiles.php:73
-#: ../../extend/addon/hzaddons/frphotos/frphotos.php:82
-msgid "Permission denied"
-msgstr "Доступ запрещен"
-
-#: ../../include/items.php:911 ../../include/items.php:971
-msgid "(Unknown)"
-msgstr "(Неизвестный)"
-
-#: ../../include/items.php:1157
-msgid "Visible to anybody on the internet."
-msgstr "Виден всем в интернете."
-
-#: ../../include/items.php:1159
-msgid "Visible to you only."
-msgstr "Видно только вам."
-
-#: ../../include/items.php:1161
-msgid "Visible to anybody in this network."
-msgstr "Видно всем в этой сети."
-
-#: ../../include/items.php:1163
-msgid "Visible to anybody authenticated."
-msgstr "Видно всем аутентифицированным."
-
-#: ../../include/items.php:1165
-#, php-format
-msgid "Visible to anybody on %s."
-msgstr "Видно всем в %s."
-
-#: ../../include/items.php:1167
-msgid "Visible to all connections."
-msgstr "Видно всем контактам."
-
-#: ../../include/items.php:1169
-msgid "Visible to approved connections."
-msgstr "Видно только одобренным контактам."
-
-#: ../../include/items.php:1171
-msgid "Visible to specific connections."
-msgstr "Видно указанным контактам."
-
-#: ../../include/items.php:3587 ../../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
-#: ../../Zotlabs/Module/Admin/Themes.php:72 ../../Zotlabs/Module/Thing.php:94
-msgid "Item not found."
-msgstr "Элемент не найден."
-
-#: ../../include/items.php:4167 ../../Zotlabs/Module/Group.php:61
-#: ../../Zotlabs/Module/Group.php:200
-msgid "Privacy group not found."
-msgstr "Группа безопасности не найдена."
-
-#: ../../include/items.php:4183
-msgid "Privacy group is empty."
-msgstr "Группа безопасности пуста"
-
-#: ../../include/items.php:4190
-#, php-format
-msgid "Privacy group: %s"
-msgstr "Группа безопасности: %s"
-
-#: ../../include/items.php:4200 ../../Zotlabs/Module/Connedit.php:851
-#, php-format
-msgid "Connection: %s"
-msgstr "Контакт: %s"
-
-#: ../../include/items.php:4202
-msgid "Connection not found."
-msgstr "Контакт не найден."
-
-#: ../../include/items.php:4544 ../../Zotlabs/Module/Cover_photo.php:269
-msgid "female"
-msgstr "женщина"
-
-#: ../../include/items.php:4545 ../../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
-msgid "male"
-msgstr "мужчина"
-
-#: ../../include/items.php:4547 ../../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
-#, php-format
-msgid "%1$s updated their %2$s"
-msgstr "%1$s обновили их %2$s"
-
-#: ../../include/items.php:4551
-msgid "profile photo"
-msgstr "Фотография профиля"
-
-#: ../../include/items.php:4742
-#, php-format
-msgid "[Edited %s]"
-msgstr "[Отредактировано %s]"
-
-#: ../../include/items.php:4742
-msgctxt "edit_activity"
-msgid "Post"
-msgstr "Публикация"
-
-#: ../../include/items.php:4742
-msgctxt "edit_activity"
-msgid "Comment"
-msgstr "Комментарий"
-
-#: ../../include/activities.php:41
-msgid " and "
-msgstr " и "
-
-#: ../../include/activities.php:49
-msgid "public profile"
-msgstr "общедоступный профиль"
-
-#: ../../include/activities.php:58
-#, 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
-#, php-format
-msgid "Visit %1$s's %2$s"
-msgstr "Посетить %1$s %2$s"
-
-#: ../../include/activities.php:62
-#, php-format
-msgid "%1$s has an updated %2$s, changing %3$s."
-msgstr "%1$s обновлено %2$s, изменено %3$s."
-
-#: ../../include/features.php:55 ../../Zotlabs/Module/Settings/Features.php:36
-#: ../../Zotlabs/Module/Admin/Features.php:55
-#: ../../Zotlabs/Module/Admin/Features.php:56
-msgid "Off"
-msgstr "Выкл."
-
-#: ../../include/features.php:55 ../../Zotlabs/Module/Settings/Features.php:36
-#: ../../Zotlabs/Module/Admin/Features.php:55
-#: ../../Zotlabs/Module/Admin/Features.php:56
-msgid "On"
-msgstr "Вкл."
-
-#: ../../include/features.php:82 ../../Zotlabs/Lib/Apps.php:342
-msgid "CalDAV"
-msgstr ""
-
-#: ../../include/features.php:86 ../../include/features.php:273
-msgid "Start calendar week on Monday"
-msgstr "Начинать календарную неделю с понедельника"
-
-#: ../../include/features.php:87 ../../include/features.php:274
-msgid "Default is Sunday"
-msgstr "По умолчанию - воскресенье"
-
-#: ../../include/features.php:96 ../../Zotlabs/Lib/Apps.php:318
-msgid "Channel Home"
-msgstr "Главная канала"
-
-#: ../../include/features.php:100
-msgid "Search by Date"
-msgstr "Поиск по дате"
-
-#: ../../include/features.php:101
-msgid "Ability to select posts by date ranges"
-msgstr "Возможность выбора сообщений по диапазонам дат"
-
-#: ../../include/features.php:108
-msgid "Tag Cloud"
-msgstr "Облако тегов"
-
-#: ../../include/features.php:109
-msgid "Provide a personal tag cloud on your channel page"
-msgstr "Показывает личное облако тегов на странице канала"
-
-#: ../../include/features.php:116 ../../include/features.php:381
-msgid "Use blog/list mode"
-msgstr "Использовать режим блога / списка"
-
-#: ../../include/features.php:117 ../../include/features.php:382
-msgid "Comments will be displayed separately"
-msgstr "Комментарии будут отображаться отдельно"
-
-#: ../../include/features.php:125 ../../include/text.php:981
-#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:308
-msgid "Connections"
-msgstr "Контакты"
-
-#: ../../include/features.php:129
-msgid "Connection Filtering"
-msgstr "Фильтрация контактов"
-
-#: ../../include/features.php:130
-msgid "Filter incoming posts from connections based on keywords/content"
-msgstr "Фильтр входящих сообщений от контактов на основе ключевых слов / контента"
-
-#: ../../include/features.php:138
-msgid "Conversation"
-msgstr "Диалоги"
-
-#: ../../include/features.php:142
-msgid "Community Tagging"
-msgstr "Отметки сообщества"
-
-#: ../../include/features.php:143
-msgid "Ability to tag existing posts"
-msgstr "Возможность помечать тегами существующие публикации"
-
-#: ../../include/features.php:150
-msgid "Emoji Reactions"
-msgstr "Реакции Emoji"
-
-#: ../../include/features.php:151
-msgid "Add emoji reaction ability to posts"
-msgstr "Возможность добавлять реакции Emoji к публикациям"
-
-#: ../../include/features.php:158
-msgid "Dislike Posts"
-msgstr "Не нравящиеся публикации"
-
-#: ../../include/features.php:159
-msgid "Ability to dislike posts/comments"
-msgstr "Возможность отмечать не нравящиеся публикации / комментарии"
-
-#: ../../include/features.php:166
-msgid "Star Posts"
-msgstr "Помечать сообщения"
-
-#: ../../include/features.php:167
-msgid "Ability to mark special posts with a star indicator"
-msgstr "Возможность отметить специальные сообщения индикатором-звёздочкой"
-
-#: ../../include/features.php:176 ../../Zotlabs/Lib/Apps.php:322
-msgid "Directory"
-msgstr "Каталог"
-
-#: ../../include/features.php:180
-msgid "Advanced Directory Search"
-msgstr "Расширенный поиск в каталоге"
-
-#: ../../include/features.php:181
-msgid "Allows creation of complex directory search queries"
-msgstr "Позволяет создание сложных поисковых запросов в каталоге"
-
-#: ../../include/features.php:190
-msgid "Editor"
-msgstr "Редактор"
-
-#: ../../include/features.php:194
-msgid "Post Categories"
-msgstr "Категории публикаций"
-
-#: ../../include/features.php:195
-msgid "Add categories to your posts"
-msgstr "Добавить категории для ваших публикаций"
-
-#: ../../include/features.php:203
-msgid "Large Photos"
-msgstr "Большие фотографии"
-
-#: ../../include/features.php:204
-msgid ""
-"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
-"(640px) photo thumbnails"
-msgstr "Включить большие (1024px) миниатюры изображений в публикациях. Если не включено, использовать маленькие (640px) миниатюры."
-
-#: ../../include/features.php:211
-msgid "Even More Encryption"
-msgstr "Еще больше шифрования"
-
-#: ../../include/features.php:212
-msgid ""
-"Allow optional encryption of content end-to-end with a shared secret key"
-msgstr "Разрешить дополнительное end-to-end шифрование содержимого с общим секретным ключом"
-
-#: ../../include/features.php:219
-msgid "Enable Voting Tools"
-msgstr "Включить инструменты голосования"
-
-#: ../../include/features.php:220
-msgid "Provide a class of post which others can vote on"
-msgstr "Предоставь класс публикаций с возможностью голосования"
-
-#: ../../include/features.php:227
-msgid "Disable Comments"
-msgstr "Отключить комментарии"
-
-#: ../../include/features.php:228
-msgid "Provide the option to disable comments for a post"
-msgstr "Предоставить возможность отключать комментарии для публикаций"
-
-#: ../../include/features.php:235
-msgid "Delayed Posting"
-msgstr "Задержанная публикация"
-
-#: ../../include/features.php:236
-msgid "Allow posts to be published at a later date"
-msgstr "Разрешить размешать публикации следующими датами"
-
-#: ../../include/features.php:243
-msgid "Content Expiration"
-msgstr "Истечение срока действия содержимого"
-
-#: ../../include/features.php:244
-msgid "Remove posts/comments and/or private messages at a future time"
-msgstr "Удалять публикации / комментарии и / или личные сообщения"
-
-#: ../../include/features.php:251
-msgid "Suppress Duplicate Posts/Comments"
-msgstr "Подавлять дублирующие публикации / комментарии"
-
-#: ../../include/features.php:252
-msgid ""
-"Prevent posts with identical content to be published with less than two "
-"minutes in between submissions."
-msgstr "Предотвращает появление публикаций с одинаковым содержимым если интервал между ними менее 2 минут"
-
-#: ../../include/features.php:259
-msgid "Auto-save drafts of posts and comments"
-msgstr "Автоматически сохранять черновики публикаций и комментариев"
-
-#: ../../include/features.php:260
-msgid ""
-"Automatically saves post and comment drafts in local browser storage to help "
-"prevent accidental loss of compositions"
-msgstr "Автоматически сохраняет черновики публикаций и комментариев в локальном хранилище браузера для предотвращения их случайной утраты"
-
-#: ../../include/features.php:269 ../../Zotlabs/Lib/Apps.php:321
-msgid "Events"
-msgstr "События"
-
-#: ../../include/features.php:281
-msgid "Smart Birthdays"
-msgstr "\"Умные\" Дни рождений"
-
-#: ../../include/features.php:282
-msgid ""
-"Make birthday events timezone aware in case your friends are scattered "
-"across the planet."
-msgstr "Сделать уведомления о днях рождения зависимыми от часового пояса в том случае, если ваши друзья разбросаны по планете."
-
-#: ../../include/features.php:289
-msgid "Event Timezone Selection"
-msgstr "Выбор часового пояса события"
-
-#: ../../include/features.php:290
-msgid "Allow event creation in timezones other than your own."
-msgstr "Разрешить создание события в часовой зоне отличной от вашей"
-
-#: ../../include/features.php:299
-msgid "Manage"
-msgstr "Управление"
-
-#: ../../include/features.php:303
-msgid "Navigation Channel Select"
-msgstr "Выбор канала навигации"
-
-#: ../../include/features.php:304
-msgid "Change channels directly from within the navigation dropdown menu"
-msgstr "Изменить канал напрямую из выпадающего меню"
-
-#: ../../include/features.php:313 ../../Zotlabs/Module/Connections.php:296
-msgid "Network"
-msgstr "Сеть"
-
-#: ../../include/features.php:317 ../../Zotlabs/Widget/Savedsearch.php:83
-msgid "Saved Searches"
-msgstr "Сохранённые поиски"
-
-#: ../../include/features.php:318
-msgid "Save search terms for re-use"
-msgstr "Сохранять результаты поиска для повторного использования"
-
-#: ../../include/features.php:326
-msgid "Ability to file posts under folders"
-msgstr "Возможность размещать публикации в каталогах"
-
-#: ../../include/features.php:333
-msgid "Alternate Stream Order"
-msgstr "Отображение потока"
-
-#: ../../include/features.php:334
-msgid ""
-"Ability to order the stream by last post date, last comment date or "
-"unthreaded activities"
-msgstr "Возможность показывать поток по дате последнего сообщения, последнего комментария или в порядке поступления"
-
-#: ../../include/features.php:341
-msgid "Contact Filter"
-msgstr "Фильтр контактов"
-
-#: ../../include/features.php:342
-msgid "Ability to display only posts of a selected contact"
-msgstr "Возможность показа публикаций только от выбранных контактов"
-
-#: ../../include/features.php:349
-msgid "Forum Filter"
-msgstr "Фильтр по форумам"
-
-#: ../../include/features.php:350
-msgid "Ability to display only posts of a specific forum"
-msgstr "Возможность показа публикаций только определённого форума"
-
-#: ../../include/features.php:357
-msgid "Personal Posts Filter"
-msgstr "Персональный фильтр публикаций"
-
-#: ../../include/features.php:358
-msgid "Ability to display only posts that you've interacted on"
-msgstr "Возможность показа только тех публикаций с которыми вы взаимодействовали"
-
-#: ../../include/features.php:365
-msgid "Affinity Tool"
-msgstr "Инструмент сходства / соответствия"
-
-#: ../../include/features.php:366
-msgid "Filter stream activity by depth of relationships"
-msgstr "Фильтровать потоки активности по глубине отношений"
-
-#: ../../include/features.php:373 ../../Zotlabs/Lib/Apps.php:310
-msgid "Suggest Channels"
-msgstr "Предлагаемые каналы"
-
-#: ../../include/features.php:374
-msgid "Show friend and connection suggestions"
-msgstr "Показать предложения в друзья"
-
-#: ../../include/features.php:391 ../../include/nav.php:414
-#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:320
-msgid "Photos"
-msgstr "Фотографии"
-
-#: ../../include/features.php:395
-msgid "Photo Location"
-msgstr "Местоположение фотографии"
-
-#: ../../include/features.php:396
-msgid "If location data is available on uploaded photos, link this to a map."
-msgstr "Если данные о местоположении доступны на загруженных фотографий, связать их с картой."
-
-#: ../../include/features.php:405 ../../Zotlabs/Lib/Apps.php:338
-msgid "Profiles"
-msgstr "Редактировать профиль"
-
-#: ../../include/features.php:409
-msgid "Advanced Profiles"
-msgstr "Расширенные профили"
-
-#: ../../include/features.php:410
-msgid "Additional profile sections and selections"
-msgstr "Дополнительные секции и выборы профиля"
-
-#: ../../include/features.php:417
-msgid "Profile Import/Export"
-msgstr "Импорт / экспорт профиля"
-
-#: ../../include/features.php:418
-msgid "Save and load profile details across sites/channels"
-msgstr "Сохранение и загрузка настроек профиля на всех сайтах / каналах"
-
-#: ../../include/features.php:425
-msgid "Multiple Profiles"
-msgstr "Несколько профилей"
-
-#: ../../include/features.php:426
-msgid "Ability to create multiple profiles"
-msgstr "Возможность создания нескольких профилей"
-
-#: ../../include/text.php:498
-msgid "prev"
-msgstr "предыдущий"
-
-#: ../../include/text.php:500
-msgid "first"
-msgstr "первый"
-
-#: ../../include/text.php:529
-msgid "last"
-msgstr "последний"
-
-#: ../../include/text.php:532
-msgid "next"
-msgstr "следующий"
-
-#: ../../include/text.php:543
-msgid "older"
-msgstr "старше"
-
-#: ../../include/text.php:545
-msgid "newer"
-msgstr "новее"
-
-#: ../../include/text.php:969
-msgid "No connections"
-msgstr "Нет контактов"
-
-#: ../../include/text.php:1001
-#, php-format
-msgid "View all %s connections"
-msgstr "Просмотреть все %s контактов"
-
-#: ../../include/text.php:1057
-#, php-format
-msgid "Network: %s"
-msgstr "Сеть: %s"
-
-#: ../../include/text.php:1068 ../../include/text.php:1080
-#: ../../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
-msgid "Search"
-msgstr "Поиск"
-
-#: ../../include/text.php:1069 ../../include/text.php:1081
-#: ../../Zotlabs/Module/Admin/Profs.php:94
-#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Rbmark.php:32
-#: ../../Zotlabs/Module/Rbmark.php:104 ../../Zotlabs/Module/Filer.php:53
-#: ../../Zotlabs/Widget/Notes.php:23
-msgid "Save"
-msgstr "Запомнить"
-
-#: ../../include/text.php:1146 ../../include/text.php:1150
-msgid "poke"
-msgstr "Ткнуть"
-
-#: ../../include/text.php:1146 ../../include/text.php:1150
-#: ../../include/conversation.php:251
-msgid "poked"
-msgstr "ткнут"
-
-#: ../../include/text.php:1151
-msgid "ping"
-msgstr "Пингануть"
-
-#: ../../include/text.php:1151
-msgid "pinged"
-msgstr "Отпингован"
-
-#: ../../include/text.php:1152
-msgid "prod"
-msgstr "Подтолкнуть"
-
-#: ../../include/text.php:1152
-msgid "prodded"
-msgstr "Подтолкнут"
-
-#: ../../include/text.php:1153
-msgid "slap"
-msgstr "Шлёпнуть"
-
-#: ../../include/text.php:1153
-msgid "slapped"
-msgstr "Шлёпнут"
-
-#: ../../include/text.php:1154
-msgid "finger"
-msgstr "Указать"
-
-#: ../../include/text.php:1154
-msgid "fingered"
-msgstr "Указан"
-
-#: ../../include/text.php:1155
-msgid "rebuff"
-msgstr "Дать отпор"
-
-#: ../../include/text.php:1155
-msgid "rebuffed"
-msgstr "Дан отпор"
-
-#: ../../include/text.php:1178
-msgid "happy"
-msgstr "счастливый"
-
-#: ../../include/text.php:1179
-msgid "sad"
-msgstr "грустный"
-
-#: ../../include/text.php:1180
-msgid "mellow"
-msgstr "спокойный"
-
-#: ../../include/text.php:1181
-msgid "tired"
-msgstr "усталый"
-
-#: ../../include/text.php:1182
-msgid "perky"
-msgstr "весёлый"
-
-#: ../../include/text.php:1183
-msgid "angry"
-msgstr "сердитый"
-
-#: ../../include/text.php:1184
-msgid "stupefied"
-msgstr "отупевший"
-
-#: ../../include/text.php:1185
-msgid "puzzled"
-msgstr "недоумевающий"
-
-#: ../../include/text.php:1186
-msgid "interested"
-msgstr "заинтересованный"
-
-#: ../../include/text.php:1187
-msgid "bitter"
-msgstr "едкий"
-
-#: ../../include/text.php:1188
-msgid "cheerful"
-msgstr "бодрый"
-
-#: ../../include/text.php:1189
-msgid "alive"
-msgstr "энергичный"
-
-#: ../../include/text.php:1190
-msgid "annoyed"
-msgstr "раздражённый"
-
-#: ../../include/text.php:1191
-msgid "anxious"
-msgstr "обеспокоенный"
-
-#: ../../include/text.php:1192
-msgid "cranky"
-msgstr "капризный"
-
-#: ../../include/text.php:1193
-msgid "disturbed"
-msgstr "встревоженный"
-
-#: ../../include/text.php:1194
-msgid "frustrated"
-msgstr "разочарованный"
-
-#: ../../include/text.php:1195
-msgid "depressed"
-msgstr "подавленный"
-
-#: ../../include/text.php:1196
-msgid "motivated"
-msgstr "мотивированный"
-
-#: ../../include/text.php:1197
-msgid "relaxed"
-msgstr "расслабленный"
-
-#: ../../include/text.php:1198
-msgid "surprised"
-msgstr "удивленный"
-
-#: ../../include/text.php:1377 ../../include/js_strings.php:95
-msgid "Monday"
-msgstr "Понедельник"
-
-#: ../../include/text.php:1377 ../../include/js_strings.php:96
-msgid "Tuesday"
-msgstr "Вторник"
-
-#: ../../include/text.php:1377 ../../include/js_strings.php:97
-msgid "Wednesday"
-msgstr "Среда"
-
-#: ../../include/text.php:1377 ../../include/js_strings.php:98
-msgid "Thursday"
-msgstr "Четверг"
-
-#: ../../include/text.php:1377 ../../include/js_strings.php:99
-msgid "Friday"
-msgstr "Пятница"
-
-#: ../../include/text.php:1377 ../../include/js_strings.php:100
-msgid "Saturday"
-msgstr "Суббота"
-
-#: ../../include/text.php:1377 ../../include/js_strings.php:94
-msgid "Sunday"
-msgstr "Воскресенье"
-
-#: ../../include/text.php:1381 ../../include/js_strings.php:70
-msgid "January"
-msgstr "Январь"
-
-#: ../../include/text.php:1381 ../../include/js_strings.php:71
-msgid "February"
-msgstr "Февраль"
-
-#: ../../include/text.php:1381 ../../include/js_strings.php:72
-msgid "March"
-msgstr "Март"
-
-#: ../../include/text.php:1381 ../../include/js_strings.php:73
-msgid "April"
-msgstr "Апрель"
-
-#: ../../include/text.php:1381
-msgid "May"
-msgstr "Май"
-
-#: ../../include/text.php:1381 ../../include/js_strings.php:75
-msgid "June"
-msgstr "Июнь"
-
-#: ../../include/text.php:1381 ../../include/js_strings.php:76
-msgid "July"
-msgstr "Июль"
-
-#: ../../include/text.php:1381 ../../include/js_strings.php:77
-msgid "August"
-msgstr "Август"
-
-#: ../../include/text.php:1381 ../../include/js_strings.php:78
-msgid "September"
-msgstr "Сентябрь"
-
-#: ../../include/text.php:1381 ../../include/js_strings.php:79
-msgid "October"
-msgstr "Октябрь"
-
-#: ../../include/text.php:1381 ../../include/js_strings.php:80
-msgid "November"
-msgstr "Ноябрь"
-
-#: ../../include/text.php:1381 ../../include/js_strings.php:81
-msgid "December"
-msgstr "Декабрь"
-
-#: ../../include/text.php:1455
-msgid "Unknown Attachment"
-msgstr "Неизвестное вложение"
-
-#: ../../include/text.php:1457 ../../Zotlabs/Storage/Browser.php:287
-#: ../../Zotlabs/Module/Sharedwithme.php:106
-msgid "Size"
-msgstr "Размер"
-
-#: ../../include/text.php:1457 ../../include/feedutils.php:860
-msgid "unknown"
-msgstr "неизвестный"
-
-#: ../../include/text.php:1493
-msgid "remove category"
-msgstr "удалить категорию"
-
-#: ../../include/text.php:1567
-msgid "remove from file"
-msgstr "удалить из файла"
-
-#: ../../include/text.php:1850 ../../Zotlabs/Module/Events.php:663
-#: ../../Zotlabs/Module/Cal.php:314
-msgid "Link to Source"
-msgstr "Ссылка на источник"
-
-#: ../../include/text.php:1872 ../../include/language.php:423
-msgid "default"
-msgstr "по умолчанию"
-
-#: ../../include/text.php:1880
-msgid "Page layout"
-msgstr "Шаблон страницы"
-
-#: ../../include/text.php:1880
-msgid "You can create your own with the layouts tool"
-msgstr "Вы можете создать свой собственный с помощью инструмента шаблонов"
-
-#: ../../include/text.php:1890 ../../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
-msgid "HTML"
-msgstr ""
-
-#: ../../include/text.php:1892 ../../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
-#: ../../Zotlabs/Widget/Wiki_pages.php:38
-#: ../../Zotlabs/Widget/Wiki_pages.php:95
-msgid "Text"
-msgstr "Текст"
-
-#: ../../include/text.php:1894
-msgid "Comanche Layout"
-msgstr "Шаблон Comanche"
-
-#: ../../include/text.php:1899
-msgid "PHP"
-msgstr ""
-
-#: ../../include/text.php:1908
-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
-#: ../../extend/addon/hzaddons/redphotos/redphotohelper.php:71
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1512
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1539
-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
-msgid "event"
-msgstr "событие"
-
-#: ../../include/text.php:2034 ../../include/conversation.php:144
-#: ../../Zotlabs/Module/Like.php:384 ../../Zotlabs/Module/Subthread.php:111
-#: ../../Zotlabs/Lib/Activity.php:1570
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1512
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1539
-msgid "status"
-msgstr "статус"
-
-#: ../../include/text.php:2036 ../../include/conversation.php:146
-#: ../../Zotlabs/Module/Tagger.php:79
-msgid "comment"
-msgstr "комментарий"
-
-#: ../../include/text.php:2041
-msgid "activity"
-msgstr "активность"
-
-#: ../../include/text.php:2142
-msgid "a-z, 0-9, -, and _ only"
-msgstr "Только a-z, 0-9, -, и _"
-
-#: ../../include/text.php:2462
-msgid "Design Tools"
-msgstr "Инструменты дизайна"
-
-#: ../../include/text.php:2465 ../../Zotlabs/Module/Blocks.php:154
-msgid "Blocks"
-msgstr "Блокировки"
-
-#: ../../include/text.php:2466 ../../Zotlabs/Module/Menu.php:170
-msgid "Menus"
-msgstr "Меню"
-
-#: ../../include/text.php:2467 ../../Zotlabs/Module/Layouts.php:184
-msgid "Layouts"
-msgstr "Шаблоны"
-
-#: ../../include/text.php:2468
-msgid "Pages"
-msgstr "Страницы"
-
-#: ../../include/text.php:2489 ../../Zotlabs/Module/Cal.php:343
-msgid "Import"
-msgstr "Импортировать"
-
-#: ../../include/text.php:2490
-msgid "Import website..."
-msgstr "Импорт веб-сайта..."
-
-#: ../../include/text.php:2491
-msgid "Select folder to import"
-msgstr "Выбрать каталог для импорта"
-
-#: ../../include/text.php:2492
-msgid "Import from a zipped folder:"
-msgstr "Импортировать из каталога в zip-архиве:"
-
-#: ../../include/text.php:2493
-msgid "Import from cloud files:"
-msgstr "Импортировать из сетевых файлов:"
-
-#: ../../include/text.php:2494
-msgid "/cloud/channel/path/to/folder"
-msgstr ""
-
-#: ../../include/text.php:2495
-msgid "Enter path to website files"
-msgstr "Введите путь к файлам веб-сайта"
-
-#: ../../include/text.php:2496
-msgid "Select folder"
-msgstr "Выбрать каталог"
-
-#: ../../include/text.php:2497
-msgid "Export website..."
-msgstr "Экспорт веб-сайта..."
-
-#: ../../include/text.php:2498
-msgid "Export to a zip file"
-msgstr "Экспортировать в ZIP файл."
-
-#: ../../include/text.php:2499
-msgid "website.zip"
-msgstr ""
-
-#: ../../include/text.php:2500
-msgid "Enter a name for the zip file."
-msgstr "Введите имя для ZIP файла."
-
-#: ../../include/text.php:2501
-msgid "Export to cloud files"
-msgstr "Эскпортировать в сетевые файлы:"
-
-#: ../../include/text.php:2502
-msgid "/path/to/export/folder"
-msgstr ""
-
-#: ../../include/text.php:2503
-msgid "Enter a path to a cloud files destination."
-msgstr "Введите путь к расположению сетевых файлов."
-
-#: ../../include/text.php:2504
-msgid "Specify folder"
-msgstr "Указать каталог"
-
-#: ../../include/text.php:2824 ../../Zotlabs/Storage/Browser.php:131
-msgid "Collection"
-msgstr "Коллекция"
-
-#: ../../include/import.php:25
-msgid "Unable to import a removed channel."
-msgstr "Невозможно импортировать удалённый канал."
-
-#: ../../include/import.php:51
-msgid ""
-"Cannot create a duplicate channel identifier on this system. Import failed."
-msgstr "Не удалось создать дублирующийся идентификатор канала. Импорт невозможен."
-
-#: ../../include/import.php:72
-#: ../../extend/addon/hzaddons/diaspora/import_diaspora.php:43
-msgid "Unable to create a unique channel address. Import failed."
-msgstr "Не удалось создать уникальный адрес канала. Импорт не завершен."
-
-#: ../../include/import.php:117
-msgid "Cloned channel not found. Import failed."
-msgstr "Клон канала не найден. Импорт невозможен."
-
-#: ../../include/group.php:22 ../../Zotlabs/Lib/Group.php:28
-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 "Удаленная группа с этим названием была восстановлена. Существующие разрешения пункт <strong>могут</strong> применяться к этой группе и к её будущих участников. Если это не то, чего вы хотели, пожалуйста, создайте другую группу с другим именем."
-
-#: ../../include/group.php:264 ../../Zotlabs/Lib/Group.php:270
-msgid "Add new connections to this privacy group"
-msgstr "Добавить новые контакты в группу безопасности"
-
-#: ../../include/group.php:298 ../../Zotlabs/Lib/Group.php:302
-msgid "edit"
-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/Lib/Apps.php:339
-msgid "Privacy Groups"
-msgstr "Группы безопасности"
-
-#: ../../include/group.php:321 ../../Zotlabs/Lib/Group.php:325
-msgid "Edit group"
-msgstr "Редактировать группу"
-
-#: ../../include/group.php:322 ../../Zotlabs/Lib/Group.php:326
-msgid "Add privacy group"
-msgstr "Добавить группу безопасности"
-
-#: ../../include/group.php:323 ../../Zotlabs/Lib/Group.php:327
-msgid "Channels not in any privacy group"
-msgstr "Каналы не включены ни в одну группу безопасности"
-
-#: ../../include/group.php:325 ../../Zotlabs/Widget/Savedsearch.php:84
-#: ../../Zotlabs/Lib/Group.php:329
-msgid "add"
-msgstr "добавить"
-
-#: ../../include/account.php:36
-msgid "Not a valid email address"
-msgstr "Недействительный адрес электронной почты"
-
-#: ../../include/account.php:38
-msgid "Your email domain is not among those allowed on this site"
-msgstr "Домен электронной почты не входит в число тех, которые разрешены на этом сайте"
-
-#: ../../include/account.php:44
-msgid "Your email address is already registered at this site."
-msgstr "Ваш адрес электронной почты уже зарегистрирован на этом сайте."
-
-#: ../../include/account.php:76
-msgid "An invitation is required."
-msgstr "Требуется приглашение."
-
-#: ../../include/account.php:80
-msgid "Invitation could not be verified."
-msgstr "Не удалось проверить приглашение."
-
-#: ../../include/account.php:158
-msgid "Please enter the required information."
-msgstr "Пожалуйста, введите необходимую информацию."
-
-#: ../../include/account.php:225
-msgid "Failed to store account information."
-msgstr "Не удалось сохранить информацию аккаунта."
-
-#: ../../include/account.php:314
-#, php-format
-msgid "Registration confirmation for %s"
-msgstr "Подтверждение регистрации для %s"
-
-#: ../../include/account.php:385
-#, php-format
-msgid "Registration request at %s"
-msgstr "Запрос регистрации на %s"
-
-#: ../../include/account.php:407
-msgid "your registration password"
-msgstr "ваш пароль регистрации"
-
-#: ../../include/account.php:413 ../../include/account.php:475
-#, php-format
-msgid "Registration details for %s"
-msgstr "Регистрационные данные для %s"
-
-#: ../../include/account.php:486
-msgid "Account approved."
-msgstr "Аккаунт утвержден."
-
-#: ../../include/account.php:526
-#, php-format
-msgid "Registration revoked for %s"
-msgstr "Регистрация отозвана для %s"
-
-#: ../../include/account.php:805 ../../include/account.php:807
-msgid "Click here to upgrade."
-msgstr "Нажмите здесь для обновления."
-
-#: ../../include/account.php:813
-msgid "This action exceeds the limits set by your subscription plan."
-msgstr "Это действие превышает ограничения, установленные в вашем плане."
-
-#: ../../include/account.php:818
-msgid "This action is not available under your subscription plan."
-msgstr "Это действие невозможно из-за ограничений в вашем плане."
-
-#: ../../include/zot.php:773
-msgid "Invalid data packet"
-msgstr "Неверный пакет данных"
-
-#: ../../include/zot.php:800 ../../Zotlabs/Lib/Libzot.php:663
-msgid "Unable to verify channel signature"
-msgstr "Невозможно проверить подпись канала"
-
-#: ../../include/zot.php:2571 ../../Zotlabs/Lib/Libsync.php:733
-#, php-format
-msgid "Unable to verify site signature for %s"
-msgstr "Невозможно проверить подпись сайта %s"
-
-#: ../../include/zot.php:4235
-msgid "invalid target signature"
-msgstr "недопустимая целевая подпись"
-
-#: ../../include/follow.php:37
-msgid "Channel is blocked on this site."
-msgstr "Канал блокируется на этом сайте."
-
-#: ../../include/follow.php:42
-msgid "Channel location missing."
-msgstr "Местоположение канала отсутствует."
-
-#: ../../include/follow.php:84
-msgid "Response from remote channel was incomplete."
-msgstr "Ответ удаленного канала неполный."
-
-#: ../../include/follow.php:96
-msgid "Premium channel - please visit:"
-msgstr "Премимум-канал - пожалуйста посетите:"
-
-#: ../../include/follow.php:110
-msgid "Channel was deleted and no longer exists."
-msgstr "Канал удален и больше не существует."
-
-#: ../../include/follow.php:165
-msgid "Remote channel or protocol unavailable."
-msgstr "Удалённый канал или протокол недоступен."
-
-#: ../../include/follow.php:188
-msgid "Channel discovery failed."
-msgstr "Не удалось обнаружить канал."
-
-#: ../../include/follow.php:200
-msgid "Protocol disabled."
-msgstr "Протокол отключен."
-
-#: ../../include/follow.php:211
-msgid "Cannot connect to yourself."
-msgstr "Нельзя подключиться к самому себе."
-
-#: ../../include/help.php:80
-msgid "Help:"
-msgstr "Помощь:"
-
-#: ../../include/help.php:117 ../../include/help.php:125
-#: ../../include/nav.php:168 ../../include/nav.php:289
-#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:323
-msgid "Help"
-msgstr "Помощь"
-
-#: ../../include/help.php:129
-msgid "Not Found"
-msgstr "Не найдено"
-
-#: ../../include/help.php:132 ../../Zotlabs/Module/Display.php:140
-#: ../../Zotlabs/Module/Display.php:157 ../../Zotlabs/Module/Display.php:174
-#: ../../Zotlabs/Module/Page.php:136 ../../Zotlabs/Module/Block.php:77
-#: ../../Zotlabs/Web/Router.php:185 ../../Zotlabs/Lib/NativeWikiPage.php:521
-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
-#: ../../include/bbcode.php:1218 ../../include/bbcode.php:1223
-#: ../../include/bbcode.php:1226 ../../include/bbcode.php:1231
-#: ../../include/bbcode.php:1234 ../../include/bbcode.php:1237
-#: ../../include/bbcode.php:1240
-msgid "Image/photo"
-msgstr "Изображение / фотография"
-
-#: ../../include/bbcode.php:239 ../../include/bbcode.php:1251
-msgid "Encrypted content"
-msgstr "Зашифрованное содержание"
-
-#: ../../include/bbcode.php:255
-#, php-format
-msgid "Install %1$s element %2$s"
-msgstr "Установить %1$s элемент %2$s"
-
-#: ../../include/bbcode.php:259
-#, php-format
-msgid ""
-"This post contains an installable %s element, however you lack permissions "
-"to install it on this site."
-msgstr "Эта публикация содержит устанавливаемый %s элемент, однако у вас нет разрешений для его установки на этом сайте."
-
-#: ../../include/bbcode.php:269 ../../Zotlabs/Module/Impel.php:43
-msgid "webpage"
-msgstr "веб-страница"
-
-#: ../../include/bbcode.php:272 ../../Zotlabs/Module/Impel.php:53
-msgid "layout"
-msgstr "шаблон"
-
-#: ../../include/bbcode.php:275 ../../Zotlabs/Module/Impel.php:48
-msgid "block"
-msgstr "заблокировать"
-
-#: ../../include/bbcode.php:278 ../../Zotlabs/Module/Impel.php:60
-msgid "menu"
-msgstr "меню"
-
-#: ../../include/bbcode.php:350
-msgid "card"
-msgstr "карточка"
-
-#: ../../include/bbcode.php:352
-msgid "article"
-msgstr "статья"
-
-#: ../../include/bbcode.php:435 ../../include/bbcode.php:443
-msgid "Click to open/close"
-msgstr "Нажмите, чтобы открыть/закрыть"
-
-#: ../../include/bbcode.php:443
-msgid "spoiler"
-msgstr "спойлер"
-
-#: ../../include/bbcode.php:456
-msgid "View article"
-msgstr "Просмотр статьи"
-
-#: ../../include/bbcode.php:456
-msgid "View summary"
-msgstr "Просмотр резюме"
-
-#: ../../include/bbcode.php:746 ../../include/bbcode.php:916
-#: ../../Zotlabs/Lib/NativeWikiPage.php:603
-msgid "Different viewers will see this text differently"
-msgstr "Различные зрители увидят этот текст по-разному"
-
-#: ../../include/bbcode.php:1189
-msgid "$1 wrote:"
-msgstr "$1 писал:"
-
-#: ../../include/conversation.php:122 ../../Zotlabs/Module/Like.php:121
-msgid "channel"
-msgstr "канал"
-
-#: ../../include/conversation.php:160 ../../Zotlabs/Module/Like.php:438
-#: ../../Zotlabs/Lib/Activity.php:1605
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1547
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1568
-#, 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
-#: ../../Zotlabs/Lib/Activity.php:1607
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1549
-#, php-format
-msgid "%1$s doesn't like %2$s's %3$s"
-msgstr "%1$s не нравится %2$s %3$s"
-
-#: ../../include/conversation.php:169
-#, php-format
-msgid "likes %1$s's %2$s"
-msgstr "Нравится %1$s %2$s"
-
-#: ../../include/conversation.php:172
-#, php-format
-msgid "doesn't like %1$s's %2$s"
-msgstr "Не нравится %1$s %2$s"
-
-#: ../../include/conversation.php:212
-#, php-format
-msgid "%1$s is now connected with %2$s"
-msgstr "%1$s теперь в контакте с %2$s"
-
-#: ../../include/conversation.php:247
-#, php-format
-msgid "%1$s poked %2$s"
-msgstr "%1$s ткнул %2$s"
-
-#: ../../include/conversation.php:268 ../../Zotlabs/Module/Mood.php:75
-#, php-format
-msgctxt "mood"
-msgid "%1$s is %2$s"
-msgstr "%1$s в %2$s"
-
-#: ../../include/conversation.php:483 ../../Zotlabs/Lib/ThreadItem.php:440
-msgid "This is an unsaved preview"
-msgstr "Это несохранённый просмотр"
-
-#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1139
-msgctxt "title"
-msgid "Likes"
-msgstr "Нравится"
-
-#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1139
-msgctxt "title"
-msgid "Dislikes"
-msgstr "Не нравится"
-
-#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1140
-msgctxt "title"
-msgid "Agree"
-msgstr "Согласен"
-
-#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1140
-msgctxt "title"
-msgid "Disagree"
-msgstr "Не согласен"
-
-#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1140
-msgctxt "title"
-msgid "Abstain"
-msgstr "Воздержался"
-
-#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1141
-msgctxt "title"
-msgid "Attending"
-msgstr "Посещаю"
-
-#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1141
-msgctxt "title"
-msgid "Not attending"
-msgstr "Не посещаю"
-
-#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1141
-msgctxt "title"
-msgid "Might attend"
-msgstr "Возможно посещу"
-
-#: ../../include/conversation.php:690 ../../Zotlabs/Lib/ThreadItem.php:160
-msgid "Select"
-msgstr "Выбрать"
+#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1117
+#: ../../Zotlabs/Module/Wiki.php:301 ../../Zotlabs/Module/Layouts.php:194
+#: ../../Zotlabs/Module/Webpages.php:256 ../../Zotlabs/Widget/Cdav.php:124
+#: ../../addon/hsse/hsse.php:186 ../../include/conversation.php:1392
+msgid "Share"
+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/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/Blocks.php:162 ../../Zotlabs/Module/Editlayout.php:138
+#: ../../Zotlabs/Module/Cdav.php:942 ../../Zotlabs/Module/Cdav.php:1232
+#: ../../Zotlabs/Module/Article_edit.php:129
#: ../../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/Admin/Channels.php:149
+#: ../../Zotlabs/Module/Admin/Profs.php:176 ../../Zotlabs/Module/Thing.php:267
+#: ../../Zotlabs/Module/Oauth2.php:195 ../../Zotlabs/Module/Editblock.php:139
#: ../../Zotlabs/Module/Connections.php:292
-#: ../../Zotlabs/Module/Card_edit.php:129
-#: ../../Zotlabs/Module/Article_edit.php:129
-#: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Lib/Apps.php:535
-#: ../../Zotlabs/Lib/ThreadItem.php:150
+#: ../../Zotlabs/Module/Photos.php:1220 ../../Zotlabs/Module/Connedit.php:668
+#: ../../Zotlabs/Module/Connedit.php:940 ../../Zotlabs/Module/Profiles.php:800
+#: ../../Zotlabs/Module/Editwebpage.php:167
+#: ../../Zotlabs/Module/Webpages.php:257 ../../Zotlabs/Module/Card_edit.php:129
+#: ../../Zotlabs/Module/Oauth.php:174 ../../Zotlabs/Lib/Apps.php:557
+#: ../../Zotlabs/Lib/ThreadItem.php:167 ../../Zotlabs/Storage/Browser.php:291
+#: ../../include/conversation.php:691 ../../include/conversation.php:736
msgid "Delete"
msgstr "Удалить"
-#: ../../include/conversation.php:695 ../../Zotlabs/Lib/ThreadItem.php:249
-msgid "Toggle Star Status"
-msgstr "Переключить статус пометки"
-
-#: ../../include/conversation.php:700 ../../Zotlabs/Lib/ThreadItem.php:99
-msgid "Private Message"
-msgstr "Личное сообщение"
-
-#: ../../include/conversation.php:707 ../../Zotlabs/Lib/ThreadItem.php:260
-msgid "Message signature validated"
-msgstr "Подпись сообщения проверена"
-
-#: ../../include/conversation.php:708 ../../Zotlabs/Lib/ThreadItem.php:261
-msgid "Message signature incorrect"
-msgstr "Подпись сообщения неверная"
-
-#: ../../include/conversation.php:735
-#: ../../Zotlabs/Module/Admin/Accounts.php:173
-#: ../../Zotlabs/Module/Connections.php:306
-msgid "Approve"
-msgstr "Утвердить"
-
-#: ../../include/conversation.php:739
-#, php-format
-msgid "View %s's profile @ %s"
-msgstr "Просмотреть профиль %s @ %s"
-
-#: ../../include/conversation.php:759
-msgid "Categories:"
-msgstr "Категории:"
-
-#: ../../include/conversation.php:760
-msgid "Filed under:"
-msgstr "Хранить под:"
-
-#: ../../include/conversation.php:766 ../../Zotlabs/Lib/ThreadItem.php:375
-#, php-format
-msgid "from %s"
-msgstr "от %s"
-
-#: ../../include/conversation.php:769 ../../Zotlabs/Lib/ThreadItem.php:378
-#, php-format
-msgid "last edited: %s"
-msgstr "последнее редактирование: %s"
-
-#: ../../include/conversation.php:770 ../../Zotlabs/Lib/ThreadItem.php:379
-#, php-format
-msgid "Expires: %s"
-msgstr "Срок действия: %s"
-
-#: ../../include/conversation.php:785
-msgid "View in context"
-msgstr "Показать в контексте"
-
-#: ../../include/conversation.php:787 ../../Zotlabs/Module/Photos.php:1105
-#: ../../Zotlabs/Lib/ThreadItem.php:441
-msgid "Please wait"
-msgstr "Подождите пожалуйста"
-
-#: ../../include/conversation.php:886
-msgid "remove"
-msgstr "удалить"
-
-#: ../../include/conversation.php:890
-msgid "Loading..."
-msgstr "Загрузка..."
-
-#: ../../include/conversation.php:891 ../../Zotlabs/Lib/ThreadItem.php:273
-msgid "Conversation Tools"
-msgstr "Инструменты общения"
-
-#: ../../include/conversation.php:892
-msgid "Delete Selected Items"
-msgstr "Удалить выбранные элементы"
-
-#: ../../include/conversation.php:935
-msgid "View Source"
-msgstr "Просмотреть источник"
-
-#: ../../include/conversation.php:945
-msgid "Follow Thread"
-msgstr "Следить за темой"
-
-#: ../../include/conversation.php:954
-msgid "Unfollow Thread"
-msgstr "Прекратить отслеживать тему"
-
-#: ../../include/conversation.php:1038 ../../include/nav.php:106
-#: ../../Zotlabs/Module/Connedit.php:595 ../../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
-msgid "Recent Activity"
-msgstr "Последние действия"
-
-#: ../../include/conversation.php:1068
-msgid "Edit Connection"
-msgstr "Редактировать контакт"
-
-#: ../../include/conversation.php:1078
-msgid "Message"
-msgstr "Сообщение"
-
-#: ../../include/conversation.php:1088 ../../Zotlabs/Module/Ratings.php:97
-#: ../../Zotlabs/Module/Pubsites.php:35
-msgid "Ratings"
-msgstr "Оценки"
-
-#: ../../include/conversation.php:1098 ../../Zotlabs/Module/Poke.php:199
-#: ../../Zotlabs/Lib/Apps.php:326
-msgid "Poke"
-msgstr "Ткнуть"
-
-#: ../../include/conversation.php:1166 ../../Zotlabs/Storage/Browser.php:164
-#: ../../Zotlabs/Module/Cdav.php:811 ../../Zotlabs/Module/Cdav.php:812
-#: ../../Zotlabs/Module/Cdav.php:819 ../../Zotlabs/Module/Photos.php:819
-#: ../../Zotlabs/Module/Photos.php:1275
-#: ../../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
-msgid "Unknown"
-msgstr "Неизвестный"
-
-#: ../../include/conversation.php:1212
-#, php-format
-msgid "%s likes this."
-msgstr "%s нравится это."
-
-#: ../../include/conversation.php:1212
-#, php-format
-msgid "%s doesn't like this."
-msgstr "%s не нравится это."
+#: ../../Zotlabs/Module/Blocks.php:166 ../../Zotlabs/Module/Events.php:695
+#: ../../Zotlabs/Module/Wiki.php:213 ../../Zotlabs/Module/Wiki.php:409
+#: ../../Zotlabs/Module/Layouts.php:198 ../../Zotlabs/Module/Webpages.php:261
+#: ../../Zotlabs/Module/Pubsites.php:60
+msgid "View"
+msgstr "Просмотр"
-#: ../../include/conversation.php:1216
-#, php-format
-msgid "<span %1$s>%2$d people</span> like this."
-msgid_plural "<span %1$s>%2$d people</span> like this."
-msgstr[0] "<span %1$s>%2$d человеку</span> это нравится."
-msgstr[1] "<span %1$s>%2$d человекам</span> это нравится."
-msgstr[2] "<span %1$s>%2$d человекам</span> это нравится."
+#: ../../Zotlabs/Module/Invite.php:37
+msgid "Total invitation limit exceeded."
+msgstr "Превышено общее количество приглашений."
-#: ../../include/conversation.php:1218
+#: ../../Zotlabs/Module/Invite.php:61
#, php-format
-msgid "<span %1$s>%2$d people</span> don't like this."
-msgid_plural "<span %1$s>%2$d people</span> don't like this."
-msgstr[0] "<span %1$s>%2$d человеку</span> это не нравится."
-msgstr[1] "<span %1$s>%2$d человекам</span> это не нравится."
-msgstr[2] "<span %1$s>%2$d человекам</span> это не нравится."
+msgid "%s : Not a valid email address."
+msgstr "%s : Недействительный адрес электронной почты."
-#: ../../include/conversation.php:1224
-msgid "and"
-msgstr "и"
+#: ../../Zotlabs/Module/Invite.php:75
+msgid "Please join us on $Projectname"
+msgstr "Присоединятесь к $Projectname !"
-#: ../../include/conversation.php:1227
-#, php-format
-msgid ", and %d other people"
-msgid_plural ", and %d other people"
-msgstr[0] ", и ещё %d человеку"
-msgstr[1] ", и ещё %d человекам"
-msgstr[2] ", и ещё %d человекам"
+#: ../../Zotlabs/Module/Invite.php:85
+msgid "Invitation limit exceeded. Please contact your site administrator."
+msgstr "Превышен лимит приглашений. Пожалуйста, свяжитесь с администрацией сайта."
-#: ../../include/conversation.php:1228
+#: ../../Zotlabs/Module/Invite.php:90
+#: ../../addon/notifyadmin/notifyadmin.php:40
#, php-format
-msgid "%s like this."
-msgstr "%s нравится это."
+msgid "%s : Message delivery failed."
+msgstr "%s : Доставка сообщения не удалась."
-#: ../../include/conversation.php:1228
+#: ../../Zotlabs/Module/Invite.php:94
#, php-format
-msgid "%s don't like this."
-msgstr "%s не нравится это."
-
-#: ../../include/conversation.php:1285
-#: ../../extend/addon/hzaddons/hsse/hsse.php:82
-msgid "Set your location"
-msgstr "Задать своё местоположение"
-
-#: ../../include/conversation.php:1286
-#: ../../extend/addon/hzaddons/hsse/hsse.php:83
-msgid "Clear browser location"
-msgstr "Очистить местоположение из браузера"
-
-#: ../../include/conversation.php:1298 ../../Zotlabs/Module/Mail.php:288
-#: ../../Zotlabs/Module/Mail.php:430 ../../Zotlabs/Module/Chat.php:222
-#: ../../Zotlabs/Module/Editblock.php:116
-#: ../../Zotlabs/Module/Editwebpage.php:143
-#: ../../Zotlabs/Module/Card_edit.php:101
-#: ../../Zotlabs/Module/Article_edit.php:101
-#: ../../extend/addon/hzaddons/hsse/hsse.php:95
-msgid "Insert web link"
-msgstr "Вставить веб-ссылку"
-
-#: ../../include/conversation.php:1302
-#: ../../extend/addon/hzaddons/hsse/hsse.php:99
-msgid "Embed (existing) photo from your photo albums"
-msgstr "Встроить (существующее) фото из вашего фотоальбома"
+msgid "%d message sent."
+msgid_plural "%d messages sent."
+msgstr[0] "%d сообщение отправлено."
+msgstr[1] "%d сообщения отправлено."
+msgstr[2] "%d сообщений отправлено."
-#: ../../include/conversation.php:1337 ../../Zotlabs/Module/Mail.php:241
-#: ../../Zotlabs/Module/Mail.php:362 ../../Zotlabs/Module/Chat.php:220
-#: ../../extend/addon/hzaddons/hsse/hsse.php:134
-msgid "Please enter a link URL:"
-msgstr "Пожалуйста введите URL ссылки:"
+#: ../../Zotlabs/Module/Invite.php:110
+msgid "Invite App"
+msgstr "Приложение \"Пригласить\""
-#: ../../include/conversation.php:1338
-#: ../../extend/addon/hzaddons/hsse/hsse.php:135
-msgid "Tag term:"
-msgstr "Теги:"
+#: ../../Zotlabs/Module/Invite.php:110 ../../Zotlabs/Module/Articles.php:51
+#: ../../Zotlabs/Module/Cdav.php:839 ../../Zotlabs/Module/Cdav.php:848
+#: ../../Zotlabs/Module/Permcats.php:62 ../../Zotlabs/Module/Lang.php:17
+#: ../../Zotlabs/Module/Uexport.php:61 ../../Zotlabs/Module/Pubstream.php:20
+#: ../../Zotlabs/Module/Connect.php:104 ../../Zotlabs/Module/Tokens.php:99
+#: ../../Zotlabs/Module/Oauth2.php:106 ../../Zotlabs/Module/Randprof.php:29
+#: ../../Zotlabs/Module/Mood.php:134 ../../Zotlabs/Module/Bookmarks.php:78
+#: ../../Zotlabs/Module/Wiki.php:52 ../../Zotlabs/Module/Pdledit.php:42
+#: ../../Zotlabs/Module/Poke.php:165 ../../Zotlabs/Module/Chat.php:102
+#: ../../Zotlabs/Module/Notes.php:56 ../../Zotlabs/Module/Affinity.php:52
+#: ../../Zotlabs/Module/Defperms.php:189 ../../Zotlabs/Module/Group.php:106
+#: ../../Zotlabs/Module/Cards.php:51 ../../Zotlabs/Module/Webpages.php:48
+#: ../../Zotlabs/Module/Sources.php:88 ../../Zotlabs/Module/Suggest.php:40
+#: ../../Zotlabs/Module/Probe.php:18 ../../Zotlabs/Module/Oauth.php:100
+#: ../../addon/skeleton/Mod_Skeleton.php:32
+#: ../../addon/gnusoc/Mod_Gnusoc.php:22 ../../addon/planets/Mod_Planets.php:20
+#: ../../addon/wppost/Mod_Wppost.php:41 ../../addon/nsfw/Mod_Nsfw.php:33
+#: ../../addon/ijpost/Mod_Ijpost.php:35 ../../addon/dwpost/Mod_Dwpost.php:36
+#: ../../addon/gallery/Mod_Gallery.php:58 ../../addon/ljpost/Mod_Ljpost.php:36
+#: ../../addon/startpage/Mod_Startpage.php:50
+#: ../../addon/diaspora/Mod_Diaspora.php:55
+#: ../../addon/photocache/Mod_Photocache.php:42
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:21
+#: ../../addon/nsabait/Mod_Nsabait.php:20
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:34 ../../addon/rtof/Mod_Rtof.php:36
+#: ../../addon/jappixmini/Mod_Jappixmini.php:96
+#: ../../addon/superblock/Mod_Superblock.php:20
+#: ../../addon/nofed/Mod_Nofed.php:33 ../../addon/redred/Mod_Redred.php:50
+#: ../../addon/hsse/Mod_Hsse.php:21 ../../addon/pubcrawl/Mod_Pubcrawl.php:40
+#: ../../addon/libertree/Mod_Libertree.php:35
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:53
+#: ../../addon/statusnet/Mod_Statusnet.php:146
+#: ../../addon/twitter/Mod_Twitter.php:78
+#: ../../addon/smileybutton/Mod_Smileybutton.php:35
+#: ../../addon/sendzid/Mod_Sendzid.php:20
+#: ../../addon/pageheader/Mod_Pageheader.php:34
+#: ../../addon/authchoose/Mod_Authchoose.php:28
+#: ../../addon/xmpp/Mod_Xmpp.php:35 ../../addon/pumpio/Mod_Pumpio.php:53
+msgid "Not Installed"
+msgstr "не установлено"
-#: ../../include/conversation.php:1339
-#: ../../extend/addon/hzaddons/hsse/hsse.php:136
-msgid "Where are you right now?"
-msgstr "Где вы сейчас?"
+#: ../../Zotlabs/Module/Invite.php:111
+msgid "Send email invitations to join this network"
+msgstr "Отправить приглашение присоединиться к этой сети по электронной почте"
-#: ../../include/conversation.php:1342 ../../Zotlabs/Module/Cover_photo.php:401
-#: ../../Zotlabs/Module/Profile_photo.php:467 ../../Zotlabs/Module/Wiki.php:403
-#: ../../extend/addon/hzaddons/hsse/hsse.php:139
-msgid "Choose images to embed"
-msgstr "Выбрать изображения для встраивания"
+#: ../../Zotlabs/Module/Invite.php:124
+msgid "You have no more invitations available"
+msgstr "У вас больше нет приглашений"
-#: ../../include/conversation.php:1343 ../../Zotlabs/Module/Cover_photo.php:402
-#: ../../Zotlabs/Module/Profile_photo.php:468 ../../Zotlabs/Module/Wiki.php:404
-#: ../../extend/addon/hzaddons/hsse/hsse.php:140
-msgid "Choose an album"
-msgstr "Выбрать альбом"
+#: ../../Zotlabs/Module/Invite.php:155
+msgid "Send invitations"
+msgstr "Отправить приглашение"
-#: ../../include/conversation.php:1344
-#: ../../extend/addon/hzaddons/hsse/hsse.php:141
-msgid "Choose a different album..."
-msgstr "Выбрать другой альбом..."
+#: ../../Zotlabs/Module/Invite.php:156
+msgid "Enter email addresses, one per line:"
+msgstr "Введите адреса электронной почты, по одному в строке:"
-#: ../../include/conversation.php:1345 ../../Zotlabs/Module/Cover_photo.php:404
-#: ../../Zotlabs/Module/Profile_photo.php:470 ../../Zotlabs/Module/Wiki.php:406
-#: ../../extend/addon/hzaddons/hsse/hsse.php:142
-msgid "Error getting album list"
-msgstr "Ошибка получения списка альбомов"
+#: ../../Zotlabs/Module/Invite.php:157 ../../Zotlabs/Module/Mail.php:285
+msgid "Your message:"
+msgstr "Сообщение:"
-#: ../../include/conversation.php:1346 ../../Zotlabs/Module/Cover_photo.php:405
-#: ../../Zotlabs/Module/Profile_photo.php:471 ../../Zotlabs/Module/Wiki.php:407
-#: ../../extend/addon/hzaddons/hsse/hsse.php:143
-msgid "Error getting photo link"
-msgstr "Ошибка получения ссылки на фотографию"
+#: ../../Zotlabs/Module/Invite.php:158
+msgid "Please join my community on $Projectname."
+msgstr "Присоединятесь к нашему сообществу $Projectname !"
-#: ../../include/conversation.php:1347 ../../Zotlabs/Module/Cover_photo.php:406
-#: ../../Zotlabs/Module/Profile_photo.php:472 ../../Zotlabs/Module/Wiki.php:408
-#: ../../extend/addon/hzaddons/hsse/hsse.php:144
-msgid "Error getting album"
-msgstr "Ошибка получения альбома"
+#: ../../Zotlabs/Module/Invite.php:160
+msgid "You will need to supply this invitation code:"
+msgstr "Вам нужно предоставит этот код приглашения:"
-#: ../../include/conversation.php:1348
-#: ../../extend/addon/hzaddons/hsse/hsse.php:145
-msgid "Comments enabled"
-msgstr "Комментарии включены"
+#: ../../Zotlabs/Module/Invite.php:161
+msgid "1. Register at any $Projectname location (they are all inter-connected)"
+msgstr "1. Зарегистрируйтесь на любом из серверов $Projectname"
-#: ../../include/conversation.php:1349
-#: ../../extend/addon/hzaddons/hsse/hsse.php:146
-msgid "Comments disabled"
-msgstr "Комментарии отключены"
+#: ../../Zotlabs/Module/Invite.php:163
+msgid "2. Enter my $Projectname network address into the site searchbar."
+msgstr "2. Введите сетевой адрес $Projectname в поисковой строке сайта"
-#: ../../include/conversation.php:1356 ../../Zotlabs/Module/Photos.php:1125
-#: ../../Zotlabs/Module/Events.php:480 ../../Zotlabs/Module/Webpages.php:262
-#: ../../Zotlabs/Lib/ThreadItem.php:777
-#: ../../extend/addon/hzaddons/hsse/hsse.php:153
-msgid "Preview"
-msgstr "Предварительный просмотр"
+#: ../../Zotlabs/Module/Invite.php:164
+msgid "or visit"
+msgstr "или посетите"
-#: ../../include/conversation.php:1389 ../../Zotlabs/Module/Photos.php:1104
-#: ../../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
-#: ../../extend/addon/hzaddons/hsse/hsse.php:186
-msgid "Share"
-msgstr "Поделиться"
+#: ../../Zotlabs/Module/Invite.php:166
+msgid "3. Click [Connect]"
+msgstr "Нажать [Подключиться]"
-#: ../../include/conversation.php:1398
-#: ../../extend/addon/hzaddons/hsse/hsse.php:195
-msgid "Page link name"
-msgstr "Название ссылки на страницу "
+#: ../../Zotlabs/Module/Invite.php:168 ../../Zotlabs/Module/Permcats.php:128
+#: ../../Zotlabs/Module/Locs.php:121 ../../Zotlabs/Module/Mitem.php:259
+#: ../../Zotlabs/Module/Events.php:495 ../../Zotlabs/Module/Appman.php:155
+#: ../../Zotlabs/Module/Import_items.php:129 ../../Zotlabs/Module/Setup.php:308
+#: ../../Zotlabs/Module/Setup.php:349 ../../Zotlabs/Module/Connect.php:124
+#: ../../Zotlabs/Module/Admin/Features.php:66
+#: ../../Zotlabs/Module/Admin/Accounts.php:168
+#: ../../Zotlabs/Module/Admin/Logs.php:84
+#: ../../Zotlabs/Module/Admin/Channels.php:147
+#: ../../Zotlabs/Module/Admin/Themes.php:158
+#: ../../Zotlabs/Module/Admin/Site.php:289
+#: ../../Zotlabs/Module/Admin/Addons.php:441
+#: ../../Zotlabs/Module/Admin/Profs.php:178
+#: ../../Zotlabs/Module/Admin/Account_edit.php:73
+#: ../../Zotlabs/Module/Admin/Security.php:112
+#: ../../Zotlabs/Module/Settings/Channel.php:493
+#: ../../Zotlabs/Module/Settings/Features.php:46
+#: ../../Zotlabs/Module/Settings/Events.php:41
+#: ../../Zotlabs/Module/Settings/Calendar.php:41
+#: ../../Zotlabs/Module/Settings/Conversation.php:48
+#: ../../Zotlabs/Module/Settings/Connections.php:41
+#: ../../Zotlabs/Module/Settings/Photos.php:41
+#: ../../Zotlabs/Module/Settings/Account.php:103
+#: ../../Zotlabs/Module/Settings/Profiles.php:50
+#: ../../Zotlabs/Module/Settings/Manage.php:41
+#: ../../Zotlabs/Module/Settings/Channel_home.php:89
+#: ../../Zotlabs/Module/Settings/Directory.php:41
+#: ../../Zotlabs/Module/Settings/Editor.php:41
+#: ../../Zotlabs/Module/Settings/Display.php:189
+#: ../../Zotlabs/Module/Settings/Network.php:61
+#: ../../Zotlabs/Module/Tokens.php:188 ../../Zotlabs/Module/Thing.php:326
+#: ../../Zotlabs/Module/Thing.php:379 ../../Zotlabs/Module/Import.php:574
+#: ../../Zotlabs/Module/Oauth2.php:116 ../../Zotlabs/Module/Cal.php:344
+#: ../../Zotlabs/Module/Mood.php:158 ../../Zotlabs/Module/Photos.php:1097
+#: ../../Zotlabs/Module/Photos.php:1138 ../../Zotlabs/Module/Photos.php:1257
+#: ../../Zotlabs/Module/Wiki.php:215 ../../Zotlabs/Module/Pdledit.php:107
+#: ../../Zotlabs/Module/Poke.php:217 ../../Zotlabs/Module/Connedit.php:904
+#: ../../Zotlabs/Module/Chat.php:211 ../../Zotlabs/Module/Chat.php:250
+#: ../../Zotlabs/Module/Email_validation.php:40
+#: ../../Zotlabs/Module/Pconfig.php:116 ../../Zotlabs/Module/Affinity.php:87
+#: ../../Zotlabs/Module/Defperms.php:265 ../../Zotlabs/Module/Group.php:150
+#: ../../Zotlabs/Module/Group.php:166 ../../Zotlabs/Module/Profiles.php:723
+#: ../../Zotlabs/Module/Editpost.php:85 ../../Zotlabs/Module/Sources.php:125
+#: ../../Zotlabs/Module/Sources.php:162 ../../Zotlabs/Module/Xchan.php:15
+#: ../../Zotlabs/Module/Mail.php:431 ../../Zotlabs/Module/Filestorage.php:183
+#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Module/Oauth.php:111
+#: ../../Zotlabs/Lib/ThreadItem.php:795 ../../Zotlabs/Widget/Eventstools.php:16
+#: ../../Zotlabs/Widget/Wiki_pages.php:42
+#: ../../Zotlabs/Widget/Wiki_pages.php:99
+#: ../../view/theme/redbasic_c/php/config.php:95
+#: ../../view/theme/redbasic/php/config.php:94
+#: ../../addon/skeleton/Mod_Skeleton.php:51
+#: ../../addon/openclipatar/openclipatar.php:53
+#: ../../addon/wppost/Mod_Wppost.php:97 ../../addon/nsfw/Mod_Nsfw.php:61
+#: ../../addon/ijpost/Mod_Ijpost.php:72 ../../addon/dwpost/Mod_Dwpost.php:71
+#: ../../addon/likebanner/likebanner.php:57
+#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:45
+#: ../../addon/ljpost/Mod_Ljpost.php:73
+#: ../../addon/startpage/Mod_Startpage.php:73
+#: ../../addon/diaspora/Mod_Diaspora.php:99
+#: ../../addon/photocache/Mod_Photocache.php:67
+#: ../../addon/hzfiles/hzfiles.php:84 ../../addon/mailtest/mailtest.php:100
+#: ../../addon/openstreetmap/openstreetmap.php:169
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:56 ../../addon/rtof/Mod_Rtof.php:72
+#: ../../addon/jappixmini/Mod_Jappixmini.php:261
+#: ../../addon/channelreputation/channelreputation.php:140
+#: ../../addon/nofed/Mod_Nofed.php:53 ../../addon/redred/Mod_Redred.php:90
+#: ../../addon/logrot/logrot.php:35 ../../addon/frphotos/frphotos.php:97
+#: ../../addon/pubcrawl/Mod_Pubcrawl.php:63
+#: ../../addon/chords/Mod_Chords.php:60
+#: ../../addon/libertree/Mod_Libertree.php:70
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:92
+#: ../../addon/statusnet/Mod_Statusnet.php:193
+#: ../../addon/statusnet/Mod_Statusnet.php:251
+#: ../../addon/statusnet/Mod_Statusnet.php:306
+#: ../../addon/statusnet/statusnet.php:602
+#: ../../addon/twitter/Mod_Twitter.php:184
+#: ../../addon/smileybutton/Mod_Smileybutton.php:55
+#: ../../addon/cart/Settings/Cart.php:114 ../../addon/cart/cart.php:1264
+#: ../../addon/cart/submodules/manualcat.php:248
+#: ../../addon/cart/submodules/hzservices.php:640
+#: ../../addon/cart/submodules/subscriptions.php:410
+#: ../../addon/piwik/piwik.php:95 ../../addon/pageheader/Mod_Pageheader.php:54
+#: ../../addon/xmpp/Mod_Xmpp.php:70 ../../addon/pumpio/Mod_Pumpio.php:115
+#: ../../addon/redfiles/redfiles.php:124 ../../addon/hubwall/hubwall.php:95
+#: ../../include/js_strings.php:22
+msgid "Submit"
+msgstr "Отправить"
-#: ../../include/conversation.php:1401
-#: ../../extend/addon/hzaddons/hsse/hsse.php:198
-msgid "Post as"
-msgstr "Опубликовать как"
+#: ../../Zotlabs/Module/Articles.php:51
+msgid "Articles App"
+msgstr "Приложение \"Статьи\""
-#: ../../include/conversation.php:1403 ../../Zotlabs/Lib/ThreadItem.php:768
-#: ../../extend/addon/hzaddons/hsse/hsse.php:200
-msgid "Bold"
-msgstr "Жирный"
+#: ../../Zotlabs/Module/Articles.php:52
+msgid "Create interactive articles"
+msgstr "Создать интерактивные статьи"
-#: ../../include/conversation.php:1404 ../../Zotlabs/Lib/ThreadItem.php:769
-#: ../../extend/addon/hzaddons/hsse/hsse.php:201
-msgid "Italic"
-msgstr "Курсив"
+#: ../../Zotlabs/Module/Articles.php:115
+msgid "Add Article"
+msgstr "Добавить статью"
-#: ../../include/conversation.php:1405 ../../Zotlabs/Lib/ThreadItem.php:770
-#: ../../extend/addon/hzaddons/hsse/hsse.php:202
-msgid "Underline"
-msgstr "Подчеркнутый"
+#: ../../Zotlabs/Module/Articles.php:222 ../../Zotlabs/Lib/Apps.php:324
+#: ../../include/nav.php:512
+msgid "Articles"
+msgstr "Статьи"
-#: ../../include/conversation.php:1406 ../../Zotlabs/Lib/ThreadItem.php:771
-#: ../../extend/addon/hzaddons/hsse/hsse.php:203
-msgid "Quote"
-msgstr "Цитата"
+#: ../../Zotlabs/Module/Editlayout.php:79
+#: ../../Zotlabs/Module/Article_edit.php:17
+#: ../../Zotlabs/Module/Article_edit.php:33
+#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95
+#: ../../Zotlabs/Module/Editwebpage.php:80 ../../Zotlabs/Module/Editpost.php:24
+#: ../../Zotlabs/Module/Card_edit.php:17 ../../Zotlabs/Module/Card_edit.php:33
+msgid "Item not found"
+msgstr "Элемент не найден"
-#: ../../include/conversation.php:1407 ../../Zotlabs/Lib/ThreadItem.php:772
-#: ../../extend/addon/hzaddons/hsse/hsse.php:204
-msgid "Code"
-msgstr "Код"
+#: ../../Zotlabs/Module/Editlayout.php:128 ../../Zotlabs/Module/Layouts.php:129
+#: ../../Zotlabs/Module/Layouts.php:189
+msgid "Layout Name"
+msgstr "Название шаблона"
-#: ../../include/conversation.php:1408 ../../Zotlabs/Lib/ThreadItem.php:774
-#: ../../extend/addon/hzaddons/hsse/hsse.php:205
-msgid "Attach/Upload file"
-msgstr "Прикрепить/загрузить файл"
+#: ../../Zotlabs/Module/Editlayout.php:129 ../../Zotlabs/Module/Layouts.php:132
+msgid "Layout Description (Optional)"
+msgstr "Описание шаблона (необязательно)"
-#: ../../include/conversation.php:1411 ../../Zotlabs/Module/Wiki.php:400
-#: ../../extend/addon/hzaddons/hsse/hsse.php:208
-msgid "Embed an image from your albums"
-msgstr "Встроить изображение из ваших альбомов"
+#: ../../Zotlabs/Module/Editlayout.php:137
+msgid "Edit Layout"
+msgstr "Редактировать шаблон"
-#: ../../include/conversation.php:1412 ../../include/conversation.php:1461
-#: ../../Zotlabs/Module/Cdav.php:944 ../../Zotlabs/Module/Cdav.php:1233
-#: ../../Zotlabs/Module/Profiles.php:801 ../../Zotlabs/Module/Tagrm.php:15
-#: ../../Zotlabs/Module/Tagrm.php:138 ../../Zotlabs/Module/Oauth.php:112
-#: ../../Zotlabs/Module/Oauth.php:138 ../../Zotlabs/Module/Cover_photo.php:399
+#: ../../Zotlabs/Module/Editlayout.php:140 ../../Zotlabs/Module/Cdav.php:944
+#: ../../Zotlabs/Module/Cdav.php:1233 ../../Zotlabs/Module/Article_edit.php:131
+#: ../../Zotlabs/Module/Admin/Addons.php:426
#: ../../Zotlabs/Module/Oauth2.php:117 ../../Zotlabs/Module/Oauth2.php:145
-#: ../../Zotlabs/Module/Editlayout.php:140
-#: ../../Zotlabs/Module/Editblock.php:141 ../../Zotlabs/Module/Fbrowser.php:66
-#: ../../Zotlabs/Module/Fbrowser.php:88
-#: ../../Zotlabs/Module/Admin/Addons.php:423
+#: ../../Zotlabs/Module/Editblock.php:141 ../../Zotlabs/Module/Wiki.php:368
+#: ../../Zotlabs/Module/Wiki.php:401 ../../Zotlabs/Module/Profile_photo.php:465
+#: ../../Zotlabs/Module/Connedit.php:941 ../../Zotlabs/Module/Fbrowser.php:66
+#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:801
#: ../../Zotlabs/Module/Editwebpage.php:169
-#: ../../Zotlabs/Module/Profile_photo.php:465
-#: ../../Zotlabs/Module/Editpost.php:109 ../../Zotlabs/Module/Connedit.php:925
-#: ../../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
-#: ../../extend/addon/hzaddons/hsse/hsse.php:209
-#: ../../extend/addon/hzaddons/hsse/hsse.php:258
+#: ../../Zotlabs/Module/Editpost.php:109 ../../Zotlabs/Module/Filer.php:55
+#: ../../Zotlabs/Module/Cover_photo.php:399 ../../Zotlabs/Module/Tagrm.php:15
+#: ../../Zotlabs/Module/Tagrm.php:138 ../../Zotlabs/Module/Card_edit.php:131
+#: ../../Zotlabs/Module/Oauth.php:112 ../../Zotlabs/Module/Oauth.php:138
+#: ../../addon/hsse/hsse.php:209 ../../addon/hsse/hsse.php:258
+#: ../../include/conversation.php:1415 ../../include/conversation.php:1464
msgid "Cancel"
msgstr "Отменить"
-#: ../../include/conversation.php:1413 ../../include/conversation.php:1460
-#: ../../Zotlabs/Module/Cover_photo.php:400
-#: ../../Zotlabs/Module/Profile_photo.php:466 ../../Zotlabs/Module/Wiki.php:402
-#: ../../extend/addon/hzaddons/hsse/hsse.php:210
-#: ../../extend/addon/hzaddons/hsse/hsse.php:257
-msgid "OK"
-msgstr ""
-
-#: ../../include/conversation.php:1415
-#: ../../extend/addon/hzaddons/hsse/hsse.php:212
-msgid "Toggle voting"
-msgstr "Подключить голосование"
-
-#: ../../include/conversation.php:1418
-#: ../../extend/addon/hzaddons/hsse/hsse.php:215
-msgid "Disable comments"
-msgstr "Отключить комментарии"
-
-#: ../../include/conversation.php:1419
-#: ../../extend/addon/hzaddons/hsse/hsse.php:216
-msgid "Toggle comments"
-msgstr "Переключить комментарии"
-
-#: ../../include/conversation.php:1424 ../../Zotlabs/Module/Photos.php:700
-#: ../../Zotlabs/Module/Photos.php:1070 ../../Zotlabs/Module/Editblock.php:129
-#: ../../Zotlabs/Module/Card_edit.php:117
-#: ../../Zotlabs/Module/Article_edit.php:117
-#: ../../extend/addon/hzaddons/hsse/hsse.php:221
-msgid "Title (optional)"
-msgstr "Заголовок (необязательно)"
-
-#: ../../include/conversation.php:1427
-#: ../../extend/addon/hzaddons/hsse/hsse.php:224
-msgid "Categories (optional, comma-separated list)"
-msgstr "Категории (необязательно, список через запятую)"
-
-#: ../../include/conversation.php:1428 ../../Zotlabs/Module/Events.php:481
-#: ../../extend/addon/hzaddons/hsse/hsse.php:225
-msgid "Permission settings"
-msgstr "Настройки разрешений"
-
-#: ../../include/conversation.php:1450
-#: ../../extend/addon/hzaddons/hsse/hsse.php:247
-msgid "Other networks and post services"
-msgstr "Другие сети и службы публикаций"
-
-#: ../../include/conversation.php:1453 ../../Zotlabs/Module/Mail.php:292
-#: ../../Zotlabs/Module/Mail.php:434
-#: ../../extend/addon/hzaddons/hsse/hsse.php:250
-msgid "Set expiration date"
-msgstr "Установить срок действия"
-
-#: ../../include/conversation.php:1456
-#: ../../extend/addon/hzaddons/hsse/hsse.php:253
-msgid "Set publish date"
-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
-#: ../../extend/addon/hzaddons/hsse/hsse.php:255
-msgid "Encrypt text"
-msgstr "Зашифровать текст"
-
-#: ../../include/conversation.php:1696 ../../Zotlabs/Module/Photos.php:1167
-#: ../../Zotlabs/Lib/ThreadItem.php:223
-msgctxt "noun"
-msgid "Dislike"
-msgid_plural "Dislikes"
-msgstr[0] "Не нравится"
-msgstr[1] "Не нравится"
-msgstr[2] "Не нравится"
-
-#: ../../include/conversation.php:1699
-msgctxt "noun"
-msgid "Attending"
-msgid_plural "Attending"
-msgstr[0] "Посетит"
-msgstr[1] "Посетят"
-msgstr[2] "Посетят"
-
-#: ../../include/conversation.php:1702
-msgctxt "noun"
-msgid "Not Attending"
-msgid_plural "Not Attending"
-msgstr[0] "Не посетит"
-msgstr[1] "Не посетят"
-msgstr[2] "Не посетят"
-
-#: ../../include/conversation.php:1705
-msgctxt "noun"
-msgid "Undecided"
-msgid_plural "Undecided"
-msgstr "Не решил"
-
-#: ../../include/conversation.php:1708
-msgctxt "noun"
-msgid "Agree"
-msgid_plural "Agrees"
-msgstr[0] "Согласен"
-msgstr[1] "Согласны"
-msgstr[2] "Согласны"
-
-#: ../../include/conversation.php:1711
-msgctxt "noun"
-msgid "Disagree"
-msgid_plural "Disagrees"
-msgstr[0] "Не согласен"
-msgstr[1] "Не согласны"
-msgstr[2] "Не согласны"
-
-#: ../../include/conversation.php:1714
-msgctxt "noun"
-msgid "Abstain"
-msgid_plural "Abstains"
-msgstr[0] "Воздержался"
-msgstr[1] "Воздержались"
-msgstr[2] "Воздержались"
-
-#: ../../include/taxonomy.php:320
-msgid "Trending"
-msgstr "В тренде"
-
-#: ../../include/taxonomy.php:320 ../../include/taxonomy.php:449
-#: ../../include/taxonomy.php:470 ../../Zotlabs/Widget/Tagcloud.php:22
-msgid "Tags"
-msgstr "Теги"
-
-#: ../../include/taxonomy.php:552
-msgid "Keywords"
-msgstr "Ключевые слова"
-
-#: ../../include/taxonomy.php:573
-msgid "have"
-msgstr "иметь"
-
-#: ../../include/taxonomy.php:573
-msgid "has"
-msgstr "есть"
-
-#: ../../include/taxonomy.php:574
-msgid "want"
-msgstr "хотеть"
-
-#: ../../include/taxonomy.php:574
-msgid "wants"
-msgstr "хотеть"
-
-#: ../../include/taxonomy.php:575 ../../Zotlabs/Lib/ThreadItem.php:289
-msgid "like"
-msgstr "нравится"
-
-#: ../../include/taxonomy.php:575
-msgid "likes"
-msgstr "нравится"
-
-#: ../../include/taxonomy.php:576 ../../Zotlabs/Lib/ThreadItem.php:290
-msgid "dislike"
-msgstr "не нравится"
-
-#: ../../include/taxonomy.php:576
-msgid "dislikes"
-msgstr "не нравится"
-
-#: ../../include/language.php:436
-msgid "Select an alternate language"
-msgstr "Выбор дополнительного языка"
-
-#: ../../include/js_strings.php:5
-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
-msgid "Comment"
-msgstr "Комментарий"
-
-#: ../../include/js_strings.php:7 ../../Zotlabs/Lib/ThreadItem.php:473
-#, php-format
-msgid "%s show all"
-msgstr "%s показать всё"
-
-#: ../../include/js_strings.php:8
-#, php-format
-msgid "%s show less"
-msgstr "%s показать меньше"
-
-#: ../../include/js_strings.php:9
-#, php-format
-msgid "%s expand"
-msgstr "%s развернуть"
-
-#: ../../include/js_strings.php:10
-#, php-format
-msgid "%s collapse"
-msgstr "%s свернуть"
-
-#: ../../include/js_strings.php:11
-msgid "Password too short"
-msgstr "Пароль слишком короткий"
-
-#: ../../include/js_strings.php:12
-msgid "Passwords do not match"
-msgstr "Пароли не совпадают"
-
-#: ../../include/js_strings.php:13
-msgid "everybody"
-msgstr "все"
-
-#: ../../include/js_strings.php:14
-msgid "Secret Passphrase"
-msgstr "Тайный пароль"
-
-#: ../../include/js_strings.php:15
-msgid "Passphrase hint"
-msgstr "Подсказка для пароля"
-
-#: ../../include/js_strings.php:16
-msgid "Notice: Permissions have changed but have not yet been submitted."
-msgstr "Уведомление: Права доступа изменились, но до сих пор не сохранены."
-
-#: ../../include/js_strings.php:17
-msgid "close all"
-msgstr "закрыть все"
-
-#: ../../include/js_strings.php:18
-msgid "Nothing new here"
-msgstr "Здесь нет ничего нового"
-
-#: ../../include/js_strings.php:19
-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
-msgid "Rating"
-msgstr "Оценка"
-
-#: ../../include/js_strings.php:21
-msgid "Describe (optional)"
-msgstr "Охарактеризовать (необязательно)"
-
-#: ../../include/js_strings.php:23
-msgid "Please enter a link URL"
-msgstr "Пожалуйста, введите URL ссылки"
-
-#: ../../include/js_strings.php:24
-msgid "Unsaved changes. Are you sure you wish to leave this page?"
-msgstr "Есть несохраненные изменения. Вы уверены, что хотите покинуть эту страницу?"
-
-#: ../../include/js_strings.php:25 ../../Zotlabs/Module/Cdav.php:917
-#: ../../Zotlabs/Module/Profiles.php:509 ../../Zotlabs/Module/Profiles.php:734
-#: ../../Zotlabs/Module/Events.php:477 ../../Zotlabs/Module/Locs.php:117
-#: ../../Zotlabs/Module/Pubsites.php:52
-msgid "Location"
-msgstr "Место"
-
-#: ../../include/js_strings.php:26
-msgid "lovely"
-msgstr "прекрасно"
-
-#: ../../include/js_strings.php:27
-msgid "wonderful"
-msgstr "замечательно"
-
-#: ../../include/js_strings.php:28
-msgid "fantastic"
-msgstr "фантастично"
-
-#: ../../include/js_strings.php:29
-msgid "great"
-msgstr "отлично"
-
-#: ../../include/js_strings.php:30
-msgid ""
-"Your chosen nickname was either already taken or not valid. Please use our "
-"suggestion ("
-msgstr "Выбранный вами псевдоним уже используется или недействителен. Попробуйте использовать наше предложение ("
-
-#: ../../include/js_strings.php:31
-msgid ") or enter a new one."
-msgstr ") или введите новый."
-
-#: ../../include/js_strings.php:32
-msgid "Thank you, this nickname is valid."
-msgstr "Спасибо, этот псевдоним может быть использован."
-
-#: ../../include/js_strings.php:33
-msgid "A channel name is required."
-msgstr "Требуется название канала."
-
-#: ../../include/js_strings.php:34
-msgid "This is a "
-msgstr "Это "
-
-#: ../../include/js_strings.php:35
-msgid " channel name"
-msgstr " название канала"
-
-#: ../../include/js_strings.php:41
-#, php-format
-msgid "%d minutes"
-msgid_plural "%d minutes"
-msgstr[0] "%d минуту"
-msgstr[1] "%d минуты"
-msgstr[2] "%d минут"
-
-#: ../../include/js_strings.php:42
-#, php-format
-msgid "about %d hours"
-msgid_plural "about %d hours"
-msgstr[0] "около %d часa"
-msgstr[1] "около %d часов"
-msgstr[2] "около %d часов"
-
-#: ../../include/js_strings.php:43
-#, php-format
-msgid "%d days"
-msgid_plural "%d days"
-msgstr[0] "%d день"
-msgstr[1] "%d дня"
-msgstr[2] "%d дней"
-
-#: ../../include/js_strings.php:44
-#, php-format
-msgid "%d months"
-msgid_plural "%d months"
-msgstr[0] "%d месяц"
-msgstr[1] "%d месяца"
-msgstr[2] "%d месяцев"
-
-#: ../../include/js_strings.php:45
-#, php-format
-msgid "%d years"
-msgid_plural "%d years"
-msgstr[0] "%d год"
-msgstr[1] "%d года"
-msgstr[2] "%d лет"
-
-#: ../../include/js_strings.php:50
-msgid "timeago.prefixAgo"
-msgstr ""
-
-#: ../../include/js_strings.php:51
-msgid "timeago.prefixFromNow"
-msgstr "через"
-
-#: ../../include/js_strings.php:52
-msgid "timeago.suffixAgo"
-msgstr "назад"
-
-#: ../../include/js_strings.php:53
-msgid "timeago.suffixFromNow"
-msgstr ""
-
-#: ../../include/js_strings.php:56
-msgid "less than a minute"
-msgstr "менее чем одну минуту"
-
-#: ../../include/js_strings.php:57
-msgid "about a minute"
-msgstr "около минуты"
-
-#: ../../include/js_strings.php:59
-msgid "about an hour"
-msgstr "около часа"
-
-#: ../../include/js_strings.php:61
-msgid "a day"
-msgstr "день"
-
-#: ../../include/js_strings.php:63
-msgid "about a month"
-msgstr "около месяца"
-
-#: ../../include/js_strings.php:65
-msgid "about a year"
-msgstr "около года"
-
-#: ../../include/js_strings.php:67
-msgid " "
-msgstr " "
-
-#: ../../include/js_strings.php:68
-msgid "timeago.numbers"
-msgstr ""
-
-#: ../../include/js_strings.php:74
-msgctxt "long"
-msgid "May"
-msgstr "Май"
-
-#: ../../include/js_strings.php:82
-msgid "Jan"
-msgstr "Янв"
-
-#: ../../include/js_strings.php:83
-msgid "Feb"
-msgstr "Фев"
-
-#: ../../include/js_strings.php:84
-msgid "Mar"
-msgstr "Мар"
-
-#: ../../include/js_strings.php:85
-msgid "Apr"
-msgstr "Апр"
-
-#: ../../include/js_strings.php:86
-msgctxt "short"
-msgid "May"
-msgstr "Май"
-
-#: ../../include/js_strings.php:87
-msgid "Jun"
-msgstr "Июн"
-
-#: ../../include/js_strings.php:88
-msgid "Jul"
-msgstr "Июл"
-
-#: ../../include/js_strings.php:89
-msgid "Aug"
-msgstr "Авг"
-
-#: ../../include/js_strings.php:90
-msgid "Sep"
-msgstr "Сен"
-
-#: ../../include/js_strings.php:91
-msgid "Oct"
-msgstr "Окт"
-
-#: ../../include/js_strings.php:92
-msgid "Nov"
-msgstr "Ноя"
-
-#: ../../include/js_strings.php:93
-msgid "Dec"
-msgstr "Дек"
-
-#: ../../include/js_strings.php:101
-msgid "Sun"
-msgstr "Вск"
-
-#: ../../include/js_strings.php:102
-msgid "Mon"
-msgstr "Пон"
-
-#: ../../include/js_strings.php:103
-msgid "Tue"
-msgstr "Вт"
-
-#: ../../include/js_strings.php:104
-msgid "Wed"
-msgstr "Ср"
-
-#: ../../include/js_strings.php:105
-msgid "Thu"
-msgstr "Чет"
-
-#: ../../include/js_strings.php:106
-msgid "Fri"
-msgstr "Пят"
-
-#: ../../include/js_strings.php:107
-msgid "Sat"
-msgstr "Суб"
-
-#: ../../include/js_strings.php:108
-msgctxt "calendar"
-msgid "today"
-msgstr "сегодня"
-
-#: ../../include/js_strings.php:109
-msgctxt "calendar"
-msgid "month"
-msgstr "месяц"
-
-#: ../../include/js_strings.php:110
-msgctxt "calendar"
-msgid "week"
-msgstr "неделя"
-
-#: ../../include/js_strings.php:111
-msgctxt "calendar"
-msgid "day"
-msgstr "день"
-
-#: ../../include/js_strings.php:112
-msgctxt "calendar"
-msgid "All day"
-msgstr "Весь день"
-
-#: ../../include/dir_fns.php:141 ../../Zotlabs/Lib/Libzotdir.php:160
-msgid "Directory Options"
-msgstr "Параметры каталога"
-
-#: ../../include/dir_fns.php:143 ../../Zotlabs/Lib/Libzotdir.php:162
-msgid "Safe Mode"
-msgstr "Безопасный режим"
-
-#: ../../include/dir_fns.php:144 ../../Zotlabs/Lib/Libzotdir.php:163
-msgid "Public Forums Only"
-msgstr "Только публичные форумы"
-
-#: ../../include/dir_fns.php:145 ../../Zotlabs/Lib/Libzotdir.php:165
-msgid "This Website Only"
-msgstr "Только этот веб-сайт"
-
-#: ../../include/network.php:770
-msgid "view full size"
-msgstr "посмотреть в полный размер"
-
-#: ../../include/network.php:1773 ../../include/network.php:1774
-msgid "Friendica"
-msgstr ""
-
-#: ../../include/network.php:1775
-msgid "OStatus"
-msgstr ""
-
-#: ../../include/network.php:1776
-msgid "GNU-Social"
-msgstr ""
-
-#: ../../include/network.php:1777
-msgid "RSS/Atom"
-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
-msgid "ActivityPub"
-msgstr ""
-
-#: ../../include/network.php:1779 ../../Zotlabs/Module/Cdav.php:1219
-#: ../../Zotlabs/Module/Profiles.php:787
-#: ../../Zotlabs/Module/Admin/Accounts.php:171
-#: ../../Zotlabs/Module/Admin/Accounts.php:183
-#: ../../Zotlabs/Module/Connedit.php:911
-#: ../../extend/addon/hzaddons/rtof/rtof.php:93
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:56
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:57
-#: ../../extend/addon/hzaddons/redred/redred.php:107
-msgid "Email"
-msgstr "Электронная почта"
-
-#: ../../include/network.php:1780
-msgid "Diaspora"
-msgstr ""
-
-#: ../../include/network.php:1781
-msgid "Facebook"
-msgstr ""
-
-#: ../../include/network.php:1782
-msgid "Zot"
-msgstr ""
-
-#: ../../include/network.php:1783
-msgid "LinkedIn"
-msgstr ""
-
-#: ../../include/network.php:1784
-msgid "XMPP/IM"
-msgstr ""
-
-#: ../../include/network.php:1785
-msgid "MySpace"
-msgstr ""
-
-#: ../../include/datetime.php:58 ../../Zotlabs/Module/Profiles.php:736
-#: ../../Zotlabs/Widget/Newmember.php:51
-msgid "Miscellaneous"
-msgstr "Прочее"
-
-#: ../../include/datetime.php:140
-msgid "Birthday"
-msgstr "День рождения"
-
-#: ../../include/datetime.php:140
-msgid "Age: "
-msgstr "Возраст:"
-
-#: ../../include/datetime.php:140
-msgid "YYYY-MM-DD or MM-DD"
-msgstr "YYYY-MM-DD или MM-DD"
-
-#: ../../include/datetime.php:211 ../../Zotlabs/Module/Appman.php:143
-#: ../../Zotlabs/Module/Appman.php:144 ../../Zotlabs/Module/Profiles.php:745
-#: ../../Zotlabs/Module/Profiles.php:749 ../../Zotlabs/Module/Events.php:462
-#: ../../Zotlabs/Module/Events.php:467
-msgid "Required"
-msgstr "Требуется"
-
-#: ../../include/datetime.php:238 ../../boot.php:2558
-msgid "never"
-msgstr "никогда"
-
-#: ../../include/datetime.php:244
-msgid "less than a second ago"
-msgstr "менее чем одну секунду"
-
-#: ../../include/datetime.php:262
-#, php-format
-msgctxt "e.g. 22 hours ago, 1 minute ago"
-msgid "%1$d %2$s ago"
-msgstr "%1$d %2$s назад"
-
-#: ../../include/datetime.php:273
-msgctxt "relative_date"
-msgid "year"
-msgid_plural "years"
-msgstr[0] "год"
-msgstr[1] "года"
-msgstr[2] "лет"
-
-#: ../../include/datetime.php:276
-msgctxt "relative_date"
-msgid "month"
-msgid_plural "months"
-msgstr[0] "месяц"
-msgstr[1] "месяца"
-msgstr[2] "месяцев"
-
-#: ../../include/datetime.php:279
-msgctxt "relative_date"
-msgid "week"
-msgid_plural "weeks"
-msgstr[0] "неделю"
-msgstr[1] "недели"
-msgstr[2] "недель"
-
-#: ../../include/datetime.php:282
-msgctxt "relative_date"
-msgid "day"
-msgid_plural "days"
-msgstr[0] "день"
-msgstr[1] "дня"
-msgstr[2] "дней"
-
-#: ../../include/datetime.php:285
-msgctxt "relative_date"
-msgid "hour"
-msgid_plural "hours"
-msgstr[0] "час"
-msgstr[1] "часа"
-msgstr[2] "часов"
-
-#: ../../include/datetime.php:288
-msgctxt "relative_date"
-msgid "minute"
-msgid_plural "minutes"
-msgstr[0] "минуту"
-msgstr[1] "минуты"
-msgstr[2] "минут"
-
-#: ../../include/datetime.php:291
-msgctxt "relative_date"
-msgid "second"
-msgid_plural "seconds"
-msgstr[0] "секунду"
-msgstr[1] "секунды"
-msgstr[2] "секунд"
-
-#: ../../include/datetime.php:520
-#, php-format
-msgid "%1$s's birthday"
-msgstr "У %1$s День рождения"
+#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:86
+#: ../../Zotlabs/Module/Import_items.php:120 ../../Zotlabs/Module/Share.php:71
+#: ../../Zotlabs/Module/Cloud.php:126 ../../Zotlabs/Module/Group.php:98
+#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:79
+#: ../../Zotlabs/Module/Like.php:301 ../../Zotlabs/Web/WebServer.php:122
+#: ../../addon/redphotos/redphotos.php:119 ../../addon/hzfiles/hzfiles.php:73
+#: ../../addon/frphotos/frphotos.php:82 ../../addon/redfiles/redfiles.php:109
+#: ../../include/items.php:416
+msgid "Permission denied"
+msgstr "Доступ запрещен"
-#: ../../include/datetime.php:521
-#, php-format
-msgid "Happy Birthday %1$s"
-msgstr "С Днем рождения %1$s !"
+#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63
+msgid "Invalid profile identifier."
+msgstr "Неверный идентификатор профиля"
-#: ../../include/acl_selectors.php:33
-#: ../../Zotlabs/Lib/PermissionDescription.php:34
-msgid "Visible to your default audience"
-msgstr "Видно вашей аудитории по умолчанию."
+#: ../../Zotlabs/Module/Profperm.php:111
+msgid "Profile Visibility Editor"
+msgstr "Редактор видимости профиля"
-#: ../../include/acl_selectors.php:88 ../../Zotlabs/Module/Acl.php:120
-#: ../../Zotlabs/Module/Lockview.php:117 ../../Zotlabs/Module/Lockview.php:153
-msgctxt "acl"
+#: ../../Zotlabs/Module/Profperm.php:113 ../../Zotlabs/Lib/Apps.php:359
+#: ../../include/channel.php:1700
msgid "Profile"
msgstr "Профиль"
-#: ../../include/acl_selectors.php:106
-#: ../../Zotlabs/Lib/PermissionDescription.php:107
-msgid "Only me"
-msgstr "Только мне"
-
-#: ../../include/acl_selectors.php:113
-msgid "Who can see this?"
-msgstr "Кто может это видеть?"
-
-#: ../../include/acl_selectors.php:114
-msgid "Custom selection"
-msgstr "Настраиваемый выбор"
-
-#: ../../include/acl_selectors.php:115
-msgid ""
-"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit "
-"the scope of \"Show\"."
-msgstr "Нажмите \"Показать\" чтобы разрешить просмотр. \"Не показывать\" позволит вам переопределить и ограничить область показа."
-
-#: ../../include/acl_selectors.php:116
-msgid "Show"
-msgstr "Показать"
-
-#: ../../include/acl_selectors.php:117
-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
-#: ../../Zotlabs/Module/Filestorage.php:170 ../../Zotlabs/Module/Thing.php:319
-#: ../../Zotlabs/Module/Thing.php:372 ../../Zotlabs/Module/Connedit.php:677
-msgid "Permissions"
-msgstr "Разрешения"
-
-#: ../../include/acl_selectors.php:125 ../../Zotlabs/Module/Photos.php:1295
-#: ../../Zotlabs/Lib/ThreadItem.php:435
-msgid "Close"
-msgstr "Закрыть"
-
-#: ../../include/acl_selectors.php:150
-#, php-format
-msgid ""
-"Post permissions %s cannot be changed %s after a post is shared.</br />These "
-"permissions set who is allowed to view the post."
-msgstr "Разрешения публикации %s не могут быть изменены %s после того, как ею поделились. Эти разрешения устанавливают кому разрешено просматривать эту публикацию."
-
-#: ../../include/zid.php:351
-#, php-format
-msgid "OpenWebAuth: %1$s welcomes %2$s"
-msgstr "OpenWebAuth: %1$s приветствует %2$s"
-
-#: ../../include/connections.php:133
-msgid "New window"
-msgstr "Новое окно"
-
-#: ../../include/connections.php:134
-msgid "Open the selected location in a different window or browser tab"
-msgstr "Открыть выбранное местоположение в другом окне или вкладке браузера"
-
-#: ../../include/connections.php:696 ../../include/event.php:1308
-#: ../../Zotlabs/Module/Cdav.php:1224 ../../Zotlabs/Module/Profiles.php:792
-#: ../../Zotlabs/Module/Connedit.php:916
-msgid "Mobile"
-msgstr "Мобильный"
-
-#: ../../include/connections.php:697 ../../include/event.php:1309
-#: ../../Zotlabs/Module/Cdav.php:1225 ../../Zotlabs/Module/Profiles.php:793
-#: ../../Zotlabs/Module/Connedit.php:917
-msgid "Home"
-msgstr "Домашний"
-
-#: ../../include/connections.php:698 ../../include/event.php:1310
-msgid "Home, Voice"
-msgstr "Дом, голос"
-
-#: ../../include/connections.php:699 ../../include/event.php:1311
-msgid "Home, Fax"
-msgstr "Дом, факс"
-
-#: ../../include/connections.php:700 ../../include/event.php:1312
-#: ../../Zotlabs/Module/Cdav.php:1226 ../../Zotlabs/Module/Profiles.php:794
-#: ../../Zotlabs/Module/Connedit.php:918
-msgid "Work"
-msgstr "Рабочий"
-
-#: ../../include/connections.php:701 ../../include/event.php:1313
-msgid "Work, Voice"
-msgstr "Работа, голос"
-
-#: ../../include/connections.php:702 ../../include/event.php:1314
-msgid "Work, Fax"
-msgstr "Работа, факс"
-
-#: ../../include/event.php:24 ../../include/event.php:71
-msgid "l F d, Y \\@ g:i A"
-msgstr ""
-
-#: ../../include/event.php:32 ../../include/event.php:75
-msgid "Starts:"
-msgstr "Начало:"
-
-#: ../../include/event.php:42 ../../include/event.php:79
-msgid "Finishes:"
-msgstr "Окончание:"
-
-#: ../../include/event.php:1011
-msgid "This event has been added to your calendar."
-msgstr "Это событие было добавлено в ваш календарь."
-
-#: ../../include/event.php:1227
-msgid "Not specified"
-msgstr "Не указано"
-
-#: ../../include/event.php:1228
-msgid "Needs Action"
-msgstr "Требует действия"
-
-#: ../../include/event.php:1229
-msgid "Completed"
-msgstr "Завершено"
-
-#: ../../include/event.php:1230
-msgid "In Process"
-msgstr "В процессе"
-
-#: ../../include/event.php:1231
-msgid "Cancelled"
-msgstr "Отменено"
-
-#: ../../include/auth.php:192
-msgid "Delegation session ended."
-msgstr "Делегированная сессия завершена."
-
-#: ../../include/auth.php:196
-msgid "Logged out."
-msgstr "Вышел из системы."
-
-#: ../../include/auth.php:291
-msgid "Email validation is incomplete. Please check your email."
-msgstr "Проверка email не завершена. Пожалуйста, проверьте вашу почту."
-
-#: ../../include/auth.php:307
-msgid "Failed authentication"
-msgstr "Ошибка аутентификации"
-
-#: ../../include/auth.php:317
-#: ../../extend/addon/hzaddons/openid/Mod_Openid.php:188
-msgid "Login failed."
-msgstr "Не удалось войти."
-
-#: ../../include/nav.php:86
-msgid "Remote authentication"
-msgstr "Удаленная аутентификация"
-
-#: ../../include/nav.php:86
-msgid "Click to authenticate to your home hub"
-msgstr "Нажмите, чтобы аутентифицировать себя на домашнем узле"
-
-#: ../../include/nav.php:92 ../../Zotlabs/Module/Manage.php:170
-#: ../../Zotlabs/Lib/Apps.php:312
-msgid "Channel Manager"
-msgstr "Менеджер каналов"
-
-#: ../../include/nav.php:92
-msgid "Manage your channels"
-msgstr "Управление вашими каналами"
-
-#: ../../include/nav.php:95
-msgid "Manage your privacy groups"
-msgstr "Управление вашим группами безопасности"
-
-#: ../../include/nav.php:97 ../../Zotlabs/Module/Admin/Addons.php:344
-#: ../../Zotlabs/Module/Admin/Themes.php:125
-#: ../../Zotlabs/Widget/Newmember.php:53
-#: ../../Zotlabs/Widget/Settings_menu.php:68 ../../Zotlabs/Lib/Apps.php:314
-msgid "Settings"
-msgstr "Настройки"
-
-#: ../../include/nav.php:97
-msgid "Account/Channel Settings"
-msgstr "Настройки аккаунта / канала"
-
-#: ../../include/nav.php:103 ../../include/nav.php:132
-#: ../../include/nav.php:151 ../../boot.php:1624
-msgid "Logout"
-msgstr "Выход"
-
-#: ../../include/nav.php:103 ../../include/nav.php:132
-msgid "End this session"
-msgstr "Закончить эту сессию"
-
-#: ../../include/nav.php:106
-msgid "Your profile page"
-msgstr "Страницa вашего профиля"
-
-#: ../../include/nav.php:109
-msgid "Manage/Edit profiles"
-msgstr "Управление / редактирование профилей"
-
-#: ../../include/nav.php:111 ../../Zotlabs/Widget/Newmember.php:35
-msgid "Edit your profile"
-msgstr "Редактировать профиль"
-
-#: ../../include/nav.php:118 ../../include/nav.php:122 ../../boot.php:1625
-#: ../../Zotlabs/Lib/Apps.php:311
-msgid "Login"
-msgstr "Войти"
-
-#: ../../include/nav.php:118 ../../include/nav.php:122
-msgid "Sign in"
-msgstr "Войти"
-
-#: ../../include/nav.php:149
-msgid "Take me home"
-msgstr "Домой"
-
-#: ../../include/nav.php:151
-msgid "Log me out of this site"
-msgstr "Выйти с этого сайта"
-
-#: ../../include/nav.php:156 ../../boot.php:1605
-#: ../../Zotlabs/Module/Register.php:289
-msgid "Register"
-msgstr "Регистрация"
-
-#: ../../include/nav.php:156
-msgid "Create an account"
-msgstr "Создать аккаунт"
-
-#: ../../include/nav.php:168
-msgid "Help and documentation"
-msgstr "Справочная информация и документация"
-
-#: ../../include/nav.php:183
-msgid "Search site @name, !forum, #tag, ?docs, content"
-msgstr "Искать на сайте @имя, !форум, #тег, ?документ, содержимое"
-
-#: ../../include/nav.php:189 ../../Zotlabs/Widget/Admin.php:55
-msgid "Admin"
-msgstr "Администрирование"
-
-#: ../../include/nav.php:189
-msgid "Site Setup and Configuration"
-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/Widget/Notifications.php:162
-msgid "Loading"
-msgstr "Загрузка"
-
-#: ../../include/nav.php:299
-msgid "@name, !forum, #tag, ?doc, content"
-msgstr "@имя, !форум, #тег, ?документ, содержимое"
-
-#: ../../include/nav.php:300
-msgid "Please wait..."
-msgstr "Подождите пожалуйста ..."
-
-#: ../../include/nav.php:306
-msgid "Add Apps"
-msgstr "Добавить приложения"
-
-#: ../../include/nav.php:307
-msgid "Arrange Apps"
-msgstr "Упорядочить приложения"
-
-#: ../../include/nav.php:308
-msgid "Toggle System Apps"
-msgstr "Показать системные приложения"
-
-#: ../../include/nav.php:391 ../../Zotlabs/Module/Admin/Channels.php:154
-msgid "Channel"
-msgstr "Канал"
-
-#: ../../include/nav.php:394
-msgid "Status Messages and Posts"
-msgstr "Статусы и публикации"
-
-#: ../../include/nav.php:404 ../../Zotlabs/Module/Help.php:80
-msgid "About"
-msgstr "О себе"
-
-#: ../../include/nav.php:407
-msgid "Profile Details"
-msgstr "Информация о профиле"
-
-#: ../../include/nav.php:422 ../../Zotlabs/Storage/Browser.php:272
-#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:315
-msgid "Files"
-msgstr "Файлы"
-
-#: ../../include/nav.php:425
-msgid "Files and Storage"
-msgstr "Файлы и хранилище"
-
-#: ../../include/nav.php:433 ../../include/nav.php:436
-#: ../../Zotlabs/Storage/Browser.php:140
-msgid "Calendar"
-msgstr "Календарь"
-
-#: ../../include/nav.php:447 ../../include/nav.php:450
-#: ../../Zotlabs/Widget/Chatroom_list.php:16 ../../Zotlabs/Lib/Apps.php:307
-msgid "Chatrooms"
-msgstr "Чаты"
-
-#: ../../include/nav.php:460 ../../Zotlabs/Lib/Apps.php:306
-msgid "Bookmarks"
-msgstr "Закладки"
-
-#: ../../include/nav.php:463
-msgid "Saved Bookmarks"
-msgstr "Сохранённые закладки"
-
-#: ../../include/nav.php:471 ../../Zotlabs/Module/Cards.php:203
-#: ../../Zotlabs/Lib/Apps.php:303
-msgid "Cards"
-msgstr "Карточки"
-
-#: ../../include/nav.php:474
-msgid "View Cards"
-msgstr "Просмотреть карточки"
-
-#: ../../include/nav.php:482 ../../Zotlabs/Module/Articles.php:214
-#: ../../Zotlabs/Lib/Apps.php:302
-msgid "Articles"
-msgstr "Статьи"
-
-#: ../../include/nav.php:485
-msgid "View Articles"
-msgstr "Просмотр статей"
-
-#: ../../include/nav.php:494 ../../Zotlabs/Module/Webpages.php:252
-#: ../../Zotlabs/Lib/Apps.php:316
-msgid "Webpages"
-msgstr "Веб-страницы"
-
-#: ../../include/nav.php:497
-msgid "View Webpages"
-msgstr "Просмотр веб-страниц"
-
-#: ../../include/nav.php:506 ../../Zotlabs/Module/Wiki.php:206
-#: ../../Zotlabs/Widget/Wiki_list.php:19
-msgid "Wikis"
-msgstr ""
-
-#: ../../include/nav.php:509 ../../Zotlabs/Lib/Apps.php:317
-msgid "Wiki"
-msgstr ""
-
-#: ../../include/bookmarks.php:34
-#, php-format
-msgid "%1$s's bookmarks"
-msgstr "Закладки пользователя %1$s"
-
-#: ../../include/attach.php:265 ../../include/attach.php:374
-msgid "Item was not found."
-msgstr "Элемент не найден."
-
-#: ../../include/attach.php:282
-msgid "Unknown error."
-msgstr "Неизвестная ошибка."
-
-#: ../../include/attach.php:567
-msgid "No source file."
-msgstr "Нет исходного файла."
-
-#: ../../include/attach.php:589
-msgid "Cannot locate file to replace"
-msgstr "Не удается найти файл для замены"
-
-#: ../../include/attach.php:608
-msgid "Cannot locate file to revise/update"
-msgstr "Не удается найти файл для пересмотра / обновления"
-
-#: ../../include/attach.php:750
-#, php-format
-msgid "File exceeds size limit of %d"
-msgstr "Файл превышает предельный размер %d"
-
-#: ../../include/attach.php:771
-#, php-format
-msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
-msgstr "Вы достигли предела %1$.0f Мбайт для хранения вложений."
-
-#: ../../include/attach.php:953
-msgid "File upload failed. Possible system limit or action terminated."
-msgstr "Загрузка файла не удалась. Возможно система перегружена или попытка прекращена."
-
-#: ../../include/attach.php:982
-msgid "Stored file could not be verified. Upload failed."
-msgstr "Файл для сохранения не может быть проверен. Загрузка не удалась."
-
-#: ../../include/attach.php:1056 ../../include/attach.php:1072
-msgid "Path not available."
-msgstr "Путь недоступен."
-
-#: ../../include/attach.php:1121 ../../include/attach.php:1286
-msgid "Empty pathname"
-msgstr "Пустое имя пути"
-
-#: ../../include/attach.php:1147
-msgid "duplicate filename or path"
-msgstr "дублирующееся имя файла или пути"
-
-#: ../../include/attach.php:1172
-msgid "Path not found."
-msgstr "Путь не найден."
-
-#: ../../include/attach.php:1240
-msgid "mkdir failed."
-msgstr "mkdir не удался"
-
-#: ../../include/attach.php:1244
-msgid "database storage failed."
-msgstr "ошибка при записи базы данных."
-
-#: ../../include/attach.php:1292
-msgid "Empty path"
-msgstr "Пустое имя пути"
-
-#: ../../include/photo/photo_driver.php:741
-#: ../../Zotlabs/Module/Profile_photo.php:120
-#: ../../Zotlabs/Module/Profile_photo.php:248
-msgid "Profile Photos"
-msgstr "Фотографии профиля"
-
-#: ../../boot.php:1604
-msgid "Create an account to access services and applications"
-msgstr "Создайте аккаунт для доступа к службам и приложениям"
-
-#: ../../boot.php:1628
-msgid "Login/Email"
-msgstr "Пользователь / email"
-
-#: ../../boot.php:1629
-msgid "Password"
-msgstr "Пароль"
-
-#: ../../boot.php:1630
-msgid "Remember me"
-msgstr "Запомнить меня"
-
-#: ../../boot.php:1633
-msgid "Forgot your password?"
-msgstr "Забыли пароль или логин?"
-
-#: ../../boot.php:1634 ../../Zotlabs/Module/Lostpass.php:91
-msgid "Password Reset"
-msgstr "Сбросить пароль"
-
-#: ../../boot.php:2431
-#, php-format
-msgid "[$Projectname] Website SSL error for %s"
-msgstr "[$Projectname] Ошибка SSL/TLS веб-сайта для %s"
-
-#: ../../boot.php:2436
-msgid "Website SSL certificate is not valid. Please correct."
-msgstr "SSL/TLS сертификат веб-сайт недействителен. Исправьте это."
-
-#: ../../boot.php:2552
-#, php-format
-msgid "[$Projectname] Cron tasks not running on %s"
-msgstr "[$Projectname] Задания Cron не запущены на %s"
-
-#: ../../boot.php:2557
-msgid "Cron/Scheduled tasks not running."
-msgstr "Задания Cron / планировщика не запущены."
-
-#: ../../Zotlabs/Storage/Browser.php:107 ../../Zotlabs/Storage/Browser.php:289
-msgid "parent"
-msgstr "источник"
-
-#: ../../Zotlabs/Storage/Browser.php:134
-msgid "Principal"
-msgstr "Субъект"
-
-#: ../../Zotlabs/Storage/Browser.php:137
-msgid "Addressbook"
-msgstr "Адресная книга"
-
-#: ../../Zotlabs/Storage/Browser.php:143
-msgid "Schedule Inbox"
-msgstr "План занятий входящий"
-
-#: ../../Zotlabs/Storage/Browser.php:146
-msgid "Schedule Outbox"
-msgstr "План занятий исходящий"
-
-#: ../../Zotlabs/Storage/Browser.php:273
-msgid "Total"
-msgstr "Всего"
-
-#: ../../Zotlabs/Storage/Browser.php:275
-msgid "Shared"
-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/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
-msgid "Create"
-msgstr "Создать"
-
-#: ../../Zotlabs/Storage/Browser.php:277
-msgid "Add Files"
-msgstr "Добавить файлы"
-
-#: ../../Zotlabs/Storage/Browser.php:280 ../../Zotlabs/Lib/ThreadItem.php:154
-msgid "Admin Delete"
-msgstr "Удалено администратором"
-
-#: ../../Zotlabs/Storage/Browser.php:285 ../../Zotlabs/Module/Cdav.php:1215
-#: ../../Zotlabs/Module/Oauth.php:113 ../../Zotlabs/Module/Oauth.php:139
-#: ../../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/Wiki.php:218
-#: ../../Zotlabs/Widget/Wiki_page_history.php:22
-#: ../../Zotlabs/Lib/NativeWikiPage.php:561
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:172
-msgid "Name"
-msgstr "Имя"
-
-#: ../../Zotlabs/Storage/Browser.php:286 ../../Zotlabs/Module/Wiki.php:219
-msgid "Type"
-msgstr "Тип"
-
-#: ../../Zotlabs/Storage/Browser.php:288
-#: ../../Zotlabs/Module/Sharedwithme.php:107
-msgid "Last Modified"
-msgstr "Последнее изменение"
-
-#: ../../Zotlabs/Storage/Browser.php:361
-#, php-format
-msgid "You are using %1$s of your available file storage."
-msgstr "Вы используете %1$s из доступного вам хранилища файлов."
-
-#: ../../Zotlabs/Storage/Browser.php:366
-#, php-format
-msgid "You are using %1$s of %2$s available file storage. (%3$s&#37;)"
-msgstr "Вы используете %1$s из %2$s доступного хранилища файлов (%3$s&#37;)."
-
-#: ../../Zotlabs/Storage/Browser.php:377
-msgid "WARNING:"
-msgstr "Предупреждение:"
-
-#: ../../Zotlabs/Storage/Browser.php:389
-msgid "Create new folder"
-msgstr "Создать новую папку"
-
-#: ../../Zotlabs/Storage/Browser.php:391
-msgid "Upload file"
-msgstr "Загрузить файл"
-
-#: ../../Zotlabs/Storage/Browser.php:392 ../../Zotlabs/Module/Photos.php:714
-#: ../../Zotlabs/Module/Cover_photo.php:395
-#: ../../Zotlabs/Module/Embedphotos.php:158
-#: ../../Zotlabs/Module/Profile_photo.php:459
-#: ../../Zotlabs/Widget/Portfolio.php:110 ../../Zotlabs/Widget/Cdav.php:133
-#: ../../Zotlabs/Widget/Cdav.php:169 ../../Zotlabs/Widget/Album.php:97
-msgid "Upload"
-msgstr "Загрузка"
-
-#: ../../Zotlabs/Storage/Browser.php:404
-msgid "Drop files here to immediately upload"
-msgstr "Поместите файлы сюда для немедленной загрузки"
-
-#: ../../Zotlabs/Storage/Browser.php:405
-#: ../../Zotlabs/Module/Filestorage.php:186
-msgid "Show in your contacts shared folder"
-msgstr "Показать общий каталог в ваших контактах"
-
-#: ../../Zotlabs/Zot/Auth.php:152
-msgid ""
-"Remote authentication blocked. You are logged into this site locally. Please "
-"logout and retry."
-msgstr "Удалённая аутентификация заблокирована. Вы вошли на этот сайт локально. Пожалуйста, выйдите и попробуйте ещё раз."
-
-#: ../../Zotlabs/Zot/Auth.php:264
-#: ../../extend/addon/hzaddons/openid/Mod_Openid.php:76
-#: ../../extend/addon/hzaddons/openid/Mod_Openid.php:178
-#, php-format
-msgid "Welcome %s. Remote authentication successful."
-msgstr "Добро пожаловать %s. Удаленная аутентификация успешно завершена."
-
-#: ../../Zotlabs/Module/Regdir.php:49 ../../Zotlabs/Module/Dirsearch.php:25
-msgid "This site is not a directory server"
-msgstr "Этот сайт не является сервером каталога"
-
-#: ../../Zotlabs/Module/Mail.php:73
-msgid "Unable to lookup recipient."
-msgstr "Не удалось найти получателя."
-
-#: ../../Zotlabs/Module/Mail.php:80
-msgid "Unable to communicate with requested channel."
-msgstr "Не удалось установить связь с запрашиваемым каналом."
-
-#: ../../Zotlabs/Module/Mail.php:87
-msgid "Cannot verify requested channel."
-msgstr "Не удалось установить подлинность требуемого канала."
-
-#: ../../Zotlabs/Module/Mail.php:105
-msgid "Selected channel has private message restrictions. Send failed."
-msgstr "Выбранный канал ограничивает частные сообщения. Отправка не удалась."
-
-#: ../../Zotlabs/Module/Mail.php:160
-msgid "Messages"
-msgstr "Сообщения"
-
-#: ../../Zotlabs/Module/Mail.php:173
-msgid "message"
-msgstr "сообщение"
-
-#: ../../Zotlabs/Module/Mail.php:214
-msgid "Message recalled."
-msgstr "Сообщение отозванно."
-
-#: ../../Zotlabs/Module/Mail.php:227
-msgid "Conversation removed."
-msgstr "Беседа удалена."
-
-#: ../../Zotlabs/Module/Mail.php:242 ../../Zotlabs/Module/Mail.php:363
-msgid "Expires YYYY-MM-DD HH:MM"
-msgstr "Истекает YYYY-MM-DD HH:MM"
-
-#: ../../Zotlabs/Module/Mail.php:270
-msgid "Requested channel is not in this network"
-msgstr "Запрашиваемый канал не доступен."
-
-#: ../../Zotlabs/Module/Mail.php:278
-msgid "Send Private Message"
-msgstr "Отправить личное сообщение"
-
-#: ../../Zotlabs/Module/Mail.php:279 ../../Zotlabs/Module/Mail.php:421
-msgid "To:"
-msgstr "Кому:"
-
-#: ../../Zotlabs/Module/Mail.php:282 ../../Zotlabs/Module/Mail.php:423
-msgid "Subject:"
-msgstr "Тема:"
-
-#: ../../Zotlabs/Module/Mail.php:285 ../../Zotlabs/Module/Invite.php:157
-msgid "Your message:"
-msgstr "Сообщение:"
-
-#: ../../Zotlabs/Module/Mail.php:287 ../../Zotlabs/Module/Mail.php:429
-msgid "Attach file"
-msgstr "Прикрепить файл"
-
-#: ../../Zotlabs/Module/Mail.php:289
-msgid "Send"
-msgstr "Отправить"
-
-#: ../../Zotlabs/Module/Mail.php:393
-msgid "Delete message"
-msgstr "Удалить сообщение"
-
-#: ../../Zotlabs/Module/Mail.php:394
-msgid "Delivery report"
-msgstr "Отчёт о доставке"
-
-#: ../../Zotlabs/Module/Mail.php:395
-msgid "Recall message"
-msgstr "Отозвать сообщение"
-
-#: ../../Zotlabs/Module/Mail.php:397
-msgid "Message has been recalled."
-msgstr "Сообщение отозванно"
-
-#: ../../Zotlabs/Module/Mail.php:414
-msgid "Delete Conversation"
-msgstr "Удалить беседу"
-
-#: ../../Zotlabs/Module/Mail.php:416
-msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
-msgstr "Безопасная связь недоступна. Вы <strong>можете</strong> попытаться ответить со страницы профиля отправителя."
-
-#: ../../Zotlabs/Module/Mail.php:420
-msgid "Send Reply"
-msgstr "Отправить ответ"
-
-#: ../../Zotlabs/Module/Mail.php:425
-#, php-format
-msgid "Your message for %s (%s):"
-msgstr "Ваше сообщение для %s (%s):"
-
-#: ../../Zotlabs/Module/Pconfig.php:27 ../../Zotlabs/Module/Pconfig.php:63
-msgid "This setting requires special processing and editing has been blocked."
-msgstr "Этот параметр требует специальной обработки и редактирования и был заблокирован."
-
-#: ../../Zotlabs/Module/Pconfig.php:52
-msgid "Configuration Editor"
-msgstr "Редактор конфигурации"
-
-#: ../../Zotlabs/Module/Pconfig.php:53
-msgid ""
-"Warning: Changing some settings could render your channel inoperable. Please "
-"leave this page unless you are comfortable with and knowledgeable about how "
-"to correctly use this feature."
-msgstr "Предупреждение. Изменение некоторых настроек может привести к неработоспособности вашего канала. Пожалуйста, покиньте эту страницу, если вы точно не значете, как правильно использовать эту функцию."
-
-#: ../../Zotlabs/Module/Defperms.php:67 ../../Zotlabs/Module/Connedit.php:80
-msgid "Could not access contact record."
-msgstr "Не удалось получить доступ к записи контакта."
-
-#: ../../Zotlabs/Module/Defperms.php:111
-#: ../../Zotlabs/Module/Settings/Channel.php:266
-#: ../../extend/addon/hzaddons/twitter/twitter.php:775
-#: ../../extend/addon/hzaddons/logrot/logrot.php:54
-#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:184
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:82
-#: ../../extend/addon/hzaddons/piwik/piwik.php:116
-#: ../../extend/addon/hzaddons/msgfooter/msgfooter.php:54
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:102
-msgid "Settings updated."
-msgstr "Настройки обновлены."
-
-#: ../../Zotlabs/Module/Defperms.php:189
-msgid "Default Permissions App"
-msgstr "Приложение \"Разрешения по умолчанию\""
-
-#: ../../Zotlabs/Module/Defperms.php:189 ../../Zotlabs/Module/Permcats.php:62
-#: ../../Zotlabs/Module/Poke.php:165 ../../Zotlabs/Module/Cdav.php:839
-#: ../../Zotlabs/Module/Cdav.php:848 ../../Zotlabs/Module/Oauth.php:100
-#: ../../Zotlabs/Module/Pubstream.php:20 ../../Zotlabs/Module/Sources.php:88
-#: ../../Zotlabs/Module/Chat.php:102 ../../Zotlabs/Module/Oauth2.php:106
-#: ../../Zotlabs/Module/Uexport.php:61 ../../Zotlabs/Module/Bookmarks.php:78
-#: ../../Zotlabs/Module/Probe.php:18 ../../Zotlabs/Module/Tokens.php:99
-#: ../../Zotlabs/Module/Notes.php:55 ../../Zotlabs/Module/Webpages.php:48
-#: ../../Zotlabs/Module/Group.php:101 ../../Zotlabs/Module/Mood.php:132
-#: ../../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
-#: ../../Zotlabs/Module/Wiki.php:52 ../../Zotlabs/Module/Suggest.php:40
-#: ../../Zotlabs/Module/Cards.php:46
-msgid "Not Installed"
-msgstr "не установлено"
-
-#: ../../Zotlabs/Module/Defperms.php:190
-msgid "Set custom default permissions for new connections"
-msgstr "Настройка пользовательских разрешений по умолчанию для новых подключений "
-
-#: ../../Zotlabs/Module/Defperms.php:254 ../../Zotlabs/Module/Connedit.php:851
-msgid "Connection Default Permissions"
-msgstr "Разрешения по умолчанию для контакта"
-
-#: ../../Zotlabs/Module/Defperms.php:255 ../../Zotlabs/Module/Connedit.php:852
-msgid "Apply these permissions automatically"
-msgstr "Применить эти разрешения автоматически"
-
-#: ../../Zotlabs/Module/Defperms.php:255
-#: ../../Zotlabs/Module/Settings/Channel.php:470
-msgid ""
-"If enabled, connection requests will be approved without your interaction"
-msgstr "Если включено, запросы контактов будут одобрены без вашего участия"
-
-#: ../../Zotlabs/Module/Defperms.php:256 ../../Zotlabs/Module/Connedit.php:853
-msgid "Permission role"
-msgstr "Роль разрешения"
-
-#: ../../Zotlabs/Module/Defperms.php:257 ../../Zotlabs/Module/Connedit.php:854
-msgid "Add permission role"
-msgstr "Добавить роль разрешения"
-
-#: ../../Zotlabs/Module/Defperms.php:261 ../../Zotlabs/Module/Connedit.php:867
-msgid ""
-"The permissions indicated on this page will be applied to all new "
-"connections."
-msgstr "Разрешения, указанные на этой странице, будут применяться ко всем новым соединениям."
-
-#: ../../Zotlabs/Module/Defperms.php:262
-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
-msgid "inherited"
-msgstr "наследуется"
-
-#: ../../Zotlabs/Module/Defperms.php:266 ../../Zotlabs/Module/Permcats.php:121
-#: ../../Zotlabs/Module/Tokens.php:181 ../../Zotlabs/Module/Connedit.php:892
-msgid "My Settings"
-msgstr "Мои настройки"
-
-#: ../../Zotlabs/Module/Defperms.php:269 ../../Zotlabs/Module/Permcats.php:126
-#: ../../Zotlabs/Module/Tokens.php:186 ../../Zotlabs/Module/Connedit.php:894
-msgid "Individual Permissions"
-msgstr "Индивидуальные разрешения"
-
-#: ../../Zotlabs/Module/Defperms.php:270
-msgid ""
-"Some individual permissions may have been preset or locked based on your "
-"channel type and privacy settings."
-msgstr "Некоторые индивидуальные разрешения могут быть предустановлены или заблокированы на основании типа вашего канала и настроек приватности."
-
-#: ../../Zotlabs/Module/Permcats.php:28
-msgid "Permission category name is required."
-msgstr "Требуется категория разрешений."
-
-#: ../../Zotlabs/Module/Permcats.php:47
-msgid "Permission category saved."
-msgstr "Категория разрешения сохранена."
-
-#: ../../Zotlabs/Module/Permcats.php:62
-msgid "Permission Categories App"
-msgstr "Приложение \"Категории разрешений\""
-
-#: ../../Zotlabs/Module/Permcats.php:63
-msgid "Create custom connection permission limits"
-msgstr "Создать пользовательские ограничения на доступ к подключению"
-
-#: ../../Zotlabs/Module/Permcats.php:79
-msgid ""
-"Use this form to create permission rules for various classes of people or "
-"connections."
-msgstr "Используйте эту форму для создания правил разрешений для различных групп людей и контактов."
-
-#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:350
-msgid "Permission Categories"
-msgstr "Категории разрешений"
-
-#: ../../Zotlabs/Module/Permcats.php:120
-msgid "Permission category name"
-msgstr "Наименование категории разрешений"
-
-#: ../../Zotlabs/Module/Permcats.php:127 ../../Zotlabs/Module/Tokens.php:187
-#: ../../Zotlabs/Module/Connedit.php:895
-msgid ""
-"Some permissions may be inherited from your channel's <a href=\"settings"
-"\"><strong>privacy settings</strong></a>, which have higher priority than "
-"individual settings. You can <strong>not</strong> change those settings here."
-msgstr "Некоторые разрешения могут наследовать из <a href=\"settings\"><strong>настроек приватности</strong></a> ваших каналов которые могут иметь более высокий приоритет чем индивидуальные. Вы <strong>не можете</strong> менять эти настройки здесь."
-
-#: ../../Zotlabs/Module/Xchan.php:10
-msgid "Xchan Lookup"
-msgstr "Поиск Xchan"
-
-#: ../../Zotlabs/Module/Xchan.php:13
-msgid "Lookup xchan beginning with (or webbie): "
-msgstr "Запрос Xchan начинается с (или webbie):"
-
-#: ../../Zotlabs/Module/Xchan.php:41 ../../Zotlabs/Module/Menu.php:231
-#: ../../Zotlabs/Module/Mitem.php:134
-msgid "Not found."
-msgstr "Не найдено."
-
-#: ../../Zotlabs/Module/Dreport.php:45
-msgid "Invalid message"
-msgstr "Неверное сообщение"
-
-#: ../../Zotlabs/Module/Dreport.php:78
-msgid "no results"
-msgstr "Ничего не найдено."
-
-#: ../../Zotlabs/Module/Dreport.php:93
-msgid "channel sync processed"
-msgstr "синхронизация канала завершена"
-
-#: ../../Zotlabs/Module/Dreport.php:97
-msgid "queued"
-msgstr "в очереди"
-
-#: ../../Zotlabs/Module/Dreport.php:101
-msgid "posted"
-msgstr "опубликовано"
-
-#: ../../Zotlabs/Module/Dreport.php:105
-msgid "accepted for delivery"
-msgstr "принято к доставке"
-
-#: ../../Zotlabs/Module/Dreport.php:109
-msgid "updated"
-msgstr "обновлено"
-
-#: ../../Zotlabs/Module/Dreport.php:112
-msgid "update ignored"
-msgstr "обновление игнорируется"
-
-#: ../../Zotlabs/Module/Dreport.php:115
-msgid "permission denied"
-msgstr "доступ запрещен"
-
-#: ../../Zotlabs/Module/Dreport.php:119
-msgid "recipient not found"
-msgstr "получатель не найден"
-
-#: ../../Zotlabs/Module/Dreport.php:122
-msgid "mail recalled"
-msgstr "почта отозвана"
-
-#: ../../Zotlabs/Module/Dreport.php:125
-msgid "duplicate mail received"
-msgstr "получено дублирующее сообщение"
-
-#: ../../Zotlabs/Module/Dreport.php:128
-msgid "mail delivered"
-msgstr "почта доставлен"
-
-#: ../../Zotlabs/Module/Dreport.php:148
-#, php-format
-msgid "Delivery report for %1$s"
-msgstr "Отчёт о доставке для %1$s"
-
-#: ../../Zotlabs/Module/Dreport.php:151 ../../Zotlabs/Widget/Wiki_pages.php:41
-#: ../../Zotlabs/Widget/Wiki_pages.php:98
-msgid "Options"
-msgstr "Параметры"
-
-#: ../../Zotlabs/Module/Dreport.php:152
-msgid "Redeliver"
-msgstr "Доставить повторно"
-
-#: ../../Zotlabs/Module/Network.php:107
-msgid "No such group"
-msgstr "Нет такой группы"
-
-#: ../../Zotlabs/Module/Network.php:148
-msgid "No such channel"
-msgstr "Нет такого канала"
-
-#: ../../Zotlabs/Module/Network.php:163 ../../Zotlabs/Module/Channel.php:133
-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/Hq.php:134
-msgid "Reset form"
-msgstr "Очистить форму"
-
-#: ../../Zotlabs/Module/Network.php:231
-msgid "Privacy group is empty"
-msgstr "Группа безопасности пуста"
-
-#: ../../Zotlabs/Module/Network.php:242
-msgid "Privacy group: "
-msgstr "Группа безопасности: "
-
-#: ../../Zotlabs/Module/Network.php:291
-#: ../../extend/addon/hzaddons/redred/redred.php:65
-msgid "Invalid channel."
-msgstr "Недействительный канал."
-
-#: ../../Zotlabs/Module/Email_validation.php:24
-#: ../../Zotlabs/Module/Email_resend.php:12
-msgid "Token verification failed."
-msgstr "Не удалось выполнить проверку токена."
-
-#: ../../Zotlabs/Module/Email_validation.php:36
-msgid "Email Verification Required"
-msgstr "Требуется проверка адреса email"
-
-#: ../../Zotlabs/Module/Email_validation.php:37
-#, php-format
-msgid ""
-"A verification token was sent to your email address [%s]. Enter that token "
-"here to complete the account verification step. Please allow a few minutes "
-"for delivery, and check your spam folder if you do not see the message."
-msgstr "Проверочный токен был выслн на ваш адрес электронной почты [%s]. Введите этот токен здесь для завершения этапа проверки учётной записи. Пожалуйста, подождите несколько минут для завершения доставки и проверьте вашу папку \"Спам\" если вы не видите письма."
-
-#: ../../Zotlabs/Module/Email_validation.php:38
-msgid "Resend Email"
-msgstr "Выслать повторно"
-
-#: ../../Zotlabs/Module/Email_validation.php:41
-msgid "Validation token"
-msgstr "Проверочный токен"
-
-#: ../../Zotlabs/Module/Common.php:14
-msgid "No channel."
-msgstr "Канала нет."
-
-#: ../../Zotlabs/Module/Common.php:45
-msgid "No connections in common."
-msgstr "Общих контактов нет."
-
-#: ../../Zotlabs/Module/Common.php:65
-msgid "View Common Connections"
-msgstr "Просмотр общий контактов"
-
-#: ../../Zotlabs/Module/Acl.php:359
-msgid "network"
-msgstr "сеть"
-
-#: ../../Zotlabs/Module/Item.php:194
-msgid "Unable to locate original post."
-msgstr "Не удалось найти оригинальную публикацию."
-
-#: ../../Zotlabs/Module/Item.php:479
-msgid "Empty post discarded."
-msgstr "Пустая публикация отклонена."
-
-#: ../../Zotlabs/Module/Item.php:866
-msgid "Duplicate post suppressed."
-msgstr "Подавлена дублирующаяся публикация."
-
-#: ../../Zotlabs/Module/Item.php:1011
-msgid "System error. Post not saved."
-msgstr "Системная ошибка. Публикация не сохранена."
-
-#: ../../Zotlabs/Module/Item.php:1047
-msgid "Your comment is awaiting approval."
-msgstr "Ваш комментарий ожидает одобрения."
-
-#: ../../Zotlabs/Module/Item.php:1164
-msgid "Unable to obtain post information from database."
-msgstr "Невозможно получить информацию о публикации из базы данных"
-
-#: ../../Zotlabs/Module/Item.php:1171
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
-msgstr "Вы достигли вашего ограничения в %1$.0f публикаций высокого уровня."
-
-#: ../../Zotlabs/Module/Item.php:1178
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
-msgstr "Вы достигли вашего ограничения в %1$.0f страниц."
-
-#: ../../Zotlabs/Module/Achievements.php:38
-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/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
-msgid ""
-"You must enable javascript for your browser to be able to view this content."
-msgstr "Для просмотра этого содержимого в вашем браузере должен быть включён JavaScript"
-
-#: ../../Zotlabs/Module/Display.php:393
-msgid "Article"
-msgstr "Статья"
-
-#: ../../Zotlabs/Module/Display.php:445
-msgid "Item has been removed."
-msgstr "Элемент был удалён."
-
-#: ../../Zotlabs/Module/Ping.php:337
-msgid "sent you a private message"
-msgstr "отправил вам личное сообщение"
-
-#: ../../Zotlabs/Module/Ping.php:390
-msgid "added your channel"
-msgstr "добавил ваш канал"
-
-#: ../../Zotlabs/Module/Ping.php:414
-msgid "requires approval"
-msgstr "Требуется подтверждение"
-
-#: ../../Zotlabs/Module/Ping.php:424
-msgid "g A l F d"
-msgstr "g A l F d"
-
-#: ../../Zotlabs/Module/Ping.php:442
-msgid "[today]"
-msgstr "[сегодня]"
-
-#: ../../Zotlabs/Module/Ping.php:451
-msgid "posted an event"
-msgstr "событие опубликовано"
-
-#: ../../Zotlabs/Module/Ping.php:484
-msgid "shared a file with you"
-msgstr "с вами поделились файлом"
-
-#: ../../Zotlabs/Module/Ping.php:659
-msgid "Private forum"
-msgstr "Частный форум"
-
-#: ../../Zotlabs/Module/Ping.php:659
-msgid "Public forum"
-msgstr "Публичный форум"
-
-#: ../../Zotlabs/Module/Poke.php:165
-msgid "Poke App"
-msgstr "Приложение \"Ткнуть\""
-
-#: ../../Zotlabs/Module/Poke.php:166
-msgid "Poke somebody in your addressbook"
-msgstr "Ткнуть кого-нибудь в вашей адресной книге"
-
-#: ../../Zotlabs/Module/Poke.php:200
-msgid "Poke somebody"
-msgstr "Ткнуть кого-нибудь"
-
-#: ../../Zotlabs/Module/Poke.php:203
-msgid "Poke/Prod"
-msgstr "Толкнуть / подтолкнуть"
-
-#: ../../Zotlabs/Module/Poke.php:204
-msgid "Poke, prod or do other things to somebody"
-msgstr "Толкнуть, подтолкнуть или сделать что-то ещё с кем-то"
-
-#: ../../Zotlabs/Module/Poke.php:211
-msgid "Recipient"
-msgstr "Получатель"
-
-#: ../../Zotlabs/Module/Poke.php:212
-msgid "Choose what you wish to do to recipient"
-msgstr "Выбрать что вы хотите сделать с получателем"
-
-#: ../../Zotlabs/Module/Poke.php:215 ../../Zotlabs/Module/Poke.php:216
-msgid "Make this post private"
-msgstr "Сделать эту публикацию приватной"
-
-#: ../../Zotlabs/Module/Lockview.php:75
-msgid "Remote privacy information not available."
-msgstr "Удаленная информация о конфиденциальности недоступна."
-
-#: ../../Zotlabs/Module/Lockview.php:96
-msgid "Visible to:"
-msgstr "Видимо для:"
-
-#: ../../Zotlabs/Module/Tagger.php:48
-msgid "Post not found."
-msgstr "Публикация не найдена"
-
-#: ../../Zotlabs/Module/Tagger.php:119
-#, php-format
-msgid "%1$s tagged %2$s's %3$s with %4$s"
-msgstr "%1$s отметил тегом %2$s %3$s с %4$s"
-
-#: ../../Zotlabs/Module/Directory.php:110
-msgid "No default suggestions were found."
-msgstr "Предложений по умолчанию не найдено."
-
-#: ../../Zotlabs/Module/Directory.php:259
-#, php-format
-msgid "%d rating"
-msgid_plural "%d ratings"
-msgstr[0] "%d оценка"
-msgstr[1] "%d оценки"
-msgstr[2] "%d оценок"
-
-#: ../../Zotlabs/Module/Directory.php:270
-msgid "Gender: "
-msgstr "Пол:"
-
-#: ../../Zotlabs/Module/Directory.php:272
-msgid "Status: "
-msgstr "Статус:"
-
-#: ../../Zotlabs/Module/Directory.php:274
-msgid "Homepage: "
-msgstr "Домашняя страница:"
-
-#: ../../Zotlabs/Module/Directory.php:334
-msgid "Description:"
-msgstr "Описание:"
-
-#: ../../Zotlabs/Module/Directory.php:343
-msgid "Public Forum:"
-msgstr "Публичный форум:"
-
-#: ../../Zotlabs/Module/Directory.php:346
-msgid "Keywords: "
-msgstr "Ключевые слова:"
-
-#: ../../Zotlabs/Module/Directory.php:349
-msgid "Don't suggest"
-msgstr "Не предлагать"
-
-#: ../../Zotlabs/Module/Directory.php:351
-msgid "Common connections (estimated):"
-msgstr "Общие контакты (оценочно):"
-
-#: ../../Zotlabs/Module/Directory.php:400
-msgid "Global Directory"
-msgstr "Глобальный каталог"
-
-#: ../../Zotlabs/Module/Directory.php:400
-msgid "Local Directory"
-msgstr "Локальный каталог"
-
-#: ../../Zotlabs/Module/Directory.php:406
-msgid "Finding:"
-msgstr "Поиск:"
-
-#: ../../Zotlabs/Module/Directory.php:411
-msgid "next page"
-msgstr "следующая страница"
-
-#: ../../Zotlabs/Module/Directory.php:411
-msgid "previous page"
-msgstr "предыдущая страница"
-
-#: ../../Zotlabs/Module/Directory.php:412
-msgid "Sort options"
-msgstr "Параметры сортировки"
-
-#: ../../Zotlabs/Module/Directory.php:413
-msgid "Alphabetic"
-msgstr "По алфавиту"
-
-#: ../../Zotlabs/Module/Directory.php:414
-msgid "Reverse Alphabetic"
-msgstr "Против алфавита"
-
-#: ../../Zotlabs/Module/Directory.php:415
-msgid "Newest to Oldest"
-msgstr "От новых к старым"
+#: ../../Zotlabs/Module/Profperm.php:115
+msgid "Click on a contact to add or remove."
+msgstr "Нажмите на контакт, чтобы добавить или удалить."
-#: ../../Zotlabs/Module/Directory.php:416
-msgid "Oldest to Newest"
-msgstr "От старых к новым"
+#: ../../Zotlabs/Module/Profperm.php:124
+msgid "Visible To"
+msgstr "Видно"
-#: ../../Zotlabs/Module/Directory.php:433
-msgid "No entries (some entries may be hidden)."
-msgstr "Нет записей (некоторые записи могут быть скрыты)."
+#: ../../Zotlabs/Module/Profperm.php:140
+#: ../../Zotlabs/Module/Connections.php:203
+msgid "All Connections"
+msgstr "Все контакты"
#: ../../Zotlabs/Module/Cdav.php:810
msgid "INVALID EVENT DISMISSED!"
@@ -4802,6 +642,16 @@ msgstr "НЕДЕЙСТВИТЕЛЬНОЕ СОБЫТИЕ ОТКЛОНЕНО!"
msgid "Summary: "
msgstr "Резюме: "
+#: ../../Zotlabs/Module/Cdav.php:811 ../../Zotlabs/Module/Cdav.php:812
+#: ../../Zotlabs/Module/Cdav.php:819 ../../Zotlabs/Module/Embedphotos.php:154
+#: ../../Zotlabs/Module/Photos.php:832 ../../Zotlabs/Module/Photos.php:1296
+#: ../../Zotlabs/Lib/Activity.php:1011 ../../Zotlabs/Lib/Apps.php:1113
+#: ../../Zotlabs/Lib/Apps.php:1197 ../../Zotlabs/Storage/Browser.php:164
+#: ../../Zotlabs/Widget/Portfolio.php:95 ../../Zotlabs/Widget/Album.php:84
+#: ../../addon/pubcrawl/as.php:959 ../../include/conversation.php:1166
+msgid "Unknown"
+msgstr "Неизвестный"
+
#: ../../Zotlabs/Module/Cdav.php:812
msgid "Date: "
msgstr "Дата: "
@@ -4850,24 +700,31 @@ msgstr "Пример: YYYY-MM-DD HH:mm"
msgid "End date and time"
msgstr "Дата и время окончания"
-#: ../../Zotlabs/Module/Cdav.php:916 ../../Zotlabs/Module/Appman.php:145
-#: ../../Zotlabs/Module/Events.php:475 ../../Zotlabs/Module/Rbmark.php:101
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:173
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:652
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:260
+#: ../../Zotlabs/Module/Cdav.php:916 ../../Zotlabs/Module/Events.php:475
+#: ../../Zotlabs/Module/Appman.php:145 ../../Zotlabs/Module/Rbmark.php:101
+#: ../../addon/rendezvous/rendezvous.php:173
+#: ../../addon/cart/submodules/manualcat.php:260
+#: ../../addon/cart/submodules/hzservices.php:652
msgid "Description"
msgstr "Описание"
-#: ../../Zotlabs/Module/Cdav.php:924 ../../Zotlabs/Module/Photos.php:973
-#: ../../Zotlabs/Module/Events.php:690 ../../Zotlabs/Module/Events.php:699
-#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Cal.php:345
+#: ../../Zotlabs/Module/Cdav.php:917 ../../Zotlabs/Module/Locs.php:117
+#: ../../Zotlabs/Module/Events.php:477 ../../Zotlabs/Module/Profiles.php:509
+#: ../../Zotlabs/Module/Profiles.php:734 ../../Zotlabs/Module/Pubsites.php:52
+#: ../../include/js_strings.php:25
+msgid "Location"
+msgstr "Место"
+
+#: ../../Zotlabs/Module/Cdav.php:924 ../../Zotlabs/Module/Events.php:690
+#: ../../Zotlabs/Module/Events.php:699 ../../Zotlabs/Module/Cal.php:338
+#: ../../Zotlabs/Module/Cal.php:345 ../../Zotlabs/Module/Photos.php:986
msgid "Previous"
msgstr "Предыдущая"
-#: ../../Zotlabs/Module/Cdav.php:925 ../../Zotlabs/Module/Photos.php:982
-#: ../../Zotlabs/Module/Events.php:691 ../../Zotlabs/Module/Events.php:700
+#: ../../Zotlabs/Module/Cdav.php:925 ../../Zotlabs/Module/Events.php:691
+#: ../../Zotlabs/Module/Events.php:700 ../../Zotlabs/Module/Setup.php:263
#: ../../Zotlabs/Module/Cal.php:339 ../../Zotlabs/Module/Cal.php:346
-#: ../../Zotlabs/Module/Setup.php:263
+#: ../../Zotlabs/Module/Photos.php:995
msgid "Next"
msgstr "Следующая"
@@ -4920,86 +777,127 @@ 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:1215 ../../Zotlabs/Module/Sharedwithme.php:104
+#: ../../Zotlabs/Module/Admin/Channels.php:159
+#: ../../Zotlabs/Module/Oauth2.php:118 ../../Zotlabs/Module/Oauth2.php:146
+#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Connedit.php:923
+#: ../../Zotlabs/Module/Chat.php:259 ../../Zotlabs/Module/Group.php:154
+#: ../../Zotlabs/Module/Oauth.php:113 ../../Zotlabs/Module/Oauth.php:139
+#: ../../Zotlabs/Lib/NativeWikiPage.php:561
+#: ../../Zotlabs/Storage/Browser.php:285
+#: ../../Zotlabs/Widget/Wiki_page_history.php:22
+#: ../../addon/rendezvous/rendezvous.php:172
+msgid "Name"
+msgstr "Имя"
+
+#: ../../Zotlabs/Module/Cdav.php:1216 ../../Zotlabs/Module/Connedit.php:924
msgid "Organisation"
msgstr "Организация"
-#: ../../Zotlabs/Module/Cdav.php:1217 ../../Zotlabs/Module/Connedit.php:909
+#: ../../Zotlabs/Module/Cdav.php:1217 ../../Zotlabs/Module/Connedit.php:925
msgid "Title"
msgstr "Наименование"
-#: ../../Zotlabs/Module/Cdav.php:1218 ../../Zotlabs/Module/Profiles.php:786
-#: ../../Zotlabs/Module/Connedit.php:910
+#: ../../Zotlabs/Module/Cdav.php:1218 ../../Zotlabs/Module/Connedit.php:926
+#: ../../Zotlabs/Module/Profiles.php:786
msgid "Phone"
msgstr "Телефон"
-#: ../../Zotlabs/Module/Cdav.php:1220 ../../Zotlabs/Module/Profiles.php:788
-#: ../../Zotlabs/Module/Connedit.php:912
+#: ../../Zotlabs/Module/Cdav.php:1219
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
+#: ../../Zotlabs/Module/Admin/Accounts.php:183
+#: ../../Zotlabs/Module/Connedit.php:927 ../../Zotlabs/Module/Profiles.php:787
+#: ../../addon/openid/MysqlProvider.php:56
+#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/Mod_Rtof.php:57
+#: ../../addon/redred/Mod_Redred.php:71 ../../include/network.php:1721
+msgid "Email"
+msgstr "Электронная почта"
+
+#: ../../Zotlabs/Module/Cdav.php:1220 ../../Zotlabs/Module/Connedit.php:928
+#: ../../Zotlabs/Module/Profiles.php:788
msgid "Instant messenger"
msgstr "Мессенджер"
-#: ../../Zotlabs/Module/Cdav.php:1221 ../../Zotlabs/Module/Profiles.php:789
-#: ../../Zotlabs/Module/Connedit.php:913
+#: ../../Zotlabs/Module/Cdav.php:1221 ../../Zotlabs/Module/Connedit.php:929
+#: ../../Zotlabs/Module/Profiles.php:789
msgid "Website"
msgstr "Веб-сайт"
-#: ../../Zotlabs/Module/Cdav.php:1222 ../../Zotlabs/Module/Profiles.php:502
-#: ../../Zotlabs/Module/Profiles.php:790 ../../Zotlabs/Module/Locs.php:118
+#: ../../Zotlabs/Module/Cdav.php:1222 ../../Zotlabs/Module/Locs.php:118
#: ../../Zotlabs/Module/Admin/Channels.php:160
-#: ../../Zotlabs/Module/Connedit.php:914
+#: ../../Zotlabs/Module/Connedit.php:930 ../../Zotlabs/Module/Profiles.php:502
+#: ../../Zotlabs/Module/Profiles.php:790
msgid "Address"
msgstr "Адрес"
-#: ../../Zotlabs/Module/Cdav.php:1223 ../../Zotlabs/Module/Profiles.php:791
-#: ../../Zotlabs/Module/Connedit.php:915
+#: ../../Zotlabs/Module/Cdav.php:1223 ../../Zotlabs/Module/Connedit.php:931
+#: ../../Zotlabs/Module/Profiles.php:791
msgid "Note"
msgstr "Заметка"
-#: ../../Zotlabs/Module/Cdav.php:1228 ../../Zotlabs/Module/Profiles.php:796
-#: ../../Zotlabs/Module/Connedit.php:920
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:368
+#: ../../Zotlabs/Module/Cdav.php:1224 ../../Zotlabs/Module/Connedit.php:932
+#: ../../Zotlabs/Module/Profiles.php:792 ../../include/event.php:1320
+#: ../../include/connections.php:696
+msgid "Mobile"
+msgstr "Мобильный"
+
+#: ../../Zotlabs/Module/Cdav.php:1225 ../../Zotlabs/Module/Connedit.php:933
+#: ../../Zotlabs/Module/Profiles.php:793 ../../include/event.php:1321
+#: ../../include/connections.php:697
+msgid "Home"
+msgstr "Домашний"
+
+#: ../../Zotlabs/Module/Cdav.php:1226 ../../Zotlabs/Module/Connedit.php:934
+#: ../../Zotlabs/Module/Profiles.php:794 ../../include/event.php:1324
+#: ../../include/connections.php:700
+msgid "Work"
+msgstr "Рабочий"
+
+#: ../../Zotlabs/Module/Cdav.php:1228 ../../Zotlabs/Module/Connedit.php:936
+#: ../../Zotlabs/Module/Profiles.php:796
+#: ../../addon/jappixmini/Mod_Jappixmini.php:216
msgid "Add Contact"
msgstr "Добавить контакт"
-#: ../../Zotlabs/Module/Cdav.php:1229 ../../Zotlabs/Module/Profiles.php:797
-#: ../../Zotlabs/Module/Connedit.php:921
+#: ../../Zotlabs/Module/Cdav.php:1229 ../../Zotlabs/Module/Connedit.php:937
+#: ../../Zotlabs/Module/Profiles.php:797
msgid "Add Field"
msgstr "Добавить поле"
-#: ../../Zotlabs/Module/Cdav.php:1231 ../../Zotlabs/Module/Profiles.php:799
-#: ../../Zotlabs/Module/Oauth.php:53 ../../Zotlabs/Module/Oauth.php:137
+#: ../../Zotlabs/Module/Cdav.php:1231 ../../Zotlabs/Module/Admin/Addons.php:456
#: ../../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:939 ../../Zotlabs/Module/Profiles.php:799
+#: ../../Zotlabs/Module/Oauth.php:53 ../../Zotlabs/Module/Oauth.php:137
+#: ../../Zotlabs/Lib/Apps.php:535
msgid "Update"
msgstr "Обновить"
-#: ../../Zotlabs/Module/Cdav.php:1234 ../../Zotlabs/Module/Connedit.php:926
+#: ../../Zotlabs/Module/Cdav.php:1234 ../../Zotlabs/Module/Connedit.php:942
msgid "P.O. Box"
msgstr "абонентский ящик"
-#: ../../Zotlabs/Module/Cdav.php:1235 ../../Zotlabs/Module/Connedit.php:927
+#: ../../Zotlabs/Module/Cdav.php:1235 ../../Zotlabs/Module/Connedit.php:943
msgid "Additional"
msgstr "Дополнительно"
-#: ../../Zotlabs/Module/Cdav.php:1236 ../../Zotlabs/Module/Connedit.php:928
+#: ../../Zotlabs/Module/Cdav.php:1236 ../../Zotlabs/Module/Connedit.php:944
msgid "Street"
msgstr "Улица"
-#: ../../Zotlabs/Module/Cdav.php:1237 ../../Zotlabs/Module/Connedit.php:929
+#: ../../Zotlabs/Module/Cdav.php:1237 ../../Zotlabs/Module/Connedit.php:945
msgid "Locality"
msgstr "Населённый пункт"
-#: ../../Zotlabs/Module/Cdav.php:1238 ../../Zotlabs/Module/Connedit.php:930
+#: ../../Zotlabs/Module/Cdav.php:1238 ../../Zotlabs/Module/Connedit.php:946
msgid "Region"
msgstr "Регион"
-#: ../../Zotlabs/Module/Cdav.php:1239 ../../Zotlabs/Module/Connedit.php:931
+#: ../../Zotlabs/Module/Cdav.php:1239 ../../Zotlabs/Module/Connedit.php:947
msgid "ZIP Code"
msgstr "Индекс"
-#: ../../Zotlabs/Module/Cdav.php:1240 ../../Zotlabs/Module/Profiles.php:757
-#: ../../Zotlabs/Module/Connedit.php:932
+#: ../../Zotlabs/Module/Cdav.php:1240 ../../Zotlabs/Module/Connedit.php:948
+#: ../../Zotlabs/Module/Profiles.php:757
msgid "Country"
msgstr "Страна"
@@ -5011,885 +909,525 @@ msgstr "Календарь по умолчанию"
msgid "Default Addressbook"
msgstr "Адресная книга по умолчанию"
-#: ../../Zotlabs/Module/Profile.php:45 ../../Zotlabs/Module/Channel.php:54
-#: ../../Zotlabs/Module/Hcard.php:37
-msgid "Posts and comments"
-msgstr "Публикации и комментарии"
-
-#: ../../Zotlabs/Module/Profile.php:52 ../../Zotlabs/Module/Channel.php:61
-#: ../../Zotlabs/Module/Hcard.php:44
-msgid "Only posts"
-msgstr "Только публикации"
-
-#: ../../Zotlabs/Module/Profile.php:93
-msgid "vcard"
-msgstr "vCard"
-
-#: ../../Zotlabs/Module/Ochannel.php:32 ../../Zotlabs/Module/Chat.php:31
-#: ../../Zotlabs/Module/Channel.php:39
-#: ../../extend/addon/hzaddons/chess/chess.php:508
-msgid "You must be logged in to see this page."
-msgstr "Вы должны авторизоваться, чтобы увидеть эту страницу."
-
-#: ../../Zotlabs/Module/Notify.php:61 ../../Zotlabs/Module/Notifications.php:55
-msgid "No more system notifications."
-msgstr "Нет новых оповещений системы."
-
-#: ../../Zotlabs/Module/Notify.php:65 ../../Zotlabs/Module/Notifications.php:59
-msgid "System Notifications"
-msgstr "Системные оповещения "
-
-#: ../../Zotlabs/Module/Impel.php:183
-#, php-format
-msgid "%s element installed"
-msgstr "%s элемент установлен"
-
-#: ../../Zotlabs/Module/Impel.php:186
-#, php-format
-msgid "%s element installation failed"
-msgstr "%sустановка элемента неудачна."
-
-#: ../../Zotlabs/Module/Appman.php:39 ../../Zotlabs/Module/Appman.php:56
-msgid "App installed."
-msgstr "Приложение установлено."
-
-#: ../../Zotlabs/Module/Appman.php:49
-msgid "Malformed app."
-msgstr "Неработающее приложение."
-
-#: ../../Zotlabs/Module/Appman.php:132
-msgid "Embed code"
-msgstr "Встроить код"
-
-#: ../../Zotlabs/Module/Appman.php:138
-msgid "Edit App"
-msgstr "Редактировать приложение"
-
-#: ../../Zotlabs/Module/Appman.php:138
-msgid "Create App"
-msgstr "Создать приложение"
-
-#: ../../Zotlabs/Module/Appman.php:143
-msgid "Name of app"
-msgstr "Наименование приложения"
-
-#: ../../Zotlabs/Module/Appman.php:144
-msgid "Location (URL) of app"
-msgstr "Местоположение (URL) приложения"
-
-#: ../../Zotlabs/Module/Appman.php:146
-msgid "Photo icon URL"
-msgstr "URL пиктограммы"
-
-#: ../../Zotlabs/Module/Appman.php:146
-msgid "80 x 80 pixels - optional"
-msgstr "80 x 80 пикселей - необязательно"
-
-#: ../../Zotlabs/Module/Appman.php:147
-msgid "Categories (optional, comma separated list)"
-msgstr "Категории (необязательно, список через запятую)"
-
-#: ../../Zotlabs/Module/Appman.php:148
-msgid "Version ID"
-msgstr "ID версии"
-
-#: ../../Zotlabs/Module/Appman.php:149
-msgid "Price of app"
-msgstr "Цена приложения"
-
-#: ../../Zotlabs/Module/Appman.php:150
-msgid "Location (URL) to purchase app"
-msgstr "Ссылка (URL) для покупки приложения"
-
-#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63
-msgid "Invalid profile identifier."
-msgstr "Неверный идентификатор профиля"
+#: ../../Zotlabs/Module/Regdir.php:49 ../../Zotlabs/Module/Dirsearch.php:25
+msgid "This site is not a directory server"
+msgstr "Этот сайт не является сервером каталога"
-#: ../../Zotlabs/Module/Profperm.php:111
-msgid "Profile Visibility Editor"
-msgstr "Редактор видимости профиля"
+#: ../../Zotlabs/Module/Permcats.php:28
+msgid "Permission category name is required."
+msgstr "Требуется категория разрешений."
-#: ../../Zotlabs/Module/Profperm.php:115
-msgid "Click on a contact to add or remove."
-msgstr "Нажмите на контакт, чтобы добавить или удалить."
+#: ../../Zotlabs/Module/Permcats.php:47
+msgid "Permission category saved."
+msgstr "Категория разрешения сохранена."
-#: ../../Zotlabs/Module/Profperm.php:124
-msgid "Visible To"
-msgstr "Видно"
+#: ../../Zotlabs/Module/Permcats.php:62
+msgid "Permission Categories App"
+msgstr "Приложение \"Категории разрешений\""
-#: ../../Zotlabs/Module/Profperm.php:140
-#: ../../Zotlabs/Module/Connections.php:203
-msgid "All Connections"
-msgstr "Все контакты"
+#: ../../Zotlabs/Module/Permcats.php:63
+msgid "Create custom connection permission limits"
+msgstr "Создать пользовательские ограничения на доступ к подключению"
-#: ../../Zotlabs/Module/Changeaddr.php:35
+#: ../../Zotlabs/Module/Permcats.php:79
msgid ""
-"Channel name changes are not allowed within 48 hours of changing the account "
-"password."
-msgstr "Изменение названия канала не разрешается в течении 48 часов после смены пароля у аккаунта."
-
-#: ../../Zotlabs/Module/Changeaddr.php:77
-msgid "Change channel nickname/address"
-msgstr "Изменить псевдоним / адрес канала"
-
-#: ../../Zotlabs/Module/Changeaddr.php:78 ../../Zotlabs/Module/Removeme.php:61
-#: ../../Zotlabs/Module/Removeaccount.php:58
-msgid "WARNING: "
-msgstr "ПРЕДУПРЕЖДЕНИЕ: "
-
-#: ../../Zotlabs/Module/Changeaddr.php:78
-msgid "Any/all connections on other networks will be lost!"
-msgstr "Любые / все контакты в других сетях будут утеряны!"
-
-#: ../../Zotlabs/Module/Changeaddr.php:79 ../../Zotlabs/Module/Removeme.php:62
-#: ../../Zotlabs/Module/Removeaccount.php:59
-msgid "Please enter your password for verification:"
-msgstr "Пожалуйста, введите ваш пароль для проверки:"
-
-#: ../../Zotlabs/Module/Changeaddr.php:80
-msgid "New channel address"
-msgstr "Новый адрес канала"
-
-#: ../../Zotlabs/Module/Changeaddr.php:81
-msgid "Rename Channel"
-msgstr "Переименовать канал"
-
-#: ../../Zotlabs/Module/Admin.php:96
-#: ../../Zotlabs/Module/Admin/Accounts.php:167
-#: ../../Zotlabs/Module/Admin/Accounts.php:180
-#: ../../Zotlabs/Widget/Admin.php:23
-msgid "Accounts"
-msgstr "Учётные записи"
-
-#: ../../Zotlabs/Module/Admin.php:97
-msgid "Blocked accounts"
-msgstr "Заблокированные аккаунты"
-
-#: ../../Zotlabs/Module/Admin.php:98
-msgid "Expired accounts"
-msgstr "Просроченные аккаунты"
-
-#: ../../Zotlabs/Module/Admin.php:99
-msgid "Expiring accounts"
-msgstr "Близкие к просрочке аккаунты"
-
-#: ../../Zotlabs/Module/Admin.php:114
-#: ../../Zotlabs/Module/Admin/Channels.php:146
-#: ../../Zotlabs/Widget/Admin.php:24
-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
-msgid "Message queues"
-msgstr "Очередь сообщений"
-
-#: ../../Zotlabs/Module/Admin.php:136
-msgid "Your software should be updated"
-msgstr "Ваше программное обеспечение должно быть обновлено"
-
-#: ../../Zotlabs/Module/Admin.php:140 ../../Zotlabs/Module/Admin/Logs.php:82
-#: ../../Zotlabs/Module/Admin/Channels.php:145
-#: ../../Zotlabs/Module/Admin/Security.php:92
-#: ../../Zotlabs/Module/Admin/Addons.php:341
-#: ../../Zotlabs/Module/Admin/Addons.php:436
-#: ../../Zotlabs/Module/Admin/Site.php:287
-#: ../../Zotlabs/Module/Admin/Themes.php:122
-#: ../../Zotlabs/Module/Admin/Themes.php:156
-#: ../../Zotlabs/Module/Admin/Accounts.php:166
-msgid "Administration"
-msgstr "Администрирование"
-
-#: ../../Zotlabs/Module/Admin.php:141
-msgid "Summary"
-msgstr "Резюме"
-
-#: ../../Zotlabs/Module/Admin.php:144
-msgid "Registered accounts"
-msgstr "Зарегистрированные аккаунты"
-
-#: ../../Zotlabs/Module/Admin.php:145
-msgid "Pending registrations"
-msgstr "Ждут утверждения"
-
-#: ../../Zotlabs/Module/Admin.php:146
-msgid "Registered channels"
-msgstr "Зарегистрированные каналы"
-
-#: ../../Zotlabs/Module/Admin.php:147
-msgid "Active addons"
-msgstr "Активные расширения"
-
-#: ../../Zotlabs/Module/Admin.php:148
-msgid "Version"
-msgstr "Версия системы"
-
-#: ../../Zotlabs/Module/Admin.php:149
-msgid "Repository version (master)"
-msgstr "Версия репозитория (master)"
-
-#: ../../Zotlabs/Module/Admin.php:150
-msgid "Repository version (dev)"
-msgstr "Версия репозитория (dev)"
-
-#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:184
-#: ../../Zotlabs/Module/Profiles.php:241 ../../Zotlabs/Module/Profiles.php:659
-msgid "Profile not found."
-msgstr "Профиль не найден."
-
-#: ../../Zotlabs/Module/Profiles.php:44
-msgid "Profile deleted."
-msgstr "Профиль удален."
-
-#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:105
-msgid "Profile-"
-msgstr "Профиль -"
-
-#: ../../Zotlabs/Module/Profiles.php:90 ../../Zotlabs/Module/Profiles.php:127
-msgid "New profile created."
-msgstr "Новый профиль создан."
-
-#: ../../Zotlabs/Module/Profiles.php:111
-msgid "Profile unavailable to clone."
-msgstr "Профиль недоступен для клонирования."
-
-#: ../../Zotlabs/Module/Profiles.php:146
-msgid "Profile unavailable to export."
-msgstr "Профиль недоступен для экспорта."
-
-#: ../../Zotlabs/Module/Profiles.php:252
-msgid "Profile Name is required."
-msgstr "Требуется имя профиля."
-
-#: ../../Zotlabs/Module/Profiles.php:459
-msgid "Marital Status"
-msgstr "Семейное положение"
-
-#: ../../Zotlabs/Module/Profiles.php:463
-msgid "Romantic Partner"
-msgstr "Романтический партнер"
-
-#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:772
-msgid "Likes"
-msgstr "Нравится"
-
-#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:773
-msgid "Dislikes"
-msgstr "Не нравится"
-
-#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:780
-msgid "Work/Employment"
-msgstr "Работа / Занятость"
-
-#: ../../Zotlabs/Module/Profiles.php:478
-msgid "Religion"
-msgstr "Религия"
-
-#: ../../Zotlabs/Module/Profiles.php:482
-msgid "Political Views"
-msgstr "Политические взгляды"
-
-#: ../../Zotlabs/Module/Profiles.php:486
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:74
-msgid "Gender"
-msgstr "Гендер"
-
-#: ../../Zotlabs/Module/Profiles.php:490
-msgid "Sexual Preference"
-msgstr "Сексуальная ориентация"
-
-#: ../../Zotlabs/Module/Profiles.php:494
-msgid "Homepage"
-msgstr "Домашняя страница"
-
-#: ../../Zotlabs/Module/Profiles.php:498
-msgid "Interests"
-msgstr "Интересы"
-
-#: ../../Zotlabs/Module/Profiles.php:594
-msgid "Profile updated."
-msgstr "Профиль обновлен."
-
-#: ../../Zotlabs/Module/Profiles.php:678
-msgid "Hide your connections list from viewers of this profile"
-msgstr "Скрывать от просмотра ваш список контактов в этом профиле"
-
-#: ../../Zotlabs/Module/Profiles.php:722
-msgid "Edit Profile Details"
-msgstr "Редактирование профиля"
-
-#: ../../Zotlabs/Module/Profiles.php:724
-msgid "View this profile"
-msgstr "Посмотреть этот профиль"
-
-#: ../../Zotlabs/Module/Profiles.php:726
-msgid "Profile Tools"
-msgstr "Инструменты профиля"
-
-#: ../../Zotlabs/Module/Profiles.php:727
-msgid "Change cover photo"
-msgstr "Изменить фотографию обложки"
-
-#: ../../Zotlabs/Module/Profiles.php:729
-msgid "Create a new profile using these settings"
-msgstr "Создать новый профиль с теми же настройками"
-
-#: ../../Zotlabs/Module/Profiles.php:730
-msgid "Clone this profile"
-msgstr "Клонировать этот профиль"
-
-#: ../../Zotlabs/Module/Profiles.php:731
-msgid "Delete this profile"
-msgstr "Удалить этот профиль"
-
-#: ../../Zotlabs/Module/Profiles.php:732
-msgid "Add profile things"
-msgstr "Добавить в профиль"
-
-#: ../../Zotlabs/Module/Profiles.php:733
-msgid "Personal"
-msgstr "Личное"
-
-#: ../../Zotlabs/Module/Profiles.php:735
-msgid "Relationship"
-msgstr "Отношения"
-
-#: ../../Zotlabs/Module/Profiles.php:738
-msgid "Import profile from file"
-msgstr "Импортировать профиль из файла"
-
-#: ../../Zotlabs/Module/Profiles.php:739
-msgid "Export profile to file"
-msgstr "Экспортировать профиль в файл"
-
-#: ../../Zotlabs/Module/Profiles.php:740
-msgid "Your gender"
-msgstr "Ваш пол"
-
-#: ../../Zotlabs/Module/Profiles.php:741
-msgid "Marital status"
-msgstr "Семейное положение"
-
-#: ../../Zotlabs/Module/Profiles.php:742
-msgid "Sexual preference"
-msgstr "Сексуальная ориентация"
-
-#: ../../Zotlabs/Module/Profiles.php:745
-msgid "Profile name"
-msgstr "Имя профиля"
-
-#: ../../Zotlabs/Module/Profiles.php:747
-msgid "This is your default profile."
-msgstr "Это ваш профиль по умолчанию."
-
-#: ../../Zotlabs/Module/Profiles.php:749
-msgid "Your full name"
-msgstr "Ваше полное имя"
-
-#: ../../Zotlabs/Module/Profiles.php:750
-msgid "Title/Description"
-msgstr "Заголовок / описание"
-
-#: ../../Zotlabs/Module/Profiles.php:753
-msgid "Street address"
-msgstr "Улица, дом, квартира"
-
-#: ../../Zotlabs/Module/Profiles.php:754
-msgid "Locality/City"
-msgstr "Населенный пункт / город"
-
-#: ../../Zotlabs/Module/Profiles.php:755
-msgid "Region/State"
-msgstr "Регион / Область"
-
-#: ../../Zotlabs/Module/Profiles.php:756
-msgid "Postal/Zip code"
-msgstr "Почтовый индекс"
-
-#: ../../Zotlabs/Module/Profiles.php:762
-msgid "Who (if applicable)"
-msgstr "Кто (если применимо)"
-
-#: ../../Zotlabs/Module/Profiles.php:762
-msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
-msgstr "Примеры: ivan1990, Ivan Petrov, ivan@example.com"
-
-#: ../../Zotlabs/Module/Profiles.php:763
-msgid "Since (date)"
-msgstr "С (дата)"
+"Use this form to create permission rules for various classes of people or "
+"connections."
+msgstr "Используйте эту форму для создания правил разрешений для различных групп людей и контактов."
-#: ../../Zotlabs/Module/Profiles.php:766
-msgid "Tell us about yourself"
-msgstr "Расскажите нам о себе"
+#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:372
+msgid "Permission Categories"
+msgstr "Категории разрешений"
-#: ../../Zotlabs/Module/Profiles.php:767
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:68
-msgid "Homepage URL"
-msgstr "URL домашней страницы"
+#: ../../Zotlabs/Module/Permcats.php:120
+msgid "Permission category name"
+msgstr "Наименование категории разрешений"
-#: ../../Zotlabs/Module/Profiles.php:768
-msgid "Hometown"
-msgstr "Родной город"
+#: ../../Zotlabs/Module/Permcats.php:121 ../../Zotlabs/Module/Tokens.php:181
+#: ../../Zotlabs/Module/Connedit.php:908 ../../Zotlabs/Module/Defperms.php:266
+msgid "My Settings"
+msgstr "Мои настройки"
-#: ../../Zotlabs/Module/Profiles.php:769
-msgid "Political views"
-msgstr "Политические взгляды"
+#: ../../Zotlabs/Module/Permcats.php:123 ../../Zotlabs/Module/Tokens.php:183
+#: ../../Zotlabs/Module/Connedit.php:903 ../../Zotlabs/Module/Defperms.php:264
+msgid "inherited"
+msgstr "наследуется"
-#: ../../Zotlabs/Module/Profiles.php:770
-msgid "Religious views"
-msgstr "Религиозные взгляды"
+#: ../../Zotlabs/Module/Permcats.php:126 ../../Zotlabs/Module/Tokens.php:186
+#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Defperms.php:269
+msgid "Individual Permissions"
+msgstr "Индивидуальные разрешения"
-#: ../../Zotlabs/Module/Profiles.php:771
-msgid "Keywords used in directory listings"
-msgstr "Ключевые слова для участия в каталоге"
+#: ../../Zotlabs/Module/Permcats.php:127 ../../Zotlabs/Module/Tokens.php:187
+#: ../../Zotlabs/Module/Connedit.php:911
+msgid ""
+"Some permissions may be inherited from your channel's <a href=\"settings"
+"\"><strong>privacy settings</strong></a>, which have higher priority than "
+"individual settings. You can <strong>not</strong> change those settings here."
+msgstr "Некоторые разрешения могут наследовать из <a href=\"settings\"><strong>настроек приватности</strong></a> ваших каналов которые могут иметь более высокий приоритет чем индивидуальные. Вы <strong>не можете</strong> менять эти настройки здесь."
-#: ../../Zotlabs/Module/Profiles.php:771
-msgid "Example: fishing photography software"
-msgstr "Например: fishing photography software"
+#: ../../Zotlabs/Module/Channel.php:41 ../../Zotlabs/Module/Ochannel.php:32
+#: ../../Zotlabs/Module/Chat.php:31 ../../addon/chess/Mod_Chess.php:343
+msgid "You must be logged in to see this page."
+msgstr "Вы должны авторизоваться, чтобы увидеть эту страницу."
-#: ../../Zotlabs/Module/Profiles.php:774
-msgid "Musical interests"
-msgstr "Музыкальные интересы"
+#: ../../Zotlabs/Module/Channel.php:98 ../../Zotlabs/Module/Hcard.php:37
+#: ../../Zotlabs/Module/Profile.php:45
+msgid "Posts and comments"
+msgstr "Публикации и комментарии"
-#: ../../Zotlabs/Module/Profiles.php:775
-msgid "Books, literature"
-msgstr "Книги, литература"
+#: ../../Zotlabs/Module/Channel.php:105 ../../Zotlabs/Module/Hcard.php:44
+#: ../../Zotlabs/Module/Profile.php:52
+msgid "Only posts"
+msgstr "Только публикации"
-#: ../../Zotlabs/Module/Profiles.php:776
-msgid "Television"
-msgstr "Телевидение"
+#: ../../Zotlabs/Module/Channel.php:165
+msgid "Insufficient permissions. Request redirected to profile page."
+msgstr "Недостаточно прав. Запрос перенаправлен на страницу профиля."
-#: ../../Zotlabs/Module/Profiles.php:777
-msgid "Film/Dance/Culture/Entertainment"
-msgstr "Кино / танцы / культура / развлечения"
+#: ../../Zotlabs/Module/Channel.php:182 ../../Zotlabs/Module/Network.php:173
+msgid "Search Results For:"
+msgstr "Результаты поиска для:"
-#: ../../Zotlabs/Module/Profiles.php:778
-msgid "Hobbies/Interests"
-msgstr "Хобби / интересы"
+#: ../../Zotlabs/Module/Channel.php:217 ../../Zotlabs/Module/Hq.php:134
+#: ../../Zotlabs/Module/Pubstream.php:94 ../../Zotlabs/Module/Display.php:80
+#: ../../Zotlabs/Module/Network.php:203
+msgid "Reset form"
+msgstr "Очистить форму"
-#: ../../Zotlabs/Module/Profiles.php:779
-msgid "Love/Romance"
-msgstr "Любовь / романтические отношения"
+#: ../../Zotlabs/Module/Channel.php:476 ../../Zotlabs/Module/Display.php:373
+msgid ""
+"You must enable javascript for your browser to be able to view this content."
+msgstr "Для просмотра этого содержимого в вашем браузере должен быть включён JavaScript"
-#: ../../Zotlabs/Module/Profiles.php:781
-msgid "School/Education"
-msgstr "Школа / образование"
+#: ../../Zotlabs/Module/Lang.php:17
+msgid "Language App"
+msgstr "Приложение \"Язык\""
-#: ../../Zotlabs/Module/Profiles.php:782
-msgid "Contact information and social networks"
-msgstr "Информация и социальные сети для связи"
+#: ../../Zotlabs/Module/Lang.php:18
+msgid "Change UI language"
+msgstr "Изменить язык интерфейса"
-#: ../../Zotlabs/Module/Profiles.php:783
-msgid "My other channels"
-msgstr "Мои другие контакты"
+#: ../../Zotlabs/Module/Uexport.php:61
+msgid "Channel Export App"
+msgstr "Приложение \"Экспорт канала\""
-#: ../../Zotlabs/Module/Profiles.php:785
-msgid "Communications"
-msgstr "Связи"
+#: ../../Zotlabs/Module/Uexport.php:62
+msgid "Export your channel"
+msgstr "Экспортировать ваш канал"
-#: ../../Zotlabs/Module/Profiles.php:831 ../../Zotlabs/Module/Chat.php:264
-#: ../../Zotlabs/Module/Wiki.php:214 ../../Zotlabs/Module/Manage.php:145
-msgid "Create New"
-msgstr "Создать новый"
+#: ../../Zotlabs/Module/Uexport.php:72 ../../Zotlabs/Module/Uexport.php:73
+msgid "Export Channel"
+msgstr "Экспорт канала"
-#: ../../Zotlabs/Module/Photos.php:78
-msgid "Page owner information could not be retrieved."
-msgstr "Информация о владельце страницы не может быть получена."
+#: ../../Zotlabs/Module/Uexport.php:74
+msgid ""
+"Export your basic channel information to a file. This acts as a backup of "
+"your connections, permissions, profile and basic data, which can be used to "
+"import your data to a new server hub, but does not contain your content."
+msgstr "Экспортировать основную информацию из канала в файл. Служит в качестве резервной копии ваших контактов, основных данных и профиля, однако не включает содержимое. Может быть использовано для импорта ваши данных на новый сервер."
-#: ../../Zotlabs/Module/Photos.php:94 ../../Zotlabs/Module/Photos.php:113
-msgid "Album not found."
-msgstr "Альбом не найден."
+#: ../../Zotlabs/Module/Uexport.php:75
+msgid "Export Content"
+msgstr "Экспортировать содержимое"
-#: ../../Zotlabs/Module/Photos.php:103
-msgid "Delete Album"
-msgstr "Удалить альбом"
+#: ../../Zotlabs/Module/Uexport.php:76
+msgid ""
+"Export your channel information and recent content to a JSON backup that can "
+"be restored or imported to another server hub. This backs up all of your "
+"connections, permissions, profile data and several months of posts. This "
+"file may be VERY large. Please be patient - it may take several minutes for "
+"this download to begin."
+msgstr "Экспортировать информацию из вашего канала и его содержимое в резервную копию в формате JSON которая может быть использована для восстановления или импорта на другом сервере. Сохраняет все ваши контакты, разрешения, данные профиля и публикации за несколько месяцев. Файл может иметь очень большой размер. Пожалуйста, будьте терпеливы и подождите несколько минут пока не начнётся загрузка."
-#: ../../Zotlabs/Module/Photos.php:174 ../../Zotlabs/Module/Photos.php:1085
-msgid "Delete Photo"
-msgstr "Удалить фотографию"
+#: ../../Zotlabs/Module/Uexport.php:78
+msgid "Export your posts from a given year."
+msgstr "Экспортировать ваши публикации за данный год."
-#: ../../Zotlabs/Module/Photos.php:556
-msgid "No photos selected"
-msgstr "Никакие фотографии не выбраны"
+#: ../../Zotlabs/Module/Uexport.php:80
+msgid ""
+"You may also export your posts and conversations for a particular year or "
+"month. Adjust the date in your browser location bar to select other dates. "
+"If the export fails (possibly due to memory exhaustion on your server hub), "
+"please try again selecting a more limited date range."
+msgstr "Вы также можете экспортировать ваши публикации и беседы за определённый месяц или год. Выберите дату в панели местоположения в браузере. Если экспорт будет неудачным (это возможно, например, из-за исчерпания памяти на сервере), повторите попытку, выбрав меньший диапазон дат."
-#: ../../Zotlabs/Module/Photos.php:605
-msgid "Access to this item is restricted."
-msgstr "Доступ к этому элементу ограничен."
+#: ../../Zotlabs/Module/Uexport.php:81
+#, php-format
+msgid ""
+"To select all posts for a given year, such as this year, visit <a href=\"%1$s"
+"\">%2$s</a>"
+msgstr "Для выбора всех публикаций заданного года, например текущего, посетите <a href=\"%1$s\">%2$s</a>"
-#: ../../Zotlabs/Module/Photos.php:648
+#: ../../Zotlabs/Module/Uexport.php:82
#, php-format
-msgid "%1$.2f MB of %2$.2f MB photo storage used."
-msgstr "Вы использовали %1$.2f мегабайт из %2$.2f для хранения фото."
+msgid ""
+"To select all posts for a given month, such as January of this year, visit "
+"<a href=\"%1$s\">%2$s</a>"
+msgstr "Для выбора всех публикаций заданного месяца, например за январь сего года, посетите <a href=\"%1$s\">%2$s</a>"
-#: ../../Zotlabs/Module/Photos.php:651
+#: ../../Zotlabs/Module/Uexport.php:83
#, php-format
-msgid "%1$.2f MB photo storage used."
-msgstr "Вы использовали %1$.2f мегабайт для хранения фото."
+msgid ""
+"These content files may be imported or restored by visiting <a href=\"%1$s\">"
+"%2$s</a> on any site containing your channel. For best results please import "
+"or restore these in date order (oldest first)."
+msgstr "Данные файлы с содержимым могут быть импортированы и восстановлены на любом содержащем ваш канал сайте. Посетите <a href=\"%1$s\">%2$s</a>. Для лучших результатов пожалуйста производите импорт и восстановление в порядке датировки (старые сначала)."
-#: ../../Zotlabs/Module/Photos.php:693
-msgid "Upload Photos"
-msgstr "Загрузить фотографии"
+#: ../../Zotlabs/Module/Hq.php:140
+msgid "Welcome to Hubzilla!"
+msgstr "Добро пожаловать в Hubzilla!"
-#: ../../Zotlabs/Module/Photos.php:697
-msgid "Enter an album name"
-msgstr "Введите название альбома"
+#: ../../Zotlabs/Module/Hq.php:140
+msgid "You have got no unseen posts..."
+msgstr "У вас нет видимых публикаций..."
-#: ../../Zotlabs/Module/Photos.php:698
-msgid "or select an existing album (doubleclick)"
-msgstr "или выберите существующий альбом (двойной щелчок)"
+#: ../../Zotlabs/Module/Search.php:17 ../../Zotlabs/Module/Photos.php:558
+#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Directory.php:67
+#: ../../Zotlabs/Module/Directory.php:72 ../../Zotlabs/Module/Display.php:29
+#: ../../Zotlabs/Module/Viewconnections.php:23
+msgid "Public access denied."
+msgstr "Публичный доступ запрещен."
-#: ../../Zotlabs/Module/Photos.php:699
-msgid "Create a status post for this upload"
-msgstr "Сделать публикацию о статусе для этой загрузки"
+#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:338
+#: ../../Zotlabs/Lib/Apps.php:350 ../../Zotlabs/Widget/Sitesearch.php:31
+#: ../../Zotlabs/Widget/Activity_filter.php:151 ../../include/text.php:1084
+#: ../../include/text.php:1096 ../../include/acl_selectors.php:118
+#: ../../include/nav.php:183
+msgid "Search"
+msgstr "Поиск"
-#: ../../Zotlabs/Module/Photos.php:701
-msgid "Description (optional)"
-msgstr "Описание (необязательно)"
+#: ../../Zotlabs/Module/Search.php:230
+#, php-format
+msgid "Items tagged with: %s"
+msgstr "Объекты помечены как: %s"
-#: ../../Zotlabs/Module/Photos.php:787
-msgid "Show Newest First"
-msgstr "Показать новые первыми"
+#: ../../Zotlabs/Module/Search.php:232
+#, php-format
+msgid "Search results for: %s"
+msgstr "Результаты поиска для: %s"
-#: ../../Zotlabs/Module/Photos.php:789
-msgid "Show Oldest First"
-msgstr "Показать старые первыми"
+#: ../../Zotlabs/Module/Pubstream.php:20
+msgid "Public Stream App"
+msgstr "Приложение \"Публичный поток\""
-#: ../../Zotlabs/Module/Photos.php:813 ../../Zotlabs/Module/Photos.php:1352
-#: ../../Zotlabs/Module/Embedphotos.php:140
-#: ../../Zotlabs/Widget/Portfolio.php:87 ../../Zotlabs/Widget/Album.php:78
-msgid "View Photo"
-msgstr "Посмотреть фотографию"
+#: ../../Zotlabs/Module/Pubstream.php:21
+msgid "The unmoderated public stream of this hub"
+msgstr "Немодерируемый публичный поток с этого хаба"
-#: ../../Zotlabs/Module/Photos.php:844 ../../Zotlabs/Module/Embedphotos.php:156
-#: ../../Zotlabs/Widget/Portfolio.php:108 ../../Zotlabs/Widget/Album.php:95
-msgid "Edit Album"
-msgstr "Редактировать Фотоальбом"
+#: ../../Zotlabs/Module/Pubstream.php:109 ../../Zotlabs/Lib/Apps.php:374
+#: ../../Zotlabs/Widget/Notifications.php:142
+msgid "Public Stream"
+msgstr "Публичный поток"
-#: ../../Zotlabs/Module/Photos.php:846 ../../Zotlabs/Module/Photos.php:1383
-msgid "Add Photos"
-msgstr "Добавить фотографии"
+#: ../../Zotlabs/Module/Locs.php:25 ../../Zotlabs/Module/Locs.php:54
+msgid "Location not found."
+msgstr "Местоположение не найдено"
-#: ../../Zotlabs/Module/Photos.php:894
-msgid "Permission denied. Access to this item may be restricted."
-msgstr "Доступ запрещен. Доступ к этому элементу может быть ограничен."
+#: ../../Zotlabs/Module/Locs.php:62
+msgid "Location lookup failed."
+msgstr "Поиск местоположения не удался"
-#: ../../Zotlabs/Module/Photos.php:896
-msgid "Photo not available"
-msgstr "Фотография не доступна"
+#: ../../Zotlabs/Module/Locs.php:66
+msgid ""
+"Please select another location to become primary before removing the primary "
+"location."
+msgstr "Пожалуйста, выберите другое местоположение в качестве основного прежде чем удалить предыдущее"
-#: ../../Zotlabs/Module/Photos.php:954
-msgid "Use as profile photo"
-msgstr "Использовать в качестве фотографии профиля"
+#: ../../Zotlabs/Module/Locs.php:95
+msgid "Syncing locations"
+msgstr "Синхронизировать местоположение"
-#: ../../Zotlabs/Module/Photos.php:955
-msgid "Use as cover photo"
-msgstr "Использовать в качестве фотографии обложки"
+#: ../../Zotlabs/Module/Locs.php:105
+msgid "No locations found."
+msgstr "Местоположений не найдено"
-#: ../../Zotlabs/Module/Photos.php:962
-msgid "Private Photo"
-msgstr "Личная фотография"
+#: ../../Zotlabs/Module/Locs.php:116
+msgid "Manage Channel Locations"
+msgstr "Управление местоположением канала"
-#: ../../Zotlabs/Module/Photos.php:977
-msgid "View Full Size"
-msgstr "Посмотреть в полный размер"
+#: ../../Zotlabs/Module/Locs.php:119
+msgid "Primary"
+msgstr "Основной"
-#: ../../Zotlabs/Module/Photos.php:1022 ../../Zotlabs/Module/Tagrm.php:137
-#: ../../Zotlabs/Module/Admin/Addons.php:455
-#: ../../extend/addon/hzaddons/superblock/Mod_Superblock.php:91
-msgid "Remove"
+#: ../../Zotlabs/Module/Locs.php:120 ../../Zotlabs/Module/Menu.php:176
+msgid "Drop"
msgstr "Удалить"
-#: ../../Zotlabs/Module/Photos.php:1059
-msgid "Edit photo"
-msgstr "Редактировать фотографию"
-
-#: ../../Zotlabs/Module/Photos.php:1061
-msgid "Rotate CW (right)"
-msgstr "Повернуть CW (направо)"
-
-#: ../../Zotlabs/Module/Photos.php:1062
-msgid "Rotate CCW (left)"
-msgstr "Повернуть CCW (налево)"
-
-#: ../../Zotlabs/Module/Photos.php:1065
-msgid "Move photo to album"
-msgstr "Переместить фотографию в альбом"
-
-#: ../../Zotlabs/Module/Photos.php:1066
-msgid "Enter a new album name"
-msgstr "Введите новое название альбома"
-
-#: ../../Zotlabs/Module/Photos.php:1067
-msgid "or select an existing one (doubleclick)"
-msgstr "или выбрать существующую (двойной щелчок)"
-
-#: ../../Zotlabs/Module/Photos.php:1072
-msgid "Add a Tag"
-msgstr "Добавить тег"
-
-#: ../../Zotlabs/Module/Photos.php:1080
-msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
-msgstr "Пример: @bob, @Barbara_Jensen, @jim@example.com"
-
-#: ../../Zotlabs/Module/Photos.php:1083
-msgid "Flag as adult in album view"
-msgstr "Пометить как альбом \"для взрослых\""
-
-#: ../../Zotlabs/Module/Photos.php:1102 ../../Zotlabs/Lib/ThreadItem.php:289
-msgid "I like this (toggle)"
-msgstr "мне это нравится (переключение)"
-
-#: ../../Zotlabs/Module/Photos.php:1103 ../../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
-msgid "This is you"
-msgstr "Это вы"
-
-#: ../../Zotlabs/Module/Photos.php:1158 ../../Zotlabs/Module/Photos.php:1170
-#: ../../Zotlabs/Lib/ThreadItem.php:214 ../../Zotlabs/Lib/ThreadItem.php:226
-msgid "View all"
-msgstr "Просмотреть все"
-
-#: ../../Zotlabs/Module/Photos.php:1267
-msgid "Photo Tools"
-msgstr "Фото-Инструменты"
-
-#: ../../Zotlabs/Module/Photos.php:1276
-msgid "In This Photo:"
-msgstr "На этой фотографии:"
-
-#: ../../Zotlabs/Module/Photos.php:1281
-msgid "Map"
-msgstr "Карта"
-
-#: ../../Zotlabs/Module/Photos.php:1289 ../../Zotlabs/Lib/ThreadItem.php:429
-msgctxt "noun"
-msgid "Likes"
-msgstr "Нравится"
-
-#: ../../Zotlabs/Module/Photos.php:1290 ../../Zotlabs/Lib/ThreadItem.php:430
-msgctxt "noun"
-msgid "Dislikes"
-msgstr "Не нравится"
-
-#: ../../Zotlabs/Module/Tagrm.php:48 ../../Zotlabs/Module/Tagrm.php:98
-msgid "Tag removed"
-msgstr "Тег удалён"
-
-#: ../../Zotlabs/Module/Tagrm.php:123
-msgid "Remove Item Tag"
-msgstr "Удалить тег элемента"
-
-#: ../../Zotlabs/Module/Tagrm.php:125
-msgid "Select a tag to remove: "
-msgstr "Выбрать тег для удаления:"
-
-#: ../../Zotlabs/Module/Chanview.php:96 ../../Zotlabs/Module/Page.php:75
-#: ../../Zotlabs/Module/Wall_upload.php:31 ../../Zotlabs/Module/Block.php:41
-#: ../../Zotlabs/Module/Cal.php:63 ../../Zotlabs/Module/Card_edit.php:44
-#: ../../Zotlabs/Module/Article_edit.php:44
-msgid "Channel not found."
-msgstr "Канал не найден."
-
-#: ../../Zotlabs/Module/Chanview.php:139
-msgid "toggle full screen mode"
-msgstr "переключение полноэкранного режима"
+#: ../../Zotlabs/Module/Locs.php:122
+msgid "Sync Now"
+msgstr "Синхронизировать"
-#: ../../Zotlabs/Module/Page.php:39 ../../Zotlabs/Module/Block.php:29
-msgid "Invalid item."
-msgstr "Недействительный элемент."
+#: ../../Zotlabs/Module/Locs.php:123
+msgid "Please wait several minutes between consecutive operations."
+msgstr "Пожалуйста, подождите несколько минут между последовательными операциями."
-#: ../../Zotlabs/Module/Page.php:173
+#: ../../Zotlabs/Module/Locs.php:124
msgid ""
-"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod "
-"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, "
-"quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo "
-"consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse "
-"cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat "
-"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
-msgstr ""
+"When possible, drop a location by logging into that website/hub and removing "
+"your channel."
+msgstr "По возможности, очистите местоположение, войдя на этот веб-сайт / хаб и удалив свой канал."
-#: ../../Zotlabs/Module/Api.php:74 ../../Zotlabs/Module/Api.php:95
-msgid "Authorize application connection"
-msgstr "Авторизовать подключение приложения"
+#: ../../Zotlabs/Module/Locs.php:125
+msgid "Use this form to drop the location if the hub is no longer operating."
+msgstr "Используйте эту форму, чтобы удалить местоположение, если хаб больше не функционирует."
-#: ../../Zotlabs/Module/Api.php:75
-msgid "Return to your app and insert this Security Code:"
-msgstr "Вернитесь к своему приложению и вставьте этот код безопасности:"
+#: ../../Zotlabs/Module/Apporder.php:47
+msgid "Change Order of Pinned Navbar Apps"
+msgstr "Изменить порядок приложений на панели навигации"
-#: ../../Zotlabs/Module/Api.php:85
-msgid "Please login to continue."
-msgstr "Пожалуйста, войдите, чтобы продолжить."
+#: ../../Zotlabs/Module/Apporder.php:47
+msgid "Change Order of App Tray Apps"
+msgstr "Изменить порядок приложений в лотке"
-#: ../../Zotlabs/Module/Api.php:97
+#: ../../Zotlabs/Module/Apporder.php:48
msgid ""
-"Do you want to authorize this application to access your posts and contacts, "
-"and/or create new posts for you?"
-msgstr "Вы хотите авторизовать это приложение для доступа к вашим публикациям и контактам и / или созданию новых публикаций?"
+"Use arrows to move the corresponding app left (top) or right (bottom) in the "
+"navbar"
+msgstr "Используйте стрелки для перемещения приложения влево (вверх) или вправо (вниз) в панели навигации"
-#: ../../Zotlabs/Module/Lostpass.php:19
-msgid "No valid account found."
-msgstr "Действительный аккаунт не найден."
+#: ../../Zotlabs/Module/Apporder.php:48
+msgid "Use arrows to move the corresponding app up or down in the app tray"
+msgstr "Используйте стрелки для перемещения приложения вверх или вниз в лотке"
-#: ../../Zotlabs/Module/Lostpass.php:33
-msgid "Password reset request issued. Check your email."
-msgstr "Запрос на сброс пароля отправлен. Проверьте вашу электронную почту."
+#: ../../Zotlabs/Module/Mitem.php:31 ../../Zotlabs/Module/Menu.php:208
+msgid "Menu not found."
+msgstr "Меню не найдено"
-#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:108
-#, php-format
-msgid "Site Member (%s)"
-msgstr "Участник сайта (%s)"
+#: ../../Zotlabs/Module/Mitem.php:63
+msgid "Unable to create element."
+msgstr "Невозможно создать элемент."
-#: ../../Zotlabs/Module/Lostpass.php:44 ../../Zotlabs/Module/Lostpass.php:49
-#, php-format
-msgid "Password reset requested at %s"
-msgstr "Запрошен сброс пароля на %s"
+#: ../../Zotlabs/Module/Mitem.php:87
+msgid "Unable to update menu element."
+msgstr "Невозможно обновить элемент меню."
-#: ../../Zotlabs/Module/Lostpass.php:68
-msgid ""
-"Request could not be verified. (You may have previously submitted it.) "
-"Password reset failed."
-msgstr "Запрос не может быть проверен. (Вы могли отправить его раньше). Сброс пароля не возможен."
+#: ../../Zotlabs/Module/Mitem.php:103
+msgid "Unable to add menu element."
+msgstr "Невозможно добавить элемент меню."
-#: ../../Zotlabs/Module/Lostpass.php:92
-msgid "Your password has been reset as requested."
-msgstr "Ваш пароль в соответствии с просьбой сброшен."
+#: ../../Zotlabs/Module/Mitem.php:134 ../../Zotlabs/Module/Menu.php:231
+#: ../../Zotlabs/Module/Xchan.php:41
+msgid "Not found."
+msgstr "Не найдено."
-#: ../../Zotlabs/Module/Lostpass.php:93
-msgid "Your new password is"
-msgstr "Ваш новый пароль"
+#: ../../Zotlabs/Module/Mitem.php:167 ../../Zotlabs/Module/Mitem.php:246
+msgid "Menu Item Permissions"
+msgstr "Разрешения на пункт меню"
-#: ../../Zotlabs/Module/Lostpass.php:94
-msgid "Save or copy your new password - and then"
-msgstr "Сохраните ваш новый пароль и затем"
+#: ../../Zotlabs/Module/Mitem.php:168 ../../Zotlabs/Module/Mitem.php:247
+#: ../../Zotlabs/Module/Settings/Channel.php:526
+msgid "(click to open/close)"
+msgstr "(нажмите чтобы открыть/закрыть)"
-#: ../../Zotlabs/Module/Lostpass.php:95
-msgid "click here to login"
-msgstr "нажмите здесь чтобы войти"
+#: ../../Zotlabs/Module/Mitem.php:174 ../../Zotlabs/Module/Mitem.php:191
+msgid "Link Name"
+msgstr "Имя ссылки"
-#: ../../Zotlabs/Module/Lostpass.php:96
-msgid ""
-"Your password may be changed from the <em>Settings</em> page after "
-"successful login."
-msgstr "Ваш пароль может быть изменён на странице <em>Настройки</em> после успешного входа."
+#: ../../Zotlabs/Module/Mitem.php:175 ../../Zotlabs/Module/Mitem.php:255
+msgid "Link or Submenu Target"
+msgstr "Ссылка или цель подменю"
-#: ../../Zotlabs/Module/Lostpass.php:117
-#, php-format
-msgid "Your password has changed at %s"
-msgstr "Пароль был изменен на %s"
+#: ../../Zotlabs/Module/Mitem.php:175
+msgid "Enter URL of the link or select a menu name to create a submenu"
+msgstr "Введите URL ссылки или выберите имя меню для создания подменю"
-#: ../../Zotlabs/Module/Lostpass.php:130
-msgid "Forgot your Password?"
-msgstr "Забыли ваш пароль?"
+#: ../../Zotlabs/Module/Mitem.php:176 ../../Zotlabs/Module/Mitem.php:256
+msgid "Use magic-auth if available"
+msgstr "Использовать magic-auth если возможно"
-#: ../../Zotlabs/Module/Lostpass.php:131
-msgid ""
-"Enter your email address and submit to have your password reset. Then check "
-"your email for further instructions."
-msgstr "Введите ваш адрес электронной почты и нажмите отправить чтобы сбросить пароль. Затем проверьте ваш почтовый ящик для дальнейших инструкций. "
+#: ../../Zotlabs/Module/Mitem.php:176 ../../Zotlabs/Module/Mitem.php:177
+#: ../../Zotlabs/Module/Mitem.php:256 ../../Zotlabs/Module/Mitem.php:257
+#: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Events.php:473
+#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Admin/Site.php:255
+#: ../../Zotlabs/Module/Settings/Channel.php:309
+#: ../../Zotlabs/Module/Settings/Display.php:89
+#: ../../Zotlabs/Module/Import.php:563 ../../Zotlabs/Module/Import.php:567
+#: ../../Zotlabs/Module/Import.php:568 ../../Zotlabs/Module/Api.php:99
+#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Wiki.php:227
+#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:406
+#: ../../Zotlabs/Module/Connedit.php:796 ../../Zotlabs/Module/Menu.php:162
+#: ../../Zotlabs/Module/Menu.php:221 ../../Zotlabs/Module/Defperms.php:197
+#: ../../Zotlabs/Module/Profiles.php:681 ../../Zotlabs/Module/Sources.php:124
+#: ../../Zotlabs/Module/Sources.php:159
+#: ../../Zotlabs/Module/Filestorage.php:178
+#: ../../Zotlabs/Module/Filestorage.php:186 ../../Zotlabs/Lib/Libzotdir.php:162
+#: ../../Zotlabs/Lib/Libzotdir.php:163 ../../Zotlabs/Lib/Libzotdir.php:165
+#: ../../Zotlabs/Storage/Browser.php:405 ../../boot.php:1634
+#: ../../view/theme/redbasic_c/php/config.php:100
+#: ../../view/theme/redbasic_c/php/config.php:115
+#: ../../view/theme/redbasic/php/config.php:99
+#: ../../view/theme/redbasic/php/config.php:116
+#: ../../addon/wppost/Mod_Wppost.php:82 ../../addon/wppost/Mod_Wppost.php:86
+#: ../../addon/ijpost/Mod_Ijpost.php:61 ../../addon/dwpost/Mod_Dwpost.php:60
+#: ../../addon/ljpost/Mod_Ljpost.php:62 ../../addon/rtof/Mod_Rtof.php:49
+#: ../../addon/jappixmini/Mod_Jappixmini.php:161
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
+#: ../../addon/jappixmini/Mod_Jappixmini.php:199
+#: ../../addon/jappixmini/Mod_Jappixmini.php:203
+#: ../../addon/jappixmini/Mod_Jappixmini.php:207
+#: ../../addon/channelreputation/channelreputation.php:108
+#: ../../addon/nofed/Mod_Nofed.php:42 ../../addon/redred/Mod_Redred.php:63
+#: ../../addon/libertree/Mod_Libertree.php:59
+#: ../../addon/statusnet/Mod_Statusnet.php:260
+#: ../../addon/statusnet/Mod_Statusnet.php:282
+#: ../../addon/statusnet/Mod_Statusnet.php:291
+#: ../../addon/twitter/Mod_Twitter.php:162
+#: ../../addon/twitter/Mod_Twitter.php:171
+#: ../../addon/smileybutton/Mod_Smileybutton.php:44
+#: ../../addon/cart/Settings/Cart.php:59 ../../addon/cart/Settings/Cart.php:71
+#: ../../addon/cart/cart.php:1258
+#: ../../addon/cart/submodules/paypalbutton.php:87
+#: ../../addon/cart/submodules/paypalbutton.php:95
+#: ../../addon/cart/submodules/manualcat.php:63
+#: ../../addon/cart/submodules/manualcat.php:254
+#: ../../addon/cart/submodules/manualcat.php:258
+#: ../../addon/cart/submodules/hzservices.php:64
+#: ../../addon/cart/submodules/hzservices.php:646
+#: ../../addon/cart/submodules/hzservices.php:650
+#: ../../addon/cart/submodules/subscriptions.php:153
+#: ../../addon/cart/submodules/subscriptions.php:425
+#: ../../addon/pumpio/Mod_Pumpio.php:94 ../../addon/pumpio/Mod_Pumpio.php:98
+#: ../../addon/pumpio/Mod_Pumpio.php:102 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
+msgid "No"
+msgstr "Нет"
-#: ../../Zotlabs/Module/Lostpass.php:132
-msgid "Email Address"
-msgstr "Адрес электронной почты"
+#: ../../Zotlabs/Module/Mitem.php:176 ../../Zotlabs/Module/Mitem.php:177
+#: ../../Zotlabs/Module/Mitem.php:256 ../../Zotlabs/Module/Mitem.php:257
+#: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Events.php:473
+#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Admin/Site.php:257
+#: ../../Zotlabs/Module/Settings/Channel.php:309
+#: ../../Zotlabs/Module/Settings/Display.php:89
+#: ../../Zotlabs/Module/Import.php:563 ../../Zotlabs/Module/Import.php:567
+#: ../../Zotlabs/Module/Import.php:568 ../../Zotlabs/Module/Api.php:98
+#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Wiki.php:227
+#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:406
+#: ../../Zotlabs/Module/Menu.php:162 ../../Zotlabs/Module/Menu.php:221
+#: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681
+#: ../../Zotlabs/Module/Sources.php:124 ../../Zotlabs/Module/Sources.php:159
+#: ../../Zotlabs/Module/Filestorage.php:178
+#: ../../Zotlabs/Module/Filestorage.php:186 ../../Zotlabs/Lib/Libzotdir.php:162
+#: ../../Zotlabs/Lib/Libzotdir.php:163 ../../Zotlabs/Lib/Libzotdir.php:165
+#: ../../Zotlabs/Storage/Browser.php:405 ../../boot.php:1634
+#: ../../view/theme/redbasic_c/php/config.php:100
+#: ../../view/theme/redbasic_c/php/config.php:115
+#: ../../view/theme/redbasic/php/config.php:99
+#: ../../view/theme/redbasic/php/config.php:116
+#: ../../addon/wppost/Mod_Wppost.php:82 ../../addon/wppost/Mod_Wppost.php:86
+#: ../../addon/ijpost/Mod_Ijpost.php:61 ../../addon/dwpost/Mod_Dwpost.php:60
+#: ../../addon/ljpost/Mod_Ljpost.php:62 ../../addon/rtof/Mod_Rtof.php:49
+#: ../../addon/jappixmini/Mod_Jappixmini.php:161
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
+#: ../../addon/jappixmini/Mod_Jappixmini.php:199
+#: ../../addon/jappixmini/Mod_Jappixmini.php:203
+#: ../../addon/jappixmini/Mod_Jappixmini.php:207
+#: ../../addon/channelreputation/channelreputation.php:108
+#: ../../addon/nofed/Mod_Nofed.php:42 ../../addon/redred/Mod_Redred.php:63
+#: ../../addon/libertree/Mod_Libertree.php:59
+#: ../../addon/statusnet/Mod_Statusnet.php:260
+#: ../../addon/statusnet/Mod_Statusnet.php:282
+#: ../../addon/statusnet/Mod_Statusnet.php:291
+#: ../../addon/twitter/Mod_Twitter.php:162
+#: ../../addon/twitter/Mod_Twitter.php:171
+#: ../../addon/smileybutton/Mod_Smileybutton.php:44
+#: ../../addon/cart/Settings/Cart.php:59 ../../addon/cart/Settings/Cart.php:71
+#: ../../addon/cart/cart.php:1258
+#: ../../addon/cart/submodules/paypalbutton.php:87
+#: ../../addon/cart/submodules/paypalbutton.php:95
+#: ../../addon/cart/submodules/manualcat.php:63
+#: ../../addon/cart/submodules/manualcat.php:254
+#: ../../addon/cart/submodules/manualcat.php:258
+#: ../../addon/cart/submodules/hzservices.php:64
+#: ../../addon/cart/submodules/hzservices.php:646
+#: ../../addon/cart/submodules/hzservices.php:650
+#: ../../addon/cart/submodules/subscriptions.php:153
+#: ../../addon/cart/submodules/subscriptions.php:425
+#: ../../addon/pumpio/Mod_Pumpio.php:94 ../../addon/pumpio/Mod_Pumpio.php:98
+#: ../../addon/pumpio/Mod_Pumpio.php:102 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
+msgid "Yes"
+msgstr "Да"
-#: ../../Zotlabs/Module/Lostpass.php:133 ../../Zotlabs/Module/Pdledit.php:77
-msgid "Reset"
-msgstr "Сбросить"
+#: ../../Zotlabs/Module/Mitem.php:177 ../../Zotlabs/Module/Mitem.php:257
+msgid "Open link in new window"
+msgstr "Открыть ссылку в новом окне"
-#: ../../Zotlabs/Module/Oauth.php:45
-msgid "Name is required"
-msgstr "Необходимо имя"
+#: ../../Zotlabs/Module/Mitem.php:178 ../../Zotlabs/Module/Mitem.php:258
+msgid "Order in list"
+msgstr "Порядок в списке"
-#: ../../Zotlabs/Module/Oauth.php:49
-msgid "Key and Secret are required"
-msgstr "Требуются ключ и код"
+#: ../../Zotlabs/Module/Mitem.php:178 ../../Zotlabs/Module/Mitem.php:258
+msgid "Higher numbers will sink to bottom of listing"
+msgstr "Большие значения в конце списка"
-#: ../../Zotlabs/Module/Oauth.php:100
-msgid "OAuth Apps Manager App"
-msgstr "Приложение \"Менеджер Oauth\""
+#: ../../Zotlabs/Module/Mitem.php:179
+msgid "Submit and finish"
+msgstr "Отправить и завершить"
-#: ../../Zotlabs/Module/Oauth.php:101
-msgid "OAuth authentication tokens for mobile and remote apps"
-msgstr "Токены аутентификации OAuth для мобильный и удалённых приложений"
+#: ../../Zotlabs/Module/Mitem.php:180
+msgid "Submit and continue"
+msgstr "Отправить и продолжить"
-#: ../../Zotlabs/Module/Oauth.php:110 ../../Zotlabs/Module/Oauth.php:136
-#: ../../Zotlabs/Module/Oauth.php:172 ../../Zotlabs/Module/Oauth2.php:143
-#: ../../Zotlabs/Module/Oauth2.php:193
-msgid "Add application"
-msgstr "Добавить приложение"
+#: ../../Zotlabs/Module/Mitem.php:189
+msgid "Menu:"
+msgstr "Меню:"
-#: ../../Zotlabs/Module/Oauth.php:113 ../../Zotlabs/Module/Oauth2.php:118
-#: ../../Zotlabs/Module/Oauth2.php:146
-msgid "Name of application"
-msgstr "Название приложения"
+#: ../../Zotlabs/Module/Mitem.php:192
+msgid "Link Target"
+msgstr "Цель ссылки"
-#: ../../Zotlabs/Module/Oauth.php:114 ../../Zotlabs/Module/Oauth.php:140
-#: ../../extend/addon/hzaddons/twitter/twitter.php:784
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:894
-msgid "Consumer Key"
-msgstr "Ключ клиента"
+#: ../../Zotlabs/Module/Mitem.php:195
+msgid "Edit menu"
+msgstr "Редактировать меню"
-#: ../../Zotlabs/Module/Oauth.php:114 ../../Zotlabs/Module/Oauth.php:115
-#: ../../Zotlabs/Module/Oauth2.php:119 ../../Zotlabs/Module/Oauth2.php:147
-msgid "Automatically generated - change if desired. Max length 20"
-msgstr "Сгенерирован автоматические - измените если требуется. Макс. длина 20"
+#: ../../Zotlabs/Module/Mitem.php:198
+msgid "Edit element"
+msgstr "Редактировать элемент"
-#: ../../Zotlabs/Module/Oauth.php:115 ../../Zotlabs/Module/Oauth.php:141
-#: ../../Zotlabs/Module/Oauth2.php:119 ../../Zotlabs/Module/Oauth2.php:147
-#: ../../extend/addon/hzaddons/twitter/twitter.php:785
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:893
-msgid "Consumer Secret"
-msgstr "Код клиента"
+#: ../../Zotlabs/Module/Mitem.php:199
+msgid "Drop element"
+msgstr "Удалить элемент"
-#: ../../Zotlabs/Module/Oauth.php:116 ../../Zotlabs/Module/Oauth.php:142
-#: ../../Zotlabs/Module/Oauth2.php:120 ../../Zotlabs/Module/Oauth2.php:148
-msgid "Redirect"
-msgstr "Перенаправление"
+#: ../../Zotlabs/Module/Mitem.php:200
+msgid "New element"
+msgstr "Новый элемент"
-#: ../../Zotlabs/Module/Oauth.php:116 ../../Zotlabs/Module/Oauth2.php:120
-#: ../../Zotlabs/Module/Oauth2.php:148
-msgid ""
-"Redirect URI - leave blank unless your application specifically requires this"
-msgstr "URI перенаправления - оставьте пустыми до тех пока ваше приложение не требует этого"
+#: ../../Zotlabs/Module/Mitem.php:201
+msgid "Edit this menu container"
+msgstr "Редактировать контейнер меню"
-#: ../../Zotlabs/Module/Oauth.php:117 ../../Zotlabs/Module/Oauth.php:143
-msgid "Icon url"
-msgstr "URL значка"
+#: ../../Zotlabs/Module/Mitem.php:202
+msgid "Add menu element"
+msgstr "Добавить элемент меню"
-#: ../../Zotlabs/Module/Oauth.php:117 ../../Zotlabs/Module/Sources.php:123
-#: ../../Zotlabs/Module/Sources.php:158
-msgid "Optional"
-msgstr "Необязательно"
+#: ../../Zotlabs/Module/Mitem.php:203
+msgid "Delete this menu item"
+msgstr "Удалить этот элемент меню"
-#: ../../Zotlabs/Module/Oauth.php:128
-msgid "Application not found."
-msgstr "Приложение не найдено."
+#: ../../Zotlabs/Module/Mitem.php:204
+msgid "Edit this menu item"
+msgstr "Редактировать этот элемент меню"
-#: ../../Zotlabs/Module/Oauth.php:171
-msgid "Connected OAuth Apps"
-msgstr "Подключенные приложения OAuth"
+#: ../../Zotlabs/Module/Mitem.php:222
+msgid "Menu item not found."
+msgstr "Элемент меню не найден."
-#: ../../Zotlabs/Module/Oauth.php:175 ../../Zotlabs/Module/Oauth2.php:196
-msgid "Client key starts with"
-msgstr "Ключ клиента начинается с"
+#: ../../Zotlabs/Module/Mitem.php:235
+msgid "Menu item deleted."
+msgstr "Элемент меню удалён."
-#: ../../Zotlabs/Module/Oauth.php:176 ../../Zotlabs/Module/Oauth2.php:197
-msgid "No name"
-msgstr "Без названия"
+#: ../../Zotlabs/Module/Mitem.php:237
+msgid "Menu item could not be deleted."
+msgstr "Невозможно удалить элемент меню."
-#: ../../Zotlabs/Module/Oauth.php:177 ../../Zotlabs/Module/Oauth2.php:198
-msgid "Remove authorization"
-msgstr "Удалить разрешение"
+#: ../../Zotlabs/Module/Mitem.php:244
+msgid "Edit Menu Element"
+msgstr "Редактировать элемент меню"
+
+#: ../../Zotlabs/Module/Mitem.php:254
+msgid "Link text"
+msgstr "Текст ссылки"
#: ../../Zotlabs/Module/Events.php:25
msgid "Calendar entries imported."
@@ -5916,10 +1454,23 @@ msgstr "Требуются наименование события и время
msgid "Event not found."
msgstr "Событие не найдено."
+#: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Tagger.php:73
+#: ../../Zotlabs/Module/Like.php:394 ../../include/conversation.php:119
+#: ../../include/text.php:2094 ../../include/event.php:1165
+msgid "event"
+msgstr "событие"
+
#: ../../Zotlabs/Module/Events.php:462
msgid "Edit event title"
msgstr "Редактировать наименование события"
+#: ../../Zotlabs/Module/Events.php:462 ../../Zotlabs/Module/Events.php:467
+#: ../../Zotlabs/Module/Appman.php:143 ../../Zotlabs/Module/Appman.php:144
+#: ../../Zotlabs/Module/Profiles.php:745 ../../Zotlabs/Module/Profiles.php:749
+#: ../../include/datetime.php:211
+msgid "Required"
+msgstr "Требуется"
+
#: ../../Zotlabs/Module/Events.php:464
msgid "Categories (comma-separated list)"
msgstr "Категории (список через запятую)"
@@ -5966,6 +1517,17 @@ msgstr "Редактировать описание"
msgid "Edit Location"
msgstr "Редактировать местоположение"
+#: ../../Zotlabs/Module/Events.php:480 ../../Zotlabs/Module/Photos.php:1139
+#: ../../Zotlabs/Module/Webpages.php:262 ../../Zotlabs/Lib/ThreadItem.php:805
+#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1359
+msgid "Preview"
+msgstr "Предварительный просмотр"
+
+#: ../../Zotlabs/Module/Events.php:481 ../../addon/hsse/hsse.php:225
+#: ../../include/conversation.php:1431
+msgid "Permission settings"
+msgstr "Настройки разрешений"
+
#: ../../Zotlabs/Module/Events.php:491
msgid "Timezone:"
msgstr "Часовой пояс:"
@@ -5986,6 +1548,11 @@ msgstr "Редактировать событие"
msgid "Delete event"
msgstr "Удалить событие"
+#: ../../Zotlabs/Module/Events.php:663 ../../Zotlabs/Module/Cal.php:314
+#: ../../include/text.php:1913
+msgid "Link to Source"
+msgstr "Ссылка на источник"
+
#: ../../Zotlabs/Module/Events.php:670
msgid "calendar"
msgstr "календарь"
@@ -5998,12 +1565,10 @@ msgstr "Редактировать событие"
msgid "Create Event"
msgstr "Создать событие"
-#: ../../Zotlabs/Module/Events.php:695 ../../Zotlabs/Module/Pubsites.php:60
-#: ../../Zotlabs/Module/Webpages.php:261 ../../Zotlabs/Module/Blocks.php:166
-#: ../../Zotlabs/Module/Wiki.php:213 ../../Zotlabs/Module/Wiki.php:409
-#: ../../Zotlabs/Module/Layouts.php:198
-msgid "View"
-msgstr "Просмотр"
+#: ../../Zotlabs/Module/Events.php:692 ../../Zotlabs/Module/Cal.php:340
+#: ../../include/channel.php:1703
+msgid "Export"
+msgstr "Экспорт"
#: ../../Zotlabs/Module/Events.php:732
msgid "Event removed"
@@ -6013,46 +1578,164 @@ msgstr "Событие удалено"
msgid "Failed to remove event"
msgstr "Не удалось удалить событие"
-#: ../../Zotlabs/Module/Authorize.php:17
-msgid "Unknown App"
-msgstr "Неизвестное приложение"
+#: ../../Zotlabs/Module/Appman.php:39 ../../Zotlabs/Module/Appman.php:56
+msgid "App installed."
+msgstr "Приложение установлено."
-#: ../../Zotlabs/Module/Authorize.php:29
-msgid "Authorize"
-msgstr "Авторизовать"
+#: ../../Zotlabs/Module/Appman.php:49
+msgid "Malformed app."
+msgstr "Неработающее приложение."
-#: ../../Zotlabs/Module/Authorize.php:30
+#: ../../Zotlabs/Module/Appman.php:132
+msgid "Embed code"
+msgstr "Встроить код"
+
+#: ../../Zotlabs/Module/Appman.php:138
+msgid "Edit App"
+msgstr "Редактировать приложение"
+
+#: ../../Zotlabs/Module/Appman.php:138
+msgid "Create App"
+msgstr "Создать приложение"
+
+#: ../../Zotlabs/Module/Appman.php:143
+msgid "Name of app"
+msgstr "Наименование приложения"
+
+#: ../../Zotlabs/Module/Appman.php:144
+msgid "Location (URL) of app"
+msgstr "Местоположение (URL) приложения"
+
+#: ../../Zotlabs/Module/Appman.php:146
+msgid "Photo icon URL"
+msgstr "URL пиктограммы"
+
+#: ../../Zotlabs/Module/Appman.php:146
+msgid "80 x 80 pixels - optional"
+msgstr "80 x 80 пикселей - необязательно"
+
+#: ../../Zotlabs/Module/Appman.php:147
+msgid "Categories (optional, comma separated list)"
+msgstr "Категории (необязательно, список через запятую)"
+
+#: ../../Zotlabs/Module/Appman.php:148
+msgid "Version ID"
+msgstr "ID версии"
+
+#: ../../Zotlabs/Module/Appman.php:149
+msgid "Price of app"
+msgstr "Цена приложения"
+
+#: ../../Zotlabs/Module/Appman.php:150
+msgid "Location (URL) to purchase app"
+msgstr "Ссылка (URL) для покупки приложения"
+
+#: ../../Zotlabs/Module/Regmod.php:15
+msgid "Please login."
+msgstr "Пожалуйста, войдите."
+
+#: ../../Zotlabs/Module/Magic.php:76
+msgid "Hub not found."
+msgstr "Узел не найден."
+
+#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Module/Tagger.php:69
+#: ../../Zotlabs/Module/Like.php:392 ../../Zotlabs/Lib/Activity.php:1959
+#: ../../addon/redphotos/redphotohelper.php:71
+#: ../../addon/diaspora/Receiver.php:1551 ../../addon/pubcrawl/as.php:1504
+#: ../../include/conversation.php:116 ../../include/text.php:2091
+msgid "photo"
+msgstr "фото"
+
+#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Module/Like.php:392
+#: ../../Zotlabs/Lib/Activity.php:1959 ../../addon/diaspora/Receiver.php:1551
+#: ../../addon/pubcrawl/as.php:1504 ../../include/conversation.php:144
+#: ../../include/text.php:2097
+msgid "status"
+msgstr "статус"
+
+#: ../../Zotlabs/Module/Subthread.php:143
#, php-format
-msgid "Do you authorize the app %s to access your channel data?"
-msgstr "Авторизуете ли вы приложение %s для доступа к данным вашего канала?"
+msgid "%1$s is following %2$s's %3$s"
+msgstr "%1$s отслеживает %2$s's %3$s"
-#: ../../Zotlabs/Module/Authorize.php:32
-msgid "Allow"
-msgstr "Разрешить"
+#: ../../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"
-#: ../../Zotlabs/Module/Authorize.php:33
-#: ../../Zotlabs/Module/Admin/Accounts.php:174
-msgid "Deny"
-msgstr "Запретить"
+#: ../../Zotlabs/Module/Article_edit.php:44 ../../Zotlabs/Module/Cal.php:63
+#: ../../Zotlabs/Module/Chanview.php:96 ../../Zotlabs/Module/Page.php:75
+#: ../../Zotlabs/Module/Wall_upload.php:31 ../../Zotlabs/Module/Block.php:41
+#: ../../Zotlabs/Module/Card_edit.php:44
+msgid "Channel not found."
+msgstr "Канал не найден."
-#: ../../Zotlabs/Module/Pubstream.php:20
-msgid "Public Stream App"
-msgstr "Приложение \"Публичный поток\""
+#: ../../Zotlabs/Module/Article_edit.php:101
+#: ../../Zotlabs/Module/Editblock.php:116 ../../Zotlabs/Module/Chat.php:222
+#: ../../Zotlabs/Module/Editwebpage.php:143 ../../Zotlabs/Module/Mail.php:288
+#: ../../Zotlabs/Module/Mail.php:430 ../../Zotlabs/Module/Card_edit.php:101
+#: ../../addon/hsse/hsse.php:95 ../../include/conversation.php:1298
+msgid "Insert web link"
+msgstr "Вставить веб-ссылку"
-#: ../../Zotlabs/Module/Pubstream.php:21
-msgid "The unmoderated public stream of this hub"
-msgstr "Немодерируемый публичный поток с этого хаба"
+#: ../../Zotlabs/Module/Article_edit.php:117
+#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:713
+#: ../../Zotlabs/Module/Photos.php:1083 ../../Zotlabs/Module/Card_edit.php:117
+#: ../../addon/hsse/hsse.php:221 ../../include/conversation.php:1427
+msgid "Title (optional)"
+msgstr "Заголовок (необязательно)"
-#: ../../Zotlabs/Module/Pubstream.php:109
-#: ../../Zotlabs/Widget/Notifications.php:142 ../../Zotlabs/Lib/Apps.php:352
-msgid "Public Stream"
-msgstr "Публичный поток"
+#: ../../Zotlabs/Module/Article_edit.php:128
+msgid "Edit Article"
+msgstr "Редактировать статью"
+
+#: ../../Zotlabs/Module/Import_items.php:48 ../../Zotlabs/Module/Import.php:66
+msgid "Nothing to import."
+msgstr "Ничего импортировать."
+
+#: ../../Zotlabs/Module/Import_items.php:72 ../../Zotlabs/Module/Import.php:81
+#: ../../Zotlabs/Module/Import.php:97
+msgid "Unable to download data from old server"
+msgstr "Невозможно загрузить данные со старого сервера"
+
+#: ../../Zotlabs/Module/Import_items.php:77 ../../Zotlabs/Module/Import.php:104
+msgid "Imported file is empty."
+msgstr "Импортированный файл пуст."
+
+#: ../../Zotlabs/Module/Import_items.php:93
+#, php-format
+msgid "Warning: Database versions differ by %1$d updates."
+msgstr "Предупреждение: Версия базы данных отличается от %1$d обновления."
+
+#: ../../Zotlabs/Module/Import_items.php:108
+msgid "Import completed"
+msgstr "Импорт завершён."
+
+#: ../../Zotlabs/Module/Import_items.php:125
+msgid "Import Items"
+msgstr "Импортировать объекты"
+
+#: ../../Zotlabs/Module/Import_items.php:126
+msgid "Use this form to import existing posts and content from an export file."
+msgstr "Используйте эту форму для импорта существующих публикаций и содержимого из файла."
+
+#: ../../Zotlabs/Module/Import_items.php:127
+#: ../../Zotlabs/Module/Import.php:557
+msgid "File to Upload"
+msgstr "Файл для загрузки"
#: ../../Zotlabs/Module/New_channel.php:147 ../../Zotlabs/Module/Manage.php:138
#, php-format
msgid "You have created %1$.0f of %2$.0f allowed channels."
msgstr "Вы создали %1$.0f из %2$.0f возможных каналов."
+#: ../../Zotlabs/Module/New_channel.php:157
+#: ../../Zotlabs/Module/New_channel.php:164
+#: ../../Zotlabs/Module/Connedit.php:869 ../../Zotlabs/Module/Defperms.php:256
+#: ../../Zotlabs/Widget/Notifications.php:162 ../../include/nav.php:323
+msgid "Loading"
+msgstr "Загрузка"
+
#: ../../Zotlabs/Module/New_channel.php:159
msgid "Your real name is recommended."
msgstr "Рекомендуется использовать ваше настоящее имя."
@@ -6082,8 +1765,8 @@ msgid "Choose a short nickname"
msgstr "Выберите короткий псевдоним"
#: ../../Zotlabs/Module/New_channel.php:178
-#: ../../Zotlabs/Module/Register.php:261
#: ../../Zotlabs/Module/Settings/Channel.php:535
+#: ../../Zotlabs/Module/Register.php:261
msgid "Channel role and privacy"
msgstr "Роль и конфиденциальность канала"
@@ -6118,1488 +1801,6 @@ msgstr "или <a href=\"import\">импортировать существую
msgid "Validate"
msgstr "Проверить"
-#: ../../Zotlabs/Module/Cover_photo.php:57
-#: ../../Zotlabs/Module/Profile_photo.php:66
-msgid "Image uploaded but image cropping failed."
-msgstr "Изображение загружено но обрезка не удалась."
-
-#: ../../Zotlabs/Module/Cover_photo.php:168
-#: ../../Zotlabs/Module/Cover_photo.php:218
-msgid "Cover Photos"
-msgstr "Фотографии обложки"
-
-#: ../../Zotlabs/Module/Cover_photo.php:191
-#: ../../Zotlabs/Module/Profile_photo.php:142
-msgid "Image resize failed."
-msgstr "Не удалось изменить размер изображения."
-
-#: ../../Zotlabs/Module/Cover_photo.php:229
-#: ../../Zotlabs/Module/Profile_photo.php:260
-msgid "Image upload failed."
-msgstr "Загрузка изображения не удалась."
-
-#: ../../Zotlabs/Module/Cover_photo.php:246
-#: ../../Zotlabs/Module/Profile_photo.php:279
-msgid "Unable to process image."
-msgstr "Невозможно обработать изображение."
-
-#: ../../Zotlabs/Module/Cover_photo.php:339
-#: ../../Zotlabs/Module/Cover_photo.php:354
-#: ../../Zotlabs/Module/Profile_photo.php:343
-#: ../../Zotlabs/Module/Profile_photo.php:390
-msgid "Photo not available."
-msgstr "Фотография недоступна."
-
-#: ../../Zotlabs/Module/Cover_photo.php:390
-msgid "Your cover photo may be visible to anybody on the internet"
-msgstr "Фотография вашей обложки может быть видна всем в Интернете"
-
-#: ../../Zotlabs/Module/Cover_photo.php:392
-#: ../../Zotlabs/Module/Profile_photo.php:456
-msgid "Upload File:"
-msgstr "Загрузить файл:"
-
-#: ../../Zotlabs/Module/Cover_photo.php:393
-#: ../../Zotlabs/Module/Profile_photo.php:457
-msgid "Select a profile:"
-msgstr "Выбрать профиль:"
-
-#: ../../Zotlabs/Module/Cover_photo.php:394
-msgid "Change Cover Photo"
-msgstr "Изменить фотографию обложки"
-
-#: ../../Zotlabs/Module/Cover_photo.php:397
-#: ../../Zotlabs/Module/Cover_photo.php:398
-#: ../../Zotlabs/Module/Profile_photo.php:463
-#: ../../Zotlabs/Module/Profile_photo.php:464
-msgid "Use a photo from your albums"
-msgstr "Использовать фотографию из ваших альбомов"
-
-#: ../../Zotlabs/Module/Cover_photo.php:403
-#: ../../Zotlabs/Module/Profile_photo.php:469 ../../Zotlabs/Module/Wiki.php:405
-msgid "Choose a different album"
-msgstr "Выбрать другой альбом"
-
-#: ../../Zotlabs/Module/Cover_photo.php:409
-#: ../../Zotlabs/Module/Profile_photo.php:474
-msgid "Select existing photo"
-msgstr "Выбрать существующую фотографию"
-
-#: ../../Zotlabs/Module/Cover_photo.php:426
-#: ../../Zotlabs/Module/Profile_photo.php:493
-msgid "Crop Image"
-msgstr "Обрезать изображение"
-
-#: ../../Zotlabs/Module/Cover_photo.php:427
-#: ../../Zotlabs/Module/Profile_photo.php:494
-msgid "Please adjust the image cropping for optimum viewing."
-msgstr "Пожалуйста настройте обрезку изображения для оптимального просмотра."
-
-#: ../../Zotlabs/Module/Cover_photo.php:429
-#: ../../Zotlabs/Module/Profile_photo.php:496
-msgid "Done Editing"
-msgstr "Закончить редактирование"
-
-#: ../../Zotlabs/Module/Sharedwithme.php:103
-msgid "Files: shared with me"
-msgstr "Файлы: поделились со мной"
-
-#: ../../Zotlabs/Module/Sharedwithme.php:105
-msgid "NEW"
-msgstr "НОВОЕ"
-
-#: ../../Zotlabs/Module/Sharedwithme.php:108
-msgid "Remove all files"
-msgstr "Удалить все файлы"
-
-#: ../../Zotlabs/Module/Sharedwithme.php:109
-msgid "Remove this file"
-msgstr "Удалить этот файл"
-
-#: ../../Zotlabs/Module/Register.php:49
-msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
-msgstr "Превышено максимальное количество регистраций на сегодня. Пожалуйста, попробуйте снова завтра."
-
-#: ../../Zotlabs/Module/Register.php:55
-msgid ""
-"Please indicate acceptance of the Terms of Service. Registration failed."
-msgstr "Пожалуйста, подтвердите согласие с \"Условиями обслуживания\". Регистрация не удалась."
-
-#: ../../Zotlabs/Module/Register.php:89
-msgid "Passwords do not match."
-msgstr "Пароли не совпадают."
-
-#: ../../Zotlabs/Module/Register.php:132
-msgid "Registration successful. Continue to create your first channel..."
-msgstr "Регистрация завершена успешно. Для продолжения создайте свой первый канал..."
-
-#: ../../Zotlabs/Module/Register.php:135
-msgid ""
-"Registration successful. Please check your email for validation instructions."
-msgstr "Регистрация завершена успешно. Пожалуйста проверьте вашу электронную почту для подтверждения."
-
-#: ../../Zotlabs/Module/Register.php:142
-msgid "Your registration is pending approval by the site owner."
-msgstr "Ваша регистрация ожидает одобрения администрации сайта."
-
-#: ../../Zotlabs/Module/Register.php:145
-msgid "Your registration can not be processed."
-msgstr "Ваша регистрация не может быть обработана."
-
-#: ../../Zotlabs/Module/Register.php:192
-msgid "Registration on this hub is disabled."
-msgstr "Регистрация на этом хабе отключена."
-
-#: ../../Zotlabs/Module/Register.php:201
-msgid "Registration on this hub is by approval only."
-msgstr "Регистрация на этом хабе только по утверждению."
-
-#: ../../Zotlabs/Module/Register.php:202 ../../Zotlabs/Module/Register.php:211
-msgid "<a href=\"pubsites\">Register at another affiliated hub.</a>"
-msgstr "<a href=\"pubsites\">Зарегистрироваться на другом хабе.</a>"
-
-#: ../../Zotlabs/Module/Register.php:210
-msgid "Registration on this hub is by invitation only."
-msgstr "Регистрация на этом хабе доступна только по приглашениям."
-
-#: ../../Zotlabs/Module/Register.php:221
-msgid ""
-"This site has exceeded the number of allowed daily account registrations. "
-"Please try again tomorrow."
-msgstr "Этот сайт превысил максимальное количество регистраций на сегодня. Пожалуйста, попробуйте снова завтра. "
-
-#: ../../Zotlabs/Module/Register.php:236 ../../Zotlabs/Module/Siteinfo.php:28
-msgid "Terms of Service"
-msgstr "Условия предоставления услуг"
-
-#: ../../Zotlabs/Module/Register.php:242
-#, php-format
-msgid "I accept the %s for this website"
-msgstr "Я принимаю %s для этого веб-сайта."
-
-#: ../../Zotlabs/Module/Register.php:249
-#, php-format
-msgid "I am over %s years of age and accept the %s for this website"
-msgstr "Мой возраст превышает %s лет и я принимаю %s для этого веб-сайта."
-
-#: ../../Zotlabs/Module/Register.php:254
-msgid "Your email address"
-msgstr "Ваш адрес электронной почты"
-
-#: ../../Zotlabs/Module/Register.php:255
-msgid "Choose a password"
-msgstr "Выберите пароль"
-
-#: ../../Zotlabs/Module/Register.php:256
-msgid "Please re-enter your password"
-msgstr "Пожалуйста, введите пароль еще раз"
-
-#: ../../Zotlabs/Module/Register.php:257
-msgid "Please enter your invitation code"
-msgstr "Пожалуйста, введите Ваш код приглашения"
-
-#: ../../Zotlabs/Module/Register.php:258
-msgid "Your Name"
-msgstr "Ваше имя"
-
-#: ../../Zotlabs/Module/Register.php:258
-msgid "Real names are preferred."
-msgstr "Предпочтительны реальные имена."
-
-#: ../../Zotlabs/Module/Register.php:260
-#, php-format
-msgid ""
-"Your nickname will be used to create an easy to remember channel address e."
-"g. nickname%s"
-msgstr "Ваш псевдоним будет использован для создания легко запоминаемого адреса канала, напр. nickname %s"
-
-#: ../../Zotlabs/Module/Register.php:261
-msgid ""
-"Select a channel permission role for your usage needs and privacy "
-"requirements."
-msgstr "Выберите разрешения для канала в зависимости от ваших потребностей и требований приватности."
-
-#: ../../Zotlabs/Module/Register.php:262
-msgid "no"
-msgstr "нет"
-
-#: ../../Zotlabs/Module/Register.php:262
-msgid "yes"
-msgstr "да"
-
-#: ../../Zotlabs/Module/Register.php:273
-#: ../../Zotlabs/Module/Admin/Site.php:290
-msgid "Registration"
-msgstr "Регистрация"
-
-#: ../../Zotlabs/Module/Register.php:290
-msgid ""
-"This site requires email verification. After completing this form, please "
-"check your email for further instructions."
-msgstr "Этот сайт требует проверку адреса электронной почты. После заполнения этой формы, пожалуйста, проверьте ваш почтовый ящик для дальнейших инструкций."
-
-#: ../../Zotlabs/Module/Apporder.php:44
-msgid "Change Order of Pinned Navbar Apps"
-msgstr "Изменить порядок приложений на панели навигации"
-
-#: ../../Zotlabs/Module/Apporder.php:44
-msgid "Change Order of App Tray Apps"
-msgstr "Изменить порядок приложений в лотке"
-
-#: ../../Zotlabs/Module/Apporder.php:45
-msgid ""
-"Use arrows to move the corresponding app left (top) or right (bottom) in the "
-"navbar"
-msgstr "Используйте стрелки для перемещения приложения влево (вверх) или вправо (вниз) в панели навигации"
-
-#: ../../Zotlabs/Module/Apporder.php:45
-msgid "Use arrows to move the corresponding app up or down in the app tray"
-msgstr "Используйте стрелки для перемещения приложения вверх или вниз в лотке"
-
-#: ../../Zotlabs/Module/Help.php:23
-msgid "Documentation Search"
-msgstr "Поиск документации"
-
-#: ../../Zotlabs/Module/Help.php:81 ../../Zotlabs/Module/Group.php:145
-msgid "Members"
-msgstr "Участники"
-
-#: ../../Zotlabs/Module/Help.php:82
-msgid "Administrators"
-msgstr "Администраторы"
-
-#: ../../Zotlabs/Module/Help.php:83
-msgid "Developers"
-msgstr "Разработчики"
-
-#: ../../Zotlabs/Module/Help.php:84
-msgid "Tutorials"
-msgstr "Руководства"
-
-#: ../../Zotlabs/Module/Help.php:95
-msgid "$Projectname Documentation"
-msgstr "$Projectname Документация"
-
-#: ../../Zotlabs/Module/Help.php:96
-msgid "Contents"
-msgstr "Содержимое"
-
-#: ../../Zotlabs/Module/Viewconnections.php:65
-msgid "No connections."
-msgstr "Контактов нет."
-
-#: ../../Zotlabs/Module/Viewconnections.php:83
-#, php-format
-msgid "Visit %s's profile [%s]"
-msgstr "Посетить %s ​​профиль [%s]"
-
-#: ../../Zotlabs/Module/Viewconnections.php:113
-msgid "View Connections"
-msgstr "Просмотр контактов"
-
-#: ../../Zotlabs/Module/Rate.php:156
-msgid "Website:"
-msgstr "Веб-сайт:"
-
-#: ../../Zotlabs/Module/Rate.php:159
-#, php-format
-msgid "Remote Channel [%s] (not yet known on this site)"
-msgstr "Удалённый канал [%s] (пока неизвестен на этом сайте)"
-
-#: ../../Zotlabs/Module/Rate.php:160
-msgid "Rating (this information is public)"
-msgstr "Оценка (эта информация общедоступна)"
-
-#: ../../Zotlabs/Module/Rate.php:161
-msgid "Optionally explain your rating (this information is public)"
-msgstr "Объясните свою оценку (необязательно; эта информация общедоступна)"
-
-#: ../../Zotlabs/Module/Regmod.php:15
-msgid "Please login."
-msgstr "Пожалуйста, войдите."
-
-#: ../../Zotlabs/Module/Locs.php:25 ../../Zotlabs/Module/Locs.php:54
-msgid "Location not found."
-msgstr "Местоположение не найдено"
-
-#: ../../Zotlabs/Module/Locs.php:62
-msgid "Location lookup failed."
-msgstr "Поиск местоположения не удался"
-
-#: ../../Zotlabs/Module/Locs.php:66
-msgid ""
-"Please select another location to become primary before removing the primary "
-"location."
-msgstr "Пожалуйста, выберите другое местоположение в качестве основного прежде чем удалить предыдущее"
-
-#: ../../Zotlabs/Module/Locs.php:95
-msgid "Syncing locations"
-msgstr "Синхронизировать местоположение"
-
-#: ../../Zotlabs/Module/Locs.php:105
-msgid "No locations found."
-msgstr "Местоположений не найдено"
-
-#: ../../Zotlabs/Module/Locs.php:116
-msgid "Manage Channel Locations"
-msgstr "Управление местоположением канала"
-
-#: ../../Zotlabs/Module/Locs.php:120 ../../Zotlabs/Module/Menu.php:176
-msgid "Drop"
-msgstr "Удалить"
-
-#: ../../Zotlabs/Module/Locs.php:122
-msgid "Sync Now"
-msgstr "Синхронизировать"
-
-#: ../../Zotlabs/Module/Locs.php:123
-msgid "Please wait several minutes between consecutive operations."
-msgstr "Пожалуйста, подождите несколько минут между последовательными операциями."
-
-#: ../../Zotlabs/Module/Locs.php:124
-msgid ""
-"When possible, drop a location by logging into that website/hub and removing "
-"your channel."
-msgstr "По возможности, очистите местоположение, войдя на этот веб-сайт / хаб и удалив свой канал."
-
-#: ../../Zotlabs/Module/Locs.php:125
-msgid "Use this form to drop the location if the hub is no longer operating."
-msgstr "Используйте эту форму, чтобы удалить местоположение, если хаб больше не функционирует."
-
-#: ../../Zotlabs/Module/Sources.php:41
-msgid "Failed to create source. No channel selected."
-msgstr "Не удалось создать источник. Канал не выбран."
-
-#: ../../Zotlabs/Module/Sources.php:57
-msgid "Source created."
-msgstr "Источник создан."
-
-#: ../../Zotlabs/Module/Sources.php:70
-msgid "Source updated."
-msgstr "Источник обновлен."
-
-#: ../../Zotlabs/Module/Sources.php:88
-msgid "Sources App"
-msgstr "Приложение \"Источники канала\""
-
-#: ../../Zotlabs/Module/Sources.php:89
-msgid "Automatically import channel content from other channels or feeds"
-msgstr "Автоматический импорт контента из других каналов или лент"
-
-#: ../../Zotlabs/Module/Sources.php:101
-msgid "*"
-msgstr ""
-
-#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:344
-msgid "Channel Sources"
-msgstr "Источники канала"
-
-#: ../../Zotlabs/Module/Sources.php:108
-msgid "Manage remote sources of content for your channel."
-msgstr "Управление удалённым источниками содержимого для вашего канала"
-
-#: ../../Zotlabs/Module/Sources.php:109 ../../Zotlabs/Module/Sources.php:119
-msgid "New Source"
-msgstr "Новый источник"
-
-#: ../../Zotlabs/Module/Sources.php:120 ../../Zotlabs/Module/Sources.php:154
-msgid ""
-"Import all or selected content from the following channel into this channel "
-"and distribute it according to your channel settings."
-msgstr "Импортировать всё или выбранное содержимое из следующего канала в этот канал и распределить его в соответствии с вашими настройками."
-
-#: ../../Zotlabs/Module/Sources.php:121 ../../Zotlabs/Module/Sources.php:155
-msgid "Only import content with these words (one per line)"
-msgstr "Импортировать содержимое только с этим текстом (построчно)"
-
-#: ../../Zotlabs/Module/Sources.php:121 ../../Zotlabs/Module/Sources.php:155
-msgid "Leave blank to import all public content"
-msgstr "Оставьте пустым для импорта всего общедоступного содержимого"
-
-#: ../../Zotlabs/Module/Sources.php:122 ../../Zotlabs/Module/Sources.php:161
-msgid "Channel Name"
-msgstr "Название канала"
-
-#: ../../Zotlabs/Module/Sources.php:123 ../../Zotlabs/Module/Sources.php:158
-msgid ""
-"Add the following categories to posts imported from this source (comma "
-"separated)"
-msgstr "Добавить следующие категории к импортированным публикациям из этого источника (через запятые)"
-
-#: ../../Zotlabs/Module/Sources.php:124 ../../Zotlabs/Module/Sources.php:159
-msgid "Resend posts with this channel as author"
-msgstr "Отправить публикации в этот канал повторно как автор"
-
-#: ../../Zotlabs/Module/Sources.php:124 ../../Zotlabs/Module/Sources.php:159
-msgid "Copyrights may apply"
-msgstr "Могут применяться авторские права"
-
-#: ../../Zotlabs/Module/Sources.php:144 ../../Zotlabs/Module/Sources.php:174
-msgid "Source not found."
-msgstr "Источник не найден."
-
-#: ../../Zotlabs/Module/Sources.php:151
-msgid "Edit Source"
-msgstr "Редактировать источник"
-
-#: ../../Zotlabs/Module/Sources.php:152
-msgid "Delete Source"
-msgstr "Удалить источник"
-
-#: ../../Zotlabs/Module/Sources.php:182
-msgid "Source removed"
-msgstr "Источник удален"
-
-#: ../../Zotlabs/Module/Sources.php:184
-msgid "Unable to remove source."
-msgstr "Невозможно удалить источник."
-
-#: ../../Zotlabs/Module/Chat.php:102
-msgid "Chatrooms App"
-msgstr "Приложение \"Мои чаты\""
-
-#: ../../Zotlabs/Module/Chat.php:103
-msgid "Access Controlled Chatrooms"
-msgstr "Получить доступ к контролируемым чатам"
-
-#: ../../Zotlabs/Module/Chat.php:196
-msgid "Room not found"
-msgstr "Комната не найдена"
-
-#: ../../Zotlabs/Module/Chat.php:212
-msgid "Leave Room"
-msgstr "Покинуть комнату"
-
-#: ../../Zotlabs/Module/Chat.php:213
-msgid "Delete Room"
-msgstr "Удалить комнату"
-
-#: ../../Zotlabs/Module/Chat.php:214
-msgid "I am away right now"
-msgstr "Я сейчас отошёл"
-
-#: ../../Zotlabs/Module/Chat.php:215
-msgid "I am online"
-msgstr "Я на связи"
-
-#: ../../Zotlabs/Module/Chat.php:217
-msgid "Bookmark this room"
-msgstr "Запомнить эту комнату"
-
-#: ../../Zotlabs/Module/Chat.php:240
-msgid "New Chatroom"
-msgstr "Новый чат"
-
-#: ../../Zotlabs/Module/Chat.php:241
-msgid "Chatroom name"
-msgstr "Название чата"
-
-#: ../../Zotlabs/Module/Chat.php:242
-msgid "Expiration of chats (minutes)"
-msgstr "Завершение чатов (минут)"
-
-#: ../../Zotlabs/Module/Chat.php:258
-#, php-format
-msgid "%1$s's Chatrooms"
-msgstr "Чаты пользователя %1$s"
-
-#: ../../Zotlabs/Module/Chat.php:263
-msgid "No chatrooms available"
-msgstr "Нет доступных чатов"
-
-#: ../../Zotlabs/Module/Chat.php:267
-msgid "Expiration"
-msgstr "Срок действия"
-
-#: ../../Zotlabs/Module/Chat.php:268
-msgid "min"
-msgstr "мин."
-
-#: ../../Zotlabs/Module/Oauth2.php:54
-msgid "Name and Secret are required"
-msgstr "Требуются имя и код"
-
-#: ../../Zotlabs/Module/Oauth2.php:106
-msgid "OAuth2 Apps Manager App"
-msgstr "Приложение \"Менеджер Oauth2\""
-
-#: ../../Zotlabs/Module/Oauth2.php:107
-msgid "OAuth2 authenticatication tokens for mobile and remote apps"
-msgstr "Аутентификация OAuth2 для мобильных и удаленных приложений"
-
-#: ../../Zotlabs/Module/Oauth2.php:115
-msgid "Add OAuth2 application"
-msgstr "Добавить приложение OAuth2"
-
-#: ../../Zotlabs/Module/Oauth2.php:121 ../../Zotlabs/Module/Oauth2.php:149
-msgid "Grant Types"
-msgstr "Разрешить типы"
-
-#: ../../Zotlabs/Module/Oauth2.php:121 ../../Zotlabs/Module/Oauth2.php:122
-msgid "leave blank unless your application sepcifically requires this"
-msgstr "оставьте пустыми до тех пока ваше приложение не требует этого"
-
-#: ../../Zotlabs/Module/Oauth2.php:122 ../../Zotlabs/Module/Oauth2.php:150
-msgid "Authorization scope"
-msgstr "Область полномочий"
-
-#: ../../Zotlabs/Module/Oauth2.php:134
-msgid "OAuth2 Application not found."
-msgstr "Приложение OAuth2 не найдено."
-
-#: ../../Zotlabs/Module/Oauth2.php:149 ../../Zotlabs/Module/Oauth2.php:150
-msgid "leave blank unless your application specifically requires this"
-msgstr "оставьте поле пустым, если ваше приложение не требует этого"
-
-#: ../../Zotlabs/Module/Oauth2.php:192
-msgid "Connected OAuth2 Apps"
-msgstr "Подключённые приложения OAuth2"
-
-#: ../../Zotlabs/Module/Settings/Manage.php:39
-msgid "Channel Manager Settings"
-msgstr "Настройки менеджера канала"
-
-#: ../../Zotlabs/Module/Settings/Calendar.php:39
-msgid "CalDAV Settings"
-msgstr "Настройки CalDAV"
-
-#: ../../Zotlabs/Module/Settings/Account.php:19
-msgid "Not valid email."
-msgstr "Не действительный адрес email."
-
-#: ../../Zotlabs/Module/Settings/Account.php:22
-msgid "Protected email address. Cannot change to that email."
-msgstr "Защищенный адрес электронной почты. Нельзя изменить."
-
-#: ../../Zotlabs/Module/Settings/Account.php:31
-msgid "System failure storing new email. Please try again."
-msgstr "Системная ошибка сохранения email. Пожалуйста попробуйте ещё раз."
-
-#: ../../Zotlabs/Module/Settings/Account.php:48
-msgid "Password verification failed."
-msgstr "Не удалось выполнить проверку пароля."
-
-#: ../../Zotlabs/Module/Settings/Account.php:55
-msgid "Passwords do not match. Password unchanged."
-msgstr "Пароли не совпадают. Пароль не изменён."
-
-#: ../../Zotlabs/Module/Settings/Account.php:59
-msgid "Empty passwords are not allowed. Password unchanged."
-msgstr "Пустые пароли не допускаются. Пароль не изменён."
-
-#: ../../Zotlabs/Module/Settings/Account.php:73
-msgid "Password changed."
-msgstr "Пароль изменен."
-
-#: ../../Zotlabs/Module/Settings/Account.php:75
-msgid "Password update failed. Please try again."
-msgstr "Изменение пароля не удалось. Пожалуйста, попробуйте ещё раз."
-
-#: ../../Zotlabs/Module/Settings/Account.php:99
-msgid "Account Settings"
-msgstr "Настройки аккаунта"
-
-#: ../../Zotlabs/Module/Settings/Account.php:100
-msgid "Current Password"
-msgstr "Текущий пароль"
-
-#: ../../Zotlabs/Module/Settings/Account.php:101
-msgid "Enter New Password"
-msgstr "Введите новый пароль:"
-
-#: ../../Zotlabs/Module/Settings/Account.php:102
-msgid "Confirm New Password"
-msgstr "Подтвердите новый пароль:"
-
-#: ../../Zotlabs/Module/Settings/Account.php:102
-msgid "Leave password fields blank unless changing"
-msgstr "Оставьте поля пустыми до измнения"
-
-#: ../../Zotlabs/Module/Settings/Account.php:104
-#: ../../Zotlabs/Module/Settings/Channel.php:500
-msgid "Email Address:"
-msgstr "Адрес email:"
-
-#: ../../Zotlabs/Module/Settings/Account.php:105
-#: ../../Zotlabs/Module/Removeaccount.php:61
-msgid "Remove Account"
-msgstr "Удалить аккаунт"
-
-#: ../../Zotlabs/Module/Settings/Account.php:106
-msgid "Remove this account including all its channels"
-msgstr "Удалить этот аккаунт включая все каналы"
-
-#: ../../Zotlabs/Module/Settings/Conversation.php:22
-msgid "Settings saved."
-msgstr "Настройки сохранены."
-
-#: ../../Zotlabs/Module/Settings/Conversation.php:24
-msgid "Settings saved. Reload page please."
-msgstr "Настройки сохранены. Пожалуйста, перезагрузите страницу."
-
-#: ../../Zotlabs/Module/Settings/Conversation.php:46
-msgid "Conversation Settings"
-msgstr "Настройки бесед"
-
-#: ../../Zotlabs/Module/Settings/Editor.php:39
-msgid "Editor Settings"
-msgstr "Настройки редактора"
-
-#: ../../Zotlabs/Module/Settings/Display.php:119
-#: ../../Zotlabs/Module/Admin/Site.php:198
-#, php-format
-msgid "%s - (Incompatible)"
-msgstr "%s - (несовместимо)"
-
-#: ../../Zotlabs/Module/Settings/Display.php:128
-#, php-format
-msgid "%s - (Experimental)"
-msgstr "%s - (экспериментальный)"
-
-#: ../../Zotlabs/Module/Settings/Display.php:184
-msgid "Display Settings"
-msgstr "Настройки отображения"
-
-#: ../../Zotlabs/Module/Settings/Display.php:185
-msgid "Theme Settings"
-msgstr "Настройки темы"
-
-#: ../../Zotlabs/Module/Settings/Display.php:186
-msgid "Custom Theme Settings"
-msgstr "Дополнительные настройки темы"
-
-#: ../../Zotlabs/Module/Settings/Display.php:187
-msgid "Content Settings"
-msgstr "Настройки содержимого"
-
-#: ../../Zotlabs/Module/Settings/Display.php:193
-msgid "Display Theme:"
-msgstr "Тема отображения:"
-
-#: ../../Zotlabs/Module/Settings/Display.php:194
-msgid "Select scheme"
-msgstr "Выбрать схему"
-
-#: ../../Zotlabs/Module/Settings/Display.php:196
-msgid "Preload images before rendering the page"
-msgstr "Предзагрузка изображений перед обработкой страницы"
-
-#: ../../Zotlabs/Module/Settings/Display.php:196
-msgid ""
-"The subjective page load time will be longer but the page will be ready when "
-"displayed"
-msgstr "Субъективное время загрузки страницы будет длиннее, но страница будет готова при отображении"
-
-#: ../../Zotlabs/Module/Settings/Display.php:197
-msgid "Enable user zoom on mobile devices"
-msgstr "Включить масштабирование на мобильных устройствах"
-
-#: ../../Zotlabs/Module/Settings/Display.php:198
-msgid "Update browser every xx seconds"
-msgstr "Обновление браузера каждые N секунд"
-
-#: ../../Zotlabs/Module/Settings/Display.php:198
-msgid "Minimum of 10 seconds, no maximum"
-msgstr "Минимум 10 секунд, без максимума"
-
-#: ../../Zotlabs/Module/Settings/Display.php:199
-msgid "Maximum number of conversations to load at any time:"
-msgstr "Максимальное количество бесед для загрузки одновременно:"
-
-#: ../../Zotlabs/Module/Settings/Display.php:199
-msgid "Maximum of 100 items"
-msgstr "Максимум 100 элементов"
-
-#: ../../Zotlabs/Module/Settings/Display.php:200
-msgid "Show emoticons (smilies) as images"
-msgstr "Показывать эмотиконы (смайлики) как изображения"
-
-#: ../../Zotlabs/Module/Settings/Display.php:201
-msgid "Provide channel menu in navigation bar"
-msgstr "Показывать меню канала в панели навигации"
-
-#: ../../Zotlabs/Module/Settings/Display.php:201
-msgid "Default: channel menu located in app menu"
-msgstr "По умолчанию каналы расположены в меню приложения"
-
-#: ../../Zotlabs/Module/Settings/Display.php:202
-msgid "Manual conversation updates"
-msgstr "Обновление бесед вручную"
-
-#: ../../Zotlabs/Module/Settings/Display.php:202
-msgid "Default is on, turning this off may increase screen jumping"
-msgstr "Включено по умолчанию, выключение может привести к рывкам в отображении"
-
-#: ../../Zotlabs/Module/Settings/Display.php:203
-msgid "Link post titles to source"
-msgstr "Ссылки на источник заголовков публикаций"
-
-#: ../../Zotlabs/Module/Settings/Display.php:205
-#: ../../Zotlabs/Widget/Newmember.php:75
-msgid "New Member Links"
-msgstr "Ссылки для новичков"
-
-#: ../../Zotlabs/Module/Settings/Display.php:205
-msgid "Display new member quick links menu"
-msgstr "Показать меню быстрых ссылок для новых участников"
-
-#: ../../Zotlabs/Module/Settings/Features.php:43
-msgid "Additional Features"
-msgstr "Дополнительные функции"
-
-#: ../../Zotlabs/Module/Settings/Network.php:41
-#: ../../Zotlabs/Module/Settings/Channel_home.php:44
-msgid "Max height of content (in pixels)"
-msgstr "Максимальная высота содержимого (в пикселях)"
-
-#: ../../Zotlabs/Module/Settings/Network.php:43
-#: ../../Zotlabs/Module/Settings/Channel_home.php:46
-msgid "Click to expand content exceeding this height"
-msgstr "Нажмите чтобы развернуть содержимое превышающее эту высоту"
-
-#: ../../Zotlabs/Module/Settings/Network.php:58
-msgid "Stream Settings"
-msgstr "Настройки потока"
-
-#: ../../Zotlabs/Module/Settings/Events.php:39
-msgid "Events Settings"
-msgstr "Настройки событий"
-
-#: ../../Zotlabs/Module/Settings/Channel_home.php:59
-msgid "Personal menu to display in your channel pages"
-msgstr "Персональное меню для отображения на странице вашего канала"
-
-#: ../../Zotlabs/Module/Settings/Channel_home.php:86
-msgid "Channel Home Settings"
-msgstr "Настройки главной страницы канала"
-
-#: ../../Zotlabs/Module/Settings/Directory.php:39
-msgid "Directory Settings"
-msgstr "Настройки каталога"
-
-#: ../../Zotlabs/Module/Settings/Photos.php:39
-msgid "Photos Settings"
-msgstr "Настройки фотографий"
-
-#: ../../Zotlabs/Module/Settings/Profiles.php:47
-msgid "Profiles Settings"
-msgstr "Настройки профилей"
-
-#: ../../Zotlabs/Module/Settings/Featured.php:23
-msgid "Affinity Slider settings updated."
-msgstr "Обновлены настройки слайдера cходства."
-
-#: ../../Zotlabs/Module/Settings/Featured.php:38
-msgid "No feature settings configured"
-msgstr "Параметры функций не настроены"
-
-#: ../../Zotlabs/Module/Settings/Featured.php:45
-msgid "Default maximum affinity level"
-msgstr "Максимальный уровень сходства по умолчанию."
-
-#: ../../Zotlabs/Module/Settings/Featured.php:45
-msgid "0-99 default 99"
-msgstr "0-99 (по умолчанию 99)"
-
-#: ../../Zotlabs/Module/Settings/Featured.php:50
-msgid "Default minimum affinity level"
-msgstr "Минимальный уровень сходства по умолчанию."
-
-#: ../../Zotlabs/Module/Settings/Featured.php:50
-msgid "0-99 - default 0"
-msgstr "0-99 (по умолчанию 0)"
-
-#: ../../Zotlabs/Module/Settings/Featured.php:54
-msgid "Affinity Slider Settings"
-msgstr "Настройки слайдера сходства"
-
-#: ../../Zotlabs/Module/Settings/Featured.php:67
-msgid "Addon Settings"
-msgstr "Настройки расширений"
-
-#: ../../Zotlabs/Module/Settings/Featured.php:68
-msgid "Please save/submit changes to any panel before opening another."
-msgstr "Пожалуйста сохраните / отправьте изменения на панели прежде чем открывать другую."
-
-#: ../../Zotlabs/Module/Settings/Connections.php:39
-msgid "Connections Settings"
-msgstr "Настройки контактов"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:327
-msgid "Nobody except yourself"
-msgstr "Никто кроме вас"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:328
-msgid "Only those you specifically allow"
-msgstr "Только персонально разрешённые"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:329
-msgid "Approved connections"
-msgstr "Одобренные контакты"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:330
-msgid "Any connections"
-msgstr "Любые контакты"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:331
-msgid "Anybody on this website"
-msgstr "Любой на этом сайте"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:332
-msgid "Anybody in this network"
-msgstr "Любой в этой сети"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:333
-msgid "Anybody authenticated"
-msgstr "Любой аутентифицированный"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:334
-msgid "Anybody on the internet"
-msgstr "Любой в интернете"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:409
-msgid "Publish your default profile in the network directory"
-msgstr "Публиковать ваш профиль по умолчанию в сетевом каталоге"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:414
-msgid "Allow us to suggest you as a potential friend to new members?"
-msgstr "Разрешить предлагать вас как потенциального друга для новых пользователей?"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:418
-msgid "or"
-msgstr "или"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:427
-msgid "Your channel address is"
-msgstr "Адрес вашего канала"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:430
-msgid "Your files/photos are accessible via WebDAV at"
-msgstr "Ваши файлы / фотографии доступны через WebDAV по"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:470
-msgid "Automatic membership approval"
-msgstr "Членство одобрено автоматически"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:491
-msgid "Channel Settings"
-msgstr "Настройки канала"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:498
-msgid "Basic Settings"
-msgstr "Основные настройки"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:501
-msgid "Your Timezone:"
-msgstr "Часовой пояс:"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:502
-msgid "Default Post Location:"
-msgstr "Расположение по умолчанию:"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:502
-msgid "Geographical location to display on your posts"
-msgstr "Показывать географическое положение в ваших публикациях"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:503
-msgid "Use Browser Location:"
-msgstr "Определять расположение из браузера"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:505
-msgid "Adult Content"
-msgstr "Содержимое для взрослых"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:505
-msgid ""
-"This channel frequently or regularly publishes adult content. (Please tag "
-"any adult material and/or nudity with #NSFW)"
-msgstr "Этот канал часто или регулярно публикует содержимое для взрослых. Пожалуйста, помечайте любой такой материал тегом #NSFW"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:507
-msgid "Security and Privacy Settings"
-msgstr "Безопасность и настройки приватности"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:509
-msgid "Your permissions are already configured. Click to view/adjust"
-msgstr "Ваши разрешения уже настроены. Нажмите чтобы просмотреть или изменить"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:511
-msgid "Hide my online presence"
-msgstr "Скрывать моё присутствие онлайн"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:511
-msgid "Prevents displaying in your profile that you are online"
-msgstr "Предотвращает отображения статуса \"в сети\" в вашем профиле"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:513
-msgid "Simple Privacy Settings:"
-msgstr "Простые настройки безопасности:"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:514
-msgid ""
-"Very Public - <em>extremely permissive (should be used with caution)</em>"
-msgstr "Полностью открытый - <em>сверхлиберальный (должен использоваться с осторожностью)</em>"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:515
-msgid ""
-"Typical - <em>default public, privacy when desired (similar to social "
-"network permissions but with improved privacy)</em>"
-msgstr "Обычный - <em>открытый по умолчанию, приватность по желанию (как в социальных сетях, но с улучшенными настройками)</em>"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:516
-msgid "Private - <em>default private, never open or public</em>"
-msgstr "Частный - <em>частный по умочанию, не открытый и не публичный</em>"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:517
-msgid "Blocked - <em>default blocked to/from everybody</em>"
-msgstr "Закрытый - <em>заблокированный по умолчанию от / для всех</em>"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:519
-msgid "Allow others to tag your posts"
-msgstr "Разрешить другим отмечать ваши публикации"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:519
-msgid ""
-"Often used by the community to retro-actively flag inappropriate content"
-msgstr "Часто используется сообществом для маркировки неподобающего содержания"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:521
-msgid "Channel Permission Limits"
-msgstr "Ограничения разрешений канала"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:523
-msgid "Expire other channel content after this many days"
-msgstr "Храненить содержимое других каналов, дней"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:523
-msgid "0 or blank to use the website limit."
-msgstr "0 или пусто - использовать настройки сайта."
-
-#: ../../Zotlabs/Module/Settings/Channel.php:523
-#, php-format
-msgid "This website expires after %d days."
-msgstr "Срок хранения содержимого этого сайта истекает через %d дней"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:523
-msgid "This website does not expire imported content."
-msgstr "Срок хранения импортированного содержимого этого сайта не ограничен."
-
-#: ../../Zotlabs/Module/Settings/Channel.php:523
-msgid "The website limit takes precedence if lower than your limit."
-msgstr "Ограничение сайта имеет приоритет если ниже вашего значения."
-
-#: ../../Zotlabs/Module/Settings/Channel.php:524
-msgid "Maximum Friend Requests/Day:"
-msgstr "Запросов в друзья в день:"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:524
-msgid "May reduce spam activity"
-msgstr "Может ограничить спам активность"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:525
-msgid "Default Privacy Group"
-msgstr "Группа конфиденциальности по умолчанию"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:526
-#: ../../Zotlabs/Module/Mitem.php:168 ../../Zotlabs/Module/Mitem.php:247
-msgid "(click to open/close)"
-msgstr "(нажмите чтобы открыть/закрыть)"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:527
-msgid "Use my default audience setting for the type of object published"
-msgstr "Использовать настройки аудитории по умолчанию для типа опубликованного объекта"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:536
-msgid "Default permissions category"
-msgstr "Категория разрешений по умолчанию"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:542
-msgid "Maximum private messages per day from unknown people:"
-msgstr "Максимально количество сообщений от незнакомых людей, в день:"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:542
-msgid "Useful to reduce spamming"
-msgstr "Полезно для сокращения количества спама"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:545
-#: ../../Zotlabs/Lib/Enotify.php:68
-msgid "Notification Settings"
-msgstr "Настройки уведомлений"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:546
-msgid "By default post a status message when:"
-msgstr "По умолчанию публиковать новый статус при:"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:547
-msgid "accepting a friend request"
-msgstr "одобрении запроса в друзья"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:548
-msgid "joining a forum/community"
-msgstr "вступлении в сообщество / форум"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:549
-msgid "making an <em>interesting</em> profile change"
-msgstr "<em>интересном</em> изменении профиля"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:550
-msgid "Send a notification email when:"
-msgstr "Отправить уведомление по email когда:"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:551
-msgid "You receive a connection request"
-msgstr "вы получили новый запрос контакта"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:552
-msgid "Your connections are confirmed"
-msgstr "Ваш запрос контакта был одобрен"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:553
-msgid "Someone writes on your profile wall"
-msgstr "Кто-то написал на стене вашего профиля"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:554
-msgid "Someone writes a followup comment"
-msgstr "Кто-то пишет комментарий"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:555
-msgid "You receive a private message"
-msgstr "Вы получили личное сообщение"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:556
-msgid "You receive a friend suggestion"
-msgstr "Вы получили предложение друзей"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:557
-msgid "You are tagged in a post"
-msgstr "Вы были отмечены в публикации"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:558
-msgid "You are poked/prodded/etc. in a post"
-msgstr "Вас толкнули, подтолкнули и т.п. в публикации"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:560
-msgid "Someone likes your post/comment"
-msgstr "Кому-то нравится ваша публикация / комментарий"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:563
-msgid "Show visual notifications including:"
-msgstr "Показывать визуальные оповещения включая:"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:565
-msgid "Unseen stream activity"
-msgstr "Невидимая активность в потоке"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:566
-msgid "Unseen channel activity"
-msgstr "Невидимая активность в канале"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:567
-msgid "Unseen private messages"
-msgstr "Невидимые личные сообщения"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:567
-#: ../../Zotlabs/Module/Settings/Channel.php:572
-#: ../../Zotlabs/Module/Settings/Channel.php:573
-#: ../../Zotlabs/Module/Settings/Channel.php:574
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:343
-msgid "Recommended"
-msgstr "Рекомендовано"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:568
-msgid "Upcoming events"
-msgstr "Грядущие события"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:569
-msgid "Events today"
-msgstr "События сегодня"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:570
-msgid "Upcoming birthdays"
-msgstr "Грядущие дни рождения"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:570
-msgid "Not available in all themes"
-msgstr "Не доступно во всех темах"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:571
-msgid "System (personal) notifications"
-msgstr "Системные (личные) уведомления"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:572
-msgid "System info messages"
-msgstr "Сообщения с системной информацией"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:573
-msgid "System critical alerts"
-msgstr "Критические уведомления системы"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:574
-msgid "New connections"
-msgstr "Новые контакты"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:575
-msgid "System Registrations"
-msgstr "Системные регистрации"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:576
-msgid "Unseen shared files"
-msgstr "Невидимые общие файлы"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:577
-msgid "Unseen public stream activity"
-msgstr "Невидимая активность в публичном потоке"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:578
-msgid "Unseen likes and dislikes"
-msgstr "Невидимые лайки и дислайки"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:579
-msgid "Unseen forum posts"
-msgstr "Невидимые публикации на форуме"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:580
-msgid "Email notification hub (hostname)"
-msgstr "Центр уведомлений по email (имя хоста)"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:580
-#, php-format
-msgid ""
-"If your channel is mirrored to multiple hubs, set this to your preferred "
-"location. This will prevent duplicate email notifications. Example: %s"
-msgstr "Если ваш канал зеркалируется в нескольких местах, это ваше предпочтительное местоположение. Это должно предотвратить дублировать уведомлений по email. Например: %s"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:581
-msgid "Show new wall posts, private messages and connections under Notices"
-msgstr "Показать новые сообщения на стене, личные сообщения и контакты в \"Уведомлениях\""
-
-#: ../../Zotlabs/Module/Settings/Channel.php:583
-msgid "Notify me of events this many days in advance"
-msgstr "Уведомлять меня о событиях заранее, дней"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:583
-msgid "Must be greater than 0"
-msgstr "Должно быть больше 0"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:588
-msgid "Advanced Account/Page Type Settings"
-msgstr "Дополнительные настройки учётной записи / страницы"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:589
-msgid "Change the behaviour of this account for special situations"
-msgstr "Изменить поведение этого аккаунта в особых ситуациях"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:591
-msgid "Miscellaneous Settings"
-msgstr "Дополнительные настройки"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:592
-msgid "Default photo upload folder"
-msgstr "Каталог загрузки фотографий по умолчанию"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:592
-#: ../../Zotlabs/Module/Settings/Channel.php:593
-msgid "%Y - current year, %m - current month"
-msgstr "%Y - текущий год, %y - текущий месяц"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:593
-msgid "Default file upload folder"
-msgstr "Каталог загрузки файлов по умолчанию"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:594
-#: ../../Zotlabs/Module/Removeme.php:64
-msgid "Remove Channel"
-msgstr "Удаление канала"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:595
-msgid "Remove this channel."
-msgstr "Удалить этот канал."
-
-#: ../../Zotlabs/Module/Dirsearch.php:33
-msgid "This directory server requires an access token"
-msgstr "Для доступа к этому серверу каталогов требуется токен"
-
-#: ../../Zotlabs/Module/Editlayout.php:79 ../../Zotlabs/Module/Editblock.php:79
-#: ../../Zotlabs/Module/Editblock.php:95
-#: ../../Zotlabs/Module/Editwebpage.php:80 ../../Zotlabs/Module/Editpost.php:24
-#: ../../Zotlabs/Module/Card_edit.php:17 ../../Zotlabs/Module/Card_edit.php:33
-#: ../../Zotlabs/Module/Article_edit.php:17
-#: ../../Zotlabs/Module/Article_edit.php:33
-msgid "Item not found"
-msgstr "Элемент не найден"
-
-#: ../../Zotlabs/Module/Editlayout.php:128 ../../Zotlabs/Module/Layouts.php:129
-#: ../../Zotlabs/Module/Layouts.php:189
-msgid "Layout Name"
-msgstr "Название шаблона"
-
-#: ../../Zotlabs/Module/Editlayout.php:129 ../../Zotlabs/Module/Layouts.php:132
-msgid "Layout Description (Optional)"
-msgstr "Описание шаблона (необязательно)"
-
-#: ../../Zotlabs/Module/Editlayout.php:137
-msgid "Edit Layout"
-msgstr "Редактировать шаблон"
-
-#: ../../Zotlabs/Module/Apps.php:50 ../../Zotlabs/Widget/Appstore.php:14
-msgid "Available Apps"
-msgstr "Доступные приложения"
-
-#: ../../Zotlabs/Module/Apps.php:50
-msgid "Installed Apps"
-msgstr "Установленные приложения"
-
-#: ../../Zotlabs/Module/Apps.php:53
-msgid "Manage Apps"
-msgstr "Управление приложениями"
-
-#: ../../Zotlabs/Module/Apps.php:54
-msgid "Create Custom App"
-msgstr "Создать пользовательское приложение"
-
-#: ../../Zotlabs/Module/Filestorage.php:79
-msgid "Permission Denied."
-msgstr "Доступ запрещен."
-
-#: ../../Zotlabs/Module/Filestorage.php:112
-msgid "File not found."
-msgstr "Файл не найден."
-
-#: ../../Zotlabs/Module/Filestorage.php:165
-msgid "Edit file permissions"
-msgstr "Редактировать разрешения файла"
-
-#: ../../Zotlabs/Module/Filestorage.php:177
-msgid "Set/edit permissions"
-msgstr "Редактировать разрешения"
-
-#: ../../Zotlabs/Module/Filestorage.php:178
-msgid "Include all files and sub folders"
-msgstr "Включить все файлы и подкаталоги"
-
-#: ../../Zotlabs/Module/Filestorage.php:179
-msgid "Return to file list"
-msgstr "Вернутся к списку файлов"
-
-#: ../../Zotlabs/Module/Filestorage.php:181
-msgid "Copy/paste this code to attach file to a post"
-msgstr "Копировать / вставить этот код для прикрепления файла к публикации"
-
-#: ../../Zotlabs/Module/Filestorage.php:182
-msgid "Copy/paste this URL to link file from a web page"
-msgstr "Копировать / вставить эту URL для ссылки на файл со страницы"
-
-#: ../../Zotlabs/Module/Filestorage.php:184
-msgid "Share this file"
-msgstr "Поделиться этим файлом"
-
-#: ../../Zotlabs/Module/Filestorage.php:185
-msgid "Show URL to this file"
-msgstr "Показать URL этого файла"
-
-#: ../../Zotlabs/Module/Editblock.php:113 ../../Zotlabs/Module/Blocks.php:97
-#: ../../Zotlabs/Module/Blocks.php:155
-msgid "Block Name"
-msgstr "Название блока"
-
-#: ../../Zotlabs/Module/Editblock.php:138
-msgid "Edit Block"
-msgstr "Редактировать блок"
-
-#: ../../Zotlabs/Module/Service_limits.php:23
-msgid "No service class restrictions found."
-msgstr "Ограничений класса обслуживание не найдено."
-
-#: ../../Zotlabs/Module/Channel.php:116
-msgid "Insufficient permissions. Request redirected to profile page."
-msgstr "Недостаточно прав. Запрос перенаправлен на страницу профиля."
-
-#: ../../Zotlabs/Module/Uexport.php:61
-msgid "Channel Export App"
-msgstr "Приложение \"Экспорт канала\""
-
-#: ../../Zotlabs/Module/Uexport.php:62
-msgid "Export your channel"
-msgstr "Экспортировать ваш канал"
-
-#: ../../Zotlabs/Module/Uexport.php:72 ../../Zotlabs/Module/Uexport.php:73
-msgid "Export Channel"
-msgstr "Экспорт канала"
-
-#: ../../Zotlabs/Module/Uexport.php:74
-msgid ""
-"Export your basic channel information to a file. This acts as a backup of "
-"your connections, permissions, profile and basic data, which can be used to "
-"import your data to a new server hub, but does not contain your content."
-msgstr "Экспортировать основную информацию из канала в файл. Служит в качестве резервной копии ваших контактов, основных данных и профиля, однако не включает содержимое. Может быть использовано для импорта ваши данных на новый сервер."
-
-#: ../../Zotlabs/Module/Uexport.php:75
-msgid "Export Content"
-msgstr "Экспортировать содержимое"
-
-#: ../../Zotlabs/Module/Uexport.php:76
-msgid ""
-"Export your channel information and recent content to a JSON backup that can "
-"be restored or imported to another server hub. This backs up all of your "
-"connections, permissions, profile data and several months of posts. This "
-"file may be VERY large. Please be patient - it may take several minutes for "
-"this download to begin."
-msgstr "Экспортировать информацию из вашего канала и его содержимое в резервную копию в формате JSON которая может быть использована для восстановления или импорта на другом сервере. Сохраняет все ваши контакты, разрешения, данные профиля и публикации за несколько месяцев. Файл может иметь очень большой размер. Пожалуйста, будьте терпеливы и подождите несколько минут пока не начнётся загрузка."
-
-#: ../../Zotlabs/Module/Uexport.php:78
-msgid "Export your posts from a given year."
-msgstr "Экспортировать ваши публикации за данный год."
-
-#: ../../Zotlabs/Module/Uexport.php:80
-msgid ""
-"You may also export your posts and conversations for a particular year or "
-"month. Adjust the date in your browser location bar to select other dates. "
-"If the export fails (possibly due to memory exhaustion on your server hub), "
-"please try again selecting a more limited date range."
-msgstr "Вы также можете экспортировать ваши публикации и беседы за определённый месяц или год. Выберите дату в панели местоположения в браузере. Если экспорт будет неудачным (это возможно, например, из-за исчерпания памяти на сервере), повторите попытку, выбрав меньший диапазон дат."
-
-#: ../../Zotlabs/Module/Uexport.php:81
-#, php-format
-msgid ""
-"To select all posts for a given year, such as this year, visit <a href=\"%1$s"
-"\">%2$s</a>"
-msgstr "Для выбора всех публикаций заданного года, например текущего, посетите <a href=\"%1$s\">%2$s</a>"
-
-#: ../../Zotlabs/Module/Uexport.php:82
-#, php-format
-msgid ""
-"To select all posts for a given month, such as January of this year, visit "
-"<a href=\"%1$s\">%2$s</a>"
-msgstr "Для выбора всех публикаций заданного месяца, например за январь сего года, посетите <a href=\"%1$s\">%2$s</a>"
-
-#: ../../Zotlabs/Module/Uexport.php:83
-#, php-format
-msgid ""
-"These content files may be imported or restored by visiting <a href=\"%1$s\">"
-"%2$s</a> on any site containing your channel. For best results please import "
-"or restore these in date order (oldest first)."
-msgstr "Данные файлы с содержимым могут быть импортированы и восстановлены на любом содержащем ваш канал сайте. Посетите <a href=\"%1$s\">%2$s</a>. Для лучших результатов пожалуйста производите импорт и восстановление в порядке датировки (старые сначала)."
-
-#: ../../Zotlabs/Module/Chatsvc.php:131
-msgid "Away"
-msgstr "Нет на месте"
-
-#: ../../Zotlabs/Module/Chatsvc.php:136
-msgid "Online"
-msgstr "В сети"
-
-#: ../../Zotlabs/Module/Like.php:54
-msgid "Like/Dislike"
-msgstr "Нравится / не нравится"
-
-#: ../../Zotlabs/Module/Like.php:59
-msgid "This action is restricted to members."
-msgstr "Это действие доступно только участникам."
-
-#: ../../Zotlabs/Module/Like.php:60
-msgid ""
-"Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a href="
-"\"register\">register as a new $Projectname member</a> to continue."
-msgstr "Пожалуйста, для продолжения <a href=\"rmagic\"> войдите с вашим $Projectname ID</a> или <a href=\"register\">зарегистрируйтесь как новый участник $Projectname</a>."
-
-#: ../../Zotlabs/Module/Like.php:109 ../../Zotlabs/Module/Like.php:135
-#: ../../Zotlabs/Module/Like.php:173
-msgid "Invalid request."
-msgstr "Неверный запрос."
-
-#: ../../Zotlabs/Module/Like.php:150
-msgid "thing"
-msgstr "предмет"
-
-#: ../../Zotlabs/Module/Like.php:196
-msgid "Channel unavailable."
-msgstr "Канал недоступен."
-
-#: ../../Zotlabs/Module/Like.php:244
-msgid "Previous action reversed."
-msgstr "Предыдущее действие отменено."
-
-#: ../../Zotlabs/Module/Like.php:442
-#, php-format
-msgid "%1$s agrees with %2$s's %3$s"
-msgstr "%1$s согласен с %2$s %3$s"
-
-#: ../../Zotlabs/Module/Like.php:444
-#, 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
-#, 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
-#, 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
-#, 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
-#, php-format
-msgid "%1$s may attend %2$s's %3$s"
-msgstr "%1$s может посетить %2$s%3$s"
-
-#: ../../Zotlabs/Module/Like.php:564
-msgid "Action completed."
-msgstr "Действие завершено."
-
-#: ../../Zotlabs/Module/Like.php:565
-msgid "Thank you."
-msgstr "Спасибо."
-
-#: ../../Zotlabs/Module/Bookmarks.php:62
-msgid "Bookmark added"
-msgstr "Закладка добавлена"
-
-#: ../../Zotlabs/Module/Bookmarks.php:78
-msgid "Bookmarks App"
-msgstr "Приложение \"Закладки\""
-
-#: ../../Zotlabs/Module/Bookmarks.php:79
-msgid "Bookmark links from posts and manage them"
-msgstr "Поместить ссылки из публикации в закладки и управлять ими"
-
-#: ../../Zotlabs/Module/Bookmarks.php:92
-msgid "My Bookmarks"
-msgstr "Мои закладки"
-
-#: ../../Zotlabs/Module/Bookmarks.php:103
-msgid "My Connections Bookmarks"
-msgstr "Закладки моих контактов"
-
-#: ../../Zotlabs/Module/Attach.php:13
-msgid "Item not available."
-msgstr "Элемент недоступен."
-
-#: ../../Zotlabs/Module/Probe.php:18
-msgid "Remote Diagnostics App"
-msgstr "Приложение \"Удалённая диагностика\""
-
-#: ../../Zotlabs/Module/Probe.php:19
-msgid "Perform diagnostics on remote channels"
-msgstr "Производит диагностику удалённых каналов"
-
-#: ../../Zotlabs/Module/Viewsrc.php:43
-msgid "item"
-msgstr "пункт"
-
-#: ../../Zotlabs/Module/Cal.php:70
-msgid "Permissions denied."
-msgstr "Доступ запрещен."
-
#: ../../Zotlabs/Module/Removeme.php:35
msgid ""
"Channel removals are not allowed within 48 hours of changing the account "
@@ -7611,6 +1812,12 @@ msgid "Remove This Channel"
msgstr "Удалить этот канал"
#: ../../Zotlabs/Module/Removeme.php:61
+#: ../../Zotlabs/Module/Removeaccount.php:58
+#: ../../Zotlabs/Module/Changeaddr.php:78
+msgid "WARNING: "
+msgstr "ПРЕДУПРЕЖДЕНИЕ: "
+
+#: ../../Zotlabs/Module/Removeme.php:61
msgid "This channel will be completely removed from the network. "
msgstr "Этот канал будет полностью удалён из сети. "
@@ -7619,6 +1826,12 @@ msgstr "Этот канал будет полностью удалён из се
msgid "This action is permanent and can not be undone!"
msgstr "Это действие необратимо и не может быть отменено!"
+#: ../../Zotlabs/Module/Removeme.php:62
+#: ../../Zotlabs/Module/Removeaccount.php:59
+#: ../../Zotlabs/Module/Changeaddr.php:79
+msgid "Please enter your password for verification:"
+msgstr "Пожалуйста, введите ваш пароль для проверки:"
+
#: ../../Zotlabs/Module/Removeme.php:63
msgid "Remove this channel and all its clones from the network"
msgstr "Удалить этот канал и все его клоны из сети"
@@ -7629,162 +1842,36 @@ msgid ""
"removed from the network"
msgstr "По умолчанию только представление канала расположенное на данном хабе будет удалено из сети"
-#: ../../Zotlabs/Module/Menu.php:67
-msgid "Unable to update menu."
-msgstr "Невозможно обновить меню."
-
-#: ../../Zotlabs/Module/Menu.php:78
-msgid "Unable to create menu."
-msgstr "Невозможно создать меню."
-
-#: ../../Zotlabs/Module/Menu.php:160 ../../Zotlabs/Module/Menu.php:173
-msgid "Menu Name"
-msgstr "Название меню"
-
-#: ../../Zotlabs/Module/Menu.php:160
-msgid "Unique name (not visible on webpage) - required"
-msgstr "Уникальное название (не видимо на странице) - требуется"
-
-#: ../../Zotlabs/Module/Menu.php:161 ../../Zotlabs/Module/Menu.php:174
-msgid "Menu Title"
-msgstr "Заголовок меню"
-
-#: ../../Zotlabs/Module/Menu.php:161
-msgid "Visible on webpage - leave empty for no title"
-msgstr "Видимость на странице - оставьте пустым если не хотите иметь заголовок"
-
-#: ../../Zotlabs/Module/Menu.php:162
-msgid "Allow Bookmarks"
-msgstr "Разрешить закладки"
-
-#: ../../Zotlabs/Module/Menu.php:162 ../../Zotlabs/Module/Menu.php:221
-msgid "Menu may be used to store saved bookmarks"
-msgstr "Меню может использоваться, чтобы сохранить закладки"
-
-#: ../../Zotlabs/Module/Menu.php:163 ../../Zotlabs/Module/Menu.php:224
-msgid "Submit and proceed"
-msgstr "Отправить и обработать"
-
-#: ../../Zotlabs/Module/Menu.php:177 ../../Zotlabs/Module/Webpages.php:266
-#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Layouts.php:191
-msgid "Created"
-msgstr "Создано"
-
-#: ../../Zotlabs/Module/Menu.php:178 ../../Zotlabs/Module/Webpages.php:267
-#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Layouts.php:192
-msgid "Edited"
-msgstr "Отредактировано"
-
-#: ../../Zotlabs/Module/Menu.php:179 ../../Zotlabs/Module/Notifications.php:50
-#: ../../Zotlabs/Module/Connections.php:83
-#: ../../Zotlabs/Module/Connections.php:92
-msgid "New"
-msgstr "Новые"
-
-#: ../../Zotlabs/Module/Menu.php:180
-msgid "Bookmarks allowed"
-msgstr "Закладки разрешены"
-
-#: ../../Zotlabs/Module/Menu.php:182
-msgid "Delete this menu"
-msgstr "Удалить это меню"
-
-#: ../../Zotlabs/Module/Menu.php:183 ../../Zotlabs/Module/Menu.php:218
-msgid "Edit menu contents"
-msgstr "Редактировать содержание меню"
-
-#: ../../Zotlabs/Module/Menu.php:184
-msgid "Edit this menu"
-msgstr "Редактировать это меню"
-
-#: ../../Zotlabs/Module/Menu.php:200
-msgid "Menu could not be deleted."
-msgstr "Меню не может быть удалено."
-
-#: ../../Zotlabs/Module/Menu.php:208 ../../Zotlabs/Module/Mitem.php:31
-msgid "Menu not found."
-msgstr "Меню не найдено"
-
-#: ../../Zotlabs/Module/Menu.php:213
-msgid "Edit Menu"
-msgstr "Редактировать меню"
-
-#: ../../Zotlabs/Module/Menu.php:217
-msgid "Add or remove entries to this menu"
-msgstr "Добавить или удалить пункты этого меню"
-
-#: ../../Zotlabs/Module/Menu.php:219
-msgid "Menu name"
-msgstr "Название меню"
-
-#: ../../Zotlabs/Module/Menu.php:219
-msgid "Must be unique, only seen by you"
-msgstr "Должно быть уникальным (видно только вам)"
-
-#: ../../Zotlabs/Module/Menu.php:220
-msgid "Menu title"
-msgstr "Заголовок меню"
-
-#: ../../Zotlabs/Module/Menu.php:220
-msgid "Menu title as seen by others"
-msgstr "Видимый другими заголовок меню"
-
-#: ../../Zotlabs/Module/Menu.php:221
-msgid "Allow bookmarks"
-msgstr "Разрешить закладки"
-
-#: ../../Zotlabs/Module/Ratings.php:70
-msgid "No ratings"
-msgstr "Оценок нет"
-
-#: ../../Zotlabs/Module/Ratings.php:98
-msgid "Rating: "
-msgstr "Оценкa:"
-
-#: ../../Zotlabs/Module/Ratings.php:99
-msgid "Website: "
-msgstr "Веб-сайт:"
-
-#: ../../Zotlabs/Module/Ratings.php:101
-msgid "Description: "
-msgstr "Описание:"
-
-#: ../../Zotlabs/Module/Pubsites.php:24 ../../Zotlabs/Widget/Pubsites.php:12
-msgid "Public Hubs"
-msgstr "Публичные хабы"
-
-#: ../../Zotlabs/Module/Pubsites.php:27
-msgid ""
-"The listed hubs allow public registration for the $Projectname network. All "
-"hubs in the network are interlinked so membership on any of them conveys "
-"membership in the network as a whole. Some hubs may require subscription or "
-"provide tiered service plans. The hub itself <strong>may</strong> provide "
-"additional details."
-msgstr "Указанные хабы разрешают публичную регистрацию для сети $Projectname. Все хабы в сети взаимосвязаны, поэтому членство в любом из них передает членство во всю сеть. Некоторым хабам может потребоваться подписка или предоставление многоуровневых планов обслуживания. Сам хаб <strong>может</strong> предоставить дополнительные сведения."
+#: ../../Zotlabs/Module/Removeme.php:64
+#: ../../Zotlabs/Module/Settings/Channel.php:594
+msgid "Remove Channel"
+msgstr "Удаление канала"
-#: ../../Zotlabs/Module/Pubsites.php:33
-msgid "Hub URL"
-msgstr "URL сервера"
+#: ../../Zotlabs/Module/Sharedwithme.php:103
+msgid "Files: shared with me"
+msgstr "Файлы: поделились со мной"
-#: ../../Zotlabs/Module/Pubsites.php:33
-msgid "Access Type"
-msgstr "Тип доступа"
+#: ../../Zotlabs/Module/Sharedwithme.php:105
+msgid "NEW"
+msgstr "НОВОЕ"
-#: ../../Zotlabs/Module/Pubsites.php:33
-msgid "Registration Policy"
-msgstr "Политика регистрации"
+#: ../../Zotlabs/Module/Sharedwithme.php:106
+#: ../../Zotlabs/Storage/Browser.php:287 ../../include/text.php:1496
+msgid "Size"
+msgstr "Размер"
-#: ../../Zotlabs/Module/Pubsites.php:33
-msgid "Stats"
-msgstr "Статистика"
+#: ../../Zotlabs/Module/Sharedwithme.php:107
+#: ../../Zotlabs/Storage/Browser.php:288
+msgid "Last Modified"
+msgstr "Последнее изменение"
-#: ../../Zotlabs/Module/Pubsites.php:33
-msgid "Software"
-msgstr "Программное обеспечение"
+#: ../../Zotlabs/Module/Sharedwithme.php:108
+msgid "Remove all files"
+msgstr "Удалить все файлы"
-#: ../../Zotlabs/Module/Pubsites.php:49
-msgid "Rate"
-msgstr "Оценка"
+#: ../../Zotlabs/Module/Sharedwithme.php:109
+msgid "Remove this file"
+msgstr "Удалить этот файл"
#: ../../Zotlabs/Module/Setup.php:170
msgid "$Projectname Server - Setup"
@@ -7815,7 +1902,7 @@ msgid ""
msgstr "Вам может понадобится импортировать файл \"install/schema_xxx.sql\" вручную используя клиент базы данных."
#: ../../Zotlabs/Module/Setup.php:198 ../../Zotlabs/Module/Setup.php:262
-#: ../../Zotlabs/Module/Setup.php:756
+#: ../../Zotlabs/Module/Setup.php:761
msgid "Please see the file \"install/INSTALL.txt\"."
msgstr "Пожалуйста, обратитесь к файлу \"install/INSTALL.txt\"."
@@ -7959,391 +2046,544 @@ msgstr "Это необходимо для функционирования до
msgid "PHP register_argc_argv"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:446
+#: ../../Zotlabs/Module/Setup.php:448
+msgid ""
+"This is not sufficient to upload larger images or files. You should be able "
+"to upload at least 4 MB at once."
+msgstr "Этого недостаточно для загрузки больших изображений или файлов. Вы должны иметь возможность загрузить как минимум 4 Мб за раз."
+
+#: ../../Zotlabs/Module/Setup.php:450
#, php-format
msgid ""
"Your max allowed total upload size is set to %s. Maximum size of one file to "
"upload is set to %s. You are allowed to upload up to %d files at once."
msgstr "Максимально разрешённый общий размер загрузок установлен в %s. Максимальный размер одной загрузки установлен в %s. Вам разрешено загружать до %d файлов за один приём."
-#: ../../Zotlabs/Module/Setup.php:451
+#: ../../Zotlabs/Module/Setup.php:456
msgid "You can adjust these settings in the server php.ini file."
msgstr "Вы можете изменить эти настройки в файле php.ini на сервере."
-#: ../../Zotlabs/Module/Setup.php:453
+#: ../../Zotlabs/Module/Setup.php:458
msgid "PHP upload limits"
msgstr "Максимальный размер загрузки в PHP"
-#: ../../Zotlabs/Module/Setup.php:476
+#: ../../Zotlabs/Module/Setup.php:481
msgid ""
"Error: the \"openssl_pkey_new\" function on this system is not able to "
"generate encryption keys"
msgstr "Ошибка: функция \"openssl_pkey_new\" не может сгенерировать ключи шифрования"
-#: ../../Zotlabs/Module/Setup.php:477
+#: ../../Zotlabs/Module/Setup.php:482
msgid ""
"If running under Windows, please see \"http://www.php.net/manual/en/openssl."
"installation.php\"."
msgstr "Если работаете под Windows, см. \"http://www.php.net/manual/en/openssl.installation.php\"."
-#: ../../Zotlabs/Module/Setup.php:480
+#: ../../Zotlabs/Module/Setup.php:485
msgid "Generate encryption keys"
msgstr "Генерация ключей шифрования"
-#: ../../Zotlabs/Module/Setup.php:497
+#: ../../Zotlabs/Module/Setup.php:502
msgid "libCurl PHP module"
msgstr "модуль PHP libcURL"
-#: ../../Zotlabs/Module/Setup.php:498
+#: ../../Zotlabs/Module/Setup.php:503
msgid "GD graphics PHP module"
msgstr "модуль графики PHP GD"
-#: ../../Zotlabs/Module/Setup.php:499
+#: ../../Zotlabs/Module/Setup.php:504
msgid "OpenSSL PHP module"
msgstr "модуль PHP OpenSSL"
-#: ../../Zotlabs/Module/Setup.php:500
+#: ../../Zotlabs/Module/Setup.php:505
msgid "PDO database PHP module"
msgstr "модуль баз данных PHP PDO"
-#: ../../Zotlabs/Module/Setup.php:501
+#: ../../Zotlabs/Module/Setup.php:506
msgid "mb_string PHP module"
msgstr "модуль PHP mb_string"
-#: ../../Zotlabs/Module/Setup.php:502
+#: ../../Zotlabs/Module/Setup.php:507
msgid "xml PHP module"
msgstr "модуль PHP xml"
-#: ../../Zotlabs/Module/Setup.php:503
+#: ../../Zotlabs/Module/Setup.php:508
msgid "zip PHP module"
msgstr "модуль PHP zip"
-#: ../../Zotlabs/Module/Setup.php:507 ../../Zotlabs/Module/Setup.php:509
+#: ../../Zotlabs/Module/Setup.php:512 ../../Zotlabs/Module/Setup.php:514
msgid "Apache mod_rewrite module"
msgstr "модуль Apache mod_rewrite"
-#: ../../Zotlabs/Module/Setup.php:507
+#: ../../Zotlabs/Module/Setup.php:512
msgid ""
"Error: Apache webserver mod-rewrite module is required but not installed."
msgstr "Ошибка: требуемый модуль mod_rewrite веб-сервера Apache не установлен."
-#: ../../Zotlabs/Module/Setup.php:513 ../../Zotlabs/Module/Setup.php:516
+#: ../../Zotlabs/Module/Setup.php:518 ../../Zotlabs/Module/Setup.php:521
msgid "exec"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:513
+#: ../../Zotlabs/Module/Setup.php:518
msgid ""
"Error: exec is required but is either not installed or has been disabled in "
"php.ini"
msgstr "Ошибка: exec требуется, однако не установлен или был отключён в php.ini"
-#: ../../Zotlabs/Module/Setup.php:519 ../../Zotlabs/Module/Setup.php:522
+#: ../../Zotlabs/Module/Setup.php:524 ../../Zotlabs/Module/Setup.php:527
msgid "shell_exec"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:519
+#: ../../Zotlabs/Module/Setup.php:524
msgid ""
"Error: shell_exec is required but is either not installed or has been "
"disabled in php.ini"
msgstr "Ошибка: shell_exec требуется, однако не установлен или был отключён в php.ini"
-#: ../../Zotlabs/Module/Setup.php:527
+#: ../../Zotlabs/Module/Setup.php:532
msgid "Error: libCURL PHP module required but not installed."
msgstr "Ошибка: модуль PHP libсURL требуется, однако не установлен"
-#: ../../Zotlabs/Module/Setup.php:531
+#: ../../Zotlabs/Module/Setup.php:536
msgid ""
"Error: GD PHP module with JPEG support or ImageMagick graphics library "
"required but not installed."
msgstr "Ошибка: модуль PHP GD с поддержкой JPEG или графическая библиотека ImageMagick требуется, однако не установлена"
-#: ../../Zotlabs/Module/Setup.php:535
+#: ../../Zotlabs/Module/Setup.php:540
msgid "Error: openssl PHP module required but not installed."
msgstr "Ошибка: модуль PHP OpenSSL требуется, однако не установлен"
-#: ../../Zotlabs/Module/Setup.php:541
+#: ../../Zotlabs/Module/Setup.php:546
msgid ""
"Error: PDO database PHP module missing a driver for either mysql or pgsql."
msgstr "Ошибка: отсутствует драйвер MySQL или PgSQL в модуле баз данных PHP PDO"
-#: ../../Zotlabs/Module/Setup.php:546
+#: ../../Zotlabs/Module/Setup.php:551
msgid "Error: PDO database PHP module required but not installed."
msgstr "Ошибка: модуль баз данных PHP PDO требуется, однако не установлен"
-#: ../../Zotlabs/Module/Setup.php:550
+#: ../../Zotlabs/Module/Setup.php:555
msgid "Error: mb_string PHP module required but not installed."
msgstr "Ошибка: модуль PHP mb_string требуется, однако не установлен"
-#: ../../Zotlabs/Module/Setup.php:554
+#: ../../Zotlabs/Module/Setup.php:559
msgid "Error: xml PHP module required for DAV but not installed."
msgstr "Ошибка: модуль PHP xml требуется для DAV, однако не установлен"
-#: ../../Zotlabs/Module/Setup.php:558
+#: ../../Zotlabs/Module/Setup.php:563
msgid "Error: zip PHP module required but not installed."
msgstr "Ошибка: модуль PHP zip требуется, однако не установлен"
-#: ../../Zotlabs/Module/Setup.php:577 ../../Zotlabs/Module/Setup.php:586
+#: ../../Zotlabs/Module/Setup.php:582 ../../Zotlabs/Module/Setup.php:591
msgid ".htconfig.php is writable"
msgstr ".htconfig.php доступен для записи"
-#: ../../Zotlabs/Module/Setup.php:582
+#: ../../Zotlabs/Module/Setup.php:587
msgid ""
"The web installer needs to be able to create a file called \".htconfig.php\" "
"in the top folder of your web server and it is unable to do so."
msgstr "Инсталлятор требует возможности создать файл с именем \".htconfig.php\" в корневом каталоге вашего веб-сервера но не может этого сделать."
-#: ../../Zotlabs/Module/Setup.php:583
+#: ../../Zotlabs/Module/Setup.php:588
msgid ""
"This is most often a permission setting, as the web server may not be able "
"to write files in your folder - even if you can."
msgstr "В большинстве случаев это проблема прав доступа. Веб-сервер может не иметь возможности записывать файлы в этот каталог даже если вы можете это делать."
-#: ../../Zotlabs/Module/Setup.php:584
+#: ../../Zotlabs/Module/Setup.php:589
msgid "Please see install/INSTALL.txt for additional information."
msgstr "Пожалуйста, ознакомьтесь с install/INSTALL.txt для дополнительных сведений."
-#: ../../Zotlabs/Module/Setup.php:600
+#: ../../Zotlabs/Module/Setup.php:605
msgid ""
"This software uses the Smarty3 template engine to render its web views. "
"Smarty3 compiles templates to PHP to speed up rendering."
msgstr "Это программное обеспечение использует шаблонизатор Smarty3 для отображения своих веб-страниц. Smarty3 компилирует шаблоны для PHP для ускорения рендеринга."
-#: ../../Zotlabs/Module/Setup.php:601
+#: ../../Zotlabs/Module/Setup.php:606
#, php-format
msgid ""
"In order to store these compiled templates, the web server needs to have "
"write access to the directory %s under the top level web folder."
msgstr "Для хранения этих скомпилированных шаблонов веб-сервер должен иметь доступ на запись к каталогу %s в каталоге верхнего уровня."
-#: ../../Zotlabs/Module/Setup.php:602 ../../Zotlabs/Module/Setup.php:623
+#: ../../Zotlabs/Module/Setup.php:607 ../../Zotlabs/Module/Setup.php:628
msgid ""
"Please ensure that the user that your web server runs as (e.g. www-data) has "
"write access to this folder."
msgstr "Убедитесь, что пользователь от имени которого работает ваш веб-сервер (например, www-data), имеет доступ на запись в этот каталог."
-#: ../../Zotlabs/Module/Setup.php:603
+#: ../../Zotlabs/Module/Setup.php:608
#, php-format
msgid ""
"Note: as a security measure, you should give the web server write access to "
"%s only--not the template files (.tpl) that it contains."
msgstr "Примечание. В качестве меры безопасности вы должны предоставить доступ веб-серверу для записи только к %s но не к содержащимися в нём файлами шаблонов (.tpl)."
-#: ../../Zotlabs/Module/Setup.php:606
+#: ../../Zotlabs/Module/Setup.php:611
#, php-format
msgid "%s is writable"
msgstr "%s доступен для записи"
-#: ../../Zotlabs/Module/Setup.php:622
+#: ../../Zotlabs/Module/Setup.php:627
msgid ""
"This software uses the store directory to save uploaded files. The web "
"server needs to have write access to the store directory under the top level "
"web folder"
msgstr "Эта программа использует каталог хранения для загруженных файлов. Для веб-сервера требуется доступ на запись начиная с верхнего уровня каталога хранения."
-#: ../../Zotlabs/Module/Setup.php:626
+#: ../../Zotlabs/Module/Setup.php:631
msgid "store is writable"
msgstr "хранилище доступно для записи"
-#: ../../Zotlabs/Module/Setup.php:658
+#: ../../Zotlabs/Module/Setup.php:663
msgid ""
"SSL certificate cannot be validated. Fix certificate or disable https access "
"to this site."
-msgstr ""
+msgstr "SSL certificate cannot be validated. Замените его или отключите https доступ к этому сайту."
-#: ../../Zotlabs/Module/Setup.php:659
+#: ../../Zotlabs/Module/Setup.php:664
msgid ""
"If you have https access to your website or allow connections to TCP port "
"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
"NOT use self-signed certificates!"
-msgstr ""
+msgstr "Если у вас есть https-доступ к вашему сайту или разрешено подключение к TCP-порту 443 (порт https), вы ДОЛЖНЫ использовать сертификат, действительный для браузера. Вы НЕ ДОЛЖНЫ использовать самоподписанные сертификаты!"
-#: ../../Zotlabs/Module/Setup.php:660
+#: ../../Zotlabs/Module/Setup.php:665
msgid ""
"This restriction is incorporated because public posts from you may for "
"example contain references to images on your own hub."
msgstr "Эти ограничения приняты поскольку ваши общедоступные публикации могут, например, содержать ссылки на изображения на вашем собственном хабе."
-#: ../../Zotlabs/Module/Setup.php:661
+#: ../../Zotlabs/Module/Setup.php:666
msgid ""
"If your certificate is not recognized, members of other sites (who may "
"themselves have valid certificates) will get a warning message on their own "
"site complaining about security issues."
-msgstr ""
+msgstr "Если ваш сертификат не признан, пользователи других сайтов (которые могут сами иметь действительные сертификаты) получат предупреждающее сообщение о проблемах с безопасностью."
-#: ../../Zotlabs/Module/Setup.php:662
+#: ../../Zotlabs/Module/Setup.php:667
msgid ""
"This can cause usability issues elsewhere (not just on your own site) so we "
"must insist on this requirement."
-msgstr ""
+msgstr "Это может привести к проблемам удобства использования из других мест (не только на вашем собственном сайте), поэтому мы настаиваем на этом требовании."
-#: ../../Zotlabs/Module/Setup.php:663
+#: ../../Zotlabs/Module/Setup.php:668
msgid ""
"Providers are available that issue free certificates which are browser-valid."
-msgstr ""
+msgstr "Доступны поставщики, которые выдают действительные для браузера бесплатные сертификаты."
-#: ../../Zotlabs/Module/Setup.php:665
+#: ../../Zotlabs/Module/Setup.php:670
msgid ""
"If you are confident that the certificate is valid and signed by a trusted "
"authority, check to see if you have failed to install an intermediate cert. "
"These are not normally required by browsers, but are required for server-to-"
"server communications."
-msgstr ""
+msgstr "Если вы уверены, что сертификат действителен и подписан доверенным органом, проверьте, установлен ли промежуточные сертификаты. Обычно они не требуются браузерами, но бывают необходимы для связи между серверами."
-#: ../../Zotlabs/Module/Setup.php:667
+#: ../../Zotlabs/Module/Setup.php:672
msgid "SSL certificate validation"
-msgstr ""
+msgstr "Проверка SSL сертификата"
-#: ../../Zotlabs/Module/Setup.php:673
+#: ../../Zotlabs/Module/Setup.php:678
msgid ""
"Url rewrite in .htaccess is not working. Check your server configuration."
"Test: "
-msgstr ""
+msgstr "Перезапись URL в .htaccess не работает. Проверьте настройки вашего сервера."
-#: ../../Zotlabs/Module/Setup.php:676
+#: ../../Zotlabs/Module/Setup.php:681
msgid "Url rewrite is working"
msgstr "Перезапись URL работает"
-#: ../../Zotlabs/Module/Setup.php:690
+#: ../../Zotlabs/Module/Setup.php:695
msgid ""
"The database configuration file \".htconfig.php\" could not be written. "
"Please use the enclosed text to create a configuration file in your web "
"server root."
-msgstr ""
+msgstr "Файл конфигурации базы данных \".htconfig.php\" не может быть записан. Используйте прилагаемый текст для создания файла конфигурации в корневом каталоге веб-сервера."
-#: ../../Zotlabs/Module/Setup.php:714
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:401
+#: ../../Zotlabs/Module/Setup.php:719 ../../addon/rendezvous/rendezvous.php:401
msgid "Errors encountered creating database tables."
msgstr "При создании базы данных возникли ошибки."
-#: ../../Zotlabs/Module/Setup.php:754
+#: ../../Zotlabs/Module/Setup.php:759
msgid "<h1>What next?</h1>"
msgstr "<h1>Что дальше? </h1>"
-#: ../../Zotlabs/Module/Setup.php:755
+#: ../../Zotlabs/Module/Setup.php:760
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
msgstr "Вам понадобится [вручную] настроить запланированную задачу для опрашивателя."
-#: ../../Zotlabs/Module/Mitem.php:63
-msgid "Unable to create element."
-msgstr "Невозможно создать элемент."
+#: ../../Zotlabs/Module/Connect.php:73 ../../Zotlabs/Module/Connect.php:135
+msgid "Continue"
+msgstr "Продолжить"
-#: ../../Zotlabs/Module/Mitem.php:87
-msgid "Unable to update menu element."
-msgstr "Невозможно обновить элемент меню."
+#: ../../Zotlabs/Module/Connect.php:104
+msgid "Premium Channel App"
+msgstr "Приложение \"Премиальный канал\""
-#: ../../Zotlabs/Module/Mitem.php:103
-msgid "Unable to add menu element."
-msgstr "Невозможно добавить элемент меню."
+#: ../../Zotlabs/Module/Connect.php:105
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
+msgstr "Позволяет установить ограничения и условия для подключающихся к вашему каналу"
-#: ../../Zotlabs/Module/Mitem.php:167 ../../Zotlabs/Module/Mitem.php:246
-msgid "Menu Item Permissions"
-msgstr "Разрешения на пункт меню"
+#: ../../Zotlabs/Module/Connect.php:116
+msgid "Premium Channel Setup"
+msgstr "Установка премиального канала"
-#: ../../Zotlabs/Module/Mitem.php:174 ../../Zotlabs/Module/Mitem.php:191
-msgid "Link Name"
-msgstr "Имя ссылки"
+#: ../../Zotlabs/Module/Connect.php:118
+msgid "Enable premium channel connection restrictions"
+msgstr "Включить ограничения для премиального канала"
-#: ../../Zotlabs/Module/Mitem.php:175 ../../Zotlabs/Module/Mitem.php:255
-msgid "Link or Submenu Target"
-msgstr "Ссылка или цель подменю"
+#: ../../Zotlabs/Module/Connect.php:119
+msgid ""
+"Please enter your restrictions or conditions, such as paypal receipt, usage "
+"guidelines, etc."
+msgstr "Пожалуйста введите ваши ограничения или условия, такие, как оплата PayPal, правила использования и т.п."
-#: ../../Zotlabs/Module/Mitem.php:175
-msgid "Enter URL of the link or select a menu name to create a submenu"
-msgstr "Введите URL ссылки или выберите имя меню для создания подменю"
+#: ../../Zotlabs/Module/Connect.php:121 ../../Zotlabs/Module/Connect.php:141
+msgid ""
+"This channel may require additional steps or acknowledgement of the "
+"following conditions prior to connecting:"
+msgstr "Этот канал до подключения может требовать дополнительных шагов или подтверждений следующих условий:"
-#: ../../Zotlabs/Module/Mitem.php:176 ../../Zotlabs/Module/Mitem.php:256
-msgid "Use magic-auth if available"
-msgstr "Использовать magic-auth если возможно"
+#: ../../Zotlabs/Module/Connect.php:122
+msgid ""
+"Potential connections will then see the following text before proceeding:"
+msgstr "Потенциальные соединения будут видеть следующий предварительный текст:"
-#: ../../Zotlabs/Module/Mitem.php:177 ../../Zotlabs/Module/Mitem.php:257
-msgid "Open link in new window"
-msgstr "Открыть ссылку в новом окне"
+#: ../../Zotlabs/Module/Connect.php:123 ../../Zotlabs/Module/Connect.php:144
+msgid ""
+"By continuing, I certify that I have complied with any instructions provided "
+"on this page."
+msgstr "Продолжая, я подтверждаю что я выполнил все условия представленные на данной странице."
-#: ../../Zotlabs/Module/Mitem.php:178 ../../Zotlabs/Module/Mitem.php:258
-msgid "Order in list"
-msgstr "Порядок в списке"
+#: ../../Zotlabs/Module/Connect.php:132
+msgid "(No specific instructions have been provided by the channel owner.)"
+msgstr "(Владельцем канала не было представлено никаких специальных инструкций.)"
-#: ../../Zotlabs/Module/Mitem.php:178 ../../Zotlabs/Module/Mitem.php:258
-msgid "Higher numbers will sink to bottom of listing"
-msgstr "Большие значения в конце списка"
+#: ../../Zotlabs/Module/Connect.php:140
+msgid "Restricted or Premium Channel"
+msgstr "Ограниченный или премиальный канал"
-#: ../../Zotlabs/Module/Mitem.php:179
-msgid "Submit and finish"
-msgstr "Отправить и завершить"
+#: ../../Zotlabs/Module/Admin/Queue.php:35
+msgid "Queue Statistics"
+msgstr "Статистика очереди"
-#: ../../Zotlabs/Module/Mitem.php:180
-msgid "Submit and continue"
-msgstr "Отправить и продолжить"
+#: ../../Zotlabs/Module/Admin/Queue.php:36
+msgid "Total Entries"
+msgstr "Всего записей"
-#: ../../Zotlabs/Module/Mitem.php:189
-msgid "Menu:"
-msgstr "Меню:"
+#: ../../Zotlabs/Module/Admin/Queue.php:37
+msgid "Priority"
+msgstr "Приоритет"
-#: ../../Zotlabs/Module/Mitem.php:192
-msgid "Link Target"
-msgstr "Цель ссылки"
+#: ../../Zotlabs/Module/Admin/Queue.php:38
+msgid "Destination URL"
+msgstr "Конечный URL-адрес"
-#: ../../Zotlabs/Module/Mitem.php:195
-msgid "Edit menu"
-msgstr "Редактировать меню"
+#: ../../Zotlabs/Module/Admin/Queue.php:39
+msgid "Mark hub permanently offline"
+msgstr "Пометить хаб как постоянно отключенный"
-#: ../../Zotlabs/Module/Mitem.php:198
-msgid "Edit element"
-msgstr "Редактировать элемент"
+#: ../../Zotlabs/Module/Admin/Queue.php:40
+msgid "Empty queue for this hub"
+msgstr "Освободить очередь для этого хаба"
-#: ../../Zotlabs/Module/Mitem.php:199
-msgid "Drop element"
-msgstr "Удалить элемент"
+#: ../../Zotlabs/Module/Admin/Queue.php:41
+msgid "Last known contact"
+msgstr "Последний известный контакт"
-#: ../../Zotlabs/Module/Mitem.php:200
-msgid "New element"
-msgstr "Новый элемент"
+#: ../../Zotlabs/Module/Admin/Features.php:55
+#: ../../Zotlabs/Module/Admin/Features.php:56
+#: ../../Zotlabs/Module/Settings/Features.php:36 ../../include/features.php:55
+msgid "Off"
+msgstr "Выкл."
-#: ../../Zotlabs/Module/Mitem.php:201
-msgid "Edit this menu container"
-msgstr "Редактировать контейнер меню"
+#: ../../Zotlabs/Module/Admin/Features.php:55
+#: ../../Zotlabs/Module/Admin/Features.php:56
+#: ../../Zotlabs/Module/Settings/Features.php:36 ../../include/features.php:55
+msgid "On"
+msgstr "Вкл."
-#: ../../Zotlabs/Module/Mitem.php:202
-msgid "Add menu element"
-msgstr "Добавить элемент меню"
+#: ../../Zotlabs/Module/Admin/Features.php:56
+#, php-format
+msgid "Lock feature %s"
+msgstr "Заблокировать функцию \"%s\""
-#: ../../Zotlabs/Module/Mitem.php:203
-msgid "Delete this menu item"
-msgstr "Удалить этот элемент меню"
+#: ../../Zotlabs/Module/Admin/Features.php:64
+msgid "Manage Additional Features"
+msgstr "Управление дополнительными функциями"
-#: ../../Zotlabs/Module/Mitem.php:204
-msgid "Edit this menu item"
-msgstr "Редактировать этот элемент меню"
+#: ../../Zotlabs/Module/Admin/Dbsync.php:19
+msgid "Update has been marked successful"
+msgstr "Обновление было помечено как успешное"
-#: ../../Zotlabs/Module/Mitem.php:222
-msgid "Menu item not found."
-msgstr "Элемент меню не найден."
+#: ../../Zotlabs/Module/Admin/Dbsync.php:31
+#, php-format
+msgid "Executing %s failed. Check system logs."
+msgstr "Выполнение %s неудачно. Проверьте системный журнал."
-#: ../../Zotlabs/Module/Mitem.php:235
-msgid "Menu item deleted."
-msgstr "Элемент меню удалён."
+#: ../../Zotlabs/Module/Admin/Dbsync.php:34
+#, php-format
+msgid "Update %s was successfully applied."
+msgstr "Обновление %sбыло успешно применено."
-#: ../../Zotlabs/Module/Mitem.php:237
-msgid "Menu item could not be deleted."
-msgstr "Невозможно удалить элемент меню."
+#: ../../Zotlabs/Module/Admin/Dbsync.php:38
+#, php-format
+msgid "Update %s did not return a status. Unknown if it succeeded."
+msgstr "Обновление %s не вернуло статус. Неизвестно было ли оно успешным."
-#: ../../Zotlabs/Module/Mitem.php:244
-msgid "Edit Menu Element"
-msgstr "Редактировать элемент меню"
+#: ../../Zotlabs/Module/Admin/Dbsync.php:41
+#, php-format
+msgid "Update function %s could not be found."
+msgstr "Функция обновления %sне может быть найдена."
-#: ../../Zotlabs/Module/Mitem.php:254
-msgid "Link text"
-msgstr "Текст ссылки"
+#: ../../Zotlabs/Module/Admin/Dbsync.php:59
+msgid "Failed Updates"
+msgstr "Обновления с ошибками"
-#: ../../Zotlabs/Module/Admin/Features.php:56
+#: ../../Zotlabs/Module/Admin/Dbsync.php:61
+msgid "Mark success (if update was manually applied)"
+msgstr "Пометить успешным (если обновление было применено вручную)"
+
+#: ../../Zotlabs/Module/Admin/Dbsync.php:62
+msgid "Attempt to execute this update step automatically"
+msgstr "Попытаться применить это обновление автоматически"
+
+#: ../../Zotlabs/Module/Admin/Dbsync.php:67
+msgid "No failed updates."
+msgstr "Ошибок обновлений нет."
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:37
#, php-format
-msgid "Lock feature %s"
-msgstr "Заблокировать функцию \"%s\""
+msgid "%s account blocked/unblocked"
+msgid_plural "%s account blocked/unblocked"
+msgstr[0] "%s аккаунт блокирован/разблокирован"
+msgstr[1] "%s аккаунта блокированы/разблокированы"
+msgstr[2] "%s аккаунтов блокированы/разблокированы"
-#: ../../Zotlabs/Module/Admin/Features.php:64
-msgid "Manage Additional Features"
-msgstr "Управление дополнительными функциями"
+#: ../../Zotlabs/Module/Admin/Accounts.php:44
+#, php-format
+msgid "%s account deleted"
+msgid_plural "%s accounts deleted"
+msgstr[0] "%s аккаунт удалён"
+msgstr[1] "%s аккаунта удалёны"
+msgstr[2] "%s аккаунтов удалёны"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:80
+msgid "Account not found"
+msgstr "Аккаунт не найден"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2562
+#, php-format
+msgid "Account '%s' deleted"
+msgstr "Аккаунт '%s' удален"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:99
+#, php-format
+msgid "Account '%s' blocked"
+msgstr "Аккаунт '%s' заблокирован"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:107
+#, php-format
+msgid "Account '%s' unblocked"
+msgstr "Аккаунт '%s' разблокирован"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:166
+#: ../../Zotlabs/Module/Admin/Logs.php:82
+#: ../../Zotlabs/Module/Admin/Channels.php:145
+#: ../../Zotlabs/Module/Admin/Themes.php:122
+#: ../../Zotlabs/Module/Admin/Themes.php:156
+#: ../../Zotlabs/Module/Admin/Site.php:287
+#: ../../Zotlabs/Module/Admin/Addons.php:341
+#: ../../Zotlabs/Module/Admin/Addons.php:439
+#: ../../Zotlabs/Module/Admin/Security.php:92
+#: ../../Zotlabs/Module/Admin.php:138
+msgid "Administration"
+msgstr "Администрирование"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:167
+#: ../../Zotlabs/Module/Admin/Accounts.php:180
+#: ../../Zotlabs/Module/Admin.php:96 ../../Zotlabs/Widget/Admin.php:23
+msgid "Accounts"
+msgstr "Учётные записи"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:169
+#: ../../Zotlabs/Module/Admin/Channels.php:148
+msgid "select all"
+msgstr "выбрать все"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:170
+msgid "Registrations waiting for confirm"
+msgstr "Регистрации ждут подтверждения"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
+msgid "Request date"
+msgstr "Дата запроса"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:172
+msgid "No registrations."
+msgstr "Нет новых регистраций."
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:173
+#: ../../Zotlabs/Module/Connections.php:306 ../../include/conversation.php:735
+msgid "Approve"
+msgstr "Утвердить"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:174
+#: ../../Zotlabs/Module/Authorize.php:33
+msgid "Deny"
+msgstr "Запретить"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:176
+#: ../../Zotlabs/Module/Connedit.php:636
+msgid "Block"
+msgstr "Блокировать"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:177
+#: ../../Zotlabs/Module/Connedit.php:636
+msgid "Unblock"
+msgstr "Разблокировать"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:182
+msgid "ID"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:184
+msgid "All Channels"
+msgstr "Все каналы"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:185
+msgid "Register date"
+msgstr "Дата регистрации"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:186
+msgid "Last login"
+msgstr "Последний вход"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:187
+msgid "Expires"
+msgstr "Срок действия"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:188
+msgid "Service Class"
+msgstr "Класс обслуживания"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:190
+msgid ""
+"Selected accounts will be deleted!\\n\\nEverything these accounts had posted "
+"on this site will be permanently deleted!\\n\\nAre you sure?"
+msgstr "Выбранные учётные записи будут удалены!\n\nВсё что было ими опубликовано на этом сайте будет удалено навсегда!\n\nВы уверены?"
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:191
+msgid ""
+"The account {0} will be deleted!\\n\\nEverything this account has posted on "
+"this site will be permanently deleted!\\n\\nAre you sure?"
+msgstr "Этот аккаунт {0} будет удалён!\n\nВсё что им было опубликовано на этом сайте будет удалено навсегда!\n\nВы уверены?"
#: ../../Zotlabs/Module/Admin/Logs.php:28
msgid "Log settings updated."
@@ -8429,10 +2669,10 @@ msgstr "Код в канале '%s' разрешён"
msgid "Channel '%s' code disallowed"
msgstr "Код в канале '%s' запрещён"
-#: ../../Zotlabs/Module/Admin/Channels.php:148
-#: ../../Zotlabs/Module/Admin/Accounts.php:169
-msgid "select all"
-msgstr "выбрать все"
+#: ../../Zotlabs/Module/Admin/Channels.php:146
+#: ../../Zotlabs/Module/Admin.php:114 ../../Zotlabs/Widget/Admin.php:24
+msgid "Channels"
+msgstr "Каналы"
#: ../../Zotlabs/Module/Admin/Channels.php:150
msgid "Censor"
@@ -8450,6 +2690,10 @@ msgstr "Разрешить код"
msgid "Disallow Code"
msgstr "Запретить код"
+#: ../../Zotlabs/Module/Admin/Channels.php:154 ../../include/nav.php:421
+msgid "Channel"
+msgstr "Канал"
+
#: ../../Zotlabs/Module/Admin/Channels.php:158
msgid "UID"
msgstr ""
@@ -8466,243 +2710,87 @@ msgid ""
"channel on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Канал {0} будет удалён!\n\nВсё что было опубликовано в этом канале на этом сайте будет удалено навсегда!\n\nВы уверены?"
-#: ../../Zotlabs/Module/Admin/Security.php:83
-msgid ""
-"By default, unfiltered HTML is allowed in embedded media. This is inherently "
-"insecure."
-msgstr "По умолчанию, HTML без фильтрации доступен во встраиваемых медиа. Это небезопасно."
-
-#: ../../Zotlabs/Module/Admin/Security.php:86
-msgid ""
-"The recommended setting is to only allow unfiltered HTML from the following "
-"sites:"
-msgstr "Рекомендуется настроить разрешения использовать HTML без фильтрации только для следующих сайтов:"
-
-#: ../../Zotlabs/Module/Admin/Security.php:87
-msgid ""
-"https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/"
-"<br />https://vimeo.com/<br />https://soundcloud.com/<br />"
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin/Security.php:88
-msgid ""
-"All other embedded content will be filtered, <strong>unless</strong> "
-"embedded content from that site is explicitly blocked."
-msgstr "се остальные встроенные материалы будут отфильтрованы, <strong>если </strong> встроенное содержимое с этого сайта явно заблокировано."
-
-#: ../../Zotlabs/Module/Admin/Security.php:93 ../../Zotlabs/Widget/Admin.php:25
-msgid "Security"
-msgstr "Безопасность"
-
-#: ../../Zotlabs/Module/Admin/Security.php:95
-msgid "Block public"
-msgstr "Блокировать публичный доступ"
-
-#: ../../Zotlabs/Module/Admin/Security.php:95
-msgid ""
-"Check to block public access to all otherwise public personal pages on this "
-"site unless you are currently authenticated."
-msgstr "Установите флажок для блокировки публичного доступа ко всем другим общедоступным страницам на этом сайте, если вы в настоящее время не аутентифицированы."
-
-#: ../../Zotlabs/Module/Admin/Security.php:96
-msgid "Provide a cloud root directory"
-msgstr "Предоставить корневой каталог в облаке"
-
-#: ../../Zotlabs/Module/Admin/Security.php:96
-msgid ""
-"The cloud root directory lists all channel names which provide public files"
-msgstr "В корневом каталоге облака показываются все имена каналов, которые предоставляют общедоступные файлы"
-
-#: ../../Zotlabs/Module/Admin/Security.php:97
-msgid "Show total disk space available to cloud uploads"
-msgstr "Показывать общее доступное для загрузок место в хранилище"
-
-#: ../../Zotlabs/Module/Admin/Security.php:98
-msgid "Set \"Transport Security\" HTTP header"
-msgstr "Установить HTTP-заголовок \"Transport Security\""
-
-#: ../../Zotlabs/Module/Admin/Security.php:99
-msgid "Set \"Content Security Policy\" HTTP header"
-msgstr "Установить HTTP-заголовок \"Content Security Policy\""
-
-#: ../../Zotlabs/Module/Admin/Security.php:100
-msgid "Allowed email domains"
-msgstr "Разрешённые домены email"
-
-#: ../../Zotlabs/Module/Admin/Security.php:100
-msgid ""
-"Comma separated list of domains which are allowed in email addresses for "
-"registrations to this site. Wildcards are accepted. Empty to allow any "
-"domains"
-msgstr "Список разделённых запятыми доменов для которых разрешена регистрация на этом сайте. Wildcards разрешены. Если пусто то разрешены любые домены."
-
-#: ../../Zotlabs/Module/Admin/Security.php:101
-msgid "Not allowed email domains"
-msgstr "Запрещённые домены email"
-
-#: ../../Zotlabs/Module/Admin/Security.php:101
-msgid ""
-"Comma separated list of domains which are not allowed in email addresses for "
-"registrations to this site. Wildcards are accepted. Empty to allow any "
-"domains, unless allowed domains have been defined."
-msgstr "Список разделённых запятыми доменов для которых запрещена регистрация на этом сайте. Wildcards разрешены. Если пусто то разрешены любые домены до тех пор, пока разрешённые домены не будут указаны."
-
-#: ../../Zotlabs/Module/Admin/Security.php:102
-msgid "Allow communications only from these sites"
-msgstr "Разрешить связь только с этими сайтами"
-
-#: ../../Zotlabs/Module/Admin/Security.php:102
-msgid ""
-"One site per line. Leave empty to allow communication from anywhere by "
-"default"
-msgstr "Один сайт на строку. Оставьте пустым для разрешения взаимодействия без ограничений (по умочанию)."
-
-#: ../../Zotlabs/Module/Admin/Security.php:103
-msgid "Block communications from these sites"
-msgstr "Блокировать связь с этими сайтами"
-
-#: ../../Zotlabs/Module/Admin/Security.php:104
-msgid "Allow communications only from these channels"
-msgstr "Разрешить связь только для этих каналов"
-
-#: ../../Zotlabs/Module/Admin/Security.php:104
-msgid ""
-"One channel (hash) per line. Leave empty to allow from any channel by default"
-msgstr "Один канал (или его хэш) на строку. Оставьте пустым для разрешения взаимодействия с любым каналом (по умолчанию)."
-
-#: ../../Zotlabs/Module/Admin/Security.php:105
-msgid "Block communications from these channels"
-msgstr "Блокировать связь с этими каналами"
-
-#: ../../Zotlabs/Module/Admin/Security.php:106
-msgid "Only allow embeds from secure (SSL) websites and links."
-msgstr "Разрешать встраивание только для безопасных (SSL/TLS) сайтов и ссылок."
-
-#: ../../Zotlabs/Module/Admin/Security.php:107
-msgid "Allow unfiltered embedded HTML content only from these domains"
-msgstr "Разрешить встраивать нефильтруемое HTML-содержимое только для этих доменов"
-
-#: ../../Zotlabs/Module/Admin/Security.php:107
-msgid "One site per line. By default embedded content is filtered."
-msgstr "Один сайт на строку. По умолчанию встраиваемое содержимое фильтруется."
-
-#: ../../Zotlabs/Module/Admin/Security.php:108
-msgid "Block embedded HTML from these domains"
-msgstr "Блокировать встраивание HTML-содержимого для этих доменов"
+#: ../../Zotlabs/Module/Admin/Themes.php:26
+msgid "Theme settings updated."
+msgstr "Настройки темы обновленны."
-#: ../../Zotlabs/Module/Admin/Addons.php:289
-#, php-format
-msgid "Plugin %s disabled."
-msgstr "Плагин %s отключен."
+#: ../../Zotlabs/Module/Admin/Themes.php:61
+msgid "No themes found."
+msgstr "Темы не найдены."
-#: ../../Zotlabs/Module/Admin/Addons.php:294
-#, php-format
-msgid "Plugin %s enabled."
-msgstr "Плагин %s включен."
+#: ../../Zotlabs/Module/Admin/Themes.php:72
+#: ../../Zotlabs/Module/Admin/Addons.php:259 ../../Zotlabs/Module/Thing.php:94
+#: ../../Zotlabs/Module/Viewsrc.php:25 ../../Zotlabs/Module/Display.php:45
+#: ../../Zotlabs/Module/Display.php:450 ../../Zotlabs/Module/Filestorage.php:24
+#: ../../Zotlabs/Module/Admin.php:62 ../../include/items.php:3693
+msgid "Item not found."
+msgstr "Элемент не найден."
-#: ../../Zotlabs/Module/Admin/Addons.php:310
#: ../../Zotlabs/Module/Admin/Themes.php:95
+#: ../../Zotlabs/Module/Admin/Addons.php:310
msgid "Disable"
msgstr "Запретить"
-#: ../../Zotlabs/Module/Admin/Addons.php:313
#: ../../Zotlabs/Module/Admin/Themes.php:97
+#: ../../Zotlabs/Module/Admin/Addons.php:313
msgid "Enable"
msgstr "Разрешить"
-#: ../../Zotlabs/Module/Admin/Addons.php:342
-#: ../../Zotlabs/Module/Admin/Addons.php:437 ../../Zotlabs/Widget/Admin.php:27
-msgid "Addons"
-msgstr "Расширения"
+#: ../../Zotlabs/Module/Admin/Themes.php:116
+msgid "Screenshot"
+msgstr "Снимок экрана"
+
+#: ../../Zotlabs/Module/Admin/Themes.php:123
+#: ../../Zotlabs/Module/Admin/Themes.php:157 ../../Zotlabs/Widget/Admin.php:28
+msgid "Themes"
+msgstr "Темы"
-#: ../../Zotlabs/Module/Admin/Addons.php:343
#: ../../Zotlabs/Module/Admin/Themes.php:124
+#: ../../Zotlabs/Module/Admin/Addons.php:343
msgid "Toggle"
msgstr "Переключить"
-#: ../../Zotlabs/Module/Admin/Addons.php:351
+#: ../../Zotlabs/Module/Admin/Themes.php:125
+#: ../../Zotlabs/Module/Admin/Addons.php:344 ../../Zotlabs/Lib/Apps.php:336
+#: ../../Zotlabs/Widget/Newmember.php:53
+#: ../../Zotlabs/Widget/Settings_menu.php:61 ../../include/nav.php:97
+msgid "Settings"
+msgstr "Настройки"
+
#: ../../Zotlabs/Module/Admin/Themes.php:134
+#: ../../Zotlabs/Module/Admin/Addons.php:351
msgid "Author: "
msgstr "Автор: "
-#: ../../Zotlabs/Module/Admin/Addons.php:352
#: ../../Zotlabs/Module/Admin/Themes.php:135
+#: ../../Zotlabs/Module/Admin/Addons.php:352
msgid "Maintainer: "
msgstr "Сопровождающий:"
-#: ../../Zotlabs/Module/Admin/Addons.php:353
-msgid "Minimum project version: "
-msgstr "Минимальная версия проекта: "
-
-#: ../../Zotlabs/Module/Admin/Addons.php:354
-msgid "Maximum project version: "
-msgstr "Максимальная версия проекта: "
-
-#: ../../Zotlabs/Module/Admin/Addons.php:355
-msgid "Minimum PHP version: "
-msgstr "Минимальная версия PHP: "
-
-#: ../../Zotlabs/Module/Admin/Addons.php:356
-msgid "Compatible Server Roles: "
-msgstr "Совместимые роли сервера: "
-
-#: ../../Zotlabs/Module/Admin/Addons.php:357
-msgid "Requires: "
-msgstr "Необходимо:"
-
-#: ../../Zotlabs/Module/Admin/Addons.php:358
-#: ../../Zotlabs/Module/Admin/Addons.php:442
-msgid "Disabled - version incompatibility"
-msgstr "Отключено - несовместимость версий"
-
-#: ../../Zotlabs/Module/Admin/Addons.php:411
-msgid "Enter the public git repository URL of the addon repo."
-msgstr "Введите URL публичного репозитория расширений git"
-
-#: ../../Zotlabs/Module/Admin/Addons.php:412
-msgid "Addon repo git URL"
-msgstr "URL репозитория расширений git"
-
-#: ../../Zotlabs/Module/Admin/Addons.php:413
-msgid "Custom repo name"
-msgstr "Пользовательское имя репозитория"
-
-#: ../../Zotlabs/Module/Admin/Addons.php:413
-msgid "(optional)"
-msgstr "(необязательно)"
-
-#: ../../Zotlabs/Module/Admin/Addons.php:414
-msgid "Download Addon Repo"
-msgstr "Загрузить репозиторий расширений"
-
-#: ../../Zotlabs/Module/Admin/Addons.php:421
-msgid "Install new repo"
-msgstr "Установить новый репозиторий"
-
-#: ../../Zotlabs/Module/Admin/Addons.php:422 ../../Zotlabs/Lib/Apps.php:513
-msgid "Install"
-msgstr "Установить"
-
-#: ../../Zotlabs/Module/Admin/Addons.php:445
-msgid "Manage Repos"
-msgstr "Управление репозиториями"
-
-#: ../../Zotlabs/Module/Admin/Addons.php:446
-msgid "Installed Addon Repositories"
-msgstr "Установленные репозитории расширений"
-
-#: ../../Zotlabs/Module/Admin/Addons.php:447
-msgid "Install a New Addon Repository"
-msgstr "Установить новый репозиторий расширений"
+#: ../../Zotlabs/Module/Admin/Themes.php:162
+msgid "[Experimental]"
+msgstr "[экспериментальный]"
-#: ../../Zotlabs/Module/Admin/Addons.php:454
-msgid "Switch branch"
-msgstr "Переключить ветку"
+#: ../../Zotlabs/Module/Admin/Themes.php:163
+msgid "[Unsupported]"
+msgstr "[неподдерживаемый]"
#: ../../Zotlabs/Module/Admin/Site.php:161
msgid "Site settings updated."
msgstr "Настройки сайта обновлены."
+#: ../../Zotlabs/Module/Admin/Site.php:187
+#: ../../view/theme/redbasic_c/php/config.php:15
+#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3210
+msgid "Default"
+msgstr "По умолчанию"
+
+#: ../../Zotlabs/Module/Admin/Site.php:198
+#: ../../Zotlabs/Module/Settings/Display.php:119
+#, php-format
+msgid "%s - (Incompatible)"
+msgstr "%s - (несовместимо)"
+
#: ../../Zotlabs/Module/Admin/Site.php:205
msgid "mobile"
msgstr "мобильный"
@@ -8748,6 +2836,11 @@ msgstr "Эта роль будет использоваться для перв
msgid "Site"
msgstr "Сайт"
+#: ../../Zotlabs/Module/Admin/Site.php:290
+#: ../../Zotlabs/Module/Register.php:273
+msgid "Registration"
+msgstr "Регистрация"
+
#: ../../Zotlabs/Module/Admin/Site.php:291
msgid "File upload"
msgstr "Загрузка файла"
@@ -8756,8 +2849,12 @@ msgstr "Загрузка файла"
msgid "Policies"
msgstr "Правила"
+#: ../../Zotlabs/Module/Admin/Site.php:293 ../../include/contact_widgets.php:16
+msgid "Advanced"
+msgstr "Дополнительно"
+
#: ../../Zotlabs/Module/Admin/Site.php:297
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:891
+#: ../../addon/statusnet/statusnet.php:593
msgid "Site name"
msgstr "Название сайта"
@@ -8953,7 +3050,7 @@ msgstr "Импортировать только публичные потоки
#: ../../Zotlabs/Module/Admin/Site.php:323
#: ../../Zotlabs/Module/Admin/Site.php:324
-#: ../../Zotlabs/Module/Connedit.php:876 ../../Zotlabs/Module/Connedit.php:877
+#: ../../Zotlabs/Module/Connedit.php:892 ../../Zotlabs/Module/Connedit.php:893
msgid ""
"words one per line or #tags or /patterns/ or lang=xx, leave blank to import "
"all posts"
@@ -9127,6 +3224,96 @@ msgstr "Необязательно: место размещения сайта"
msgid "Region or country"
msgstr "Регион или страна"
+#: ../../Zotlabs/Module/Admin/Addons.php:289
+#, php-format
+msgid "Plugin %s disabled."
+msgstr "Плагин %s отключен."
+
+#: ../../Zotlabs/Module/Admin/Addons.php:294
+#, php-format
+msgid "Plugin %s enabled."
+msgstr "Плагин %s включен."
+
+#: ../../Zotlabs/Module/Admin/Addons.php:342
+#: ../../Zotlabs/Module/Admin/Addons.php:440 ../../Zotlabs/Widget/Admin.php:27
+msgid "Addons"
+msgstr "Расширения"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:353
+msgid "Minimum project version: "
+msgstr "Минимальная версия проекта: "
+
+#: ../../Zotlabs/Module/Admin/Addons.php:354
+msgid "Maximum project version: "
+msgstr "Максимальная версия проекта: "
+
+#: ../../Zotlabs/Module/Admin/Addons.php:355
+msgid "Minimum PHP version: "
+msgstr "Минимальная версия PHP: "
+
+#: ../../Zotlabs/Module/Admin/Addons.php:356
+msgid "Compatible Server Roles: "
+msgstr "Совместимые роли сервера: "
+
+#: ../../Zotlabs/Module/Admin/Addons.php:357
+msgid "Requires: "
+msgstr "Необходимо:"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:358
+#: ../../Zotlabs/Module/Admin/Addons.php:445
+msgid "Disabled - version incompatibility"
+msgstr "Отключено - несовместимость версий"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:414
+msgid "Enter the public git repository URL of the addon repo."
+msgstr "Введите URL публичного репозитория расширений git"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:415
+msgid "Addon repo git URL"
+msgstr "URL репозитория расширений git"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:416
+msgid "Custom repo name"
+msgstr "Пользовательское имя репозитория"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:416
+msgid "(optional)"
+msgstr "(необязательно)"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:417
+msgid "Download Addon Repo"
+msgstr "Загрузить репозиторий расширений"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:424
+msgid "Install new repo"
+msgstr "Установить новый репозиторий"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:425 ../../Zotlabs/Lib/Apps.php:535
+msgid "Install"
+msgstr "Установить"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:448
+msgid "Manage Repos"
+msgstr "Управление репозиториями"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:449
+msgid "Installed Addon Repositories"
+msgstr "Установленные репозитории расширений"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:450
+msgid "Install a New Addon Repository"
+msgstr "Установить новый репозиторий расширений"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:457
+msgid "Switch branch"
+msgstr "Переключить ветку"
+
+#: ../../Zotlabs/Module/Admin/Addons.php:458
+#: ../../Zotlabs/Module/Photos.php:1035 ../../Zotlabs/Module/Tagrm.php:137
+#: ../../addon/superblock/Mod_Superblock.php:91
+msgid "Remove"
+msgstr "Удалить"
+
#: ../../Zotlabs/Module/Admin/Profs.php:89
msgid "New Profile Field"
msgstr "Поле нового профиля"
@@ -9166,6 +3353,15 @@ msgstr "Текст подсказки"
msgid "Additional info (optional)"
msgstr "Дополнительная информация (необязательно)"
+#: ../../Zotlabs/Module/Admin/Profs.php:94
+#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Rbmark.php:32
+#: ../../Zotlabs/Module/Rbmark.php:104 ../../Zotlabs/Module/Filer.php:53
+#: ../../Zotlabs/Widget/Notes.php:23
+#: ../../addon/queueworker/Mod_Queueworker.php:102 ../../include/text.php:1085
+#: ../../include/text.php:1097
+msgid "Save"
+msgstr "Запомнить"
+
#: ../../Zotlabs/Module/Admin/Profs.php:103
msgid "Field definition not found"
msgstr "Определения поля не найдено"
@@ -9202,219 +3398,855 @@ msgstr "Настраиваемые поля"
msgid "Create Custom Field"
msgstr "Создать настраиваемое поле"
-#: ../../Zotlabs/Module/Admin/Queue.php:35
-msgid "Queue Statistics"
-msgstr "Статистика очереди"
+#: ../../Zotlabs/Module/Admin/Account_edit.php:29
+#, php-format
+msgid "Password changed for account %d."
+msgstr "Пароль для аккаунта %d изменён."
-#: ../../Zotlabs/Module/Admin/Queue.php:36
-msgid "Total Entries"
-msgstr "Всего записей"
+#: ../../Zotlabs/Module/Admin/Account_edit.php:46
+msgid "Account settings updated."
+msgstr "Настройки аккаунта обновлены."
-#: ../../Zotlabs/Module/Admin/Queue.php:37
-msgid "Priority"
-msgstr "Приоритет"
+#: ../../Zotlabs/Module/Admin/Account_edit.php:61
+msgid "Account not found."
+msgstr "Учётная запись не найдена."
-#: ../../Zotlabs/Module/Admin/Queue.php:38
-msgid "Destination URL"
-msgstr "Конечный URL-адрес"
+#: ../../Zotlabs/Module/Admin/Account_edit.php:68
+msgid "Account Edit"
+msgstr "Редактировать аккаунт"
-#: ../../Zotlabs/Module/Admin/Queue.php:39
-msgid "Mark hub permanently offline"
-msgstr "Пометить хаб как постоянно отключенный"
+#: ../../Zotlabs/Module/Admin/Account_edit.php:69
+msgid "New Password"
+msgstr "Новый пароль"
-#: ../../Zotlabs/Module/Admin/Queue.php:40
-msgid "Empty queue for this hub"
-msgstr "Освободить очередь для этого хаба"
+#: ../../Zotlabs/Module/Admin/Account_edit.php:70
+msgid "New Password again"
+msgstr "Повторите новый пароль"
-#: ../../Zotlabs/Module/Admin/Queue.php:41
-msgid "Last known contact"
-msgstr "Последний известный контакт"
+#: ../../Zotlabs/Module/Admin/Account_edit.php:71
+msgid "Account language (for emails)"
+msgstr "Язык сообщения для email"
-#: ../../Zotlabs/Module/Admin/Themes.php:26
-msgid "Theme settings updated."
-msgstr "Настройки темы обновленны."
+#: ../../Zotlabs/Module/Admin/Account_edit.php:72
+msgid "Service class"
+msgstr "Класс обслуживания"
-#: ../../Zotlabs/Module/Admin/Themes.php:61
-msgid "No themes found."
-msgstr "Темы не найдены."
+#: ../../Zotlabs/Module/Admin/Security.php:83
+msgid ""
+"By default, unfiltered HTML is allowed in embedded media. This is inherently "
+"insecure."
+msgstr "По умолчанию, HTML без фильтрации доступен во встраиваемых медиа. Это небезопасно."
-#: ../../Zotlabs/Module/Admin/Themes.php:116
-msgid "Screenshot"
-msgstr "Снимок экрана"
+#: ../../Zotlabs/Module/Admin/Security.php:86
+msgid ""
+"The recommended setting is to only allow unfiltered HTML from the following "
+"sites:"
+msgstr "Рекомендуется настроить разрешения использовать HTML без фильтрации только для следующих сайтов:"
-#: ../../Zotlabs/Module/Admin/Themes.php:123
-#: ../../Zotlabs/Module/Admin/Themes.php:157 ../../Zotlabs/Widget/Admin.php:28
-msgid "Themes"
-msgstr "Темы"
+#: ../../Zotlabs/Module/Admin/Security.php:87
+msgid ""
+"https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/"
+"<br />https://vimeo.com/<br />https://soundcloud.com/<br />"
+msgstr ""
-#: ../../Zotlabs/Module/Admin/Themes.php:162
-msgid "[Experimental]"
-msgstr "[экспериментальный]"
+#: ../../Zotlabs/Module/Admin/Security.php:88
+msgid ""
+"All other embedded content will be filtered, <strong>unless</strong> "
+"embedded content from that site is explicitly blocked."
+msgstr "се остальные встроенные материалы будут отфильтрованы, <strong>если </strong> встроенное содержимое с этого сайта явно заблокировано."
-#: ../../Zotlabs/Module/Admin/Themes.php:163
-msgid "[Unsupported]"
-msgstr "[неподдерживаемый]"
+#: ../../Zotlabs/Module/Admin/Security.php:93 ../../Zotlabs/Widget/Admin.php:25
+msgid "Security"
+msgstr "Безопасность"
-#: ../../Zotlabs/Module/Admin/Accounts.php:37
-#, php-format
-msgid "%s account blocked/unblocked"
-msgid_plural "%s account blocked/unblocked"
-msgstr[0] "%s аккаунт блокирован/разблокирован"
-msgstr[1] "%s аккаунта блокированы/разблокированы"
-msgstr[2] "%s аккаунтов блокированы/разблокированы"
+#: ../../Zotlabs/Module/Admin/Security.php:95
+msgid "Block public"
+msgstr "Блокировать публичный доступ"
-#: ../../Zotlabs/Module/Admin/Accounts.php:44
-#, php-format
-msgid "%s account deleted"
-msgid_plural "%s accounts deleted"
-msgstr[0] "%s аккаунт удалён"
-msgstr[1] "%s аккаунта удалёны"
-msgstr[2] "%s аккаунтов удалёны"
+#: ../../Zotlabs/Module/Admin/Security.php:95
+msgid ""
+"Check to block public access to all otherwise public personal pages on this "
+"site unless you are currently authenticated."
+msgstr "Установите флажок для блокировки публичного доступа ко всем другим общедоступным страницам на этом сайте, если вы в настоящее время не аутентифицированы."
-#: ../../Zotlabs/Module/Admin/Accounts.php:80
-msgid "Account not found"
-msgstr "Аккаунт не найден"
+#: ../../Zotlabs/Module/Admin/Security.php:96
+msgid "Provide a cloud root directory"
+msgstr "Предоставить корневой каталог в облаке"
-#: ../../Zotlabs/Module/Admin/Accounts.php:99
-#, php-format
-msgid "Account '%s' blocked"
-msgstr "Аккаунт '%s' заблокирован"
+#: ../../Zotlabs/Module/Admin/Security.php:96
+msgid ""
+"The cloud root directory lists all channel names which provide public files"
+msgstr "В корневом каталоге облака показываются все имена каналов, которые предоставляют общедоступные файлы"
-#: ../../Zotlabs/Module/Admin/Accounts.php:107
-#, php-format
-msgid "Account '%s' unblocked"
-msgstr "Аккаунт '%s' разблокирован"
+#: ../../Zotlabs/Module/Admin/Security.php:97
+msgid "Show total disk space available to cloud uploads"
+msgstr "Показывать общее доступное для загрузок место в хранилище"
-#: ../../Zotlabs/Module/Admin/Accounts.php:170
-msgid "Registrations waiting for confirm"
-msgstr "Регистрации ждут подтверждения"
+#: ../../Zotlabs/Module/Admin/Security.php:98
+msgid "Set \"Transport Security\" HTTP header"
+msgstr "Установить HTTP-заголовок \"Transport Security\""
-#: ../../Zotlabs/Module/Admin/Accounts.php:171
-msgid "Request date"
-msgstr "Дата запроса"
+#: ../../Zotlabs/Module/Admin/Security.php:99
+msgid "Set \"Content Security Policy\" HTTP header"
+msgstr "Установить HTTP-заголовок \"Content Security Policy\""
-#: ../../Zotlabs/Module/Admin/Accounts.php:172
-msgid "No registrations."
-msgstr "Нет новых регистраций."
+#: ../../Zotlabs/Module/Admin/Security.php:100
+msgid "Allowed email domains"
+msgstr "Разрешённые домены email"
-#: ../../Zotlabs/Module/Admin/Accounts.php:176
-#: ../../Zotlabs/Module/Connedit.php:623
-msgid "Block"
-msgstr "Блокировать"
+#: ../../Zotlabs/Module/Admin/Security.php:100
+msgid ""
+"Comma separated list of domains which are allowed in email addresses for "
+"registrations to this site. Wildcards are accepted. Empty to allow any "
+"domains"
+msgstr "Список разделённых запятыми доменов для которых разрешена регистрация на этом сайте. Wildcards разрешены. Если пусто то разрешены любые домены."
-#: ../../Zotlabs/Module/Admin/Accounts.php:177
-#: ../../Zotlabs/Module/Connedit.php:623
-msgid "Unblock"
-msgstr "Разблокировать"
+#: ../../Zotlabs/Module/Admin/Security.php:101
+msgid "Not allowed email domains"
+msgstr "Запрещённые домены email"
-#: ../../Zotlabs/Module/Admin/Accounts.php:182
-msgid "ID"
-msgstr ""
+#: ../../Zotlabs/Module/Admin/Security.php:101
+msgid ""
+"Comma separated list of domains which are not allowed in email addresses for "
+"registrations to this site. Wildcards are accepted. Empty to allow any "
+"domains, unless allowed domains have been defined."
+msgstr "Список разделённых запятыми доменов для которых запрещена регистрация на этом сайте. Wildcards разрешены. Если пусто то разрешены любые домены до тех пор, пока разрешённые домены не будут указаны."
-#: ../../Zotlabs/Module/Admin/Accounts.php:184
-msgid "All Channels"
-msgstr "Все каналы"
+#: ../../Zotlabs/Module/Admin/Security.php:102
+msgid "Allow communications only from these sites"
+msgstr "Разрешить связь только с этими сайтами"
-#: ../../Zotlabs/Module/Admin/Accounts.php:185
-msgid "Register date"
-msgstr "Дата регистрации"
+#: ../../Zotlabs/Module/Admin/Security.php:102
+msgid ""
+"One site per line. Leave empty to allow communication from anywhere by "
+"default"
+msgstr "Один сайт на строку. Оставьте пустым для разрешения взаимодействия без ограничений (по умочанию)."
-#: ../../Zotlabs/Module/Admin/Accounts.php:186
-msgid "Last login"
-msgstr "Последний вход"
+#: ../../Zotlabs/Module/Admin/Security.php:103
+msgid "Block communications from these sites"
+msgstr "Блокировать связь с этими сайтами"
-#: ../../Zotlabs/Module/Admin/Accounts.php:187
-msgid "Expires"
-msgstr "Срок действия"
+#: ../../Zotlabs/Module/Admin/Security.php:104
+msgid "Allow communications only from these channels"
+msgstr "Разрешить связь только для этих каналов"
-#: ../../Zotlabs/Module/Admin/Accounts.php:188
-msgid "Service Class"
-msgstr "Класс обслуживания"
+#: ../../Zotlabs/Module/Admin/Security.php:104
+msgid ""
+"One channel (hash) per line. Leave empty to allow from any channel by default"
+msgstr "Один канал (или его хэш) на строку. Оставьте пустым для разрешения взаимодействия с любым каналом (по умолчанию)."
-#: ../../Zotlabs/Module/Admin/Accounts.php:190
+#: ../../Zotlabs/Module/Admin/Security.php:105
+msgid "Block communications from these channels"
+msgstr "Блокировать связь с этими каналами"
+
+#: ../../Zotlabs/Module/Admin/Security.php:106
+msgid "Only allow embeds from secure (SSL) websites and links."
+msgstr "Разрешать встраивание только для безопасных (SSL/TLS) сайтов и ссылок."
+
+#: ../../Zotlabs/Module/Admin/Security.php:107
+msgid "Allow unfiltered embedded HTML content only from these domains"
+msgstr "Разрешить встраивать нефильтруемое HTML-содержимое только для этих доменов"
+
+#: ../../Zotlabs/Module/Admin/Security.php:107
+msgid "One site per line. By default embedded content is filtered."
+msgstr "Один сайт на строку. По умолчанию встраиваемое содержимое фильтруется."
+
+#: ../../Zotlabs/Module/Admin/Security.php:108
+msgid "Block embedded HTML from these domains"
+msgstr "Блокировать встраивание HTML-содержимого для этих доменов"
+
+#: ../../Zotlabs/Module/Lockview.php:75
+msgid "Remote privacy information not available."
+msgstr "Удаленная информация о конфиденциальности недоступна."
+
+#: ../../Zotlabs/Module/Lockview.php:96
+msgid "Visible to:"
+msgstr "Видимо для:"
+
+#: ../../Zotlabs/Module/Lockview.php:117 ../../Zotlabs/Module/Lockview.php:153
+#: ../../Zotlabs/Module/Acl.php:121 ../../include/acl_selectors.php:88
+msgctxt "acl"
+msgid "Profile"
+msgstr "Профиль"
+
+#: ../../Zotlabs/Module/Moderate.php:65
+msgid "Comment approved"
+msgstr "Комментарий одобрен"
+
+#: ../../Zotlabs/Module/Moderate.php:69
+msgid "Comment deleted"
+msgstr "Комментарий удалён"
+
+#: ../../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:725 ../../Zotlabs/Widget/Affinity.php:32
+#: ../../include/selectors.php:134 ../../include/channel.php:493
+#: ../../include/channel.php:494 ../../include/channel.php:501
+msgid "Friends"
+msgstr "Друзья"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:266
+#: ../../Zotlabs/Module/Defperms.php:111
+#: ../../addon/rendezvous/rendezvous.php:82
+#: ../../addon/openstreetmap/openstreetmap.php:185
+#: ../../addon/msgfooter/msgfooter.php:54 ../../addon/logrot/logrot.php:54
+#: ../../addon/twitter/twitter.php:605 ../../addon/piwik/piwik.php:116
+#: ../../addon/xmpp/xmpp.php:54
+msgid "Settings updated."
+msgstr "Настройки обновлены."
+
+#: ../../Zotlabs/Module/Settings/Channel.php:327
+msgid "Nobody except yourself"
+msgstr "Никто кроме вас"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:328
+msgid "Only those you specifically allow"
+msgstr "Только персонально разрешённые"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:329
+msgid "Approved connections"
+msgstr "Одобренные контакты"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:330
+msgid "Any connections"
+msgstr "Любые контакты"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:331
+msgid "Anybody on this website"
+msgstr "Любой на этом сайте"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:332
+msgid "Anybody in this network"
+msgstr "Любой в этой сети"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:333
+msgid "Anybody authenticated"
+msgstr "Любой аутентифицированный"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:334
+msgid "Anybody on the internet"
+msgstr "Любой в интернете"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:409
+msgid "Publish your default profile in the network directory"
+msgstr "Публиковать ваш профиль по умолчанию в сетевом каталоге"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:414
+msgid "Allow us to suggest you as a potential friend to new members?"
+msgstr "Разрешить предлагать вас как потенциального друга для новых пользователей?"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:418
+msgid "or"
+msgstr "или"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:427
+msgid "Your channel address is"
+msgstr "Адрес вашего канала"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:430
+msgid "Your files/photos are accessible via WebDAV at"
+msgstr "Ваши файлы / фотографии доступны через WebDAV по"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:470
+msgid "Automatic membership approval"
+msgstr "Членство одобрено автоматически"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:470
+#: ../../Zotlabs/Module/Defperms.php:255
msgid ""
-"Selected accounts will be deleted!\\n\\nEverything these accounts had posted "
-"on this site will be permanently deleted!\\n\\nAre you sure?"
-msgstr "Выбранные учётные записи будут удалены!\n\nВсё что было ими опубликовано на этом сайте будет удалено навсегда!\n\nВы уверены?"
+"If enabled, connection requests will be approved without your interaction"
+msgstr "Если включено, запросы контактов будут одобрены без вашего участия"
-#: ../../Zotlabs/Module/Admin/Accounts.php:191
+#: ../../Zotlabs/Module/Settings/Channel.php:491
+msgid "Channel Settings"
+msgstr "Настройки канала"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:498
+msgid "Basic Settings"
+msgstr "Основные настройки"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:499 ../../include/channel.php:1577
+msgid "Full Name:"
+msgstr "Полное имя:"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:500
+#: ../../Zotlabs/Module/Settings/Account.php:104
+msgid "Email Address:"
+msgstr "Адрес email:"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:501
+msgid "Your Timezone:"
+msgstr "Часовой пояс:"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:502
+msgid "Default Post Location:"
+msgstr "Расположение по умолчанию:"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:502
+msgid "Geographical location to display on your posts"
+msgstr "Показывать географическое положение в ваших публикациях"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:503
+msgid "Use Browser Location:"
+msgstr "Определять расположение из браузера"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:505
+msgid "Adult Content"
+msgstr "Содержимое для взрослых"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:505
msgid ""
-"The account {0} will be deleted!\\n\\nEverything this account has posted on "
-"this site will be permanently deleted!\\n\\nAre you sure?"
-msgstr "Этот аккаунт {0} будет удалён!\n\nВсё что им было опубликовано на этом сайте будет удалено навсегда!\n\nВы уверены?"
+"This channel frequently or regularly publishes adult content. (Please tag "
+"any adult material and/or nudity with #NSFW)"
+msgstr "Этот канал часто или регулярно публикует содержимое для взрослых. Пожалуйста, помечайте любой такой материал тегом #NSFW"
-#: ../../Zotlabs/Module/Admin/Dbsync.php:19
-msgid "Update has been marked successful"
-msgstr "Обновление было помечено как успешное"
+#: ../../Zotlabs/Module/Settings/Channel.php:507
+msgid "Security and Privacy Settings"
+msgstr "Безопасность и настройки приватности"
-#: ../../Zotlabs/Module/Admin/Dbsync.php:31
-#, php-format
-msgid "Executing %s failed. Check system logs."
-msgstr "Выполнение %s неудачно. Проверьте системный журнал."
+#: ../../Zotlabs/Module/Settings/Channel.php:509
+msgid "Your permissions are already configured. Click to view/adjust"
+msgstr "Ваши разрешения уже настроены. Нажмите чтобы просмотреть или изменить"
-#: ../../Zotlabs/Module/Admin/Dbsync.php:34
-#, php-format
-msgid "Update %s was successfully applied."
-msgstr "Обновление %sбыло успешно применено."
+#: ../../Zotlabs/Module/Settings/Channel.php:511
+msgid "Hide my online presence"
+msgstr "Скрывать моё присутствие онлайн"
-#: ../../Zotlabs/Module/Admin/Dbsync.php:38
+#: ../../Zotlabs/Module/Settings/Channel.php:511
+msgid "Prevents displaying in your profile that you are online"
+msgstr "Предотвращает отображения статуса \"в сети\" в вашем профиле"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:513
+msgid "Simple Privacy Settings:"
+msgstr "Простые настройки безопасности:"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:514
+msgid ""
+"Very Public - <em>extremely permissive (should be used with caution)</em>"
+msgstr "Полностью открытый - <em>сверхлиберальный (должен использоваться с осторожностью)</em>"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:515
+msgid ""
+"Typical - <em>default public, privacy when desired (similar to social "
+"network permissions but with improved privacy)</em>"
+msgstr "Обычный - <em>открытый по умолчанию, приватность по желанию (как в социальных сетях, но с улучшенными настройками)</em>"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:516
+msgid "Private - <em>default private, never open or public</em>"
+msgstr "Частный - <em>частный по умочанию, не открытый и не публичный</em>"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:517
+msgid "Blocked - <em>default blocked to/from everybody</em>"
+msgstr "Закрытый - <em>заблокированный по умолчанию от / для всех</em>"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:519
+msgid "Allow others to tag your posts"
+msgstr "Разрешить другим отмечать ваши публикации"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:519
+msgid ""
+"Often used by the community to retro-actively flag inappropriate content"
+msgstr "Часто используется сообществом для маркировки неподобающего содержания"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:521
+msgid "Channel Permission Limits"
+msgstr "Ограничения разрешений канала"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:523
+msgid "Expire other channel content after this many days"
+msgstr "Храненить содержимое других каналов, дней"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:523
+msgid "0 or blank to use the website limit."
+msgstr "0 или пусто - использовать настройки сайта."
+
+#: ../../Zotlabs/Module/Settings/Channel.php:523
#, php-format
-msgid "Update %s did not return a status. Unknown if it succeeded."
-msgstr "Обновление %s не вернуло статус. Неизвестно было ли оно успешным."
+msgid "This website expires after %d days."
+msgstr "Срок хранения содержимого этого сайта истекает через %d дней"
-#: ../../Zotlabs/Module/Admin/Dbsync.php:41
+#: ../../Zotlabs/Module/Settings/Channel.php:523
+msgid "This website does not expire imported content."
+msgstr "Срок хранения импортированного содержимого этого сайта не ограничен."
+
+#: ../../Zotlabs/Module/Settings/Channel.php:523
+msgid "The website limit takes precedence if lower than your limit."
+msgstr "Ограничение сайта имеет приоритет если ниже вашего значения."
+
+#: ../../Zotlabs/Module/Settings/Channel.php:524
+msgid "Maximum Friend Requests/Day:"
+msgstr "Запросов в друзья в день:"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:524
+msgid "May reduce spam activity"
+msgstr "Может ограничить спам активность"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:525
+msgid "Default Privacy Group"
+msgstr "Группа конфиденциальности по умолчанию"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:527
+msgid "Use my default audience setting for the type of object published"
+msgstr "Использовать настройки аудитории по умолчанию для типа опубликованного объекта"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:536
+msgid "Default permissions category"
+msgstr "Категория разрешений по умолчанию"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:542
+msgid "Maximum private messages per day from unknown people:"
+msgstr "Максимально количество сообщений от незнакомых людей, в день:"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:542
+msgid "Useful to reduce spamming"
+msgstr "Полезно для сокращения количества спама"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:545
+#: ../../Zotlabs/Lib/Enotify.php:68
+msgid "Notification Settings"
+msgstr "Настройки уведомлений"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:546
+msgid "By default post a status message when:"
+msgstr "По умолчанию публиковать новый статус при:"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:547
+msgid "accepting a friend request"
+msgstr "одобрении запроса в друзья"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:548
+msgid "joining a forum/community"
+msgstr "вступлении в сообщество / форум"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:549
+msgid "making an <em>interesting</em> profile change"
+msgstr "<em>интересном</em> изменении профиля"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:550
+msgid "Send a notification email when:"
+msgstr "Отправить уведомление по email когда:"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:551
+msgid "You receive a connection request"
+msgstr "вы получили новый запрос контакта"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:552
+msgid "Your connections are confirmed"
+msgstr "Ваш запрос контакта был одобрен"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:553
+msgid "Someone writes on your profile wall"
+msgstr "Кто-то написал на стене вашего профиля"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:554
+msgid "Someone writes a followup comment"
+msgstr "Кто-то пишет комментарий"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:555
+msgid "You receive a private message"
+msgstr "Вы получили личное сообщение"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:556
+msgid "You receive a friend suggestion"
+msgstr "Вы получили предложение друзей"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:557
+msgid "You are tagged in a post"
+msgstr "Вы были отмечены в публикации"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:558
+msgid "You are poked/prodded/etc. in a post"
+msgstr "Вас толкнули, подтолкнули и т.п. в публикации"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:560
+msgid "Someone likes your post/comment"
+msgstr "Кому-то нравится ваша публикация / комментарий"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:563
+msgid "Show visual notifications including:"
+msgstr "Показывать визуальные оповещения включая:"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:565
+msgid "Unseen stream activity"
+msgstr "Невидимая активность в потоке"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:566
+msgid "Unseen channel activity"
+msgstr "Невидимая активность в канале"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:567
+msgid "Unseen private messages"
+msgstr "Невидимые личные сообщения"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:572
+#: ../../Zotlabs/Module/Settings/Channel.php:573
+#: ../../Zotlabs/Module/Settings/Channel.php:574
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
+msgid "Recommended"
+msgstr "Рекомендовано"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:568
+msgid "Upcoming events"
+msgstr "Грядущие события"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:569
+msgid "Events today"
+msgstr "События сегодня"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:570
+msgid "Upcoming birthdays"
+msgstr "Грядущие дни рождения"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:570
+msgid "Not available in all themes"
+msgstr "Не доступно во всех темах"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:571
+msgid "System (personal) notifications"
+msgstr "Системные (личные) уведомления"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:572
+msgid "System info messages"
+msgstr "Сообщения с системной информацией"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:573
+msgid "System critical alerts"
+msgstr "Критические уведомления системы"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:574
+msgid "New connections"
+msgstr "Новые контакты"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:575
+msgid "System Registrations"
+msgstr "Системные регистрации"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:576
+msgid "Unseen shared files"
+msgstr "Невидимые общие файлы"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:577
+msgid "Unseen public stream activity"
+msgstr "Невидимая активность в публичном потоке"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:578
+msgid "Unseen likes and dislikes"
+msgstr "Невидимые лайки и дислайки"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:579
+msgid "Unseen forum posts"
+msgstr "Невидимые публикации на форуме"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:580
+msgid "Email notification hub (hostname)"
+msgstr "Центр уведомлений по email (имя хоста)"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:580
#, php-format
-msgid "Update function %s could not be found."
-msgstr "Функция обновления %sне может быть найдена."
+msgid ""
+"If your channel is mirrored to multiple hubs, set this to your preferred "
+"location. This will prevent duplicate email notifications. Example: %s"
+msgstr "Если ваш канал зеркалируется в нескольких местах, это ваше предпочтительное местоположение. Это должно предотвратить дублировать уведомлений по email. Например: %s"
-#: ../../Zotlabs/Module/Admin/Dbsync.php:59
-msgid "Failed Updates"
-msgstr "Обновления с ошибками"
+#: ../../Zotlabs/Module/Settings/Channel.php:581
+msgid "Show new wall posts, private messages and connections under Notices"
+msgstr "Показать новые сообщения на стене, личные сообщения и контакты в \"Уведомлениях\""
-#: ../../Zotlabs/Module/Admin/Dbsync.php:61
-msgid "Mark success (if update was manually applied)"
-msgstr "Пометить успешным (если обновление было применено вручную)"
+#: ../../Zotlabs/Module/Settings/Channel.php:583
+msgid "Notify me of events this many days in advance"
+msgstr "Уведомлять меня о событиях заранее, дней"
-#: ../../Zotlabs/Module/Admin/Dbsync.php:62
-msgid "Attempt to execute this update step automatically"
-msgstr "Попытаться применить это обновление автоматически"
+#: ../../Zotlabs/Module/Settings/Channel.php:583
+msgid "Must be greater than 0"
+msgstr "Должно быть больше 0"
-#: ../../Zotlabs/Module/Admin/Dbsync.php:67
-msgid "No failed updates."
-msgstr "Ошибок обновлений нет."
+#: ../../Zotlabs/Module/Settings/Channel.php:588
+msgid "Advanced Account/Page Type Settings"
+msgstr "Дополнительные настройки учётной записи / страницы"
-#: ../../Zotlabs/Module/Admin/Account_edit.php:29
+#: ../../Zotlabs/Module/Settings/Channel.php:589
+msgid "Change the behaviour of this account for special situations"
+msgstr "Изменить поведение этого аккаунта в особых ситуациях"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:591
+msgid "Miscellaneous Settings"
+msgstr "Дополнительные настройки"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:592
+msgid "Default photo upload folder"
+msgstr "Каталог загрузки фотографий по умолчанию"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:592
+#: ../../Zotlabs/Module/Settings/Channel.php:593
+msgid "%Y - current year, %m - current month"
+msgstr "%Y - текущий год, %y - текущий месяц"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:593
+msgid "Default file upload folder"
+msgstr "Каталог загрузки файлов по умолчанию"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:595
+msgid "Remove this channel."
+msgstr "Удалить этот канал."
+
+#: ../../Zotlabs/Module/Settings/Features.php:43
+msgid "Additional Features"
+msgstr "Дополнительные функции"
+
+#: ../../Zotlabs/Module/Settings/Events.php:39
+msgid "Events Settings"
+msgstr "Настройки событий"
+
+#: ../../Zotlabs/Module/Settings/Calendar.php:39
+msgid "CalDAV Settings"
+msgstr "Настройки CalDAV"
+
+#: ../../Zotlabs/Module/Settings/Conversation.php:22
+msgid "Settings saved."
+msgstr "Настройки сохранены."
+
+#: ../../Zotlabs/Module/Settings/Conversation.php:24
+msgid "Settings saved. Reload page please."
+msgstr "Настройки сохранены. Пожалуйста, перезагрузите страницу."
+
+#: ../../Zotlabs/Module/Settings/Conversation.php:46
+msgid "Conversation Settings"
+msgstr "Настройки бесед"
+
+#: ../../Zotlabs/Module/Settings/Connections.php:39
+msgid "Connections Settings"
+msgstr "Настройки контактов"
+
+#: ../../Zotlabs/Module/Settings/Photos.php:39
+msgid "Photos Settings"
+msgstr "Настройки фотографий"
+
+#: ../../Zotlabs/Module/Settings/Account.php:19
+msgid "Not valid email."
+msgstr "Не действительный адрес email."
+
+#: ../../Zotlabs/Module/Settings/Account.php:22
+msgid "Protected email address. Cannot change to that email."
+msgstr "Защищенный адрес электронной почты. Нельзя изменить."
+
+#: ../../Zotlabs/Module/Settings/Account.php:31
+msgid "System failure storing new email. Please try again."
+msgstr "Системная ошибка сохранения email. Пожалуйста попробуйте ещё раз."
+
+#: ../../Zotlabs/Module/Settings/Account.php:48
+msgid "Password verification failed."
+msgstr "Не удалось выполнить проверку пароля."
+
+#: ../../Zotlabs/Module/Settings/Account.php:55
+msgid "Passwords do not match. Password unchanged."
+msgstr "Пароли не совпадают. Пароль не изменён."
+
+#: ../../Zotlabs/Module/Settings/Account.php:59
+msgid "Empty passwords are not allowed. Password unchanged."
+msgstr "Пустые пароли не допускаются. Пароль не изменён."
+
+#: ../../Zotlabs/Module/Settings/Account.php:73
+msgid "Password changed."
+msgstr "Пароль изменен."
+
+#: ../../Zotlabs/Module/Settings/Account.php:75
+msgid "Password update failed. Please try again."
+msgstr "Изменение пароля не удалось. Пожалуйста, попробуйте ещё раз."
+
+#: ../../Zotlabs/Module/Settings/Account.php:99
+msgid "Account Settings"
+msgstr "Настройки аккаунта"
+
+#: ../../Zotlabs/Module/Settings/Account.php:100
+msgid "Current Password"
+msgstr "Текущий пароль"
+
+#: ../../Zotlabs/Module/Settings/Account.php:101
+msgid "Enter New Password"
+msgstr "Введите новый пароль:"
+
+#: ../../Zotlabs/Module/Settings/Account.php:102
+msgid "Confirm New Password"
+msgstr "Подтвердите новый пароль:"
+
+#: ../../Zotlabs/Module/Settings/Account.php:102
+msgid "Leave password fields blank unless changing"
+msgstr "Оставьте поля пустыми до измнения"
+
+#: ../../Zotlabs/Module/Settings/Account.php:105
+#: ../../Zotlabs/Module/Removeaccount.php:61
+msgid "Remove Account"
+msgstr "Удалить аккаунт"
+
+#: ../../Zotlabs/Module/Settings/Account.php:106
+msgid "Remove this account including all its channels"
+msgstr "Удалить этот аккаунт включая все каналы"
+
+#: ../../Zotlabs/Module/Settings/Profiles.php:47
+msgid "Profiles Settings"
+msgstr "Настройки профилей"
+
+#: ../../Zotlabs/Module/Settings/Manage.php:39
+msgid "Channel Manager Settings"
+msgstr "Настройки менеджера канала"
+
+#: ../../Zotlabs/Module/Settings/Featured.php:24
+msgid "No feature settings configured"
+msgstr "Параметры функций не настроены"
+
+#: ../../Zotlabs/Module/Settings/Featured.php:33
+msgid "Addon Settings"
+msgstr "Настройки расширений"
+
+#: ../../Zotlabs/Module/Settings/Featured.php:34
+msgid "Please save/submit changes to any panel before opening another."
+msgstr "Пожалуйста сохраните / отправьте изменения на панели прежде чем открывать другую."
+
+#: ../../Zotlabs/Module/Settings/Channel_home.php:44
+#: ../../Zotlabs/Module/Settings/Network.php:41
+msgid "Max height of content (in pixels)"
+msgstr "Максимальная высота содержимого (в пикселях)"
+
+#: ../../Zotlabs/Module/Settings/Channel_home.php:46
+#: ../../Zotlabs/Module/Settings/Network.php:43
+msgid "Click to expand content exceeding this height"
+msgstr "Нажмите чтобы развернуть содержимое превышающее эту высоту"
+
+#: ../../Zotlabs/Module/Settings/Channel_home.php:59
+msgid "Personal menu to display in your channel pages"
+msgstr "Персональное меню для отображения на странице вашего канала"
+
+#: ../../Zotlabs/Module/Settings/Channel_home.php:86
+msgid "Channel Home Settings"
+msgstr "Настройки главной страницы канала"
+
+#: ../../Zotlabs/Module/Settings/Directory.php:39
+msgid "Directory Settings"
+msgstr "Настройки каталога"
+
+#: ../../Zotlabs/Module/Settings/Editor.php:39
+msgid "Editor Settings"
+msgstr "Настройки редактора"
+
+#: ../../Zotlabs/Module/Settings/Display.php:128
#, php-format
-msgid "Password changed for account %d."
-msgstr "Пароль для аккаунта %d изменён."
+msgid "%s - (Experimental)"
+msgstr "%s - (экспериментальный)"
-#: ../../Zotlabs/Module/Admin/Account_edit.php:46
-msgid "Account settings updated."
-msgstr "Настройки аккаунта обновлены."
+#: ../../Zotlabs/Module/Settings/Display.php:184
+msgid "Display Settings"
+msgstr "Настройки отображения"
-#: ../../Zotlabs/Module/Admin/Account_edit.php:61
-msgid "Account not found."
-msgstr "Учётная запись не найдена."
+#: ../../Zotlabs/Module/Settings/Display.php:185
+msgid "Theme Settings"
+msgstr "Настройки темы"
-#: ../../Zotlabs/Module/Admin/Account_edit.php:68
-msgid "Account Edit"
-msgstr "Редактировать аккаунт"
+#: ../../Zotlabs/Module/Settings/Display.php:186
+msgid "Custom Theme Settings"
+msgstr "Дополнительные настройки темы"
-#: ../../Zotlabs/Module/Admin/Account_edit.php:69
-msgid "New Password"
-msgstr "Новый пароль"
+#: ../../Zotlabs/Module/Settings/Display.php:187
+msgid "Content Settings"
+msgstr "Настройки содержимого"
-#: ../../Zotlabs/Module/Admin/Account_edit.php:70
-msgid "New Password again"
-msgstr "Повторите новый пароль"
+#: ../../Zotlabs/Module/Settings/Display.php:193
+msgid "Display Theme:"
+msgstr "Тема отображения:"
-#: ../../Zotlabs/Module/Admin/Account_edit.php:71
-msgid "Account language (for emails)"
-msgstr "Язык сообщения для email"
+#: ../../Zotlabs/Module/Settings/Display.php:194
+msgid "Select scheme"
+msgstr "Выбрать схему"
-#: ../../Zotlabs/Module/Admin/Account_edit.php:72
-msgid "Service class"
-msgstr "Класс обслуживания"
+#: ../../Zotlabs/Module/Settings/Display.php:196
+msgid "Preload images before rendering the page"
+msgstr "Предзагрузка изображений перед обработкой страницы"
+
+#: ../../Zotlabs/Module/Settings/Display.php:196
+msgid ""
+"The subjective page load time will be longer but the page will be ready when "
+"displayed"
+msgstr "Субъективное время загрузки страницы будет длиннее, но страница будет готова при отображении"
+
+#: ../../Zotlabs/Module/Settings/Display.php:197
+msgid "Enable user zoom on mobile devices"
+msgstr "Включить масштабирование на мобильных устройствах"
+
+#: ../../Zotlabs/Module/Settings/Display.php:198
+msgid "Update browser every xx seconds"
+msgstr "Обновление браузера каждые N секунд"
+
+#: ../../Zotlabs/Module/Settings/Display.php:198
+msgid "Minimum of 10 seconds, no maximum"
+msgstr "Минимум 10 секунд, без максимума"
+
+#: ../../Zotlabs/Module/Settings/Display.php:199
+msgid "Maximum number of conversations to load at any time:"
+msgstr "Максимальное количество бесед для загрузки одновременно:"
+
+#: ../../Zotlabs/Module/Settings/Display.php:199
+msgid "Maximum of 100 items"
+msgstr "Максимум 100 элементов"
+
+#: ../../Zotlabs/Module/Settings/Display.php:200
+msgid "Show emoticons (smilies) as images"
+msgstr "Показывать эмотиконы (смайлики) как изображения"
+
+#: ../../Zotlabs/Module/Settings/Display.php:201
+msgid "Provide channel menu in navigation bar"
+msgstr "Показывать меню канала в панели навигации"
+
+#: ../../Zotlabs/Module/Settings/Display.php:201
+msgid "Default: channel menu located in app menu"
+msgstr "По умолчанию каналы расположены в меню приложения"
+
+#: ../../Zotlabs/Module/Settings/Display.php:202
+msgid "Manual conversation updates"
+msgstr "Обновление бесед вручную"
+
+#: ../../Zotlabs/Module/Settings/Display.php:202
+msgid "Default is on, turning this off may increase screen jumping"
+msgstr "Включено по умолчанию, выключение может привести к рывкам в отображении"
+
+#: ../../Zotlabs/Module/Settings/Display.php:203
+msgid "Link post titles to source"
+msgstr "Ссылки на источник заголовков публикаций"
+
+#: ../../Zotlabs/Module/Settings/Display.php:205
+#: ../../Zotlabs/Widget/Newmember.php:75
+msgid "New Member Links"
+msgstr "Ссылки для новичков"
+
+#: ../../Zotlabs/Module/Settings/Display.php:205
+msgid "Display new member quick links menu"
+msgstr "Показать меню быстрых ссылок для новых участников"
+
+#: ../../Zotlabs/Module/Settings/Network.php:58
+msgid "Stream Settings"
+msgstr "Настройки потока"
+
+#: ../../Zotlabs/Module/Embedphotos.php:148 ../../Zotlabs/Module/Photos.php:826
+#: ../../Zotlabs/Module/Photos.php:1374 ../../Zotlabs/Widget/Portfolio.php:87
+#: ../../Zotlabs/Widget/Album.php:78
+msgid "View Photo"
+msgstr "Посмотреть фотографию"
+
+#: ../../Zotlabs/Module/Embedphotos.php:164 ../../Zotlabs/Module/Photos.php:857
+#: ../../Zotlabs/Widget/Portfolio.php:108 ../../Zotlabs/Widget/Album.php:95
+msgid "Edit Album"
+msgstr "Редактировать Фотоальбом"
+
+#: ../../Zotlabs/Module/Embedphotos.php:166 ../../Zotlabs/Module/Photos.php:727
+#: ../../Zotlabs/Module/Profile_photo.php:459
+#: ../../Zotlabs/Module/Cover_photo.php:395
+#: ../../Zotlabs/Storage/Browser.php:392 ../../Zotlabs/Widget/Cdav.php:133
+#: ../../Zotlabs/Widget/Cdav.php:169 ../../Zotlabs/Widget/Portfolio.php:110
+#: ../../Zotlabs/Widget/Album.php:97
+msgid "Upload"
+msgstr "Загрузка"
#: ../../Zotlabs/Module/Tokens.php:39
#, php-format
@@ -9467,36 +4299,13 @@ 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:907
msgid "Their Settings"
msgstr "Их настройки"
-#: ../../Zotlabs/Module/Notifications.php:60
-#: ../../Zotlabs/Lib/ThreadItem.php:422
-msgid "Mark all seen"
-msgstr "Отметить как просмотренное"
-
-#: ../../Zotlabs/Module/Subthread.php:142
-#, 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
-#, php-format
-msgid "%1$s stopped following %2$s's %3$s"
-msgstr "%1$s прекратил отслеживать %2$s's %3$s"
-
-#: ../../Zotlabs/Module/Rpost.php:144 ../../Zotlabs/Module/Editpost.php:108
-msgid "Edit post"
-msgstr "Редактировать сообщение"
-
-#: ../../Zotlabs/Module/Editwebpage.php:139
-msgid "Page link"
-msgstr "Ссылка страницы"
-
-#: ../../Zotlabs/Module/Editwebpage.php:166
-msgid "Edit Webpage"
-msgstr "Редактировать веб-страницу"
+#: ../../Zotlabs/Module/Achievements.php:38
+msgid "Some blurb about what to do when you're new here"
+msgstr "Некоторые предложения о том, что делать, если вы здесь новичок "
#: ../../Zotlabs/Module/Thing.php:120
msgid "Thing updated"
@@ -9551,507 +4360,291 @@ msgstr "URL (необязательно)"
msgid "URL for photo of thing (optional)"
msgstr "URL для фотографии (необязательно)"
+#: ../../Zotlabs/Module/Thing.php:319 ../../Zotlabs/Module/Thing.php:372
+#: ../../Zotlabs/Module/Photos.php:717 ../../Zotlabs/Module/Photos.php:1086
+#: ../../Zotlabs/Module/Connedit.php:690 ../../Zotlabs/Module/Chat.php:243
+#: ../../Zotlabs/Module/Filestorage.php:170 ../../include/acl_selectors.php:123
+msgid "Permissions"
+msgstr "Разрешения"
+
#: ../../Zotlabs/Module/Thing.php:362
msgid "Add Thing to your Profile"
msgstr "Добавить к вашему профилю"
-#: ../../Zotlabs/Module/Hq.php:140
-msgid "Welcome to Hubzilla!"
-msgstr "Добро пожаловать в Hubzilla!"
-
-#: ../../Zotlabs/Module/Hq.php:140
-msgid "You have got no unseen posts..."
-msgstr "У вас нет видимых публикаций..."
-
-#: ../../Zotlabs/Module/Search.php:230
-#, php-format
-msgid "Items tagged with: %s"
-msgstr "Объекты помечены как: %s"
-
-#: ../../Zotlabs/Module/Search.php:232
-#, php-format
-msgid "Search results for: %s"
-msgstr "Результаты поиска для: %s"
-
-#: ../../Zotlabs/Module/Notes.php:55
-msgid "Notes App"
-msgstr "Приложение \"Заметки\""
-
-#: ../../Zotlabs/Module/Notes.php:56
-msgid "A simple notes app with a widget (note: notes are not encrypted)"
-msgstr "Простое приложение для заметок с виджетом (примечание: заметки не зашифрованы)"
-
-#: ../../Zotlabs/Module/Moderate.php:65
-msgid "Comment approved"
-msgstr "Комментарий одобрен"
-
-#: ../../Zotlabs/Module/Moderate.php:69
-msgid "Comment deleted"
-msgstr "Комментарий удалён"
-
-#: ../../Zotlabs/Module/Webpages.php:48
-msgid "Webpages App"
-msgstr "Приложение \"Веб-страницы\""
-
-#: ../../Zotlabs/Module/Webpages.php:49
-msgid "Provide managed web pages on your channel"
-msgstr "Предоставлять управляемые веб-страницы на Вашем канале"
-
-#: ../../Zotlabs/Module/Webpages.php:69
-msgid "Import Webpage Elements"
-msgstr "Импортировать части веб-страницы"
-
-#: ../../Zotlabs/Module/Webpages.php:70
-msgid "Import selected"
-msgstr "Импортировать выбранное"
-
-#: ../../Zotlabs/Module/Webpages.php:93
-msgid "Export Webpage Elements"
-msgstr "Экспортировать часть веб-страницы"
-
-#: ../../Zotlabs/Module/Webpages.php:94
-msgid "Export selected"
-msgstr "Экспортировать выбранное"
-
-#: ../../Zotlabs/Module/Webpages.php:263
-msgid "Actions"
-msgstr "Действия"
-
-#: ../../Zotlabs/Module/Webpages.php:264
-msgid "Page Link"
-msgstr "Ссылка страницы"
-
-#: ../../Zotlabs/Module/Webpages.php:265
-msgid "Page Title"
-msgstr "Заголовок страницы"
-
-#: ../../Zotlabs/Module/Webpages.php:295
-msgid "Invalid file type."
-msgstr "Неверный тип файла."
-
-#: ../../Zotlabs/Module/Webpages.php:307
-msgid "Error opening zip file"
-msgstr "Ошибка открытия ZIP файла"
-
-#: ../../Zotlabs/Module/Webpages.php:318
-msgid "Invalid folder path."
-msgstr "Неверный путь к каталогу."
-
-#: ../../Zotlabs/Module/Webpages.php:345
-msgid "No webpage elements detected."
-msgstr "Не обнаружено частей веб-страницы."
-
-#: ../../Zotlabs/Module/Webpages.php:420
-msgid "Import complete."
-msgstr "Импорт завершен."
-
-#: ../../Zotlabs/Module/Home.php:72 ../../Zotlabs/Module/Home.php:80
-#: ../../Zotlabs/Lib/Enotify.php:66
-#: ../../extend/addon/hzaddons/opensearch/opensearch.php:42
-msgid "$Projectname"
-msgstr ""
-
-#: ../../Zotlabs/Module/Home.php:90
-#, php-format
-msgid "Welcome to %s"
-msgstr "Добро пожаловать в %s"
-
-#: ../../Zotlabs/Module/Profile_photo.php:218
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:298
-msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
-msgstr "Если новая фотография не отображается немедленно то нажмите Shift + \"Обновить\" для очистки кэша браузера"
-
-#: ../../Zotlabs/Module/Profile_photo.php:454
-msgid ""
-"Your default profile photo is visible to anybody on the internet. Profile "
-"photos for alternate profiles will inherit the permissions of the profile"
-msgstr "Фотография вашего профиля по умолчанию видна всем в Интернете. Фотографияпрофиля для альтернативных профилей наследуют разрешения текущего профиля"
-
-#: ../../Zotlabs/Module/Profile_photo.php:454
-msgid ""
-"Your profile photo is visible to anybody on the internet and may be "
-"distributed to other websites."
-msgstr "Фотография вашего профиля видна всем в Интернете и может быть отправлена на другие сайты."
-
-#: ../../Zotlabs/Module/Profile_photo.php:458
-msgid "Use Photo for Profile"
-msgstr "Использовать фотографию для профиля"
-
-#: ../../Zotlabs/Module/Profile_photo.php:458
-msgid "Change Profile Photo"
-msgstr "Изменить фотографию профиля"
-
-#: ../../Zotlabs/Module/Profile_photo.php:459
-msgid "Use"
-msgstr "Использовать"
-
-#: ../../Zotlabs/Module/Rbmark.php:94
-msgid "Select a bookmark folder"
-msgstr "Выбрать каталог для закладок"
-
-#: ../../Zotlabs/Module/Rbmark.php:99
-msgid "Save Bookmark"
-msgstr "Сохранить закладку"
-
-#: ../../Zotlabs/Module/Rbmark.php:100
-msgid "URL of bookmark"
-msgstr "URL закладки"
+#: ../../Zotlabs/Module/Notify.php:61 ../../Zotlabs/Module/Notifications.php:55
+msgid "No more system notifications."
+msgstr "Нет новых оповещений системы."
-#: ../../Zotlabs/Module/Rbmark.php:105
-msgid "Or enter new bookmark folder name"
-msgstr "или введите новое имя каталога закладок"
+#: ../../Zotlabs/Module/Notify.php:65 ../../Zotlabs/Module/Notifications.php:59
+msgid "System Notifications"
+msgstr "Системные оповещения "
#: ../../Zotlabs/Module/Follow.php:36
msgid "Connection added."
msgstr "Контакт добавлен."
-#: ../../Zotlabs/Module/Editpost.php:38 ../../Zotlabs/Module/Editpost.php:43
-msgid "Item is not editable"
-msgstr "Элемент нельзя редактировать"
-
-#: ../../Zotlabs/Module/Connedit.php:110
-msgid "Could not locate selected profile."
-msgstr "Не удалось обнаружить выбранный профиль."
-
-#: ../../Zotlabs/Module/Connedit.php:247
-msgid "Connection updated."
-msgstr "Контакты обновлены."
-
-#: ../../Zotlabs/Module/Connedit.php:249
-msgid "Failed to update connection record."
-msgstr "Не удалось обновить запись контакта."
-
-#: ../../Zotlabs/Module/Connedit.php:303
-msgid "is now connected to"
-msgstr "теперь подключён к"
-
-#: ../../Zotlabs/Module/Connedit.php:428
-msgid "Could not access address book record."
-msgstr "Не удалось получить доступ к записи адресной книги."
-
-#: ../../Zotlabs/Module/Connedit.php:476
-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
-msgid "Unable to set address book parameters."
-msgstr "Не удалось получить доступ к параметрам адресной книги."
-
-#: ../../Zotlabs/Module/Connedit.php:555
-msgid "Connection has been removed."
-msgstr "Контакт был удалён."
-
-#: ../../Zotlabs/Module/Connedit.php:598
+#: ../../Zotlabs/Module/Import.php:155
#, php-format
-msgid "View %s's profile"
-msgstr "Просмотр %s профиля"
-
-#: ../../Zotlabs/Module/Connedit.php:602
-msgid "Refresh Permissions"
-msgstr "Обновить разрешения"
-
-#: ../../Zotlabs/Module/Connedit.php:605
-msgid "Fetch updated permissions"
-msgstr "Получить обновлённые разрешения"
-
-#: ../../Zotlabs/Module/Connedit.php:609
-msgid "Refresh Photo"
-msgstr "Обновить фотографию"
-
-#: ../../Zotlabs/Module/Connedit.php:612
-msgid "Fetch updated photo"
-msgstr "Получить обновлённую фотографию"
-
-#: ../../Zotlabs/Module/Connedit.php:619
-msgid "View recent posts and comments"
-msgstr "Просмотреть последние публикации и комментарии"
-
-#: ../../Zotlabs/Module/Connedit.php:626
-msgid "Block (or Unblock) all communications with this connection"
-msgstr "Блокировать (или разблокировать) связи с этим контактом"
-
-#: ../../Zotlabs/Module/Connedit.php:627
-msgid "This connection is blocked!"
-msgstr "Этот контакт заблокирован!"
-
-#: ../../Zotlabs/Module/Connedit.php:631
-msgid "Unignore"
-msgstr "Не игнорировать"
-
-#: ../../Zotlabs/Module/Connedit.php:631
-#: ../../Zotlabs/Module/Connections.php:308
-msgid "Ignore"
-msgstr "Игнорировать"
+msgid "Your service plan only allows %d channels."
+msgstr "Ваш класс обслуживания разрешает только %d каналов."
-#: ../../Zotlabs/Module/Connedit.php:634
-msgid "Ignore (or Unignore) all inbound communications from this connection"
-msgstr "Игнорировать (или не игнорировать) все связи для этого контакта"
+#: ../../Zotlabs/Module/Import.php:182
+msgid "No channel. Import failed."
+msgstr "Канала нет. Импорт невозможен."
-#: ../../Zotlabs/Module/Connedit.php:635
-msgid "This connection is ignored!"
-msgstr "Этот контакт игнорируется!"
+#: ../../Zotlabs/Module/Import.php:522
+#: ../../addon/diaspora/import_diaspora.php:141
+msgid "Import completed."
+msgstr "Импорт завершен."
-#: ../../Zotlabs/Module/Connedit.php:639
-msgid "Unarchive"
-msgstr "Разархивировать"
+#: ../../Zotlabs/Module/Import.php:550
+msgid "You must be logged in to use this feature."
+msgstr "Вы должны войти в систему, чтобы использовать эту функцию."
-#: ../../Zotlabs/Module/Connedit.php:639
-msgid "Archive"
-msgstr "Заархивировать"
+#: ../../Zotlabs/Module/Import.php:555
+msgid "Import Channel"
+msgstr "Импортировать канал"
-#: ../../Zotlabs/Module/Connedit.php:642
+#: ../../Zotlabs/Module/Import.php:556
msgid ""
-"Archive (or Unarchive) this connection - mark channel dead but keep content"
-msgstr "Заархивировать (или разархивировать) этот контакт - пометить канал отключённым но сохранить содержимое"
-
-#: ../../Zotlabs/Module/Connedit.php:643
-msgid "This connection is archived!"
-msgstr "Этот контакт заархивирован!"
-
-#: ../../Zotlabs/Module/Connedit.php:647
-msgid "Unhide"
-msgstr "Показать"
+"Use this form to import an existing channel from a different server/hub. You "
+"may retrieve the channel identity from the old server/hub via the network or "
+"provide an export file."
+msgstr "Используйте эту форм для импорта существующего канала с другого сервера / хаба. Вы можете получить идентификационные данные канала со старого сервера / хаба через сеть или предоставить файл экспорта."
-#: ../../Zotlabs/Module/Connedit.php:647
-msgid "Hide"
-msgstr "Скрыть"
+#: ../../Zotlabs/Module/Import.php:558
+msgid "Or provide the old server/hub details"
+msgstr "или предоставьте данные старого сервера"
-#: ../../Zotlabs/Module/Connedit.php:650
-msgid "Hide or Unhide this connection from your other connections"
-msgstr "Скрыть или показать этот контакт от / для остальных"
+#: ../../Zotlabs/Module/Import.php:560
+msgid "Your old identity address (xyz@example.com)"
+msgstr "Ваш старый адрес идентичности (xyz@example.com)"
-#: ../../Zotlabs/Module/Connedit.php:651
-msgid "This connection is hidden!"
-msgstr "Этот контакт скрыт!"
+#: ../../Zotlabs/Module/Import.php:561
+msgid "Your old login email address"
+msgstr "Ваш старый адрес электронной почты"
-#: ../../Zotlabs/Module/Connedit.php:658
-msgid "Delete this connection"
-msgstr "Удалить этот контакт"
+#: ../../Zotlabs/Module/Import.php:562
+msgid "Your old login password"
+msgstr "Ваш старый пароль"
-#: ../../Zotlabs/Module/Connedit.php:666
-msgid "Fetch Vcard"
-msgstr "Получить vCard"
+#: ../../Zotlabs/Module/Import.php:563
+msgid "Import a few months of posts if possible (limited by available memory"
+msgstr "Импортировать несколько месяцев публикаций если возможно (ограничено доступной памятью)"
-#: ../../Zotlabs/Module/Connedit.php:669
-msgid "Fetch electronic calling card for this connection"
-msgstr "Получить электронную телефонную карточку для этого контакта"
+#: ../../Zotlabs/Module/Import.php:565
+msgid ""
+"For either option, please choose whether to make this hub your new primary "
+"address, or whether your old location should continue this role. You will be "
+"able to post from either location, but only one can be marked as the primary "
+"location for files, photos, and media."
+msgstr "Для любого варианта, пожалуйста, выберите, следует ли сделать этот хаб вашим новым основным адресом, или ваше прежнее местоположение должно продолжить выполнять эту роль. Вы сможете отправлять сообщения из любого местоположения, но только одно может быть помечено как основное место для файлов, фотографий и мультимедиа."
-#: ../../Zotlabs/Module/Connedit.php:680
-msgid "Open Individual Permissions section by default"
-msgstr "Открывать раздел \"Индивидуальные разрешения\" по умолчанию"
+#: ../../Zotlabs/Module/Import.php:567
+msgid "Make this hub my primary location"
+msgstr "Сделать этот хаб главным"
-#: ../../Zotlabs/Module/Connedit.php:703
-msgid "Affinity"
-msgstr "Сходство"
+#: ../../Zotlabs/Module/Import.php:568
+msgid "Move this channel (disable all previous locations)"
+msgstr "Переместить это канал (отключить все предыдущие месторасположения)"
-#: ../../Zotlabs/Module/Connedit.php:706
-msgid "Open Set Affinity section by default"
-msgstr "Открыть секцию установления сходства по умолчанию"
+#: ../../Zotlabs/Module/Import.php:569
+msgid "Use this channel nickname instead of the one provided"
+msgstr "Использовать псевдоним этого канала вместо предоставленного"
-#: ../../Zotlabs/Module/Connedit.php:710 ../../Zotlabs/Widget/Affinity.php:22
-msgid "Me"
-msgstr "Я"
+#: ../../Zotlabs/Module/Import.php:569
+msgid ""
+"Leave blank to keep your existing channel nickname. You will be randomly "
+"assigned a similar nickname if either name is already allocated on this site."
+msgstr "Оставьте пустым для сохранения существующего псевдонима канала. Вам будет случайным образом назначен похожий псевдоним если такое имя уже выделено на этом сайте."
-#: ../../Zotlabs/Module/Connedit.php:711 ../../Zotlabs/Widget/Affinity.php:23
-msgid "Family"
-msgstr "Семья"
+#: ../../Zotlabs/Module/Import.php:571
+msgid ""
+"This process may take several minutes to complete. Please submit the form "
+"only once and leave this page open until finished."
+msgstr "Процесс может занять несколько минут. Пожалуйста, отправьте форму только один раз и оставьте эту страницу открытой до завершения."
-#: ../../Zotlabs/Module/Connedit.php:713 ../../Zotlabs/Widget/Affinity.php:25
-msgid "Acquaintances"
-msgstr "Знакомые"
+#: ../../Zotlabs/Module/Rmagic.php:44
+msgid "Authentication failed."
+msgstr "Ошибка аутентификации."
-#: ../../Zotlabs/Module/Connedit.php:714
-#: ../../Zotlabs/Module/Connections.php:97
-#: ../../Zotlabs/Module/Connections.php:111
-#: ../../Zotlabs/Widget/Affinity.php:26
-msgid "All"
-msgstr "Все"
+#: ../../Zotlabs/Module/Rmagic.php:93 ../../boot.php:1630
+#: ../../include/channel.php:2405
+msgid "Remote Authentication"
+msgstr "Удаленная аутентификация"
-#: ../../Zotlabs/Module/Connedit.php:740
-msgid "Filter"
-msgstr "Фильтр"
+#: ../../Zotlabs/Module/Rmagic.php:94 ../../include/channel.php:2406
+msgid "Enter your channel address (e.g. channel@example.com)"
+msgstr "Введите адрес вашего канала (например: channel@example.com)"
-#: ../../Zotlabs/Module/Connedit.php:743
-msgid "Open Custom Filter section by default"
-msgstr "Открывать секцию \"Настраиваемый фильтр\" по умолчанию"
+#: ../../Zotlabs/Module/Rmagic.php:95 ../../include/channel.php:2407
+msgid "Authenticate"
+msgstr "Проверка подлинности"
-#: ../../Zotlabs/Module/Connedit.php:780
-msgid "Approve this connection"
-msgstr "Утвердить этот контакт"
+#: ../../Zotlabs/Module/Oauth2.php:54
+msgid "Name and Secret are required"
+msgstr "Требуются имя и код"
-#: ../../Zotlabs/Module/Connedit.php:780
-msgid "Accept connection to allow communication"
-msgstr "Принять контакт чтобы разрешить связь"
+#: ../../Zotlabs/Module/Oauth2.php:106
+msgid "OAuth2 Apps Manager App"
+msgstr "Приложение \"Менеджер Oauth2\""
-#: ../../Zotlabs/Module/Connedit.php:785
-msgid "Set Affinity"
-msgstr "Установить сходство"
+#: ../../Zotlabs/Module/Oauth2.php:107
+msgid "OAuth2 authenticatication tokens for mobile and remote apps"
+msgstr "Аутентификация OAuth2 для мобильных и удаленных приложений"
-#: ../../Zotlabs/Module/Connedit.php:788
-msgid "Set Profile"
-msgstr "Установить профиль"
+#: ../../Zotlabs/Module/Oauth2.php:115
+msgid "Add OAuth2 application"
+msgstr "Добавить приложение OAuth2"
-#: ../../Zotlabs/Module/Connedit.php:791
-msgid "Set Affinity & Profile"
-msgstr "Установить сходство и профиль"
+#: ../../Zotlabs/Module/Oauth2.php:118 ../../Zotlabs/Module/Oauth2.php:146
+#: ../../Zotlabs/Module/Oauth.php:113
+msgid "Name of application"
+msgstr "Название приложения"
-#: ../../Zotlabs/Module/Connedit.php:839
-msgid "This connection is unreachable from this location."
-msgstr "Этот контакт недоступен для данного местоположения"
+#: ../../Zotlabs/Module/Oauth2.php:119 ../../Zotlabs/Module/Oauth2.php:147
+#: ../../Zotlabs/Module/Oauth.php:115 ../../Zotlabs/Module/Oauth.php:141
+#: ../../addon/statusnet/statusnet.php:595 ../../addon/twitter/twitter.php:615
+msgid "Consumer Secret"
+msgstr "Код клиента"
-#: ../../Zotlabs/Module/Connedit.php:840
-msgid "This connection may be unreachable from other channel locations."
-msgstr "Этот контакт может быть недоступен из других мест размещения канала"
+#: ../../Zotlabs/Module/Oauth2.php:119 ../../Zotlabs/Module/Oauth2.php:147
+#: ../../Zotlabs/Module/Oauth.php:114 ../../Zotlabs/Module/Oauth.php:115
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr "Сгенерирован автоматические - измените если требуется. Макс. длина 20"
-#: ../../Zotlabs/Module/Connedit.php:842
-msgid "Location independence is not supported by their network."
-msgstr "Независимое местоположение не поддерживается их сетью."
+#: ../../Zotlabs/Module/Oauth2.php:120 ../../Zotlabs/Module/Oauth2.php:148
+#: ../../Zotlabs/Module/Oauth.php:116 ../../Zotlabs/Module/Oauth.php:142
+msgid "Redirect"
+msgstr "Перенаправление"
-#: ../../Zotlabs/Module/Connedit.php:848
+#: ../../Zotlabs/Module/Oauth2.php:120 ../../Zotlabs/Module/Oauth2.php:148
+#: ../../Zotlabs/Module/Oauth.php:116
msgid ""
-"This connection is unreachable from this location. Location independence is "
-"not supported by their network."
-msgstr "Этот контакт недоступен из данного местоположения. Независимое местоположение не поддерживается их сетью."
-
-#: ../../Zotlabs/Module/Connedit.php:852
-msgid "Connection requests will be approved without your interaction"
-msgstr "Запросы контактов будут одобрены без вашего участия"
+"Redirect URI - leave blank unless your application specifically requires this"
+msgstr "URI перенаправления - оставьте пустыми до тех пока ваше приложение не требует этого"
-#: ../../Zotlabs/Module/Connedit.php:861
-msgid "This connection's primary address is"
-msgstr "Главный адрес это контакта"
+#: ../../Zotlabs/Module/Oauth2.php:121 ../../Zotlabs/Module/Oauth2.php:149
+msgid "Grant Types"
+msgstr "Разрешить типы"
-#: ../../Zotlabs/Module/Connedit.php:862
-msgid "Available locations:"
-msgstr "Доступные расположения:"
+#: ../../Zotlabs/Module/Oauth2.php:121 ../../Zotlabs/Module/Oauth2.php:122
+msgid "leave blank unless your application sepcifically requires this"
+msgstr "оставьте пустыми до тех пока ваше приложение не требует этого"
-#: ../../Zotlabs/Module/Connedit.php:868
-msgid "Connection Tools"
-msgstr "Инструменты контактов"
+#: ../../Zotlabs/Module/Oauth2.php:122 ../../Zotlabs/Module/Oauth2.php:150
+msgid "Authorization scope"
+msgstr "Область полномочий"
-#: ../../Zotlabs/Module/Connedit.php:870
-msgid "Slide to adjust your degree of friendship"
-msgstr "Прокрутить для настройки степени дружбы"
+#: ../../Zotlabs/Module/Oauth2.php:134
+msgid "OAuth2 Application not found."
+msgstr "Приложение OAuth2 не найдено."
-#: ../../Zotlabs/Module/Connedit.php:872
-msgid "Slide to adjust your rating"
-msgstr "Прокрутить для настройки оценки"
+#: ../../Zotlabs/Module/Oauth2.php:143 ../../Zotlabs/Module/Oauth2.php:193
+#: ../../Zotlabs/Module/Oauth.php:110 ../../Zotlabs/Module/Oauth.php:136
+#: ../../Zotlabs/Module/Oauth.php:172
+msgid "Add application"
+msgstr "Добавить приложение"
-#: ../../Zotlabs/Module/Connedit.php:873 ../../Zotlabs/Module/Connedit.php:878
-msgid "Optionally explain your rating"
-msgstr "Объясните свою оценку (не обязательно)"
+#: ../../Zotlabs/Module/Oauth2.php:149 ../../Zotlabs/Module/Oauth2.php:150
+msgid "leave blank unless your application specifically requires this"
+msgstr "оставьте поле пустым, если ваше приложение не требует этого"
-#: ../../Zotlabs/Module/Connedit.php:875
-msgid "Custom Filter"
-msgstr "Настраиваемый фильтр"
+#: ../../Zotlabs/Module/Oauth2.php:192
+msgid "Connected OAuth2 Apps"
+msgstr "Подключённые приложения OAuth2"
-#: ../../Zotlabs/Module/Connedit.php:876
-msgid "Only import posts with this text"
-msgstr "Импортировать публикации только с этим текстом"
+#: ../../Zotlabs/Module/Oauth2.php:196 ../../Zotlabs/Module/Oauth.php:175
+msgid "Client key starts with"
+msgstr "Ключ клиента начинается с"
-#: ../../Zotlabs/Module/Connedit.php:877
-msgid "Do not import posts with this text"
-msgstr "Не импортировать публикации с этим текстом"
+#: ../../Zotlabs/Module/Oauth2.php:197 ../../Zotlabs/Module/Oauth.php:176
+msgid "No name"
+msgstr "Без названия"
-#: ../../Zotlabs/Module/Connedit.php:879
-msgid "This information is public!"
-msgstr "Эта информация общедоступна!"
+#: ../../Zotlabs/Module/Oauth2.php:198 ../../Zotlabs/Module/Oauth.php:177
+msgid "Remove authorization"
+msgstr "Удалить разрешение"
-#: ../../Zotlabs/Module/Connedit.php:884
-msgid "Connection Pending Approval"
-msgstr "Ожидающие подтверждения контактов"
+#: ../../Zotlabs/Module/Cal.php:70
+msgid "Permissions denied."
+msgstr "Доступ запрещен."
-#: ../../Zotlabs/Module/Connedit.php:889
-#, php-format
-msgid ""
-"Please choose the profile you would like to display to %s when viewing your "
-"profile securely."
-msgstr "Пожалуйста, выберите профиль который вы хотит показывать в %s при безопасном просмотре."
+#: ../../Zotlabs/Module/Cal.php:343 ../../include/text.php:2558
+msgid "Import"
+msgstr "Импортировать"
-#: ../../Zotlabs/Module/Connedit.php:896
-msgid ""
-"Some permissions may be inherited from your channel's <a href=\"settings"
-"\"><strong>privacy settings</strong></a>, which have higher priority than "
-"individual settings. You can change those settings here but they wont have "
-"any impact unless the inherited setting changes."
-msgstr "Некоторые разрешения могут быть унаследованы из <a href=\"settings\"><strong>настроек приватности</strong></a> вашего канала, которые могут иметь более высокий приоритет чем индивидуальные. Вы можете изменить эти настройки, однако они не будут применены до изменения переданных по наследству настроек."
+#: ../../Zotlabs/Module/Api.php:74 ../../Zotlabs/Module/Api.php:95
+msgid "Authorize application connection"
+msgstr "Авторизовать подключение приложения"
-#: ../../Zotlabs/Module/Connedit.php:897
-msgid "Last update:"
-msgstr "Последнее обновление:"
+#: ../../Zotlabs/Module/Api.php:75
+msgid "Return to your app and insert this Security Code:"
+msgstr "Вернитесь к своему приложению и вставьте этот код безопасности:"
-#: ../../Zotlabs/Module/Connedit.php:905
-msgid "Details"
-msgstr "Сведения"
+#: ../../Zotlabs/Module/Api.php:85
+msgid "Please login to continue."
+msgstr "Пожалуйста, войдите, чтобы продолжить."
-#: ../../Zotlabs/Module/Group.php:45
-msgid "Privacy group created."
-msgstr "Группа безопасности создана."
+#: ../../Zotlabs/Module/Api.php:97
+msgid ""
+"Do you want to authorize this application to access your posts and contacts, "
+"and/or create new posts for you?"
+msgstr "Вы хотите авторизовать это приложение для доступа к вашим публикациям и контактам и / или созданию новых публикаций?"
-#: ../../Zotlabs/Module/Group.php:48
-msgid "Could not create privacy group."
-msgstr "Не удалось создать группу безопасности."
+#: ../../Zotlabs/Module/Attach.php:13
+msgid "Item not available."
+msgstr "Элемент недоступен."
-#: ../../Zotlabs/Module/Group.php:77
-msgid "Privacy group updated."
-msgstr "Группа безопасности обновлена."
+#: ../../Zotlabs/Module/Randprof.php:29
+msgid "Random Channel App"
+msgstr "Приложение \"Случайный канал\""
-#: ../../Zotlabs/Module/Group.php:101
-msgid "Privacy Groups App"
-msgstr "Приложение \"Группы безопасности\""
+#: ../../Zotlabs/Module/Randprof.php:30
+msgid "Visit a random channel in the $Projectname network"
+msgstr "Посещение случайного канала в сети $Projectname"
-#: ../../Zotlabs/Module/Group.php:102
-msgid "Management of privacy groups"
-msgstr "Управление группами безопасности."
+#: ../../Zotlabs/Module/Editblock.php:138
+msgid "Edit Block"
+msgstr "Редактировать блок"
-#: ../../Zotlabs/Module/Group.php:133
-msgid "Add Group"
-msgstr "Добавить группу"
+#: ../../Zotlabs/Module/Profile.php:93
+msgid "vcard"
+msgstr "vCard"
-#: ../../Zotlabs/Module/Group.php:137
-msgid "Privacy group name"
-msgstr "Имя группы безопасности"
+#: ../../Zotlabs/Module/Apps.php:50 ../../Zotlabs/Widget/Appstore.php:14
+msgid "Available Apps"
+msgstr "Доступные приложения"
-#: ../../Zotlabs/Module/Group.php:138 ../../Zotlabs/Module/Group.php:239
-msgid "Members are visible to other channels"
-msgstr "Участники канала видимые для остальных"
+#: ../../Zotlabs/Module/Apps.php:50
+msgid "Installed Apps"
+msgstr "Установленные приложения"
-#: ../../Zotlabs/Module/Group.php:170
-msgid "Privacy group removed."
-msgstr "Группа безопасности удалена."
+#: ../../Zotlabs/Module/Apps.php:53
+msgid "Manage Apps"
+msgstr "Управление приложениями"
-#: ../../Zotlabs/Module/Group.php:172
-msgid "Unable to remove privacy group."
-msgstr "Ну удалось удалить группу безопасности."
+#: ../../Zotlabs/Module/Apps.php:54
+msgid "Create Custom App"
+msgstr "Создать пользовательское приложение"
-#: ../../Zotlabs/Module/Group.php:234
+#: ../../Zotlabs/Module/Mood.php:76 ../../include/conversation.php:268
#, php-format
-msgid "Privacy Group: %s"
-msgstr "Группа безопасности: %s"
-
-#: ../../Zotlabs/Module/Group.php:236
-msgid "Privacy group name: "
-msgstr "Название группы безопасности: "
-
-#: ../../Zotlabs/Module/Group.php:241
-msgid "Delete Group"
-msgstr "Удалить группу"
+msgctxt "mood"
+msgid "%1$s is %2$s"
+msgstr "%1$s в %2$s"
-#: ../../Zotlabs/Module/Group.php:251
-msgid "Group members"
-msgstr "Члены группы"
+#: ../../Zotlabs/Module/Mood.php:134
+msgid "Mood App"
+msgstr "Приложение \"Настроение\""
-#: ../../Zotlabs/Module/Group.php:253
-msgid "Not in this group"
-msgstr "Не в этой группе"
+#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Module/Mood.php:155
+msgid "Set your current mood and tell your friends"
+msgstr "Установить текущее настроение и рассказать друзьям"
-#: ../../Zotlabs/Module/Group.php:285
-msgid "Click a channel to toggle membership"
-msgstr "Нажмите на канал для просмотра членства"
+#: ../../Zotlabs/Module/Mood.php:154 ../../Zotlabs/Lib/Apps.php:347
+msgid "Mood"
+msgstr "Настроение"
#: ../../Zotlabs/Module/Connections.php:58
#: ../../Zotlabs/Module/Connections.php:115
@@ -10082,6 +4675,18 @@ msgstr "Скрыт"
msgid "Archived/Unreachable"
msgstr "Заархивировано / недоступно"
+#: ../../Zotlabs/Module/Connections.php:83
+#: ../../Zotlabs/Module/Connections.php:92 ../../Zotlabs/Module/Menu.php:179
+#: ../../Zotlabs/Module/Notifications.php:50
+msgid "New"
+msgstr "Новые"
+
+#: ../../Zotlabs/Module/Connections.php:97
+#: ../../Zotlabs/Module/Connections.php:111
+#: ../../Zotlabs/Module/Connedit.php:727 ../../Zotlabs/Widget/Affinity.php:34
+msgid "All"
+msgstr "Все"
+
#: ../../Zotlabs/Module/Connections.php:143
msgid "Active Connections"
msgstr "Активные контакты"
@@ -10148,6 +4753,10 @@ msgstr "Удалить контакт"
msgid "Channel address"
msgstr "Адрес канала"
+#: ../../Zotlabs/Module/Connections.php:296 ../../include/features.php:313
+msgid "Network"
+msgstr "Сеть"
+
#: ../../Zotlabs/Module/Connections.php:299
msgid "Call"
msgstr "Вызов"
@@ -10168,10 +4777,20 @@ msgstr "Утвердить контакт"
msgid "Ignore connection"
msgstr "Игнорировать контакт"
+#: ../../Zotlabs/Module/Connections.php:308
+#: ../../Zotlabs/Module/Connedit.php:644
+msgid "Ignore"
+msgstr "Игнорировать"
+
#: ../../Zotlabs/Module/Connections.php:309
msgid "Recent activity"
msgstr "Последние действия"
+#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:330
+#: ../../include/text.php:991 ../../include/features.php:125
+msgid "Connections"
+msgstr "Контакты"
+
#: ../../Zotlabs/Module/Connections.php:339
msgid "Search your connections"
msgstr "Поиск ваших контактов"
@@ -10180,240 +4799,311 @@ msgstr "Поиск ваших контактов"
msgid "Connections search"
msgstr "Поиск контаков"
-#: ../../Zotlabs/Module/Mood.php:132
-msgid "Mood App"
-msgstr "Приложение \"Настроение\""
+#: ../../Zotlabs/Module/Connections.php:341
+#: ../../Zotlabs/Module/Directory.php:405
+#: ../../Zotlabs/Module/Directory.php:410 ../../include/contact_widgets.php:23
+msgid "Find"
+msgstr "Поиск"
-#: ../../Zotlabs/Module/Mood.php:133 ../../Zotlabs/Module/Mood.php:153
-msgid "Set your current mood and tell your friends"
-msgstr "Установить текущее настроение и рассказать друзьям"
+#: ../../Zotlabs/Module/Viewsrc.php:43
+msgid "item"
+msgstr "пункт"
-#: ../../Zotlabs/Module/Mood.php:152 ../../Zotlabs/Lib/Apps.php:325
-msgid "Mood"
-msgstr "Настроение"
+#: ../../Zotlabs/Module/Bookmarks.php:62
+msgid "Bookmark added"
+msgstr "Закладка добавлена"
-#: ../../Zotlabs/Module/Card_edit.php:128
-msgid "Edit Card"
-msgstr "Редактировать карточку"
+#: ../../Zotlabs/Module/Bookmarks.php:78
+msgid "Bookmarks App"
+msgstr "Приложение \"Закладки\""
-#: ../../Zotlabs/Module/Article_edit.php:128
-msgid "Edit Article"
-msgstr "Редактировать статью"
+#: ../../Zotlabs/Module/Bookmarks.php:79
+msgid "Bookmark links from posts and manage them"
+msgstr "Поместить ссылки из публикации в закладки и управлять ими"
-#: ../../Zotlabs/Module/Lang.php:17
-msgid "Language App"
-msgstr "Приложение \"Язык\""
+#: ../../Zotlabs/Module/Bookmarks.php:92
+msgid "My Bookmarks"
+msgstr "Мои закладки"
-#: ../../Zotlabs/Module/Lang.php:18
-msgid "Change UI language"
-msgstr "Изменить язык интерфейса"
+#: ../../Zotlabs/Module/Bookmarks.php:103
+msgid "My Connections Bookmarks"
+msgstr "Закладки моих контактов"
-#: ../../Zotlabs/Module/Blocks.php:156
-msgid "Block Title"
-msgstr "Заблокировать заголовок"
+#: ../../Zotlabs/Module/Removeaccount.php:35
+msgid ""
+"Account removals are not allowed within 48 hours of changing the account "
+"password."
+msgstr "Удаление канала не разрешается в течении 48 часов после смены пароля у аккаунта."
-#: ../../Zotlabs/Module/Randprof.php:29
-msgid "Random Channel App"
-msgstr "Приложение \"Случайный канал\""
+#: ../../Zotlabs/Module/Removeaccount.php:57
+msgid "Remove This Account"
+msgstr "Удалить этот аккаунт"
-#: ../../Zotlabs/Module/Randprof.php:30
-msgid "Visit a random channel in the $Projectname network"
-msgstr "Посещение случайного канала в сети $Projectname"
+#: ../../Zotlabs/Module/Removeaccount.php:58
+msgid ""
+"This account and all its channels will be completely removed from the "
+"network. "
+msgstr "Этот аккаунт и все его каналы будут полностью удалены из сети."
-#: ../../Zotlabs/Module/Invite.php:37
-msgid "Total invitation limit exceeded."
-msgstr "Превышено общее количество приглашений."
+#: ../../Zotlabs/Module/Removeaccount.php:60
+msgid ""
+"Remove this account, all its channels and all its channel clones from the "
+"network"
+msgstr "Удалить этот аккаунт, все его каналы и их клоны из сети."
-#: ../../Zotlabs/Module/Invite.php:61
-#, php-format
-msgid "%s : Not a valid email address."
-msgstr "%s : Недействительный адрес электронной почты."
+#: ../../Zotlabs/Module/Removeaccount.php:60
+msgid ""
+"By default only the instances of the channels located on this hub will be "
+"removed from the network"
+msgstr "По умолчанию только представление канала расположенное на данном хабе будет удалено из сети"
-#: ../../Zotlabs/Module/Invite.php:75
-msgid "Please join us on $Projectname"
-msgstr "Присоединятесь к $Projectname !"
+#: ../../Zotlabs/Module/Photos.php:78
+msgid "Page owner information could not be retrieved."
+msgstr "Информация о владельце страницы не может быть получена."
-#: ../../Zotlabs/Module/Invite.php:85
-msgid "Invitation limit exceeded. Please contact your site administrator."
-msgstr "Превышен лимит приглашений. Пожалуйста, свяжитесь с администрацией сайта."
+#: ../../Zotlabs/Module/Photos.php:94 ../../Zotlabs/Module/Photos.php:113
+msgid "Album not found."
+msgstr "Альбом не найден."
-#: ../../Zotlabs/Module/Invite.php:90
-#: ../../extend/addon/hzaddons/notifyadmin/notifyadmin.php:40
+#: ../../Zotlabs/Module/Photos.php:103
+msgid "Delete Album"
+msgstr "Удалить альбом"
+
+#: ../../Zotlabs/Module/Photos.php:174 ../../Zotlabs/Module/Photos.php:1098
+msgid "Delete Photo"
+msgstr "Удалить фотографию"
+
+#: ../../Zotlabs/Module/Photos.php:569
+msgid "No photos selected"
+msgstr "Никакие фотографии не выбраны"
+
+#: ../../Zotlabs/Module/Photos.php:618
+msgid "Access to this item is restricted."
+msgstr "Доступ к этому элементу ограничен."
+
+#: ../../Zotlabs/Module/Photos.php:661
#, php-format
-msgid "%s : Message delivery failed."
-msgstr "%s : Доставка сообщения не удалась."
+msgid "%1$.2f MB of %2$.2f MB photo storage used."
+msgstr "Вы использовали %1$.2f мегабайт из %2$.2f для хранения фото."
-#: ../../Zotlabs/Module/Invite.php:94
+#: ../../Zotlabs/Module/Photos.php:664
#, php-format
-msgid "%d message sent."
-msgid_plural "%d messages sent."
-msgstr[0] "%d сообщение отправлено."
-msgstr[1] "%d сообщения отправлено."
-msgstr[2] "%d сообщений отправлено."
+msgid "%1$.2f MB photo storage used."
+msgstr "Вы использовали %1$.2f мегабайт для хранения фото."
-#: ../../Zotlabs/Module/Invite.php:110
-msgid "Invite App"
-msgstr "Приложение \"Пригласить\""
+#: ../../Zotlabs/Module/Photos.php:706
+msgid "Upload Photos"
+msgstr "Загрузить фотографии"
-#: ../../Zotlabs/Module/Invite.php:111
-msgid "Send email invitations to join this network"
-msgstr "Отправить приглашение присоединиться к этой сети по электронной почте"
+#: ../../Zotlabs/Module/Photos.php:710
+msgid "Enter an album name"
+msgstr "Введите название альбома"
-#: ../../Zotlabs/Module/Invite.php:124
-msgid "You have no more invitations available"
-msgstr "У вас больше нет приглашений"
+#: ../../Zotlabs/Module/Photos.php:711
+msgid "or select an existing album (doubleclick)"
+msgstr "или выберите существующий альбом (двойной щелчок)"
-#: ../../Zotlabs/Module/Invite.php:155
-msgid "Send invitations"
-msgstr "Отправить приглашение"
+#: ../../Zotlabs/Module/Photos.php:712
+msgid "Create a status post for this upload"
+msgstr "Сделать публикацию о статусе для этой загрузки"
-#: ../../Zotlabs/Module/Invite.php:156
-msgid "Enter email addresses, one per line:"
-msgstr "Введите адреса электронной почты, по одному в строке:"
+#: ../../Zotlabs/Module/Photos.php:714
+msgid "Description (optional)"
+msgstr "Описание (необязательно)"
-#: ../../Zotlabs/Module/Invite.php:158
-msgid "Please join my community on $Projectname."
-msgstr "Присоединятесь к нашему сообществу $Projectname !"
+#: ../../Zotlabs/Module/Photos.php:800
+msgid "Show Newest First"
+msgstr "Показать новые первыми"
-#: ../../Zotlabs/Module/Invite.php:160
-msgid "You will need to supply this invitation code:"
-msgstr "Вам нужно предоставит этот код приглашения:"
+#: ../../Zotlabs/Module/Photos.php:802
+msgid "Show Oldest First"
+msgstr "Показать старые первыми"
-#: ../../Zotlabs/Module/Invite.php:161
-msgid "1. Register at any $Projectname location (they are all inter-connected)"
-msgstr "1. Зарегистрируйтесь на любом из серверов $Projectname"
+#: ../../Zotlabs/Module/Photos.php:859 ../../Zotlabs/Module/Photos.php:1405
+msgid "Add Photos"
+msgstr "Добавить фотографии"
-#: ../../Zotlabs/Module/Invite.php:163
-msgid "2. Enter my $Projectname network address into the site searchbar."
-msgstr "2. Введите сетевой адрес $Projectname в поисковой строке сайта"
+#: ../../Zotlabs/Module/Photos.php:907
+msgid "Permission denied. Access to this item may be restricted."
+msgstr "Доступ запрещен. Доступ к этому элементу может быть ограничен."
-#: ../../Zotlabs/Module/Invite.php:164
-msgid "or visit"
-msgstr "или посетите"
+#: ../../Zotlabs/Module/Photos.php:909
+msgid "Photo not available"
+msgstr "Фотография не доступна"
-#: ../../Zotlabs/Module/Invite.php:166
-msgid "3. Click [Connect]"
-msgstr "Нажать [Подключиться]"
+#: ../../Zotlabs/Module/Photos.php:967
+msgid "Use as profile photo"
+msgstr "Использовать в качестве фотографии профиля"
-#: ../../Zotlabs/Module/Articles.php:43
-msgid "Articles App"
-msgstr "Приложение \"Статьи\""
+#: ../../Zotlabs/Module/Photos.php:968
+msgid "Use as cover photo"
+msgstr "Использовать в качестве фотографии обложки"
-#: ../../Zotlabs/Module/Articles.php:44
-msgid "Create interactive articles"
-msgstr "Создать интерактивные статьи"
+#: ../../Zotlabs/Module/Photos.php:975
+msgid "Private Photo"
+msgstr "Личная фотография"
-#: ../../Zotlabs/Module/Articles.php:107
-msgid "Add Article"
-msgstr "Добавить статью"
+#: ../../Zotlabs/Module/Photos.php:990
+msgid "View Full Size"
+msgstr "Посмотреть в полный размер"
-#: ../../Zotlabs/Module/Connect.php:73 ../../Zotlabs/Module/Connect.php:135
-msgid "Continue"
-msgstr "Продолжить"
+#: ../../Zotlabs/Module/Photos.php:1072
+msgid "Edit photo"
+msgstr "Редактировать фотографию"
-#: ../../Zotlabs/Module/Connect.php:104
-msgid "Premium Channel App"
-msgstr "Приложение \"Премиальный канал\""
+#: ../../Zotlabs/Module/Photos.php:1074
+msgid "Rotate CW (right)"
+msgstr "Повернуть CW (направо)"
-#: ../../Zotlabs/Module/Connect.php:105
-msgid ""
-"Allows you to set restrictions and terms on those that connect with your "
-"channel"
-msgstr "Позволяет установить ограничения и условия для подключающихся к вашему каналу"
+#: ../../Zotlabs/Module/Photos.php:1075
+msgid "Rotate CCW (left)"
+msgstr "Повернуть CCW (налево)"
-#: ../../Zotlabs/Module/Connect.php:116
-msgid "Premium Channel Setup"
-msgstr "Установка премиального канала"
+#: ../../Zotlabs/Module/Photos.php:1078
+msgid "Move photo to album"
+msgstr "Переместить фотографию в альбом"
-#: ../../Zotlabs/Module/Connect.php:118
-msgid "Enable premium channel connection restrictions"
-msgstr "Включить ограничения для премиального канала"
+#: ../../Zotlabs/Module/Photos.php:1079
+msgid "Enter a new album name"
+msgstr "Введите новое название альбома"
-#: ../../Zotlabs/Module/Connect.php:119
-msgid ""
-"Please enter your restrictions or conditions, such as paypal receipt, usage "
-"guidelines, etc."
-msgstr "Пожалуйста введите ваши ограничения или условия, такие, как оплата PayPal, правила использования и т.п."
+#: ../../Zotlabs/Module/Photos.php:1080
+msgid "or select an existing one (doubleclick)"
+msgstr "или выбрать существующую (двойной щелчок)"
-#: ../../Zotlabs/Module/Connect.php:121 ../../Zotlabs/Module/Connect.php:141
-msgid ""
-"This channel may require additional steps or acknowledgement of the "
-"following conditions prior to connecting:"
-msgstr "Этот канал до подключения может требовать дополнительных шагов или подтверждений следующих условий:"
+#: ../../Zotlabs/Module/Photos.php:1085
+msgid "Add a Tag"
+msgstr "Добавить тег"
-#: ../../Zotlabs/Module/Connect.php:122
-msgid ""
-"Potential connections will then see the following text before proceeding:"
-msgstr "Потенциальные соединения будут видеть следующий предварительный текст:"
+#: ../../Zotlabs/Module/Photos.php:1093
+msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
+msgstr "Пример: @bob, @Barbara_Jensen, @jim@example.com"
-#: ../../Zotlabs/Module/Connect.php:123 ../../Zotlabs/Module/Connect.php:144
-msgid ""
-"By continuing, I certify that I have complied with any instructions provided "
-"on this page."
-msgstr "Продолжая, я подтверждаю что я выполнил все условия представленные на данной странице."
+#: ../../Zotlabs/Module/Photos.php:1096
+msgid "Flag as adult in album view"
+msgstr "Пометить как альбом \"для взрослых\""
-#: ../../Zotlabs/Module/Connect.php:132
-msgid "(No specific instructions have been provided by the channel owner.)"
-msgstr "(Владельцем канала не было представлено никаких специальных инструкций.)"
+#: ../../Zotlabs/Module/Photos.php:1115 ../../Zotlabs/Lib/ThreadItem.php:306
+msgid "I like this (toggle)"
+msgstr "мне это нравится (переключение)"
-#: ../../Zotlabs/Module/Connect.php:140
-msgid "Restricted or Premium Channel"
-msgstr "Ограниченный или премиальный канал"
+#: ../../Zotlabs/Module/Photos.php:1116 ../../Zotlabs/Lib/ThreadItem.php:307
+msgid "I don't like this (toggle)"
+msgstr "мне это не нравится (переключение)"
-#: ../../Zotlabs/Module/Cloud.php:123
-msgid "Not found"
-msgstr "Не найдено."
+#: ../../Zotlabs/Module/Photos.php:1118 ../../Zotlabs/Lib/ThreadItem.php:469
+#: ../../include/conversation.php:787
+msgid "Please wait"
+msgstr "Подождите пожалуйста"
-#: ../../Zotlabs/Module/Cloud.php:129
-msgid "Please refresh page"
-msgstr "Пожалуйста обновите страницу"
+#: ../../Zotlabs/Module/Photos.php:1135 ../../Zotlabs/Module/Photos.php:1254
+#: ../../Zotlabs/Lib/ThreadItem.php:792
+msgid "This is you"
+msgstr "Это вы"
-#: ../../Zotlabs/Module/Cloud.php:132
-msgid "Unknown error"
-msgstr "Неизвестная ошибка"
+#: ../../Zotlabs/Module/Photos.php:1137 ../../Zotlabs/Module/Photos.php:1256
+#: ../../Zotlabs/Lib/ThreadItem.php:794 ../../include/js_strings.php:6
+msgid "Comment"
+msgstr "Комментарий"
-#: ../../Zotlabs/Module/Pdledit.php:26
-msgid "Layout updated."
-msgstr "Шаблон обновлен."
+#: ../../Zotlabs/Module/Photos.php:1154 ../../include/conversation.php:619
+msgctxt "title"
+msgid "Likes"
+msgstr "Нравится"
-#: ../../Zotlabs/Module/Pdledit.php:42
-msgid "PDL Editor App"
-msgstr "Приложение \"Редактор PDL\""
+#: ../../Zotlabs/Module/Photos.php:1154 ../../include/conversation.php:619
+msgctxt "title"
+msgid "Dislikes"
+msgstr "Не нравится"
-#: ../../Zotlabs/Module/Pdledit.php:43
-msgid "Provides the ability to edit system page layouts"
-msgstr "Предоставляет возможность редактировать макеты системных страниц"
+#: ../../Zotlabs/Module/Photos.php:1155 ../../include/conversation.php:620
+msgctxt "title"
+msgid "Agree"
+msgstr "Согласен"
-#: ../../Zotlabs/Module/Pdledit.php:56 ../../Zotlabs/Module/Pdledit.php:99
-msgid "Edit System Page Description"
-msgstr "Редактировать описание системной страницы"
+#: ../../Zotlabs/Module/Photos.php:1155 ../../include/conversation.php:620
+msgctxt "title"
+msgid "Disagree"
+msgstr "Не согласен"
-#: ../../Zotlabs/Module/Pdledit.php:77
-msgid "(modified)"
-msgstr "(изменено)"
+#: ../../Zotlabs/Module/Photos.php:1155 ../../include/conversation.php:620
+msgctxt "title"
+msgid "Abstain"
+msgstr "Воздержался"
-#: ../../Zotlabs/Module/Pdledit.php:94
-msgid "Layout not found."
-msgstr "Шаблон не найден."
+#: ../../Zotlabs/Module/Photos.php:1156 ../../include/conversation.php:621
+msgctxt "title"
+msgid "Attending"
+msgstr "Посещаю"
-#: ../../Zotlabs/Module/Pdledit.php:100
-msgid "Module Name:"
-msgstr "Имя модуля:"
+#: ../../Zotlabs/Module/Photos.php:1156 ../../include/conversation.php:621
+msgctxt "title"
+msgid "Not attending"
+msgstr "Не посещаю"
-#: ../../Zotlabs/Module/Pdledit.php:101
-msgid "Layout Help"
-msgstr "Помощь к шаблону"
+#: ../../Zotlabs/Module/Photos.php:1156 ../../include/conversation.php:621
+msgctxt "title"
+msgid "Might attend"
+msgstr "Возможно посещу"
-#: ../../Zotlabs/Module/Pdledit.php:102
-msgid "Edit another layout"
-msgstr "Редактировать другой шаблон"
+#: ../../Zotlabs/Module/Photos.php:1173 ../../Zotlabs/Module/Photos.php:1185
+#: ../../Zotlabs/Lib/ThreadItem.php:231 ../../Zotlabs/Lib/ThreadItem.php:243
+msgid "View all"
+msgstr "Просмотреть все"
-#: ../../Zotlabs/Module/Pdledit.php:103
-msgid "System layout"
-msgstr "Системный шаблон"
+#: ../../Zotlabs/Module/Photos.php:1177 ../../Zotlabs/Lib/ThreadItem.php:235
+#: ../../include/conversation.php:1702 ../../include/channel.php:1595
+#: ../../include/taxonomy.php:661
+msgctxt "noun"
+msgid "Like"
+msgid_plural "Likes"
+msgstr[0] "Нравится"
+msgstr[1] "Нравится"
+msgstr[2] "Нравится"
+
+#: ../../Zotlabs/Module/Photos.php:1182 ../../Zotlabs/Lib/ThreadItem.php:240
+#: ../../include/conversation.php:1705
+msgctxt "noun"
+msgid "Dislike"
+msgid_plural "Dislikes"
+msgstr[0] "Не нравится"
+msgstr[1] "Не нравится"
+msgstr[2] "Не нравится"
+
+#: ../../Zotlabs/Module/Photos.php:1288
+msgid "Photo Tools"
+msgstr "Фото-Инструменты"
+
+#: ../../Zotlabs/Module/Photos.php:1297
+msgid "In This Photo:"
+msgstr "На этой фотографии:"
+
+#: ../../Zotlabs/Module/Photos.php:1302
+msgid "Map"
+msgstr "Карта"
+
+#: ../../Zotlabs/Module/Photos.php:1310 ../../Zotlabs/Lib/ThreadItem.php:457
+msgctxt "noun"
+msgid "Likes"
+msgstr "Нравится"
+
+#: ../../Zotlabs/Module/Photos.php:1311 ../../Zotlabs/Lib/ThreadItem.php:458
+msgctxt "noun"
+msgid "Dislikes"
+msgstr "Не нравится"
+
+#: ../../Zotlabs/Module/Photos.php:1316 ../../Zotlabs/Lib/ThreadItem.php:463
+#: ../../include/acl_selectors.php:125
+msgid "Close"
+msgstr "Закрыть"
+
+#: ../../Zotlabs/Module/Photos.php:1389 ../../Zotlabs/Module/Photos.php:1402
+#: ../../Zotlabs/Module/Photos.php:1403 ../../include/photos.php:670
+msgid "Recent Photos"
+msgstr "Последние фотографии"
#: ../../Zotlabs/Module/Wiki.php:35
-#: ../../extend/addon/hzaddons/cart/cart.php:1297
+#: ../../addon/flashcards/Mod_Flashcards.php:34 ../../addon/cart/cart.php:1298
msgid "Profile Unavailable."
msgstr "Профиль недоступен."
@@ -10425,11 +5115,10 @@ msgstr "Приложение \"Wiki\""
msgid "Provide a wiki for your channel"
msgstr "Предоставьте Wiki для вашего канала"
-#: ../../Zotlabs/Module/Wiki.php:77
-#: ../../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
+#: ../../Zotlabs/Module/Wiki.php:77 ../../addon/cart/myshop.php:37
+#: ../../addon/cart/cart.php:1444
+#: ../../addon/cart/submodules/paypalbutton.php:456
+#: ../../addon/cart/manual_payments.php:93
msgid "Invalid channel"
msgstr "Недействительный канал"
@@ -10445,10 +5134,20 @@ msgstr "Ошибка при создании zip-файла при экспор
msgid "Error downloading wiki: "
msgstr "Ошибка загрузки Wiki:"
+#: ../../Zotlabs/Module/Wiki.php:206 ../../Zotlabs/Widget/Wiki_list.php:15
+#: ../../include/nav.php:536
+msgid "Wikis"
+msgstr ""
+
#: ../../Zotlabs/Module/Wiki.php:212
msgid "Download"
msgstr "Загрузить"
+#: ../../Zotlabs/Module/Wiki.php:214 ../../Zotlabs/Module/Chat.php:264
+#: ../../Zotlabs/Module/Profiles.php:831 ../../Zotlabs/Module/Manage.php:145
+msgid "Create New"
+msgstr "Создать новый"
+
#: ../../Zotlabs/Module/Wiki.php:216
msgid "Wiki name"
msgstr "Название Wiki"
@@ -10457,6 +5156,28 @@ msgstr "Название Wiki"
msgid "Content type"
msgstr "Тип содержимого"
+#: ../../Zotlabs/Module/Wiki.php:217 ../../Zotlabs/Module/Wiki.php:371
+#: ../../Zotlabs/Widget/Wiki_pages.php:38
+#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../addon/mdpost/mdpost.php:41
+#: ../../include/text.php:1955
+msgid "Markdown"
+msgstr "Разметка Markdown"
+
+#: ../../Zotlabs/Module/Wiki.php:217 ../../Zotlabs/Module/Wiki.php:371
+#: ../../Zotlabs/Widget/Wiki_pages.php:38
+#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1953
+msgid "BBcode"
+msgstr ""
+
+#: ../../Zotlabs/Module/Wiki.php:217 ../../Zotlabs/Widget/Wiki_pages.php:38
+#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1956
+msgid "Text"
+msgstr "Текст"
+
+#: ../../Zotlabs/Module/Wiki.php:219 ../../Zotlabs/Storage/Browser.php:286
+msgid "Type"
+msgstr "Тип"
+
#: ../../Zotlabs/Module/Wiki.php:220
msgid "Any&nbsp;type"
msgstr "Любой&nbsp;тип"
@@ -10493,9 +5214,8 @@ msgstr "Новая страница"
msgid "Revision Comparison"
msgstr "Сравнение ревизий"
-#: ../../Zotlabs/Module/Wiki.php:367
+#: ../../Zotlabs/Module/Wiki.php:367 ../../Zotlabs/Lib/NativeWikiPage.php:564
#: ../../Zotlabs/Widget/Wiki_page_history.php:25
-#: ../../Zotlabs/Lib/NativeWikiPage.php:564
msgid "Revert"
msgstr "Отменить"
@@ -10515,6 +5235,53 @@ msgstr "Новое имя страницы"
msgid "Embed image from photo albums"
msgstr "Встроить изображение из фотоальбома"
+#: ../../Zotlabs/Module/Wiki.php:400 ../../addon/hsse/hsse.php:208
+#: ../../include/conversation.php:1414
+msgid "Embed an image from your albums"
+msgstr "Встроить изображение из ваших альбомов"
+
+#: ../../Zotlabs/Module/Wiki.php:402 ../../Zotlabs/Module/Profile_photo.php:466
+#: ../../Zotlabs/Module/Cover_photo.php:400 ../../addon/hsse/hsse.php:210
+#: ../../addon/hsse/hsse.php:257 ../../include/conversation.php:1416
+#: ../../include/conversation.php:1463
+msgid "OK"
+msgstr ""
+
+#: ../../Zotlabs/Module/Wiki.php:403 ../../Zotlabs/Module/Profile_photo.php:467
+#: ../../Zotlabs/Module/Cover_photo.php:401 ../../addon/hsse/hsse.php:139
+#: ../../include/conversation.php:1342
+msgid "Choose images to embed"
+msgstr "Выбрать изображения для встраивания"
+
+#: ../../Zotlabs/Module/Wiki.php:404 ../../Zotlabs/Module/Profile_photo.php:468
+#: ../../Zotlabs/Module/Cover_photo.php:402 ../../addon/hsse/hsse.php:140
+#: ../../include/conversation.php:1343
+msgid "Choose an album"
+msgstr "Выбрать альбом"
+
+#: ../../Zotlabs/Module/Wiki.php:405 ../../Zotlabs/Module/Profile_photo.php:469
+#: ../../Zotlabs/Module/Cover_photo.php:403
+msgid "Choose a different album"
+msgstr "Выбрать другой альбом"
+
+#: ../../Zotlabs/Module/Wiki.php:406 ../../Zotlabs/Module/Profile_photo.php:470
+#: ../../Zotlabs/Module/Cover_photo.php:404 ../../addon/hsse/hsse.php:142
+#: ../../include/conversation.php:1345
+msgid "Error getting album list"
+msgstr "Ошибка получения списка альбомов"
+
+#: ../../Zotlabs/Module/Wiki.php:407 ../../Zotlabs/Module/Profile_photo.php:471
+#: ../../Zotlabs/Module/Cover_photo.php:405 ../../addon/hsse/hsse.php:143
+#: ../../include/conversation.php:1346
+msgid "Error getting photo link"
+msgstr "Ошибка получения ссылки на фотографию"
+
+#: ../../Zotlabs/Module/Wiki.php:408 ../../Zotlabs/Module/Profile_photo.php:472
+#: ../../Zotlabs/Module/Cover_photo.php:406 ../../addon/hsse/hsse.php:144
+#: ../../include/conversation.php:1347
+msgid "Error getting album"
+msgstr "Ошибка получения альбома"
+
#: ../../Zotlabs/Module/Wiki.php:410
msgid "History"
msgstr "История"
@@ -10571,293 +5338,797 @@ msgstr "Выбранная ревизия"
msgid "You must be authenticated."
msgstr "Вы должны быть аутентифицированы."
-#: ../../Zotlabs/Module/Email_resend.php:30
-msgid "Email verification resent"
-msgstr "Сообщение для проверки email отправлено повторно"
+#: ../../Zotlabs/Module/Share.php:103 ../../Zotlabs/Lib/Activity.php:1473
+#, php-format
+msgid "&#x1f501; Repeated %1$s's %2$s"
+msgstr "&#x1f501; Повторил %1$s %2$s"
-#: ../../Zotlabs/Module/Email_resend.php:33
-msgid "Unable to resend email verification message."
-msgstr "Невозможно повторно отправить сообщение для проверки email"
+#: ../../Zotlabs/Module/Share.php:119
+msgid "Post repeated"
+msgstr "Публикация повторяется"
-#: ../../Zotlabs/Module/Filer.php:52
-msgid "Enter a folder name"
-msgstr "Введите название каталога"
+#: ../../Zotlabs/Module/Chanview.php:139
+msgid "toggle full screen mode"
+msgstr "переключение полноэкранного режима"
-#: ../../Zotlabs/Module/Filer.php:52
-msgid "or select an existing folder (doubleclick)"
-msgstr "или выберите существующий каталог (двойной щелчок)"
+#: ../../Zotlabs/Module/Pdledit.php:26
+msgid "Layout updated."
+msgstr "Шаблон обновлен."
-#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:164
-msgid "Save to Folder"
-msgstr "Сохранить в каталог"
+#: ../../Zotlabs/Module/Pdledit.php:42
+msgid "PDL Editor App"
+msgstr "Приложение \"Редактор PDL\""
-#: ../../Zotlabs/Module/Manage.php:145
-msgid "Create a new channel"
-msgstr "Создать новый канал"
+#: ../../Zotlabs/Module/Pdledit.php:43
+msgid "Provides the ability to edit system page layouts"
+msgstr "Предоставляет возможность редактировать макеты системных страниц"
-#: ../../Zotlabs/Module/Manage.php:171
-msgid "Current Channel"
-msgstr "Текущий канал"
+#: ../../Zotlabs/Module/Pdledit.php:56 ../../Zotlabs/Module/Pdledit.php:99
+msgid "Edit System Page Description"
+msgstr "Редактировать описание системной страницы"
-#: ../../Zotlabs/Module/Manage.php:173
-msgid "Switch to one of your channels by selecting it."
-msgstr "Выбрать и переключиться на один из ваших каналов"
+#: ../../Zotlabs/Module/Pdledit.php:77
+msgid "(modified)"
+msgstr "(изменено)"
-#: ../../Zotlabs/Module/Manage.php:174
-msgid "Default Channel"
-msgstr "Основной канал"
+#: ../../Zotlabs/Module/Pdledit.php:77 ../../Zotlabs/Module/Lostpass.php:133
+msgid "Reset"
+msgstr "Сбросить"
-#: ../../Zotlabs/Module/Manage.php:175
-msgid "Make Default"
-msgstr "Сделать основным"
+#: ../../Zotlabs/Module/Pdledit.php:94
+msgid "Layout not found."
+msgstr "Шаблон не найден."
-#: ../../Zotlabs/Module/Manage.php:178
-#, php-format
-msgid "%d new messages"
-msgstr "%d новых сообщений"
+#: ../../Zotlabs/Module/Pdledit.php:100
+msgid "Module Name:"
+msgstr "Имя модуля:"
-#: ../../Zotlabs/Module/Manage.php:179
-#, php-format
-msgid "%d new introductions"
-msgstr "%d новых представлений"
+#: ../../Zotlabs/Module/Pdledit.php:101
+msgid "Layout Help"
+msgstr "Помощь к шаблону"
-#: ../../Zotlabs/Module/Manage.php:181
-msgid "Delegated Channel"
-msgstr "Делегированный канал"
+#: ../../Zotlabs/Module/Pdledit.php:102
+msgid "Edit another layout"
+msgstr "Редактировать другой шаблон"
-#: ../../Zotlabs/Module/Suggest.php:40
-msgid "Suggest Channels App"
-msgstr "Приложение \"Рекомендуемые каналы\""
+#: ../../Zotlabs/Module/Pdledit.php:103
+msgid "System layout"
+msgstr "Системный шаблон"
-#: ../../Zotlabs/Module/Suggest.php:41
+#: ../../Zotlabs/Module/Poke.php:165
+msgid "Poke App"
+msgstr "Приложение \"Ткнуть\""
+
+#: ../../Zotlabs/Module/Poke.php:166
+msgid "Poke somebody in your addressbook"
+msgstr "Ткнуть кого-нибудь в вашей адресной книге"
+
+#: ../../Zotlabs/Module/Poke.php:199 ../../Zotlabs/Lib/Apps.php:348
+#: ../../include/conversation.php:1098
+msgid "Poke"
+msgstr "Ткнуть"
+
+#: ../../Zotlabs/Module/Poke.php:200
+msgid "Poke somebody"
+msgstr "Ткнуть кого-нибудь"
+
+#: ../../Zotlabs/Module/Poke.php:203
+msgid "Poke/Prod"
+msgstr "Толкнуть / подтолкнуть"
+
+#: ../../Zotlabs/Module/Poke.php:204
+msgid "Poke, prod or do other things to somebody"
+msgstr "Толкнуть, подтолкнуть или сделать что-то ещё с кем-то"
+
+#: ../../Zotlabs/Module/Poke.php:211
+msgid "Recipient"
+msgstr "Получатель"
+
+#: ../../Zotlabs/Module/Poke.php:212
+msgid "Choose what you wish to do to recipient"
+msgstr "Выбрать что вы хотите сделать с получателем"
+
+#: ../../Zotlabs/Module/Poke.php:215 ../../Zotlabs/Module/Poke.php:216
+msgid "Make this post private"
+msgstr "Сделать эту публикацию приватной"
+
+#: ../../Zotlabs/Module/Profile_photo.php:66
+#: ../../Zotlabs/Module/Cover_photo.php:57
+msgid "Image uploaded but image cropping failed."
+msgstr "Изображение загружено но обрезка не удалась."
+
+#: ../../Zotlabs/Module/Profile_photo.php:120
+#: ../../Zotlabs/Module/Profile_photo.php:248
+#: ../../include/photo/photo_driver.php:367
+msgid "Profile Photos"
+msgstr "Фотографии профиля"
+
+#: ../../Zotlabs/Module/Profile_photo.php:142
+#: ../../Zotlabs/Module/Cover_photo.php:191
+msgid "Image resize failed."
+msgstr "Не удалось изменить размер изображения."
+
+#: ../../Zotlabs/Module/Profile_photo.php:218
+#: ../../addon/openclipatar/openclipatar.php:298
msgid ""
-"Suggestions for channels in the $Projectname network you might be interested "
-"in"
-msgstr "Предложения по рекомендуемым каналам в сети $Projectname которые могут вас заинтересовать"
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
+msgstr "Если новая фотография не отображается немедленно то нажмите Shift + \"Обновить\" для очистки кэша браузера"
-#: ../../Zotlabs/Module/Suggest.php:54
+#: ../../Zotlabs/Module/Profile_photo.php:225
+#: ../../Zotlabs/Module/Cover_photo.php:205 ../../include/photos.php:196
+msgid "Unable to process image"
+msgstr "Не удается обработать изображение"
+
+#: ../../Zotlabs/Module/Profile_photo.php:260
+#: ../../Zotlabs/Module/Cover_photo.php:229
+msgid "Image upload failed."
+msgstr "Загрузка изображения не удалась."
+
+#: ../../Zotlabs/Module/Profile_photo.php:279
+#: ../../Zotlabs/Module/Cover_photo.php:246
+msgid "Unable to process image."
+msgstr "Невозможно обработать изображение."
+
+#: ../../Zotlabs/Module/Profile_photo.php:343
+#: ../../Zotlabs/Module/Profile_photo.php:390
+#: ../../Zotlabs/Module/Cover_photo.php:339
+#: ../../Zotlabs/Module/Cover_photo.php:354
+msgid "Photo not available."
+msgstr "Фотография недоступна."
+
+#: ../../Zotlabs/Module/Profile_photo.php:454
msgid ""
-"No suggestions available. If this is a new site, please try again in 24 "
-"hours."
-msgstr "Нет предложений. Если это новый сайт, повторите попытку через 24 часа."
+"Your default profile photo is visible to anybody on the internet. Profile "
+"photos for alternate profiles will inherit the permissions of the profile"
+msgstr "Фотография вашего профиля по умолчанию видна всем в Интернете. Фотографияпрофиля для альтернативных профилей наследуют разрешения текущего профиля"
-#: ../../Zotlabs/Module/Suggest.php:73 ../../Zotlabs/Widget/Suggestions.php:46
-msgid "Ignore/Hide"
-msgstr "Игнорировать / cкрыть"
+#: ../../Zotlabs/Module/Profile_photo.php:454
+msgid ""
+"Your profile photo is visible to anybody on the internet and may be "
+"distributed to other websites."
+msgstr "Фотография вашего профиля видна всем в Интернете и может быть отправлена на другие сайты."
-#: ../../Zotlabs/Module/Import.php:66 ../../Zotlabs/Module/Import_items.php:48
-msgid "Nothing to import."
-msgstr "Ничего импортировать."
+#: ../../Zotlabs/Module/Profile_photo.php:456
+#: ../../Zotlabs/Module/Cover_photo.php:392
+msgid "Upload File:"
+msgstr "Загрузить файл:"
-#: ../../Zotlabs/Module/Import.php:81 ../../Zotlabs/Module/Import.php:97
-#: ../../Zotlabs/Module/Import_items.php:72
-msgid "Unable to download data from old server"
-msgstr "Невозможно загрузить данные со старого сервера"
+#: ../../Zotlabs/Module/Profile_photo.php:457
+#: ../../Zotlabs/Module/Cover_photo.php:393
+msgid "Select a profile:"
+msgstr "Выбрать профиль:"
-#: ../../Zotlabs/Module/Import.php:104 ../../Zotlabs/Module/Import_items.php:77
-msgid "Imported file is empty."
-msgstr "Импортированный файл пуст."
+#: ../../Zotlabs/Module/Profile_photo.php:458
+msgid "Use Photo for Profile"
+msgstr "Использовать фотографию для профиля"
-#: ../../Zotlabs/Module/Import.php:146
+#: ../../Zotlabs/Module/Profile_photo.php:458
+msgid "Change Profile Photo"
+msgstr "Изменить фотографию профиля"
+
+#: ../../Zotlabs/Module/Profile_photo.php:459
+msgid "Use"
+msgstr "Использовать"
+
+#: ../../Zotlabs/Module/Profile_photo.php:463
+#: ../../Zotlabs/Module/Profile_photo.php:464
+#: ../../Zotlabs/Module/Cover_photo.php:397
+#: ../../Zotlabs/Module/Cover_photo.php:398
+msgid "Use a photo from your albums"
+msgstr "Использовать фотографию из ваших альбомов"
+
+#: ../../Zotlabs/Module/Profile_photo.php:474
+#: ../../Zotlabs/Module/Cover_photo.php:409
+msgid "Select existing photo"
+msgstr "Выбрать существующую фотографию"
+
+#: ../../Zotlabs/Module/Profile_photo.php:493
+#: ../../Zotlabs/Module/Cover_photo.php:426
+msgid "Crop Image"
+msgstr "Обрезать изображение"
+
+#: ../../Zotlabs/Module/Profile_photo.php:494
+#: ../../Zotlabs/Module/Cover_photo.php:427
+msgid "Please adjust the image cropping for optimum viewing."
+msgstr "Пожалуйста настройте обрезку изображения для оптимального просмотра."
+
+#: ../../Zotlabs/Module/Profile_photo.php:496
+#: ../../Zotlabs/Module/Cover_photo.php:429
+msgid "Done Editing"
+msgstr "Закончить редактирование"
+
+#: ../../Zotlabs/Module/Chatsvc.php:131
+msgid "Away"
+msgstr "Нет на месте"
+
+#: ../../Zotlabs/Module/Chatsvc.php:136
+msgid "Online"
+msgstr "В сети"
+
+#: ../../Zotlabs/Module/Item.php:341
+msgid "Unable to locate original post."
+msgstr "Не удалось найти оригинальную публикацию."
+
+#: ../../Zotlabs/Module/Item.php:628
+msgid "Empty post discarded."
+msgstr "Пустая публикация отклонена."
+
+#: ../../Zotlabs/Module/Item.php:1037
+msgid "Duplicate post suppressed."
+msgstr "Подавлена дублирующаяся публикация."
+
+#: ../../Zotlabs/Module/Item.php:1182
+msgid "System error. Post not saved."
+msgstr "Системная ошибка. Публикация не сохранена."
+
+#: ../../Zotlabs/Module/Item.php:1218
+msgid "Your comment is awaiting approval."
+msgstr "Ваш комментарий ожидает одобрения."
+
+#: ../../Zotlabs/Module/Item.php:1335
+msgid "Unable to obtain post information from database."
+msgstr "Невозможно получить информацию о публикации из базы данных"
+
+#: ../../Zotlabs/Module/Item.php:1342
#, php-format
-msgid "Your service plan only allows %d channels."
-msgstr "Ваш класс обслуживания разрешает только %d каналов."
+msgid "You have reached your limit of %1$.0f top level posts."
+msgstr "Вы достигли вашего ограничения в %1$.0f публикаций высокого уровня."
-#: ../../Zotlabs/Module/Import.php:173
-msgid "No channel. Import failed."
-msgstr "Канала нет. Импорт невозможен."
+#: ../../Zotlabs/Module/Item.php:1349
+#, php-format
+msgid "You have reached your limit of %1$.0f webpages."
+msgstr "Вы достигли вашего ограничения в %1$.0f страниц."
-#: ../../Zotlabs/Module/Import.php:513
-#: ../../extend/addon/hzaddons/diaspora/import_diaspora.php:141
-msgid "Import completed."
-msgstr "Импорт завершен."
+#: ../../Zotlabs/Module/Ping.php:338
+msgid "sent you a private message"
+msgstr "отправил вам личное сообщение"
-#: ../../Zotlabs/Module/Import.php:541
-msgid "You must be logged in to use this feature."
-msgstr "Вы должны войти в систему, чтобы использовать эту функцию."
+#: ../../Zotlabs/Module/Ping.php:394
+msgid "added your channel"
+msgstr "добавил ваш канал"
-#: ../../Zotlabs/Module/Import.php:546
-msgid "Import Channel"
-msgstr "Импортировать канал"
+#: ../../Zotlabs/Module/Ping.php:419
+msgid "requires approval"
+msgstr "Требуется подтверждение"
-#: ../../Zotlabs/Module/Import.php:547
-msgid ""
-"Use this form to import an existing channel from a different server/hub. You "
-"may retrieve the channel identity from the old server/hub via the network or "
-"provide an export file."
-msgstr "Используйте эту форм для импорта существующего канала с другого сервера / хаба. Вы можете получить идентификационные данные канала со старого сервера / хаба через сеть или предоставить файл экспорта."
+#: ../../Zotlabs/Module/Ping.php:429
+msgid "g A l F d"
+msgstr "g A l F d"
-#: ../../Zotlabs/Module/Import.php:548
-#: ../../Zotlabs/Module/Import_items.php:127
-msgid "File to Upload"
-msgstr "Файл для загрузки"
+#: ../../Zotlabs/Module/Ping.php:447
+msgid "[today]"
+msgstr "[сегодня]"
-#: ../../Zotlabs/Module/Import.php:549
-msgid "Or provide the old server/hub details"
-msgstr "или предоставьте данные старого сервера"
+#: ../../Zotlabs/Module/Ping.php:457
+msgid "posted an event"
+msgstr "событие опубликовано"
-#: ../../Zotlabs/Module/Import.php:551
-msgid "Your old identity address (xyz@example.com)"
-msgstr "Ваш старый адрес идентичности (xyz@example.com)"
+#: ../../Zotlabs/Module/Ping.php:491
+msgid "shared a file with you"
+msgstr "с вами поделились файлом"
-#: ../../Zotlabs/Module/Import.php:552
-msgid "Your old login email address"
-msgstr "Ваш старый адрес электронной почты"
+#: ../../Zotlabs/Module/Ping.php:673
+msgid "Private forum"
+msgstr "Частный форум"
-#: ../../Zotlabs/Module/Import.php:553
-msgid "Your old login password"
-msgstr "Ваш старый пароль"
+#: ../../Zotlabs/Module/Ping.php:673
+msgid "Public forum"
+msgstr "Публичный форум"
-#: ../../Zotlabs/Module/Import.php:554
-msgid "Import a few months of posts if possible (limited by available memory"
-msgstr "Импортировать несколько месяцев публикаций если возможно (ограничено доступной памятью)"
+#: ../../Zotlabs/Module/Page.php:39 ../../Zotlabs/Module/Block.php:29
+msgid "Invalid item."
+msgstr "Недействительный элемент."
-#: ../../Zotlabs/Module/Import.php:556
+#: ../../Zotlabs/Module/Page.php:136 ../../Zotlabs/Module/Block.php:77
+#: ../../Zotlabs/Module/Display.php:140 ../../Zotlabs/Module/Display.php:157
+#: ../../Zotlabs/Module/Display.php:174
+#: ../../Zotlabs/Lib/NativeWikiPage.php:521 ../../Zotlabs/Web/Router.php:185
+#: ../../addon/chess/Mod_Chess.php:447 ../../include/help.php:132
+msgid "Page not found."
+msgstr "Страница не найдена."
+
+#: ../../Zotlabs/Module/Page.php:173
msgid ""
-"For either option, please choose whether to make this hub your new primary "
-"address, or whether your old location should continue this role. You will be "
-"able to post from either location, but only one can be marked as the primary "
-"location for files, photos, and media."
-msgstr "Для любого варианта, пожалуйста, выберите, следует ли сделать этот хаб вашим новым основным адресом, или ваше прежнее местоположение должно продолжить выполнять эту роль. Вы сможете отправлять сообщения из любого местоположения, но только одно может быть помечено как основное место для файлов, фотографий и мультимедиа."
+"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod "
+"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, "
+"quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo "
+"consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse "
+"cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat "
+"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+msgstr ""
-#: ../../Zotlabs/Module/Import.php:558
-msgid "Make this hub my primary location"
-msgstr "Сделать этот хаб главным"
+#: ../../Zotlabs/Module/Connedit.php:81 ../../Zotlabs/Module/Defperms.php:67
+msgid "Could not access contact record."
+msgstr "Не удалось получить доступ к записи контакта."
-#: ../../Zotlabs/Module/Import.php:559
-msgid "Move this channel (disable all previous locations)"
-msgstr "Переместить это канал (отключить все предыдущие месторасположения)"
+#: ../../Zotlabs/Module/Connedit.php:112
+msgid "Could not locate selected profile."
+msgstr "Не удалось обнаружить выбранный профиль."
-#: ../../Zotlabs/Module/Import.php:560
-msgid "Use this channel nickname instead of the one provided"
-msgstr "Использовать псевдоним этого канала вместо предоставленного"
+#: ../../Zotlabs/Module/Connedit.php:256
+msgid "Connection updated."
+msgstr "Контакты обновлены."
-#: ../../Zotlabs/Module/Import.php:560
-msgid ""
-"Leave blank to keep your existing channel nickname. You will be randomly "
-"assigned a similar nickname if either name is already allocated on this site."
-msgstr "Оставьте пустым для сохранения существующего псевдонима канала. Вам будет случайным образом назначен похожий псевдоним если такое имя уже выделено на этом сайте."
+#: ../../Zotlabs/Module/Connedit.php:258
+msgid "Failed to update connection record."
+msgstr "Не удалось обновить запись контакта."
-#: ../../Zotlabs/Module/Import.php:562
-msgid ""
-"This process may take several minutes to complete. Please submit the form "
-"only once and leave this page open until finished."
-msgstr "Процесс может занять несколько минут. Пожалуйста, отправьте форму только один раз и оставьте эту страницу открытой до завершения."
+#: ../../Zotlabs/Module/Connedit.php:312
+msgid "is now connected to"
+msgstr "теперь подключён к"
-#: ../../Zotlabs/Module/Magic.php:76
-msgid "Hub not found."
-msgstr "Узел не найден."
+#: ../../Zotlabs/Module/Connedit.php:437
+msgid "Could not access address book record."
+msgstr "Не удалось получить доступ к записи адресной книги."
-#: ../../Zotlabs/Module/Import_items.php:93
+#: ../../Zotlabs/Module/Connedit.php:485 ../../Zotlabs/Module/Connedit.php:489
+msgid "Refresh failed - channel is currently unavailable."
+msgstr "Обновление невозможно - в настоящее время канал недоступен."
+
+#: ../../Zotlabs/Module/Connedit.php:504 ../../Zotlabs/Module/Connedit.php:513
+#: ../../Zotlabs/Module/Connedit.php:522 ../../Zotlabs/Module/Connedit.php:531
+#: ../../Zotlabs/Module/Connedit.php:544
+msgid "Unable to set address book parameters."
+msgstr "Не удалось получить доступ к параметрам адресной книги."
+
+#: ../../Zotlabs/Module/Connedit.php:568
+msgid "Connection has been removed."
+msgstr "Контакт был удалён."
+
+#: ../../Zotlabs/Module/Connedit.php:608 ../../Zotlabs/Lib/Apps.php:341
+#: ../../addon/openclipatar/openclipatar.php:57
+#: ../../include/conversation.php:1038 ../../include/nav.php:106
+msgid "View Profile"
+msgstr "Просмотреть профиль"
+
+#: ../../Zotlabs/Module/Connedit.php:611
#, php-format
-msgid "Warning: Database versions differ by %1$d updates."
-msgstr "Предупреждение: Версия базы данных отличается от %1$d обновления."
+msgid "View %s's profile"
+msgstr "Просмотр %s профиля"
-#: ../../Zotlabs/Module/Import_items.php:108
-msgid "Import completed"
-msgstr "Импорт завершён."
+#: ../../Zotlabs/Module/Connedit.php:615
+msgid "Refresh Permissions"
+msgstr "Обновить разрешения"
-#: ../../Zotlabs/Module/Import_items.php:125
-msgid "Import Items"
-msgstr "Импортировать объекты"
+#: ../../Zotlabs/Module/Connedit.php:618
+msgid "Fetch updated permissions"
+msgstr "Получить обновлённые разрешения"
-#: ../../Zotlabs/Module/Import_items.php:126
-msgid "Use this form to import existing posts and content from an export file."
-msgstr "Используйте эту форму для импорта существующих публикаций и содержимого из файла."
+#: ../../Zotlabs/Module/Connedit.php:622
+msgid "Refresh Photo"
+msgstr "Обновить фотографию"
-#: ../../Zotlabs/Module/Siteinfo.php:21
-msgid "About this site"
-msgstr "Об этом сайте"
+#: ../../Zotlabs/Module/Connedit.php:625
+msgid "Fetch updated photo"
+msgstr "Получить обновлённую фотографию"
-#: ../../Zotlabs/Module/Siteinfo.php:22
-msgid "Site Name"
-msgstr "Название сайта"
+#: ../../Zotlabs/Module/Connedit.php:629 ../../include/conversation.php:1048
+msgid "Recent Activity"
+msgstr "Последние действия"
-#: ../../Zotlabs/Module/Siteinfo.php:26
-msgid "Administrator"
-msgstr "Администратор"
+#: ../../Zotlabs/Module/Connedit.php:632
+msgid "View recent posts and comments"
+msgstr "Просмотреть последние публикации и комментарии"
-#: ../../Zotlabs/Module/Siteinfo.php:29
-msgid "Software and Project information"
-msgstr "Информация о программном обеспечении и проекте"
+#: ../../Zotlabs/Module/Connedit.php:639
+msgid "Block (or Unblock) all communications with this connection"
+msgstr "Блокировать (или разблокировать) связи с этим контактом"
-#: ../../Zotlabs/Module/Siteinfo.php:30
-msgid "This site is powered by $Projectname"
-msgstr "Этот сайт работает на $Projectname"
+#: ../../Zotlabs/Module/Connedit.php:640
+msgid "This connection is blocked!"
+msgstr "Этот контакт заблокирован!"
-#: ../../Zotlabs/Module/Siteinfo.php:31
+#: ../../Zotlabs/Module/Connedit.php:644
+msgid "Unignore"
+msgstr "Не игнорировать"
+
+#: ../../Zotlabs/Module/Connedit.php:647
+msgid "Ignore (or Unignore) all inbound communications from this connection"
+msgstr "Игнорировать (или не игнорировать) все связи для этого контакта"
+
+#: ../../Zotlabs/Module/Connedit.php:648
+msgid "This connection is ignored!"
+msgstr "Этот контакт игнорируется!"
+
+#: ../../Zotlabs/Module/Connedit.php:652
+msgid "Unarchive"
+msgstr "Разархивировать"
+
+#: ../../Zotlabs/Module/Connedit.php:652
+msgid "Archive"
+msgstr "Заархивировать"
+
+#: ../../Zotlabs/Module/Connedit.php:655
msgid ""
-"Federated and decentralised networking and identity services provided by Zot"
-msgstr "Объединенные и децентрализованные сети и службы идентификациии обеспечиваются Zot"
+"Archive (or Unarchive) this connection - mark channel dead but keep content"
+msgstr "Заархивировать (или разархивировать) этот контакт - пометить канал отключённым но сохранить содержимое"
-#: ../../Zotlabs/Module/Siteinfo.php:34
-msgid "Additional federated transport protocols:"
-msgstr "Дополнительные федеративные транспортные протоколы:"
+#: ../../Zotlabs/Module/Connedit.php:656
+msgid "This connection is archived!"
+msgstr "Этот контакт заархивирован!"
-#: ../../Zotlabs/Module/Siteinfo.php:36
-#, php-format
-msgid "Version %s"
-msgstr "Версия %s"
+#: ../../Zotlabs/Module/Connedit.php:660
+msgid "Unhide"
+msgstr "Показать"
-#: ../../Zotlabs/Module/Siteinfo.php:37
-msgid "Project homepage"
-msgstr "Домашняя страница проекта"
+#: ../../Zotlabs/Module/Connedit.php:660
+msgid "Hide"
+msgstr "Скрыть"
-#: ../../Zotlabs/Module/Siteinfo.php:38
-msgid "Developer homepage"
-msgstr "Домашняя страница разработчика"
+#: ../../Zotlabs/Module/Connedit.php:663
+msgid "Hide or Unhide this connection from your other connections"
+msgstr "Скрыть или показать этот контакт от / для остальных"
-#: ../../Zotlabs/Module/Cards.php:46
-msgid "Cards App"
-msgstr "Приложение \"Карточки\""
+#: ../../Zotlabs/Module/Connedit.php:664
+msgid "This connection is hidden!"
+msgstr "Этот контакт скрыт!"
-#: ../../Zotlabs/Module/Cards.php:47
-msgid "Create personal planning cards"
-msgstr "Создать личные карточки планирования"
+#: ../../Zotlabs/Module/Connedit.php:671
+msgid "Delete this connection"
+msgstr "Удалить этот контакт"
-#: ../../Zotlabs/Module/Cards.php:108
-msgid "Add Card"
-msgstr "Добавить карточку"
+#: ../../Zotlabs/Module/Connedit.php:679
+msgid "Fetch Vcard"
+msgstr "Получить vCard"
-#: ../../Zotlabs/Module/Removeaccount.php:35
+#: ../../Zotlabs/Module/Connedit.php:682
+msgid "Fetch electronic calling card for this connection"
+msgstr "Получить электронную телефонную карточку для этого контакта"
+
+#: ../../Zotlabs/Module/Connedit.php:693
+msgid "Open Individual Permissions section by default"
+msgstr "Открывать раздел \"Индивидуальные разрешения\" по умолчанию"
+
+#: ../../Zotlabs/Module/Connedit.php:716
+msgid "Affinity"
+msgstr "Сходство"
+
+#: ../../Zotlabs/Module/Connedit.php:719
+msgid "Open Set Affinity section by default"
+msgstr "Открыть секцию установления сходства по умолчанию"
+
+#: ../../Zotlabs/Module/Connedit.php:723 ../../Zotlabs/Widget/Affinity.php:30
+msgid "Me"
+msgstr "Я"
+
+#: ../../Zotlabs/Module/Connedit.php:724 ../../Zotlabs/Widget/Affinity.php:31
+msgid "Family"
+msgstr "Семья"
+
+#: ../../Zotlabs/Module/Connedit.php:726 ../../Zotlabs/Widget/Affinity.php:33
+msgid "Acquaintances"
+msgstr "Знакомые"
+
+#: ../../Zotlabs/Module/Connedit.php:756
+msgid "Filter"
+msgstr "Фильтр"
+
+#: ../../Zotlabs/Module/Connedit.php:759
+msgid "Open Custom Filter section by default"
+msgstr "Открывать секцию \"Настраиваемый фильтр\" по умолчанию"
+
+#: ../../Zotlabs/Module/Connedit.php:796
+msgid "Approve this connection"
+msgstr "Утвердить этот контакт"
+
+#: ../../Zotlabs/Module/Connedit.php:796
+msgid "Accept connection to allow communication"
+msgstr "Принять контакт чтобы разрешить связь"
+
+#: ../../Zotlabs/Module/Connedit.php:801
+msgid "Set Affinity"
+msgstr "Установить сходство"
+
+#: ../../Zotlabs/Module/Connedit.php:804
+msgid "Set Profile"
+msgstr "Установить профиль"
+
+#: ../../Zotlabs/Module/Connedit.php:807
+msgid "Set Affinity & Profile"
+msgstr "Установить сходство и профиль"
+
+#: ../../Zotlabs/Module/Connedit.php:855
+msgid "This connection is unreachable from this location."
+msgstr "Этот контакт недоступен для данного местоположения"
+
+#: ../../Zotlabs/Module/Connedit.php:856
+msgid "This connection may be unreachable from other channel locations."
+msgstr "Этот контакт может быть недоступен из других мест размещения канала"
+
+#: ../../Zotlabs/Module/Connedit.php:858
+msgid "Location independence is not supported by their network."
+msgstr "Независимое местоположение не поддерживается их сетью."
+
+#: ../../Zotlabs/Module/Connedit.php:864
msgid ""
-"Account removals are not allowed within 48 hours of changing the account "
-"password."
-msgstr "Удаление канала не разрешается в течении 48 часов после смены пароля у аккаунта."
+"This connection is unreachable from this location. Location independence is "
+"not supported by their network."
+msgstr "Этот контакт недоступен из данного местоположения. Независимое местоположение не поддерживается их сетью."
-#: ../../Zotlabs/Module/Removeaccount.php:57
-msgid "Remove This Account"
-msgstr "Удалить этот аккаунт"
+#: ../../Zotlabs/Module/Connedit.php:867 ../../Zotlabs/Module/Defperms.php:254
+msgid "Connection Default Permissions"
+msgstr "Разрешения по умолчанию для контакта"
-#: ../../Zotlabs/Module/Removeaccount.php:58
+#: ../../Zotlabs/Module/Connedit.php:867 ../../include/items.php:4308
+#, php-format
+msgid "Connection: %s"
+msgstr "Контакт: %s"
+
+#: ../../Zotlabs/Module/Connedit.php:868 ../../Zotlabs/Module/Defperms.php:255
+msgid "Apply these permissions automatically"
+msgstr "Применить эти разрешения автоматически"
+
+#: ../../Zotlabs/Module/Connedit.php:868
+msgid "Connection requests will be approved without your interaction"
+msgstr "Запросы контактов будут одобрены без вашего участия"
+
+#: ../../Zotlabs/Module/Connedit.php:869 ../../Zotlabs/Module/Defperms.php:256
+msgid "Permission role"
+msgstr "Роль разрешения"
+
+#: ../../Zotlabs/Module/Connedit.php:870 ../../Zotlabs/Module/Defperms.php:257
+msgid "Add permission role"
+msgstr "Добавить роль разрешения"
+
+#: ../../Zotlabs/Module/Connedit.php:877
+msgid "This connection's primary address is"
+msgstr "Главный адрес это контакта"
+
+#: ../../Zotlabs/Module/Connedit.php:878
+msgid "Available locations:"
+msgstr "Доступные расположения:"
+
+#: ../../Zotlabs/Module/Connedit.php:883 ../../Zotlabs/Module/Defperms.php:261
msgid ""
-"This account and all its channels will be completely removed from the "
-"network. "
-msgstr "Этот аккаунт и все его каналы будут полностью удалены из сети."
+"The permissions indicated on this page will be applied to all new "
+"connections."
+msgstr "Разрешения, указанные на этой странице, будут применяться ко всем новым соединениям."
-#: ../../Zotlabs/Module/Removeaccount.php:60
+#: ../../Zotlabs/Module/Connedit.php:884
+msgid "Connection Tools"
+msgstr "Инструменты контактов"
+
+#: ../../Zotlabs/Module/Connedit.php:886
+msgid "Slide to adjust your degree of friendship"
+msgstr "Прокрутить для настройки степени дружбы"
+
+#: ../../Zotlabs/Module/Connedit.php:887 ../../Zotlabs/Module/Rate.php:155
+#: ../../include/js_strings.php:20
+msgid "Rating"
+msgstr "Оценка"
+
+#: ../../Zotlabs/Module/Connedit.php:888
+msgid "Slide to adjust your rating"
+msgstr "Прокрутить для настройки оценки"
+
+#: ../../Zotlabs/Module/Connedit.php:889 ../../Zotlabs/Module/Connedit.php:894
+msgid "Optionally explain your rating"
+msgstr "Объясните свою оценку (не обязательно)"
+
+#: ../../Zotlabs/Module/Connedit.php:891
+msgid "Custom Filter"
+msgstr "Настраиваемый фильтр"
+
+#: ../../Zotlabs/Module/Connedit.php:892
+msgid "Only import posts with this text"
+msgstr "Импортировать публикации только с этим текстом"
+
+#: ../../Zotlabs/Module/Connedit.php:893
+msgid "Do not import posts with this text"
+msgstr "Не импортировать публикации с этим текстом"
+
+#: ../../Zotlabs/Module/Connedit.php:895
+msgid "This information is public!"
+msgstr "Эта информация общедоступна!"
+
+#: ../../Zotlabs/Module/Connedit.php:900
+msgid "Connection Pending Approval"
+msgstr "Ожидающие подтверждения контактов"
+
+#: ../../Zotlabs/Module/Connedit.php:905
+#, php-format
msgid ""
-"Remove this account, all its channels and all its channel clones from the "
-"network"
-msgstr "Удалить этот аккаунт, все его каналы и их клоны из сети."
+"Please choose the profile you would like to display to %s when viewing your "
+"profile securely."
+msgstr "Пожалуйста, выберите профиль который вы хотит показывать в %s при безопасном просмотре."
-#: ../../Zotlabs/Module/Removeaccount.php:60
+#: ../../Zotlabs/Module/Connedit.php:912
msgid ""
-"By default only the instances of the channels located on this hub will be "
-"removed from the network"
-msgstr "По умолчанию только представление канала расположенное на данном хабе будет удалено из сети"
+"Some permissions may be inherited from your channel's <a href=\"settings"
+"\"><strong>privacy settings</strong></a>, which have higher priority than "
+"individual settings. You can change those settings here but they wont have "
+"any impact unless the inherited setting changes."
+msgstr "Некоторые разрешения могут быть унаследованы из <a href=\"settings\"><strong>настроек приватности</strong></a> вашего канала, которые могут иметь более высокий приоритет чем индивидуальные. Вы можете изменить эти настройки, однако они не будут применены до изменения переданных по наследству настроек."
-#: ../../Zotlabs/Module/Oexchange.php:27
-msgid "Unable to find your hub."
-msgstr "Невозможно найти ваш сервер"
+#: ../../Zotlabs/Module/Connedit.php:913
+msgid "Last update:"
+msgstr "Последнее обновление:"
-#: ../../Zotlabs/Module/Oexchange.php:41
-msgid "Post successful."
-msgstr "Успешно опубликовано."
+#: ../../Zotlabs/Module/Connedit.php:921
+msgid "Details"
+msgstr "Сведения"
-#: ../../Zotlabs/Module/Rmagic.php:35
-msgid "Authentication failed."
-msgstr "Ошибка аутентификации."
+#: ../../Zotlabs/Module/Chat.php:102
+msgid "Chatrooms App"
+msgstr "Приложение \"Мои чаты\""
+
+#: ../../Zotlabs/Module/Chat.php:103
+msgid "Access Controlled Chatrooms"
+msgstr "Получить доступ к контролируемым чатам"
+
+#: ../../Zotlabs/Module/Chat.php:196
+msgid "Room not found"
+msgstr "Комната не найдена"
+
+#: ../../Zotlabs/Module/Chat.php:212
+msgid "Leave Room"
+msgstr "Покинуть комнату"
+
+#: ../../Zotlabs/Module/Chat.php:213
+msgid "Delete Room"
+msgstr "Удалить комнату"
+
+#: ../../Zotlabs/Module/Chat.php:214
+msgid "I am away right now"
+msgstr "Я сейчас отошёл"
+
+#: ../../Zotlabs/Module/Chat.php:215
+msgid "I am online"
+msgstr "Я на связи"
+
+#: ../../Zotlabs/Module/Chat.php:217
+msgid "Bookmark this room"
+msgstr "Запомнить эту комнату"
+
+#: ../../Zotlabs/Module/Chat.php:220 ../../Zotlabs/Module/Mail.php:241
+#: ../../Zotlabs/Module/Mail.php:362 ../../addon/hsse/hsse.php:134
+#: ../../include/conversation.php:1337
+msgid "Please enter a link URL:"
+msgstr "Пожалуйста введите URL ссылки:"
+
+#: ../../Zotlabs/Module/Chat.php:221 ../../Zotlabs/Module/Mail.php:294
+#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:809
+#: ../../addon/hsse/hsse.php:255 ../../include/conversation.php:1461
+msgid "Encrypt text"
+msgstr "Зашифровать текст"
+
+#: ../../Zotlabs/Module/Chat.php:240
+msgid "New Chatroom"
+msgstr "Новый чат"
+
+#: ../../Zotlabs/Module/Chat.php:241
+msgid "Chatroom name"
+msgstr "Название чата"
+
+#: ../../Zotlabs/Module/Chat.php:242
+msgid "Expiration of chats (minutes)"
+msgstr "Завершение чатов (минут)"
+
+#: ../../Zotlabs/Module/Chat.php:258
+#, php-format
+msgid "%1$s's Chatrooms"
+msgstr "Чаты пользователя %1$s"
+
+#: ../../Zotlabs/Module/Chat.php:263
+msgid "No chatrooms available"
+msgstr "Нет доступных чатов"
+
+#: ../../Zotlabs/Module/Chat.php:267
+msgid "Expiration"
+msgstr "Срок действия"
+
+#: ../../Zotlabs/Module/Chat.php:268
+msgid "min"
+msgstr "мин."
+
+#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:342
+#: ../../include/features.php:383 ../../include/nav.php:444
+msgid "Photos"
+msgstr "Фотографии"
+
+#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:337
+#: ../../Zotlabs/Storage/Browser.php:272 ../../include/nav.php:452
+msgid "Files"
+msgstr "Файлы"
+
+#: ../../Zotlabs/Module/Menu.php:67
+msgid "Unable to update menu."
+msgstr "Невозможно обновить меню."
+
+#: ../../Zotlabs/Module/Menu.php:78
+msgid "Unable to create menu."
+msgstr "Невозможно создать меню."
+
+#: ../../Zotlabs/Module/Menu.php:160 ../../Zotlabs/Module/Menu.php:173
+msgid "Menu Name"
+msgstr "Название меню"
+
+#: ../../Zotlabs/Module/Menu.php:160
+msgid "Unique name (not visible on webpage) - required"
+msgstr "Уникальное название (не видимо на странице) - требуется"
+
+#: ../../Zotlabs/Module/Menu.php:161 ../../Zotlabs/Module/Menu.php:174
+msgid "Menu Title"
+msgstr "Заголовок меню"
+
+#: ../../Zotlabs/Module/Menu.php:161
+msgid "Visible on webpage - leave empty for no title"
+msgstr "Видимость на странице - оставьте пустым если не хотите иметь заголовок"
+
+#: ../../Zotlabs/Module/Menu.php:162
+msgid "Allow Bookmarks"
+msgstr "Разрешить закладки"
+
+#: ../../Zotlabs/Module/Menu.php:162 ../../Zotlabs/Module/Menu.php:221
+msgid "Menu may be used to store saved bookmarks"
+msgstr "Меню может использоваться, чтобы сохранить закладки"
+
+#: ../../Zotlabs/Module/Menu.php:163 ../../Zotlabs/Module/Menu.php:224
+msgid "Submit and proceed"
+msgstr "Отправить и обработать"
+
+#: ../../Zotlabs/Module/Menu.php:170 ../../include/text.php:2535
+msgid "Menus"
+msgstr "Меню"
+
+#: ../../Zotlabs/Module/Menu.php:180
+msgid "Bookmarks allowed"
+msgstr "Закладки разрешены"
+
+#: ../../Zotlabs/Module/Menu.php:182
+msgid "Delete this menu"
+msgstr "Удалить это меню"
+
+#: ../../Zotlabs/Module/Menu.php:183 ../../Zotlabs/Module/Menu.php:218
+msgid "Edit menu contents"
+msgstr "Редактировать содержание меню"
+
+#: ../../Zotlabs/Module/Menu.php:184
+msgid "Edit this menu"
+msgstr "Редактировать это меню"
+
+#: ../../Zotlabs/Module/Menu.php:200
+msgid "Menu could not be deleted."
+msgstr "Меню не может быть удалено."
+
+#: ../../Zotlabs/Module/Menu.php:213
+msgid "Edit Menu"
+msgstr "Редактировать меню"
+
+#: ../../Zotlabs/Module/Menu.php:217
+msgid "Add or remove entries to this menu"
+msgstr "Добавить или удалить пункты этого меню"
+
+#: ../../Zotlabs/Module/Menu.php:219
+msgid "Menu name"
+msgstr "Название меню"
+
+#: ../../Zotlabs/Module/Menu.php:219
+msgid "Must be unique, only seen by you"
+msgstr "Должно быть уникальным (видно только вам)"
+
+#: ../../Zotlabs/Module/Menu.php:220
+msgid "Menu title"
+msgstr "Заголовок меню"
+
+#: ../../Zotlabs/Module/Menu.php:220
+msgid "Menu title as seen by others"
+msgstr "Видимый другими заголовок меню"
+
+#: ../../Zotlabs/Module/Menu.php:221
+msgid "Allow bookmarks"
+msgstr "Разрешить закладки"
+
+#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2536
+msgid "Layouts"
+msgstr "Шаблоны"
+
+#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:345
+#: ../../include/nav.php:168 ../../include/nav.php:319
+#: ../../include/help.php:117 ../../include/help.php:125
+msgid "Help"
+msgstr "Помощь"
#: ../../Zotlabs/Module/Layouts.php:186
msgid "Comanche page description language help"
@@ -10871,6 +6142,530 @@ msgstr "Описание шаблона"
msgid "Download PDL file"
msgstr "Загрузить PDL файл"
+#: ../../Zotlabs/Module/Notes.php:56
+msgid "Notes App"
+msgstr "Приложение \"Заметки\""
+
+#: ../../Zotlabs/Module/Notes.php:57
+msgid "A simple notes app with a widget (note: notes are not encrypted)"
+msgstr "Простое приложение для заметок с виджетом (примечание: заметки не зашифрованы)"
+
+#: ../../Zotlabs/Module/Cloud.php:123
+msgid "Not found"
+msgstr "Не найдено."
+
+#: ../../Zotlabs/Module/Cloud.php:129
+msgid "Please refresh page"
+msgstr "Пожалуйста обновите страницу"
+
+#: ../../Zotlabs/Module/Cloud.php:132
+msgid "Unknown error"
+msgstr "Неизвестная ошибка"
+
+#: ../../Zotlabs/Module/Email_validation.php:24
+#: ../../Zotlabs/Module/Email_resend.php:12
+msgid "Token verification failed."
+msgstr "Не удалось выполнить проверку токена."
+
+#: ../../Zotlabs/Module/Email_validation.php:36
+msgid "Email Verification Required"
+msgstr "Требуется проверка адреса email"
+
+#: ../../Zotlabs/Module/Email_validation.php:37
+#, php-format
+msgid ""
+"A verification token was sent to your email address [%s]. Enter that token "
+"here to complete the account verification step. Please allow a few minutes "
+"for delivery, and check your spam folder if you do not see the message."
+msgstr "Проверочный токен был отправлен на ваш адрес электронной почты [%s]. Введите этот токен здесь для завершения этапа проверки учётной записи. Пожалуйста, подождите несколько минут для завершения доставки и проверьте вашу папку \"Спам\" если вы не видите письма."
+
+#: ../../Zotlabs/Module/Email_validation.php:38
+msgid "Resend Email"
+msgstr "Выслать повторно"
+
+#: ../../Zotlabs/Module/Email_validation.php:41
+msgid "Validation token"
+msgstr "Проверочный токен"
+
+#: ../../Zotlabs/Module/Tagger.php:48
+msgid "Post not found."
+msgstr "Публикация не найдена"
+
+#: ../../Zotlabs/Module/Tagger.php:77 ../../include/markdown.php:200
+#: ../../include/bbcode.php:343
+msgid "post"
+msgstr "публикация"
+
+#: ../../Zotlabs/Module/Tagger.php:79 ../../include/conversation.php:146
+#: ../../include/text.php:2099
+msgid "comment"
+msgstr "комментарий"
+
+#: ../../Zotlabs/Module/Tagger.php:119
+#, php-format
+msgid "%1$s tagged %2$s's %3$s with %4$s"
+msgstr "%1$s отметил тегом %2$s %3$s с %4$s"
+
+#: ../../Zotlabs/Module/Pconfig.php:32 ../../Zotlabs/Module/Pconfig.php:68
+msgid "This setting requires special processing and editing has been blocked."
+msgstr "Этот параметр требует специальной обработки и редактирования и был заблокирован."
+
+#: ../../Zotlabs/Module/Pconfig.php:57
+msgid "Configuration Editor"
+msgstr "Редактор конфигурации"
+
+#: ../../Zotlabs/Module/Pconfig.php:58
+msgid ""
+"Warning: Changing some settings could render your channel inoperable. Please "
+"leave this page unless you are comfortable with and knowledgeable about how "
+"to correctly use this feature."
+msgstr "Предупреждение. Изменение некоторых настроек может привести к неработоспособности вашего канала. Пожалуйста, покиньте эту страницу, если вы точно не значете, как правильно использовать эту функцию."
+
+#: ../../Zotlabs/Module/Affinity.php:35
+msgid "Affinity Tool settings updated."
+msgstr "Настройки степени сходства обновлены."
+
+#: ../../Zotlabs/Module/Affinity.php:47
+msgid ""
+"This app presents a slider control in your connection editor and also on "
+"your network page. The slider represents your degree of friendship "
+"(affinity) with each connection. It allows you to zoom in or out and display "
+"conversations from only your closest friends or everybody in your stream."
+msgstr "Это приложение представляет управление ползунком на странице контактов и сетевом потоке, который позволяет выбирать вашу степень дружбы (сходства). Это позволяет вам увеличивать или уменьшать масштаб и отображать разговоры только от ваших самых близких друзей или всех в вашем потоке."
+
+#: ../../Zotlabs/Module/Affinity.php:52
+msgid "Affinity Tool App"
+msgstr "Приложение \"Степень сходства\""
+
+#: ../../Zotlabs/Module/Affinity.php:57
+msgid ""
+"The numbers below represent the minimum and maximum slider default positions "
+"for your network/stream page as a percentage."
+msgstr "Числа ниже представляют минимальное и максимальное значение по умолчанию для вашей сети / потока в процентах."
+
+#: ../../Zotlabs/Module/Affinity.php:64
+msgid "Default maximum affinity level"
+msgstr "Максимальная степень сходства по умолчанию."
+
+#: ../../Zotlabs/Module/Affinity.php:64
+msgid "0-99 default 99"
+msgstr "0-99 (по умолчанию 99)"
+
+#: ../../Zotlabs/Module/Affinity.php:70
+msgid "Default minimum affinity level"
+msgstr "Максимальная степень сходства по умолчанию."
+
+#: ../../Zotlabs/Module/Affinity.php:70
+msgid "0-99 - default 0"
+msgstr "0-99 (по умолчанию 0)"
+
+#: ../../Zotlabs/Module/Affinity.php:76
+msgid "Persistent affinity levels"
+msgstr "Устоявшиеся степени сходства"
+
+#: ../../Zotlabs/Module/Affinity.php:76
+msgid ""
+"If disabled the max and min levels will be reset to default after page reload"
+msgstr "Если этот параметр отключен, максимальный и минимальный уровни будут сброшены к значениям по умолчанию после перезагрузки страницы"
+
+#: ../../Zotlabs/Module/Affinity.php:84
+msgid "Affinity Tool Settings"
+msgstr "Настройки степени сходства"
+
+#: ../../Zotlabs/Module/Defperms.php:189
+msgid "Default Permissions App"
+msgstr "Приложение \"Разрешения по умолчанию\""
+
+#: ../../Zotlabs/Module/Defperms.php:190
+msgid "Set custom default permissions for new connections"
+msgstr "Настройка пользовательских разрешений по умолчанию для новых подключений "
+
+#: ../../Zotlabs/Module/Defperms.php:262
+msgid "Automatic approval settings"
+msgstr "Настройки автоматического одобрения"
+
+#: ../../Zotlabs/Module/Defperms.php:270
+msgid ""
+"Some individual permissions may have been preset or locked based on your "
+"channel type and privacy settings."
+msgstr "Некоторые индивидуальные разрешения могут быть предустановлены или заблокированы на основании типа вашего канала и настроек приватности."
+
+#: ../../Zotlabs/Module/Authorize.php:17
+msgid "Unknown App"
+msgstr "Неизвестное приложение"
+
+#: ../../Zotlabs/Module/Authorize.php:29
+msgid "Authorize"
+msgstr "Авторизовать"
+
+#: ../../Zotlabs/Module/Authorize.php:30
+#, php-format
+msgid "Do you authorize the app %s to access your channel data?"
+msgstr "Авторизуете ли вы приложение %s для доступа к данным вашего канала?"
+
+#: ../../Zotlabs/Module/Authorize.php:32
+msgid "Allow"
+msgstr "Разрешить"
+
+#: ../../Zotlabs/Module/Group.php:45
+msgid "Privacy group created."
+msgstr "Группа безопасности создана."
+
+#: ../../Zotlabs/Module/Group.php:48
+msgid "Could not create privacy group."
+msgstr "Не удалось создать группу безопасности."
+
+#: ../../Zotlabs/Module/Group.php:61 ../../Zotlabs/Module/Group.php:213
+#: ../../include/items.php:4275
+msgid "Privacy group not found."
+msgstr "Группа безопасности не найдена."
+
+#: ../../Zotlabs/Module/Group.php:80
+msgid "Privacy group updated."
+msgstr "Группа безопасности обновлена."
+
+#: ../../Zotlabs/Module/Group.php:106
+msgid "Privacy Groups App"
+msgstr "Приложение \"Группы безопасности\""
+
+#: ../../Zotlabs/Module/Group.php:107
+msgid "Management of privacy groups"
+msgstr "Управление группами безопасности."
+
+#: ../../Zotlabs/Module/Group.php:141 ../../Zotlabs/Module/Group.php:153
+#: ../../Zotlabs/Lib/Apps.php:361 ../../Zotlabs/Lib/Group.php:324
+#: ../../Zotlabs/Widget/Activity_filter.php:41 ../../include/nav.php:95
+#: ../../include/group.php:320
+msgid "Privacy Groups"
+msgstr "Группы безопасности"
+
+#: ../../Zotlabs/Module/Group.php:142
+msgid "Add Group"
+msgstr "Добавить группу"
+
+#: ../../Zotlabs/Module/Group.php:146
+msgid "Privacy group name"
+msgstr "Имя группы безопасности"
+
+#: ../../Zotlabs/Module/Group.php:147 ../../Zotlabs/Module/Group.php:256
+msgid "Members are visible to other channels"
+msgstr "Участники канала видимые для остальных"
+
+#: ../../Zotlabs/Module/Group.php:155 ../../Zotlabs/Module/Help.php:81
+msgid "Members"
+msgstr "Участники"
+
+#: ../../Zotlabs/Module/Group.php:182
+msgid "Privacy group removed."
+msgstr "Группа безопасности удалена."
+
+#: ../../Zotlabs/Module/Group.php:185
+msgid "Unable to remove privacy group."
+msgstr "Ну удалось удалить группу безопасности."
+
+#: ../../Zotlabs/Module/Group.php:251
+#, php-format
+msgid "Privacy Group: %s"
+msgstr "Группа безопасности: %s"
+
+#: ../../Zotlabs/Module/Group.php:253
+msgid "Privacy group name: "
+msgstr "Название группы безопасности: "
+
+#: ../../Zotlabs/Module/Group.php:258
+msgid "Delete Group"
+msgstr "Удалить группу"
+
+#: ../../Zotlabs/Module/Group.php:269
+msgid "Group members"
+msgstr "Члены группы"
+
+#: ../../Zotlabs/Module/Group.php:271
+msgid "Not in this group"
+msgstr "Не в этой группе"
+
+#: ../../Zotlabs/Module/Group.php:303
+msgid "Click a channel to toggle membership"
+msgstr "Нажмите на канал для просмотра членства"
+
+#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:184
+#: ../../Zotlabs/Module/Profiles.php:241 ../../Zotlabs/Module/Profiles.php:659
+msgid "Profile not found."
+msgstr "Профиль не найден."
+
+#: ../../Zotlabs/Module/Profiles.php:44
+msgid "Profile deleted."
+msgstr "Профиль удален."
+
+#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:105
+msgid "Profile-"
+msgstr "Профиль -"
+
+#: ../../Zotlabs/Module/Profiles.php:90 ../../Zotlabs/Module/Profiles.php:127
+msgid "New profile created."
+msgstr "Новый профиль создан."
+
+#: ../../Zotlabs/Module/Profiles.php:111
+msgid "Profile unavailable to clone."
+msgstr "Профиль недоступен для клонирования."
+
+#: ../../Zotlabs/Module/Profiles.php:146
+msgid "Profile unavailable to export."
+msgstr "Профиль недоступен для экспорта."
+
+#: ../../Zotlabs/Module/Profiles.php:252
+msgid "Profile Name is required."
+msgstr "Требуется имя профиля."
+
+#: ../../Zotlabs/Module/Profiles.php:459
+msgid "Marital Status"
+msgstr "Семейное положение"
+
+#: ../../Zotlabs/Module/Profiles.php:463
+msgid "Romantic Partner"
+msgstr "Романтический партнер"
+
+#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:772
+msgid "Likes"
+msgstr "Нравится"
+
+#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:773
+msgid "Dislikes"
+msgstr "Не нравится"
+
+#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:780
+msgid "Work/Employment"
+msgstr "Работа / Занятость"
+
+#: ../../Zotlabs/Module/Profiles.php:478
+msgid "Religion"
+msgstr "Религия"
+
+#: ../../Zotlabs/Module/Profiles.php:482
+msgid "Political Views"
+msgstr "Политические взгляды"
+
+#: ../../Zotlabs/Module/Profiles.php:486
+#: ../../addon/openid/MysqlProvider.php:74
+msgid "Gender"
+msgstr "Гендер"
+
+#: ../../Zotlabs/Module/Profiles.php:490
+msgid "Sexual Preference"
+msgstr "Сексуальная ориентация"
+
+#: ../../Zotlabs/Module/Profiles.php:494
+msgid "Homepage"
+msgstr "Домашняя страница"
+
+#: ../../Zotlabs/Module/Profiles.php:498
+msgid "Interests"
+msgstr "Интересы"
+
+#: ../../Zotlabs/Module/Profiles.php:594
+msgid "Profile updated."
+msgstr "Профиль обновлен."
+
+#: ../../Zotlabs/Module/Profiles.php:678
+msgid "Hide your connections list from viewers of this profile"
+msgstr "Скрывать от просмотра ваш список контактов в этом профиле"
+
+#: ../../Zotlabs/Module/Profiles.php:722
+msgid "Edit Profile Details"
+msgstr "Редактирование профиля"
+
+#: ../../Zotlabs/Module/Profiles.php:724
+msgid "View this profile"
+msgstr "Посмотреть этот профиль"
+
+#: ../../Zotlabs/Module/Profiles.php:725 ../../Zotlabs/Module/Profiles.php:824
+#: ../../include/channel.php:1375
+msgid "Edit visibility"
+msgstr "Редактировать видимость"
+
+#: ../../Zotlabs/Module/Profiles.php:726
+msgid "Profile Tools"
+msgstr "Инструменты профиля"
+
+#: ../../Zotlabs/Module/Profiles.php:727
+msgid "Change cover photo"
+msgstr "Изменить фотографию обложки"
+
+#: ../../Zotlabs/Module/Profiles.php:728 ../../include/channel.php:1345
+msgid "Change profile photo"
+msgstr "Изменить фотографию профиля"
+
+#: ../../Zotlabs/Module/Profiles.php:729
+msgid "Create a new profile using these settings"
+msgstr "Создать новый профиль с теми же настройками"
+
+#: ../../Zotlabs/Module/Profiles.php:730
+msgid "Clone this profile"
+msgstr "Клонировать этот профиль"
+
+#: ../../Zotlabs/Module/Profiles.php:731
+msgid "Delete this profile"
+msgstr "Удалить этот профиль"
+
+#: ../../Zotlabs/Module/Profiles.php:732
+msgid "Add profile things"
+msgstr "Добавить в профиль"
+
+#: ../../Zotlabs/Module/Profiles.php:733
+msgid "Personal"
+msgstr "Личное"
+
+#: ../../Zotlabs/Module/Profiles.php:735
+msgid "Relationship"
+msgstr "Отношения"
+
+#: ../../Zotlabs/Module/Profiles.php:736 ../../Zotlabs/Widget/Newmember.php:51
+#: ../../include/datetime.php:58
+msgid "Miscellaneous"
+msgstr "Прочее"
+
+#: ../../Zotlabs/Module/Profiles.php:738
+msgid "Import profile from file"
+msgstr "Импортировать профиль из файла"
+
+#: ../../Zotlabs/Module/Profiles.php:739
+msgid "Export profile to file"
+msgstr "Экспортировать профиль в файл"
+
+#: ../../Zotlabs/Module/Profiles.php:740
+msgid "Your gender"
+msgstr "Ваш пол"
+
+#: ../../Zotlabs/Module/Profiles.php:741
+msgid "Marital status"
+msgstr "Семейное положение"
+
+#: ../../Zotlabs/Module/Profiles.php:742
+msgid "Sexual preference"
+msgstr "Сексуальная ориентация"
+
+#: ../../Zotlabs/Module/Profiles.php:745
+msgid "Profile name"
+msgstr "Имя профиля"
+
+#: ../../Zotlabs/Module/Profiles.php:747
+msgid "This is your default profile."
+msgstr "Это ваш профиль по умолчанию."
+
+#: ../../Zotlabs/Module/Profiles.php:749
+msgid "Your full name"
+msgstr "Ваше полное имя"
+
+#: ../../Zotlabs/Module/Profiles.php:750
+msgid "Title/Description"
+msgstr "Заголовок / описание"
+
+#: ../../Zotlabs/Module/Profiles.php:753
+msgid "Street address"
+msgstr "Улица, дом, квартира"
+
+#: ../../Zotlabs/Module/Profiles.php:754
+msgid "Locality/City"
+msgstr "Населенный пункт / город"
+
+#: ../../Zotlabs/Module/Profiles.php:755
+msgid "Region/State"
+msgstr "Регион / Область"
+
+#: ../../Zotlabs/Module/Profiles.php:756
+msgid "Postal/Zip code"
+msgstr "Почтовый индекс"
+
+#: ../../Zotlabs/Module/Profiles.php:762
+msgid "Who (if applicable)"
+msgstr "Кто (если применимо)"
+
+#: ../../Zotlabs/Module/Profiles.php:762
+msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
+msgstr "Примеры: ivan1990, Ivan Petrov, ivan@example.com"
+
+#: ../../Zotlabs/Module/Profiles.php:763
+msgid "Since (date)"
+msgstr "С (дата)"
+
+#: ../../Zotlabs/Module/Profiles.php:766
+msgid "Tell us about yourself"
+msgstr "Расскажите нам о себе"
+
+#: ../../Zotlabs/Module/Profiles.php:767
+#: ../../addon/openid/MysqlProvider.php:68
+msgid "Homepage URL"
+msgstr "URL домашней страницы"
+
+#: ../../Zotlabs/Module/Profiles.php:768
+msgid "Hometown"
+msgstr "Родной город"
+
+#: ../../Zotlabs/Module/Profiles.php:769
+msgid "Political views"
+msgstr "Политические взгляды"
+
+#: ../../Zotlabs/Module/Profiles.php:770
+msgid "Religious views"
+msgstr "Религиозные взгляды"
+
+#: ../../Zotlabs/Module/Profiles.php:771
+msgid "Keywords used in directory listings"
+msgstr "Ключевые слова для участия в каталоге"
+
+#: ../../Zotlabs/Module/Profiles.php:771
+msgid "Example: fishing photography software"
+msgstr "Например: fishing photography software"
+
+#: ../../Zotlabs/Module/Profiles.php:774
+msgid "Musical interests"
+msgstr "Музыкальные интересы"
+
+#: ../../Zotlabs/Module/Profiles.php:775
+msgid "Books, literature"
+msgstr "Книги, литература"
+
+#: ../../Zotlabs/Module/Profiles.php:776
+msgid "Television"
+msgstr "Телевидение"
+
+#: ../../Zotlabs/Module/Profiles.php:777
+msgid "Film/Dance/Culture/Entertainment"
+msgstr "Кино / танцы / культура / развлечения"
+
+#: ../../Zotlabs/Module/Profiles.php:778
+msgid "Hobbies/Interests"
+msgstr "Хобби / интересы"
+
+#: ../../Zotlabs/Module/Profiles.php:779
+msgid "Love/Romance"
+msgstr "Любовь / романтические отношения"
+
+#: ../../Zotlabs/Module/Profiles.php:781
+msgid "School/Education"
+msgstr "Школа / образование"
+
+#: ../../Zotlabs/Module/Profiles.php:782
+msgid "Contact information and social networks"
+msgstr "Информация и социальные сети для связи"
+
+#: ../../Zotlabs/Module/Profiles.php:783
+msgid "My other channels"
+msgstr "Мои другие контакты"
+
+#: ../../Zotlabs/Module/Profiles.php:785
+msgid "Communications"
+msgstr "Связи"
+
+#: ../../Zotlabs/Module/Profiles.php:820 ../../include/channel.php:1371
+msgid "Profile Image"
+msgstr "Изображение профиля"
+
+#: ../../Zotlabs/Module/Profiles.php:830 ../../include/channel.php:1352
+#: ../../include/nav.php:109
+msgid "Edit Profiles"
+msgstr "Редактирование профилей"
+
#: ../../Zotlabs/Module/Go.php:21
msgid "This page is available only to site members"
msgstr "Эта страница доступна только для подписчиков сайта"
@@ -10934,732 +6729,1818 @@ msgstr "Ваш персональный поток (может быть пуст
msgid "View the public stream. Warning: this content is not moderated"
msgstr "Просмотр публичного потока. Предупреждение: этот контент не модерируется"
-#: ../../Zotlabs/Widget/Forums.php:100
-#: ../../Zotlabs/Widget/Notifications.php:119
-#: ../../Zotlabs/Widget/Notifications.php:120
-#: ../../Zotlabs/Widget/Activity_filter.php:102
-msgid "Forums"
-msgstr "Форумы"
+#: ../../Zotlabs/Module/Editwebpage.php:139
+msgid "Page link"
+msgstr "Ссылка страницы"
-#: ../../Zotlabs/Widget/Notes.php:21 ../../Zotlabs/Lib/Apps.php:346
-msgid "Notes"
-msgstr "Заметки"
+#: ../../Zotlabs/Module/Editwebpage.php:166
+msgid "Edit Webpage"
+msgstr "Редактировать веб-страницу"
-#: ../../Zotlabs/Widget/Suggestions.php:51
-msgid "Suggestions"
-msgstr "Рекомендации"
+#: ../../Zotlabs/Module/Manage.php:145
+msgid "Create a new channel"
+msgstr "Создать новый канал"
-#: ../../Zotlabs/Widget/Suggestions.php:52
-msgid "See more..."
-msgstr "Просмотреть больше..."
+#: ../../Zotlabs/Module/Manage.php:170 ../../Zotlabs/Lib/Apps.php:334
+#: ../../include/nav.php:92
+msgid "Channel Manager"
+msgstr "Менеджер каналов"
-#: ../../Zotlabs/Widget/Notifications.php:16
-msgid "New Network Activity"
-msgstr "Новая сетевая активность"
+#: ../../Zotlabs/Module/Manage.php:171
+msgid "Current Channel"
+msgstr "Текущий канал"
-#: ../../Zotlabs/Widget/Notifications.php:17
-msgid "New Network Activity Notifications"
-msgstr "Новые уведомления о сетевой активности"
+#: ../../Zotlabs/Module/Manage.php:173
+msgid "Switch to one of your channels by selecting it."
+msgstr "Выбрать и переключиться на один из ваших каналов"
-#: ../../Zotlabs/Widget/Notifications.php:20
-msgid "View your network activity"
-msgstr "Просмотреть вашу сетевую активность"
+#: ../../Zotlabs/Module/Manage.php:174
+msgid "Default Channel"
+msgstr "Основной канал"
-#: ../../Zotlabs/Widget/Notifications.php:23
-msgid "Mark all notifications read"
-msgstr "Пометить уведомления как прочитанные"
+#: ../../Zotlabs/Module/Manage.php:175
+msgid "Make Default"
+msgstr "Сделать основным"
-#: ../../Zotlabs/Widget/Notifications.php:26
-#: ../../Zotlabs/Widget/Notifications.php:45
-#: ../../Zotlabs/Widget/Notifications.php:152
-msgid "Show new posts only"
-msgstr "Показывать только новые публикации"
+#: ../../Zotlabs/Module/Manage.php:178
+#, php-format
+msgid "%d new messages"
+msgstr "%d новых сообщений"
-#: ../../Zotlabs/Widget/Notifications.php:27
-#: ../../Zotlabs/Widget/Notifications.php:46
-#: ../../Zotlabs/Widget/Notifications.php:122
-#: ../../Zotlabs/Widget/Notifications.php:153
-#: ../../Zotlabs/Widget/Activity_filter.php:164
-msgid "Filter by name"
-msgstr "Отфильтровать по имени"
+#: ../../Zotlabs/Module/Manage.php:179
+#, php-format
+msgid "%d new introductions"
+msgstr "%d новых представлений"
-#: ../../Zotlabs/Widget/Notifications.php:35
-msgid "New Home Activity"
-msgstr "Новая локальная активность"
+#: ../../Zotlabs/Module/Manage.php:181
+msgid "Delegated Channel"
+msgstr "Делегированный канал"
-#: ../../Zotlabs/Widget/Notifications.php:36
-msgid "New Home Activity Notifications"
-msgstr "Новые уведомления локальной активности"
+#: ../../Zotlabs/Module/Cards.php:51
+msgid "Cards App"
+msgstr "Приложение \"Карточки\""
-#: ../../Zotlabs/Widget/Notifications.php:39
-msgid "View your home activity"
-msgstr "Просмотреть локальную активность"
+#: ../../Zotlabs/Module/Cards.php:52
+msgid "Create personal planning cards"
+msgstr "Создать личные карточки планирования"
-#: ../../Zotlabs/Widget/Notifications.php:42
-#: ../../Zotlabs/Widget/Notifications.php:149
-msgid "Mark all notifications seen"
-msgstr "Пометить уведомления как просмотренные"
+#: ../../Zotlabs/Module/Cards.php:112
+msgid "Add Card"
+msgstr "Добавить карточку"
-#: ../../Zotlabs/Widget/Notifications.php:54
-msgid "New Mails"
-msgstr "Новая переписка"
+#: ../../Zotlabs/Module/Cards.php:207 ../../Zotlabs/Lib/Apps.php:325
+#: ../../include/nav.php:501
+msgid "Cards"
+msgstr "Карточки"
-#: ../../Zotlabs/Widget/Notifications.php:55
-msgid "New Mails Notifications"
-msgstr "Уведомления о новой переписке"
+#: ../../Zotlabs/Module/Dirsearch.php:33
+msgid "This directory server requires an access token"
+msgstr "Для доступа к этому серверу каталогов требуется токен"
-#: ../../Zotlabs/Widget/Notifications.php:58
-msgid "View your private mails"
-msgstr "Просмотреть вашу личную переписку"
+#: ../../Zotlabs/Module/Siteinfo.php:21
+msgid "About this site"
+msgstr "Об этом сайте"
-#: ../../Zotlabs/Widget/Notifications.php:61
-msgid "Mark all messages seen"
-msgstr "Пометить сообщения как просмотренные"
+#: ../../Zotlabs/Module/Siteinfo.php:22
+msgid "Site Name"
+msgstr "Название сайта"
-#: ../../Zotlabs/Widget/Notifications.php:69
-msgid "New Events"
-msgstr "Новые события"
+#: ../../Zotlabs/Module/Siteinfo.php:26
+msgid "Administrator"
+msgstr "Администратор"
-#: ../../Zotlabs/Widget/Notifications.php:70
-msgid "New Events Notifications"
-msgstr "Уведомления о новых событиях"
+#: ../../Zotlabs/Module/Siteinfo.php:28 ../../Zotlabs/Module/Register.php:236
+msgid "Terms of Service"
+msgstr "Условия предоставления услуг"
-#: ../../Zotlabs/Widget/Notifications.php:73
-msgid "View events"
-msgstr "Просмотреть события"
+#: ../../Zotlabs/Module/Siteinfo.php:29
+msgid "Software and Project information"
+msgstr "Информация о программном обеспечении и проекте"
-#: ../../Zotlabs/Widget/Notifications.php:76
-msgid "Mark all events seen"
-msgstr "Пометить все события как просмотренные"
+#: ../../Zotlabs/Module/Siteinfo.php:30
+msgid "This site is powered by $Projectname"
+msgstr "Этот сайт работает на $Projectname"
-#: ../../Zotlabs/Widget/Notifications.php:85
-msgid "New Connections Notifications"
-msgstr "Уведомления о новых контактах"
+#: ../../Zotlabs/Module/Siteinfo.php:31
+msgid ""
+"Federated and decentralised networking and identity services provided by Zot"
+msgstr "Объединенные и децентрализованные сети и службы идентификациии обеспечиваются Zot"
-#: ../../Zotlabs/Widget/Notifications.php:88
-msgid "View all connections"
-msgstr "Просмотр всех контактов"
+#: ../../Zotlabs/Module/Siteinfo.php:34
+msgid "Additional federated transport protocols:"
+msgstr "Дополнительные федеративные транспортные протоколы:"
-#: ../../Zotlabs/Widget/Notifications.php:96
-msgid "New Files"
-msgstr "Новые файлы"
+#: ../../Zotlabs/Module/Siteinfo.php:36
+#, php-format
+msgid "Version %s"
+msgstr "Версия %s"
-#: ../../Zotlabs/Widget/Notifications.php:97
-msgid "New Files Notifications"
-msgstr "Уведомления о новых файлах"
+#: ../../Zotlabs/Module/Siteinfo.php:37
+msgid "Project homepage"
+msgstr "Домашняя страница проекта"
-#: ../../Zotlabs/Widget/Notifications.php:104
-#: ../../Zotlabs/Widget/Notifications.php:105
-msgid "Notices"
-msgstr "Оповещения"
+#: ../../Zotlabs/Module/Siteinfo.php:38
+msgid "Developer homepage"
+msgstr "Домашняя страница разработчика"
-#: ../../Zotlabs/Widget/Notifications.php:108
-msgid "View all notices"
-msgstr "Просмотреть все оповещения"
+#: ../../Zotlabs/Module/Ratings.php:70
+msgid "No ratings"
+msgstr "Оценок нет"
-#: ../../Zotlabs/Widget/Notifications.php:111
-msgid "Mark all notices seen"
-msgstr "Пометить все оповещения как просмотренные"
+#: ../../Zotlabs/Module/Ratings.php:97 ../../Zotlabs/Module/Pubsites.php:35
+#: ../../include/conversation.php:1088
+msgid "Ratings"
+msgstr "Оценки"
-#: ../../Zotlabs/Widget/Notifications.php:132
-msgid "New Registrations"
-msgstr "Новые регистрации"
+#: ../../Zotlabs/Module/Ratings.php:98
+msgid "Rating: "
+msgstr "Оценкa:"
-#: ../../Zotlabs/Widget/Notifications.php:133
-msgid "New Registrations Notifications"
-msgstr "Уведомления о новых регистрациях"
+#: ../../Zotlabs/Module/Ratings.php:99
+msgid "Website: "
+msgstr "Веб-сайт:"
-#: ../../Zotlabs/Widget/Notifications.php:143
-msgid "Public Stream Notifications"
-msgstr "Уведомления публичного потока"
+#: ../../Zotlabs/Module/Ratings.php:101
+msgid "Description: "
+msgstr "Описание:"
-#: ../../Zotlabs/Widget/Notifications.php:146
-msgid "View the public stream"
-msgstr "Просмотреть публичный поток"
+#: ../../Zotlabs/Module/Webpages.php:48
+msgid "Webpages App"
+msgstr "Приложение \"Веб-страницы\""
-#: ../../Zotlabs/Widget/Notifications.php:161
-msgid "Sorry, you have got no notifications at the moment"
-msgstr "Извините, но сейчас у вас нет уведомлений"
+#: ../../Zotlabs/Module/Webpages.php:49
+msgid "Provide managed web pages on your channel"
+msgstr "Предоставлять управляемые веб-страницы на Вашем канале"
-#: ../../Zotlabs/Widget/Tasklist.php:23
-msgid "Tasks"
-msgstr "Задачи"
+#: ../../Zotlabs/Module/Webpages.php:69
+msgid "Import Webpage Elements"
+msgstr "Импортировать части веб-страницы"
-#: ../../Zotlabs/Widget/Photo.php:48 ../../Zotlabs/Widget/Photo_rand.php:58
-msgid "photo/image"
-msgstr "фотография / изображение"
+#: ../../Zotlabs/Module/Webpages.php:70
+msgid "Import selected"
+msgstr "Импортировать выбранное"
-#: ../../Zotlabs/Widget/Cdav.php:37
-msgid "Select Channel"
-msgstr "Выбрать канал"
+#: ../../Zotlabs/Module/Webpages.php:93
+msgid "Export Webpage Elements"
+msgstr "Экспортировать часть веб-страницы"
-#: ../../Zotlabs/Widget/Cdav.php:42
-msgid "Read-write"
-msgstr "Чтение-запись"
+#: ../../Zotlabs/Module/Webpages.php:94
+msgid "Export selected"
+msgstr "Экспортировать выбранное"
-#: ../../Zotlabs/Widget/Cdav.php:43
-msgid "Read-only"
-msgstr "Только чтение"
+#: ../../Zotlabs/Module/Webpages.php:252 ../../Zotlabs/Lib/Apps.php:338
+#: ../../include/nav.php:524
+msgid "Webpages"
+msgstr "Веб-страницы"
-#: ../../Zotlabs/Widget/Cdav.php:117
-msgid "My Calendars"
-msgstr "Мои календари"
+#: ../../Zotlabs/Module/Webpages.php:263
+msgid "Actions"
+msgstr "Действия"
-#: ../../Zotlabs/Widget/Cdav.php:119
-msgid "Shared Calendars"
-msgstr "Общие календари"
+#: ../../Zotlabs/Module/Webpages.php:264
+msgid "Page Link"
+msgstr "Ссылка страницы"
-#: ../../Zotlabs/Widget/Cdav.php:123
-msgid "Share this calendar"
-msgstr "Поделиться этим календарём"
+#: ../../Zotlabs/Module/Webpages.php:265
+msgid "Page Title"
+msgstr "Заголовок страницы"
-#: ../../Zotlabs/Widget/Cdav.php:125
-msgid "Calendar name and color"
-msgstr "Имя и цвет календаря"
+#: ../../Zotlabs/Module/Webpages.php:295
+msgid "Invalid file type."
+msgstr "Неверный тип файла."
-#: ../../Zotlabs/Widget/Cdav.php:127
-msgid "Create new calendar"
-msgstr "Создать новый календарь"
+#: ../../Zotlabs/Module/Webpages.php:307
+msgid "Error opening zip file"
+msgstr "Ошибка открытия ZIP файла"
-#: ../../Zotlabs/Widget/Cdav.php:129
-msgid "Calendar Name"
-msgstr "Имя календаря"
+#: ../../Zotlabs/Module/Webpages.php:318
+msgid "Invalid folder path."
+msgstr "Неверный путь к каталогу."
-#: ../../Zotlabs/Widget/Cdav.php:130
-msgid "Calendar Tools"
-msgstr "Инструменты календаря"
+#: ../../Zotlabs/Module/Webpages.php:345
+msgid "No webpage elements detected."
+msgstr "Не обнаружено частей веб-страницы."
-#: ../../Zotlabs/Widget/Cdav.php:131
-msgid "Import calendar"
-msgstr "Импортировать календарь"
+#: ../../Zotlabs/Module/Webpages.php:420
+msgid "Import complete."
+msgstr "Импорт завершен."
-#: ../../Zotlabs/Widget/Cdav.php:132
-msgid "Select a calendar to import to"
-msgstr "Выбрать календарь для импорта в"
+#: ../../Zotlabs/Module/Changeaddr.php:35
+msgid ""
+"Channel name changes are not allowed within 48 hours of changing the account "
+"password."
+msgstr "Изменение названия канала не разрешается в течении 48 часов после смены пароля у аккаунта."
-#: ../../Zotlabs/Widget/Cdav.php:159
-msgid "Addressbooks"
-msgstr "Адресные книги"
+#: ../../Zotlabs/Module/Changeaddr.php:46 ../../include/channel.php:222
+#: ../../include/channel.php:655
+msgid "Reserved nickname. Please choose another."
+msgstr "Зарезервированый псевдоним. Пожалуйста, выберите другой."
-#: ../../Zotlabs/Widget/Cdav.php:161
-msgid "Addressbook name"
-msgstr "Имя адресной книги"
+#: ../../Zotlabs/Module/Changeaddr.php:51 ../../include/channel.php:227
+#: ../../include/channel.php:660
+msgid ""
+"Nickname has unsupported characters or is already being used on this site."
+msgstr "Псевдоним имеет недопустимые символы или уже используется на этом сайте."
-#: ../../Zotlabs/Widget/Cdav.php:163
-msgid "Create new addressbook"
-msgstr "Создать новую адресную книгу"
+#: ../../Zotlabs/Module/Changeaddr.php:77
+msgid "Change channel nickname/address"
+msgstr "Изменить псевдоним / адрес канала"
-#: ../../Zotlabs/Widget/Cdav.php:164
-msgid "Addressbook Name"
-msgstr "Имя адресной книги"
+#: ../../Zotlabs/Module/Changeaddr.php:78
+msgid "Any/all connections on other networks will be lost!"
+msgstr "Любые / все контакты в других сетях будут утеряны!"
-#: ../../Zotlabs/Widget/Cdav.php:166
-msgid "Addressbook Tools"
-msgstr "Инструменты адресной книги"
+#: ../../Zotlabs/Module/Changeaddr.php:80
+msgid "New channel address"
+msgstr "Новый адрес канала"
-#: ../../Zotlabs/Widget/Cdav.php:167
-msgid "Import addressbook"
-msgstr "Импортировать адресную книгу"
+#: ../../Zotlabs/Module/Changeaddr.php:81
+msgid "Rename Channel"
+msgstr "Переименовать канал"
-#: ../../Zotlabs/Widget/Cdav.php:168
-msgid "Select an addressbook to import to"
-msgstr "Выбрать адресную книгу для импорта в"
+#: ../../Zotlabs/Module/Editpost.php:38 ../../Zotlabs/Module/Editpost.php:43
+msgid "Item is not editable"
+msgstr "Элемент нельзя редактировать"
-#: ../../Zotlabs/Widget/Activity.php:50
-msgctxt "widget"
-msgid "Activity"
-msgstr "Активность"
+#: ../../Zotlabs/Module/Editpost.php:108 ../../Zotlabs/Module/Rpost.php:144
+msgid "Edit post"
+msgstr "Редактировать сообщение"
-#: ../../Zotlabs/Widget/Hq_controls.php:14
-msgid "HQ Control Panel"
-msgstr "Панель управления HQ"
+#: ../../Zotlabs/Module/Dreport.php:56
+msgid "Invalid message"
+msgstr "Неверное сообщение"
-#: ../../Zotlabs/Widget/Hq_controls.php:17
-msgid "Create a new post"
-msgstr "Создать новую публикацию"
+#: ../../Zotlabs/Module/Dreport.php:90
+msgid "no results"
+msgstr "Ничего не найдено."
-#: ../../Zotlabs/Widget/Follow.php:22
+#: ../../Zotlabs/Module/Dreport.php:104
+msgid "channel sync processed"
+msgstr "синхронизация канала завершена"
+
+#: ../../Zotlabs/Module/Dreport.php:108
+msgid "queued"
+msgstr "в очереди"
+
+#: ../../Zotlabs/Module/Dreport.php:112
+msgid "posted"
+msgstr "опубликовано"
+
+#: ../../Zotlabs/Module/Dreport.php:116
+msgid "accepted for delivery"
+msgstr "принято к доставке"
+
+#: ../../Zotlabs/Module/Dreport.php:120
+msgid "updated"
+msgstr "обновлено"
+
+#: ../../Zotlabs/Module/Dreport.php:123
+msgid "update ignored"
+msgstr "обновление игнорируется"
+
+#: ../../Zotlabs/Module/Dreport.php:126
+msgid "permission denied"
+msgstr "доступ запрещен"
+
+#: ../../Zotlabs/Module/Dreport.php:130
+msgid "recipient not found"
+msgstr "получатель не найден"
+
+#: ../../Zotlabs/Module/Dreport.php:133
+msgid "mail recalled"
+msgstr "почта отозвана"
+
+#: ../../Zotlabs/Module/Dreport.php:136
+msgid "duplicate mail received"
+msgstr "получено дублирующее сообщение"
+
+#: ../../Zotlabs/Module/Dreport.php:139
+msgid "mail delivered"
+msgstr "почта доставлен"
+
+#: ../../Zotlabs/Module/Dreport.php:159
#, php-format
-msgid "You have %1$.0f of %2$.0f allowed connections."
-msgstr "У вас есть %1$.0f из %2$.0f разрешенных контактов."
+msgid "Delivery report for %1$s"
+msgstr "Отчёт о доставке для %1$s"
-#: ../../Zotlabs/Widget/Follow.php:29
-msgid "Add New Connection"
-msgstr "Добавить новый контакт"
+#: ../../Zotlabs/Module/Dreport.php:162 ../../Zotlabs/Widget/Wiki_pages.php:41
+#: ../../Zotlabs/Widget/Wiki_pages.php:98
+msgid "Options"
+msgstr "Параметры"
-#: ../../Zotlabs/Widget/Follow.php:30
-msgid "Enter channel address"
-msgstr "Введите адрес канала"
+#: ../../Zotlabs/Module/Dreport.php:163
+msgid "Redeliver"
+msgstr "Доставить повторно"
-#: ../../Zotlabs/Widget/Follow.php:31
-msgid "Examples: bob@example.com, https://example.com/barbara"
-msgstr "Пример: ivan@example.com, http://example.com/ivan"
+#: ../../Zotlabs/Module/Sources.php:41
+msgid "Failed to create source. No channel selected."
+msgstr "Не удалось создать источник. Канал не выбран."
-#: ../../Zotlabs/Widget/Archive.php:43
-msgid "Archives"
-msgstr "Архивы"
+#: ../../Zotlabs/Module/Sources.php:57
+msgid "Source created."
+msgstr "Источник создан."
-#: ../../Zotlabs/Widget/Suggestedchats.php:32
-msgid "Suggested Chatrooms"
-msgstr "Рекомендуемые чаты"
+#: ../../Zotlabs/Module/Sources.php:70
+msgid "Source updated."
+msgstr "Источник обновлен."
-#: ../../Zotlabs/Widget/Rating.php:51
-msgid "Rating Tools"
-msgstr "Инструменты оценки"
+#: ../../Zotlabs/Module/Sources.php:88
+msgid "Sources App"
+msgstr "Приложение \"Источники канала\""
-#: ../../Zotlabs/Widget/Rating.php:55 ../../Zotlabs/Widget/Rating.php:57
-msgid "Rate Me"
-msgstr "Оценить меня"
+#: ../../Zotlabs/Module/Sources.php:89
+msgid "Automatically import channel content from other channels or feeds"
+msgstr "Автоматический импорт контента из других каналов или лент"
-#: ../../Zotlabs/Widget/Rating.php:60
-msgid "View Ratings"
-msgstr "Просмотр оценок"
+#: ../../Zotlabs/Module/Sources.php:101
+msgid "*"
+msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:31
-msgid "Profile Creation"
-msgstr "Создание профиля"
+#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:366
+msgid "Channel Sources"
+msgstr "Источники канала"
-#: ../../Zotlabs/Widget/Newmember.php:33
-msgid "Upload profile photo"
-msgstr "Загрузить фотографию профиля"
+#: ../../Zotlabs/Module/Sources.php:108
+msgid "Manage remote sources of content for your channel."
+msgstr "Управление удалённым источниками содержимого для вашего канала"
-#: ../../Zotlabs/Widget/Newmember.php:34
-msgid "Upload cover photo"
-msgstr "Загрузить фотографию обложки"
+#: ../../Zotlabs/Module/Sources.php:109 ../../Zotlabs/Module/Sources.php:119
+msgid "New Source"
+msgstr "Новый источник"
-#: ../../Zotlabs/Widget/Newmember.php:38
-msgid "Find and Connect with others"
-msgstr "Найти и вступить в контакт"
+#: ../../Zotlabs/Module/Sources.php:120 ../../Zotlabs/Module/Sources.php:154
+msgid ""
+"Import all or selected content from the following channel into this channel "
+"and distribute it according to your channel settings."
+msgstr "Импортировать всё или выбранное содержимое из следующего канала в этот канал и распределить его в соответствии с вашими настройками."
-#: ../../Zotlabs/Widget/Newmember.php:40
-msgid "View the directory"
-msgstr "Просмотреть каталог"
+#: ../../Zotlabs/Module/Sources.php:121 ../../Zotlabs/Module/Sources.php:155
+msgid "Only import content with these words (one per line)"
+msgstr "Импортировать содержимое только с этим текстом (построчно)"
-#: ../../Zotlabs/Widget/Newmember.php:42
-msgid "Manage your connections"
-msgstr "Управление вашими контактами"
+#: ../../Zotlabs/Module/Sources.php:121 ../../Zotlabs/Module/Sources.php:155
+msgid "Leave blank to import all public content"
+msgstr "Оставьте пустым для импорта всего общедоступного содержимого"
-#: ../../Zotlabs/Widget/Newmember.php:45
-msgid "Communicate"
-msgstr "Связаться"
+#: ../../Zotlabs/Module/Sources.php:122 ../../Zotlabs/Module/Sources.php:161
+msgid "Channel Name"
+msgstr "Название канала"
-#: ../../Zotlabs/Widget/Newmember.php:47
-msgid "View your channel homepage"
-msgstr "Домашняя страница канала"
+#: ../../Zotlabs/Module/Sources.php:123 ../../Zotlabs/Module/Sources.php:158
+msgid ""
+"Add the following categories to posts imported from this source (comma "
+"separated)"
+msgstr "Добавить следующие категории к импортированным публикациям из этого источника (через запятые)"
-#: ../../Zotlabs/Widget/Newmember.php:48
-msgid "View your network stream"
-msgstr "Просмотреть ваш сетевой поток"
+#: ../../Zotlabs/Module/Sources.php:123 ../../Zotlabs/Module/Sources.php:158
+#: ../../Zotlabs/Module/Oauth.php:117
+msgid "Optional"
+msgstr "Необязательно"
-#: ../../Zotlabs/Widget/Newmember.php:54
-msgid "Documentation"
-msgstr "Документация"
+#: ../../Zotlabs/Module/Sources.php:124 ../../Zotlabs/Module/Sources.php:159
+msgid "Resend posts with this channel as author"
+msgstr "Отправить публикации в этот канал повторно как автор"
-#: ../../Zotlabs/Widget/Newmember.php:57
-msgid "Missing Features?"
-msgstr "Отсутствует функция?"
+#: ../../Zotlabs/Module/Sources.php:124 ../../Zotlabs/Module/Sources.php:159
+msgid "Copyrights may apply"
+msgstr "Могут применяться авторские права"
-#: ../../Zotlabs/Widget/Newmember.php:59
-msgid "Pin apps to navigation bar"
-msgstr "Прикрепить приложение к панели"
+#: ../../Zotlabs/Module/Sources.php:144 ../../Zotlabs/Module/Sources.php:174
+msgid "Source not found."
+msgstr "Источник не найден."
-#: ../../Zotlabs/Widget/Newmember.php:60
-msgid "Install more apps"
-msgstr "Установить больше приложений"
+#: ../../Zotlabs/Module/Sources.php:151
+msgid "Edit Source"
+msgstr "Редактировать источник"
-#: ../../Zotlabs/Widget/Newmember.php:71
-msgid "View public stream"
-msgstr "Просмотреть публичный поток"
+#: ../../Zotlabs/Module/Sources.php:152
+msgid "Delete Source"
+msgstr "Удалить источник"
-#: ../../Zotlabs/Widget/Mailmenu.php:13
-msgid "Private Mail Menu"
-msgstr "Меню личной переписки"
+#: ../../Zotlabs/Module/Sources.php:182
+msgid "Source removed"
+msgstr "Источник удален"
-#: ../../Zotlabs/Widget/Mailmenu.php:15
-msgid "Combined View"
-msgstr "Комбинированный вид"
+#: ../../Zotlabs/Module/Sources.php:184
+msgid "Unable to remove source."
+msgstr "Невозможно удалить источник."
-#: ../../Zotlabs/Widget/Mailmenu.php:20
-msgid "Inbox"
-msgstr "Входящие"
+#: ../../Zotlabs/Module/Like.php:56
+msgid "Like/Dislike"
+msgstr "Нравится / не нравится"
-#: ../../Zotlabs/Widget/Mailmenu.php:25
-msgid "Outbox"
-msgstr "Исходящие"
+#: ../../Zotlabs/Module/Like.php:61
+msgid "This action is restricted to members."
+msgstr "Это действие доступно только участникам."
-#: ../../Zotlabs/Widget/Mailmenu.php:30
-msgid "New Message"
-msgstr "Новое сообщение"
+#: ../../Zotlabs/Module/Like.php:62
+msgid ""
+"Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a href="
+"\"register\">register as a new $Projectname member</a> to continue."
+msgstr "Пожалуйста, для продолжения <a href=\"rmagic\"> войдите с вашим $Projectname ID</a> или <a href=\"register\">зарегистрируйтесь как новый участник $Projectname</a>."
-#: ../../Zotlabs/Widget/Wiki_pages.php:34
-#: ../../Zotlabs/Widget/Wiki_pages.php:91
-msgid "Add new page"
-msgstr "Добавить новую страницу"
+#: ../../Zotlabs/Module/Like.php:111 ../../Zotlabs/Module/Like.php:137
+#: ../../Zotlabs/Module/Like.php:175
+msgid "Invalid request."
+msgstr "Неверный запрос."
-#: ../../Zotlabs/Widget/Wiki_pages.php:85
-msgid "Wiki Pages"
-msgstr "Wiki страницы"
+#: ../../Zotlabs/Module/Like.php:123 ../../include/conversation.php:122
+msgid "channel"
+msgstr "канал"
-#: ../../Zotlabs/Widget/Wiki_pages.php:96
-msgid "Page name"
-msgstr "Название страницы"
+#: ../../Zotlabs/Module/Like.php:152
+msgid "thing"
+msgstr "предмет"
-#: ../../Zotlabs/Widget/Eventstools.php:13
-msgid "Events Tools"
-msgstr "Инструменты для событий"
+#: ../../Zotlabs/Module/Like.php:198
+msgid "Channel unavailable."
+msgstr "Канал недоступен."
-#: ../../Zotlabs/Widget/Eventstools.php:14
-msgid "Export Calendar"
-msgstr "Экспортировать календарь"
+#: ../../Zotlabs/Module/Like.php:246
+msgid "Previous action reversed."
+msgstr "Предыдущее действие отменено."
-#: ../../Zotlabs/Widget/Eventstools.php:15
-msgid "Import Calendar"
-msgstr "Импортировать календарь"
+#: ../../Zotlabs/Module/Like.php:447 ../../Zotlabs/Lib/Activity.php:1994
+#: ../../addon/diaspora/Receiver.php:1491 ../../addon/pubcrawl/as.php:1540
+#: ../../include/conversation.php:160
+#, php-format
+msgid "%1$s likes %2$s's %3$s"
+msgstr "%1$s нравится %3$s %2$s"
-#: ../../Zotlabs/Widget/Chatroom_list.php:20
-msgid "Overview"
-msgstr "Обзор"
+#: ../../Zotlabs/Module/Like.php:449 ../../Zotlabs/Lib/Activity.php:1996
+#: ../../addon/pubcrawl/as.php:1542 ../../include/conversation.php:163
+#, php-format
+msgid "%1$s doesn't like %2$s's %3$s"
+msgstr "%1$s не нравится %2$s %3$s"
-#: ../../Zotlabs/Widget/Settings_menu.php:32
-msgid "Account settings"
-msgstr "Настройки аккаунта"
+#: ../../Zotlabs/Module/Like.php:451
+#, php-format
+msgid "%1$s agrees with %2$s's %3$s"
+msgstr "%1$s согласен с %2$s %3$s"
-#: ../../Zotlabs/Widget/Settings_menu.php:38
-msgid "Channel settings"
-msgstr "Настройки канала"
+#: ../../Zotlabs/Module/Like.php:453
+#, php-format
+msgid "%1$s doesn't agree with %2$s's %3$s"
+msgstr "%1$s не согласен с %2$s %3$s"
-#: ../../Zotlabs/Widget/Settings_menu.php:47
-msgid "Display settings"
-msgstr "Настройки отображения"
+#: ../../Zotlabs/Module/Like.php:455
+#, php-format
+msgid "%1$s abstains from a decision on %2$s's %3$s"
+msgstr "%1$s воздерживается от решения по %2$s%3$s"
-#: ../../Zotlabs/Widget/Settings_menu.php:53
-msgid "Addon settings"
-msgstr "Настройки расширений"
+#: ../../Zotlabs/Module/Like.php:457 ../../addon/diaspora/Receiver.php:2137
+#, php-format
+msgid "%1$s is attending %2$s's %3$s"
+msgstr "%1$s посещает %2$s%3$s"
-#: ../../Zotlabs/Widget/Settings_menu.php:60
-msgid "Manage locations"
-msgstr "Управление местоположением"
+#: ../../Zotlabs/Module/Like.php:459 ../../addon/diaspora/Receiver.php:2139
+#, php-format
+msgid "%1$s is not attending %2$s's %3$s"
+msgstr "%1$s не посещает %2$s%3$s"
-#: ../../Zotlabs/Widget/Admin.php:23 ../../Zotlabs/Widget/Admin.php:60
-msgid "Member registrations waiting for confirmation"
-msgstr "Регистрации участников, ожидающие подверждения"
+#: ../../Zotlabs/Module/Like.php:461 ../../addon/diaspora/Receiver.php:2141
+#, php-format
+msgid "%1$s may attend %2$s's %3$s"
+msgstr "%1$s может посетить %2$s%3$s"
-#: ../../Zotlabs/Widget/Admin.php:26 ../../Zotlabs/Lib/Apps.php:333
-msgid "Features"
-msgstr "Функции"
+#: ../../Zotlabs/Module/Like.php:572
+msgid "Action completed."
+msgstr "Действие завершено."
-#: ../../Zotlabs/Widget/Admin.php:29
-msgid "Inspect queue"
-msgstr "Просмотр очереди"
+#: ../../Zotlabs/Module/Like.php:573
+msgid "Thank you."
+msgstr "Спасибо."
-#: ../../Zotlabs/Widget/Admin.php:31
-msgid "DB updates"
-msgstr "Обновление базы данных"
+#: ../../Zotlabs/Module/Directory.php:110
+msgid "No default suggestions were found."
+msgstr "Предложений по умолчанию не найдено."
-#: ../../Zotlabs/Widget/Admin.php:56
-msgid "Addon Features"
-msgstr "Настройки расширений"
+#: ../../Zotlabs/Module/Directory.php:259
+#, php-format
+msgid "%d rating"
+msgid_plural "%d ratings"
+msgstr[0] "%d оценка"
+msgstr[1] "%d оценки"
+msgstr[2] "%d оценок"
-#: ../../Zotlabs/Widget/Appstore.php:11
-msgid "App Collections"
-msgstr "Коллекции приложений"
+#: ../../Zotlabs/Module/Directory.php:270
+msgid "Gender: "
+msgstr "Пол:"
-#: ../../Zotlabs/Widget/Appstore.php:13
-msgid "Installed apps"
-msgstr "Установленные приложения"
+#: ../../Zotlabs/Module/Directory.php:272
+msgid "Status: "
+msgstr "Статус:"
-#: ../../Zotlabs/Widget/Savedsearch.php:75
-msgid "Remove term"
-msgstr "Удалить термин"
+#: ../../Zotlabs/Module/Directory.php:274
+msgid "Homepage: "
+msgstr "Домашняя страница:"
-#: ../../Zotlabs/Widget/Activity_filter.php:26
-msgid "Personal Posts"
-msgstr "Личные публикации"
+#: ../../Zotlabs/Module/Directory.php:323 ../../include/channel.php:1620
+msgid "Age:"
+msgstr "Возраст:"
-#: ../../Zotlabs/Widget/Activity_filter.php:30
-msgid "Show posts that mention or involve me"
-msgstr "Показывать публикации где вы были упомянуты или привлечены"
+#: ../../Zotlabs/Module/Directory.php:328 ../../include/channel.php:1447
+#: ../../include/event.php:58 ../../include/event.php:90
+msgid "Location:"
+msgstr "Местоположение:"
-#: ../../Zotlabs/Widget/Activity_filter.php:41
-msgid "Starred Posts"
-msgstr "Отмеченные публикации"
+#: ../../Zotlabs/Module/Directory.php:334
+msgid "Description:"
+msgstr "Описание:"
-#: ../../Zotlabs/Widget/Activity_filter.php:45
-msgid "Show posts that I have starred"
-msgstr "Показывать публикации которые я отметил"
+#: ../../Zotlabs/Module/Directory.php:339 ../../include/channel.php:1649
+msgid "Hometown:"
+msgstr "Родной город:"
-#: ../../Zotlabs/Widget/Activity_filter.php:65
+#: ../../Zotlabs/Module/Directory.php:341 ../../include/channel.php:1655
+msgid "About:"
+msgstr "О себе:"
+
+#: ../../Zotlabs/Module/Directory.php:342 ../../Zotlabs/Module/Suggest.php:71
+#: ../../Zotlabs/Widget/Follow.php:32 ../../Zotlabs/Widget/Suggestions.php:44
+#: ../../include/conversation.php:1058 ../../include/channel.php:1432
+#: ../../include/connections.php:110
+msgid "Connect"
+msgstr "Подключить"
+
+#: ../../Zotlabs/Module/Directory.php:343
+msgid "Public Forum:"
+msgstr "Публичный форум:"
+
+#: ../../Zotlabs/Module/Directory.php:346
+msgid "Keywords: "
+msgstr "Ключевые слова:"
+
+#: ../../Zotlabs/Module/Directory.php:349
+msgid "Don't suggest"
+msgstr "Не предлагать"
+
+#: ../../Zotlabs/Module/Directory.php:351
+msgid "Common connections (estimated):"
+msgstr "Общие контакты (оценочно):"
+
+#: ../../Zotlabs/Module/Directory.php:400
+msgid "Global Directory"
+msgstr "Глобальный каталог"
+
+#: ../../Zotlabs/Module/Directory.php:400
+msgid "Local Directory"
+msgstr "Локальный каталог"
+
+#: ../../Zotlabs/Module/Directory.php:406
+msgid "Finding:"
+msgstr "Поиск:"
+
+#: ../../Zotlabs/Module/Directory.php:409 ../../Zotlabs/Module/Suggest.php:79
+#: ../../include/contact_widgets.php:24
+msgid "Channel Suggestions"
+msgstr "Рекомендации каналов"
+
+#: ../../Zotlabs/Module/Directory.php:411
+msgid "next page"
+msgstr "следующая страница"
+
+#: ../../Zotlabs/Module/Directory.php:411
+msgid "previous page"
+msgstr "предыдущая страница"
+
+#: ../../Zotlabs/Module/Directory.php:412
+msgid "Sort options"
+msgstr "Параметры сортировки"
+
+#: ../../Zotlabs/Module/Directory.php:413
+msgid "Alphabetic"
+msgstr "По алфавиту"
+
+#: ../../Zotlabs/Module/Directory.php:414
+msgid "Reverse Alphabetic"
+msgstr "Против алфавита"
+
+#: ../../Zotlabs/Module/Directory.php:415
+msgid "Newest to Oldest"
+msgstr "От новых к старым"
+
+#: ../../Zotlabs/Module/Directory.php:416
+msgid "Oldest to Newest"
+msgstr "От старых к новым"
+
+#: ../../Zotlabs/Module/Directory.php:433
+msgid "No entries (some entries may be hidden)."
+msgstr "Нет записей (некоторые записи могут быть скрыты)."
+
+#: ../../Zotlabs/Module/Xchan.php:10
+msgid "Xchan Lookup"
+msgstr "Поиск Xchan"
+
+#: ../../Zotlabs/Module/Xchan.php:13
+msgid "Lookup xchan beginning with (or webbie): "
+msgstr "Запрос Xchan начинается с (или webbie):"
+
+#: ../../Zotlabs/Module/Suggest.php:40
+msgid "Suggest Channels App"
+msgstr "Приложение \"Рекомендуемые каналы\""
+
+#: ../../Zotlabs/Module/Suggest.php:41
+msgid ""
+"Suggestions for channels in the $Projectname network you might be interested "
+"in"
+msgstr "Предложения по рекомендуемым каналам в сети $Projectname которые могут вас заинтересовать"
+
+#: ../../Zotlabs/Module/Suggest.php:54
+msgid ""
+"No suggestions available. If this is a new site, please try again in 24 "
+"hours."
+msgstr "Нет предложений. Если это новый сайт, повторите попытку через 24 часа."
+
+#: ../../Zotlabs/Module/Suggest.php:73 ../../Zotlabs/Widget/Suggestions.php:46
+msgid "Ignore/Hide"
+msgstr "Игнорировать / cкрыть"
+
+#: ../../Zotlabs/Module/Oexchange.php:27
+msgid "Unable to find your hub."
+msgstr "Невозможно найти ваш сервер"
+
+#: ../../Zotlabs/Module/Oexchange.php:41
+msgid "Post successful."
+msgstr "Успешно опубликовано."
+
+#: ../../Zotlabs/Module/Mail.php:73
+msgid "Unable to lookup recipient."
+msgstr "Не удалось найти получателя."
+
+#: ../../Zotlabs/Module/Mail.php:80
+msgid "Unable to communicate with requested channel."
+msgstr "Не удалось установить связь с запрашиваемым каналом."
+
+#: ../../Zotlabs/Module/Mail.php:87
+msgid "Cannot verify requested channel."
+msgstr "Не удалось установить подлинность требуемого канала."
+
+#: ../../Zotlabs/Module/Mail.php:105
+msgid "Selected channel has private message restrictions. Send failed."
+msgstr "Выбранный канал ограничивает частные сообщения. Отправка не удалась."
+
+#: ../../Zotlabs/Module/Mail.php:160
+msgid "Messages"
+msgstr "Сообщения"
+
+#: ../../Zotlabs/Module/Mail.php:173
+msgid "message"
+msgstr "сообщение"
+
+#: ../../Zotlabs/Module/Mail.php:214
+msgid "Message recalled."
+msgstr "Сообщение отозванно."
+
+#: ../../Zotlabs/Module/Mail.php:227
+msgid "Conversation removed."
+msgstr "Беседа удалена."
+
+#: ../../Zotlabs/Module/Mail.php:242 ../../Zotlabs/Module/Mail.php:363
+msgid "Expires YYYY-MM-DD HH:MM"
+msgstr "Истекает YYYY-MM-DD HH:MM"
+
+#: ../../Zotlabs/Module/Mail.php:270
+msgid "Requested channel is not in this network"
+msgstr "Запрашиваемый канал не доступен."
+
+#: ../../Zotlabs/Module/Mail.php:278
+msgid "Send Private Message"
+msgstr "Отправить личное сообщение"
+
+#: ../../Zotlabs/Module/Mail.php:279 ../../Zotlabs/Module/Mail.php:421
+msgid "To:"
+msgstr "Кому:"
+
+#: ../../Zotlabs/Module/Mail.php:282 ../../Zotlabs/Module/Mail.php:423
+msgid "Subject:"
+msgstr "Тема:"
+
+#: ../../Zotlabs/Module/Mail.php:287 ../../Zotlabs/Module/Mail.php:429
+msgid "Attach file"
+msgstr "Прикрепить файл"
+
+#: ../../Zotlabs/Module/Mail.php:289
+msgid "Send"
+msgstr "Отправить"
+
+#: ../../Zotlabs/Module/Mail.php:292 ../../Zotlabs/Module/Mail.php:434
+#: ../../addon/hsse/hsse.php:250 ../../include/conversation.php:1456
+msgid "Set expiration date"
+msgstr "Установить срок действия"
+
+#: ../../Zotlabs/Module/Mail.php:393
+msgid "Delete message"
+msgstr "Удалить сообщение"
+
+#: ../../Zotlabs/Module/Mail.php:394
+msgid "Delivery report"
+msgstr "Отчёт о доставке"
+
+#: ../../Zotlabs/Module/Mail.php:395
+msgid "Recall message"
+msgstr "Отозвать сообщение"
+
+#: ../../Zotlabs/Module/Mail.php:397
+msgid "Message has been recalled."
+msgstr "Сообщение отозванно"
+
+#: ../../Zotlabs/Module/Mail.php:414
+msgid "Delete Conversation"
+msgstr "Удалить беседу"
+
+#: ../../Zotlabs/Module/Mail.php:416
+msgid ""
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
+msgstr "Безопасная связь недоступна. Вы <strong>можете</strong> попытаться ответить со страницы профиля отправителя."
+
+#: ../../Zotlabs/Module/Mail.php:420
+msgid "Send Reply"
+msgstr "Отправить ответ"
+
+#: ../../Zotlabs/Module/Mail.php:425
#, php-format
-msgid "Show posts related to the %s privacy group"
-msgstr "Показывать публикации относящиеся к группе безопасности %s"
+msgid "Your message for %s (%s):"
+msgstr "Ваше сообщение для %s (%s):"
-#: ../../Zotlabs/Widget/Activity_filter.php:74
-msgid "Show my privacy groups"
-msgstr "Показывать мои группы безопасности"
+#: ../../Zotlabs/Module/Pubsites.php:24 ../../Zotlabs/Widget/Pubsites.php:12
+msgid "Public Hubs"
+msgstr "Публичные хабы"
-#: ../../Zotlabs/Widget/Activity_filter.php:95
-msgid "Show posts to this forum"
-msgstr "Показывать публикации этого форума"
+#: ../../Zotlabs/Module/Pubsites.php:27
+msgid ""
+"The listed hubs allow public registration for the $Projectname network. All "
+"hubs in the network are interlinked so membership on any of them conveys "
+"membership in the network as a whole. Some hubs may require subscription or "
+"provide tiered service plans. The hub itself <strong>may</strong> provide "
+"additional details."
+msgstr "Указанные хабы разрешают публичную регистрацию для сети $Projectname. Все хабы в сети взаимосвязаны, поэтому членство в любом из них передает членство во всю сеть. Некоторым хабам может потребоваться подписка или предоставление многоуровневых планов обслуживания. Сам хаб <strong>может</strong> предоставить дополнительные сведения."
-#: ../../Zotlabs/Widget/Activity_filter.php:106
-msgid "Show forums"
-msgstr "Показывать форумы"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Hub URL"
+msgstr "URL сервера"
+
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Access Type"
+msgstr "Тип доступа"
+
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Registration Policy"
+msgstr "Политика регистрации"
+
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Stats"
+msgstr "Статистика"
+
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Software"
+msgstr "Программное обеспечение"
+
+#: ../../Zotlabs/Module/Pubsites.php:49
+msgid "Rate"
+msgstr "Оценка"
+
+#: ../../Zotlabs/Module/Impel.php:43 ../../include/bbcode.php:269
+msgid "webpage"
+msgstr "веб-страница"
+
+#: ../../Zotlabs/Module/Impel.php:48 ../../include/bbcode.php:275
+msgid "block"
+msgstr "заблокировать"
+
+#: ../../Zotlabs/Module/Impel.php:53 ../../include/bbcode.php:272
+msgid "layout"
+msgstr "шаблон"
-#: ../../Zotlabs/Widget/Activity_filter.php:130
+#: ../../Zotlabs/Module/Impel.php:60 ../../include/bbcode.php:278
+msgid "menu"
+msgstr "меню"
+
+#: ../../Zotlabs/Module/Impel.php:185
#, php-format
-msgid "Show posts that I have filed to %s"
-msgstr "Показывать публикации которые я добавил в %s"
+msgid "%s element installed"
+msgstr "%s элемент установлен"
-#: ../../Zotlabs/Widget/Activity_filter.php:140
-msgid "Show filed post categories"
-msgstr "Показывать категории добавленных публикаций"
+#: ../../Zotlabs/Module/Impel.php:188
+#, php-format
+msgid "%s element installation failed"
+msgstr "%sустановка элемента неудачна."
-#: ../../Zotlabs/Widget/Activity_filter.php:154
-msgid "Panel search"
-msgstr "Панель поиска"
+#: ../../Zotlabs/Module/Rbmark.php:94
+msgid "Select a bookmark folder"
+msgstr "Выбрать каталог для закладок"
-#: ../../Zotlabs/Widget/Activity_filter.php:179
-msgid "Remove active filter"
-msgstr "Удалить активный фильтр"
+#: ../../Zotlabs/Module/Rbmark.php:99
+msgid "Save Bookmark"
+msgstr "Сохранить закладку"
-#: ../../Zotlabs/Widget/Activity_filter.php:195
-msgid "Stream Filters"
-msgstr "Фильтры потока"
+#: ../../Zotlabs/Module/Rbmark.php:100
+msgid "URL of bookmark"
+msgstr "URL закладки"
-#: ../../Zotlabs/Widget/Chatroom_members.php:11
-msgid "Chat Members"
-msgstr "Участники чата"
+#: ../../Zotlabs/Module/Rbmark.php:105
+msgid "Or enter new bookmark folder name"
+msgstr "или введите новое имя каталога закладок"
-#: ../../Zotlabs/Widget/Cover_photo.php:65
-msgid "Click to show more"
-msgstr "Нажмите чтобы показать больше"
+#: ../../Zotlabs/Module/Filer.php:52
+msgid "Enter a folder name"
+msgstr "Введите название каталога"
-#: ../../Zotlabs/Widget/Affinity.php:45
-msgid "Refresh"
-msgstr "Обновить"
+#: ../../Zotlabs/Module/Filer.php:52
+msgid "or select an existing folder (doubleclick)"
+msgstr "или выберите существующий каталог (двойной щелчок)"
-#: ../../Zotlabs/Widget/Activity_order.php:90
-msgid "Commented Date"
-msgstr "По комментариям"
+#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:181
+msgid "Save to Folder"
+msgstr "Сохранить в каталог"
-#: ../../Zotlabs/Widget/Activity_order.php:94
-msgid "Order by last commented date"
-msgstr "Сортировка по дате последнего комментария"
+#: ../../Zotlabs/Module/Probe.php:18
+msgid "Remote Diagnostics App"
+msgstr "Приложение \"Удалённая диагностика\""
-#: ../../Zotlabs/Widget/Activity_order.php:97
-msgid "Posted Date"
-msgstr "По публикациям"
+#: ../../Zotlabs/Module/Probe.php:19
+msgid "Perform diagnostics on remote channels"
+msgstr "Производит диагностику удалённых каналов"
-#: ../../Zotlabs/Widget/Activity_order.php:101
-msgid "Order by last posted date"
-msgstr "Сортировка по дате последней публикации"
+#: ../../Zotlabs/Module/Register.php:49
+msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
+msgstr "Превышено максимальное количество регистраций на сегодня. Пожалуйста, попробуйте снова завтра."
-#: ../../Zotlabs/Widget/Activity_order.php:104
-msgid "Date Unthreaded"
-msgstr "По порядку"
+#: ../../Zotlabs/Module/Register.php:55
+msgid ""
+"Please indicate acceptance of the Terms of Service. Registration failed."
+msgstr "Пожалуйста, подтвердите согласие с \"Условиями обслуживания\". Регистрация не удалась."
-#: ../../Zotlabs/Widget/Activity_order.php:108
-msgid "Order unthreaded by date"
-msgstr "Сортировка в порядке поступления"
+#: ../../Zotlabs/Module/Register.php:89
+msgid "Passwords do not match."
+msgstr "Пароли не совпадают."
-#: ../../Zotlabs/Widget/Activity_order.php:123
-msgid "Stream Order"
-msgstr "Упорядочить поток"
+#: ../../Zotlabs/Module/Register.php:132
+msgid "Registration successful. Continue to create your first channel..."
+msgstr "Регистрация завершена успешно. Для продолжения создайте свой первый канал..."
-#: ../../Zotlabs/Widget/Bookmarkedchats.php:24
-msgid "Bookmarked Chatrooms"
-msgstr "Закладки чатов"
+#: ../../Zotlabs/Module/Register.php:135
+msgid ""
+"Registration successful. Please check your email for validation instructions."
+msgstr "Регистрация завершена успешно. Пожалуйста проверьте вашу электронную почту для подтверждения."
-#: ../../Zotlabs/Widget/Conversations.php:17
-msgid "Received Messages"
-msgstr "Полученные сообщения"
+#: ../../Zotlabs/Module/Register.php:142
+msgid "Your registration is pending approval by the site owner."
+msgstr "Ваша регистрация ожидает одобрения администрации сайта."
-#: ../../Zotlabs/Widget/Conversations.php:21
-msgid "Sent Messages"
-msgstr "Отправленные сообщения"
+#: ../../Zotlabs/Module/Register.php:145
+msgid "Your registration can not be processed."
+msgstr "Ваша регистрация не может быть обработана."
-#: ../../Zotlabs/Widget/Conversations.php:25
-msgid "Conversations"
-msgstr "Беседы"
+#: ../../Zotlabs/Module/Register.php:192
+msgid "Registration on this hub is disabled."
+msgstr "Регистрация на этом хабе отключена."
-#: ../../Zotlabs/Widget/Conversations.php:37
-msgid "No messages."
-msgstr "Сообщений нет."
+#: ../../Zotlabs/Module/Register.php:201
+msgid "Registration on this hub is by approval only."
+msgstr "Регистрация на этом хабе только по утверждению."
-#: ../../Zotlabs/Widget/Conversations.php:57
-msgid "Delete conversation"
-msgstr "Удалить беседу"
+#: ../../Zotlabs/Module/Register.php:202 ../../Zotlabs/Module/Register.php:211
+msgid "<a href=\"pubsites\">Register at another affiliated hub.</a>"
+msgstr "<a href=\"pubsites\">Зарегистрироваться на другом хабе.</a>"
+
+#: ../../Zotlabs/Module/Register.php:210
+msgid "Registration on this hub is by invitation only."
+msgstr "Регистрация на этом хабе доступна только по приглашениям."
+
+#: ../../Zotlabs/Module/Register.php:221
+msgid ""
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
+msgstr "Этот сайт превысил максимальное количество регистраций на сегодня. Пожалуйста, попробуйте снова завтра. "
+
+#: ../../Zotlabs/Module/Register.php:242
+#, php-format
+msgid "I accept the %s for this website"
+msgstr "Я принимаю %s для этого веб-сайта."
+
+#: ../../Zotlabs/Module/Register.php:249
+#, php-format
+msgid "I am over %s years of age and accept the %s for this website"
+msgstr "Мой возраст превышает %s лет и я принимаю %s для этого веб-сайта."
+
+#: ../../Zotlabs/Module/Register.php:254
+msgid "Your email address"
+msgstr "Ваш адрес электронной почты"
+
+#: ../../Zotlabs/Module/Register.php:255
+msgid "Choose a password"
+msgstr "Выберите пароль"
+
+#: ../../Zotlabs/Module/Register.php:256
+msgid "Please re-enter your password"
+msgstr "Пожалуйста, введите пароль еще раз"
+
+#: ../../Zotlabs/Module/Register.php:257
+msgid "Please enter your invitation code"
+msgstr "Пожалуйста, введите Ваш код приглашения"
+
+#: ../../Zotlabs/Module/Register.php:258
+msgid "Your Name"
+msgstr "Ваше имя"
+
+#: ../../Zotlabs/Module/Register.php:258
+msgid "Real names are preferred."
+msgstr "Предпочтительны реальные имена."
+
+#: ../../Zotlabs/Module/Register.php:260
+#, php-format
+msgid ""
+"Your nickname will be used to create an easy to remember channel address e."
+"g. nickname%s"
+msgstr "Ваш псевдоним будет использован для создания легко запоминаемого адреса канала, напр. nickname %s"
+
+#: ../../Zotlabs/Module/Register.php:261
+msgid ""
+"Select a channel permission role for your usage needs and privacy "
+"requirements."
+msgstr "Выберите разрешения для канала в зависимости от ваших потребностей и требований приватности."
+
+#: ../../Zotlabs/Module/Register.php:262
+msgid "no"
+msgstr "нет"
+
+#: ../../Zotlabs/Module/Register.php:262
+msgid "yes"
+msgstr "да"
+
+#: ../../Zotlabs/Module/Register.php:289 ../../boot.php:1609
+#: ../../include/nav.php:156
+msgid "Register"
+msgstr "Регистрация"
+
+#: ../../Zotlabs/Module/Register.php:290
+msgid ""
+"This site requires email verification. After completing this form, please "
+"check your email for further instructions."
+msgstr "Этот сайт требует проверку адреса электронной почты. После заполнения этой формы, пожалуйста, проверьте ваш почтовый ящик для дальнейших инструкций."
+
+#: ../../Zotlabs/Module/Cover_photo.php:168
+#: ../../Zotlabs/Module/Cover_photo.php:218
+msgid "Cover Photos"
+msgstr "Фотографии обложки"
+
+#: ../../Zotlabs/Module/Cover_photo.php:269 ../../include/items.php:4652
+msgid "female"
+msgstr "женщина"
+
+#: ../../Zotlabs/Module/Cover_photo.php:270 ../../include/items.php:4653
+#, php-format
+msgid "%1$s updated her %2$s"
+msgstr "%1$s обновила её %2$s"
+
+#: ../../Zotlabs/Module/Cover_photo.php:271 ../../include/items.php:4654
+msgid "male"
+msgstr "мужчина"
+
+#: ../../Zotlabs/Module/Cover_photo.php:272 ../../include/items.php:4655
+#, php-format
+msgid "%1$s updated his %2$s"
+msgstr "%1$s обновил его %2$s"
+
+#: ../../Zotlabs/Module/Cover_photo.php:274 ../../include/items.php:4657
+#, php-format
+msgid "%1$s updated their %2$s"
+msgstr "%1$s обновили их %2$s"
+
+#: ../../Zotlabs/Module/Cover_photo.php:276 ../../include/channel.php:2137
+msgid "cover photo"
+msgstr "фотография обложки"
+
+#: ../../Zotlabs/Module/Cover_photo.php:390
+msgid "Your cover photo may be visible to anybody on the internet"
+msgstr "Фотография вашей обложки может быть видна всем в Интернете"
+
+#: ../../Zotlabs/Module/Cover_photo.php:394
+msgid "Change Cover Photo"
+msgstr "Изменить фотографию обложки"
+
+#: ../../Zotlabs/Module/Help.php:23
+msgid "Documentation Search"
+msgstr "Поиск документации"
+
+#: ../../Zotlabs/Module/Help.php:80 ../../include/nav.php:434
+msgid "About"
+msgstr "О себе"
+
+#: ../../Zotlabs/Module/Help.php:82
+msgid "Administrators"
+msgstr "Администраторы"
+
+#: ../../Zotlabs/Module/Help.php:83
+msgid "Developers"
+msgstr "Разработчики"
+
+#: ../../Zotlabs/Module/Help.php:84
+msgid "Tutorials"
+msgstr "Руководства"
+
+#: ../../Zotlabs/Module/Help.php:95
+msgid "$Projectname Documentation"
+msgstr "$Projectname Документация"
+
+#: ../../Zotlabs/Module/Help.php:96
+msgid "Contents"
+msgstr "Содержимое"
+
+#: ../../Zotlabs/Module/Display.php:391
+msgid "Article"
+msgstr "Статья"
+
+#: ../../Zotlabs/Module/Display.php:443
+msgid "Item has been removed."
+msgstr "Элемент был удалён."
+
+#: ../../Zotlabs/Module/Tagrm.php:48 ../../Zotlabs/Module/Tagrm.php:98
+msgid "Tag removed"
+msgstr "Тег удалён"
+
+#: ../../Zotlabs/Module/Tagrm.php:123
+msgid "Remove Item Tag"
+msgstr "Удалить тег элемента"
+
+#: ../../Zotlabs/Module/Tagrm.php:125
+msgid "Select a tag to remove: "
+msgstr "Выбрать тег для удаления:"
+
+#: ../../Zotlabs/Module/Network.php:109
+msgid "No such group"
+msgstr "Нет такой группы"
+
+#: ../../Zotlabs/Module/Network.php:158
+msgid "No such channel"
+msgstr "Нет такого канала"
+
+#: ../../Zotlabs/Module/Network.php:242
+msgid "Privacy group is empty"
+msgstr "Группа безопасности пуста"
+
+#: ../../Zotlabs/Module/Network.php:252
+msgid "Privacy group: "
+msgstr "Группа безопасности: "
+
+#: ../../Zotlabs/Module/Network.php:325 ../../addon/redred/Mod_Redred.php:29
+msgid "Invalid channel."
+msgstr "Недействительный канал."
+
+#: ../../Zotlabs/Module/Acl.php:360
+msgid "network"
+msgstr "сеть"
+
+#: ../../Zotlabs/Module/Home.php:72 ../../Zotlabs/Module/Home.php:80
+#: ../../Zotlabs/Lib/Enotify.php:66 ../../addon/opensearch/opensearch.php:42
+msgid "$Projectname"
+msgstr ""
+
+#: ../../Zotlabs/Module/Home.php:90
+#, php-format
+msgid "Welcome to %s"
+msgstr "Добро пожаловать в %s"
+
+#: ../../Zotlabs/Module/Filestorage.php:79
+msgid "Permission Denied."
+msgstr "Доступ запрещен."
+
+#: ../../Zotlabs/Module/Filestorage.php:112
+msgid "File not found."
+msgstr "Файл не найден."
+
+#: ../../Zotlabs/Module/Filestorage.php:165
+msgid "Edit file permissions"
+msgstr "Редактировать разрешения файла"
+
+#: ../../Zotlabs/Module/Filestorage.php:177
+msgid "Set/edit permissions"
+msgstr "Редактировать разрешения"
+
+#: ../../Zotlabs/Module/Filestorage.php:178
+msgid "Include all files and sub folders"
+msgstr "Включить все файлы и подкаталоги"
+
+#: ../../Zotlabs/Module/Filestorage.php:179
+msgid "Return to file list"
+msgstr "Вернутся к списку файлов"
+
+#: ../../Zotlabs/Module/Filestorage.php:181
+msgid "Copy/paste this code to attach file to a post"
+msgstr "Копировать / вставить этот код для прикрепления файла к публикации"
+
+#: ../../Zotlabs/Module/Filestorage.php:182
+msgid "Copy/paste this URL to link file from a web page"
+msgstr "Копировать / вставить эту URL для ссылки на файл со страницы"
+
+#: ../../Zotlabs/Module/Filestorage.php:184
+msgid "Share this file"
+msgstr "Поделиться этим файлом"
+
+#: ../../Zotlabs/Module/Filestorage.php:185
+msgid "Show URL to this file"
+msgstr "Показать URL этого файла"
+
+#: ../../Zotlabs/Module/Filestorage.php:186
+#: ../../Zotlabs/Storage/Browser.php:405
+msgid "Show in your contacts shared folder"
+msgstr "Показать общий каталог в ваших контактах"
+
+#: ../../Zotlabs/Module/Common.php:14
+msgid "No channel."
+msgstr "Канала нет."
+
+#: ../../Zotlabs/Module/Common.php:45
+msgid "No connections in common."
+msgstr "Общих контактов нет."
+
+#: ../../Zotlabs/Module/Common.php:65
+msgid "View Common Connections"
+msgstr "Просмотр общий контактов"
+
+#: ../../Zotlabs/Module/Email_resend.php:30
+msgid "Email verification resent"
+msgstr "Сообщение для проверки email отправлено повторно"
+
+#: ../../Zotlabs/Module/Email_resend.php:33
+msgid "Unable to resend email verification message."
+msgstr "Невозможно повторно отправить сообщение для проверки email"
+
+#: ../../Zotlabs/Module/Viewconnections.php:65
+msgid "No connections."
+msgstr "Контактов нет."
+
+#: ../../Zotlabs/Module/Viewconnections.php:83
+#, php-format
+msgid "Visit %s's profile [%s]"
+msgstr "Посетить %s ​​профиль [%s]"
+
+#: ../../Zotlabs/Module/Viewconnections.php:113
+msgid "View Connections"
+msgstr "Просмотр контактов"
+
+#: ../../Zotlabs/Module/Admin.php:97
+msgid "Blocked accounts"
+msgstr "Заблокированные аккаунты"
+
+#: ../../Zotlabs/Module/Admin.php:98
+msgid "Expired accounts"
+msgstr "Просроченные аккаунты"
+
+#: ../../Zotlabs/Module/Admin.php:99
+msgid "Expiring accounts"
+msgstr "Близкие к просрочке аккаунты"
+
+#: ../../Zotlabs/Module/Admin.php:120
+msgid "Message queues"
+msgstr "Очередь сообщений"
+
+#: ../../Zotlabs/Module/Admin.php:134
+msgid "Your software should be updated"
+msgstr "Ваше программное обеспечение должно быть обновлено"
+
+#: ../../Zotlabs/Module/Admin.php:139
+msgid "Summary"
+msgstr "Резюме"
+
+#: ../../Zotlabs/Module/Admin.php:142
+msgid "Registered accounts"
+msgstr "Зарегистрированные аккаунты"
+
+#: ../../Zotlabs/Module/Admin.php:143
+msgid "Pending registrations"
+msgstr "Ждут утверждения"
+
+#: ../../Zotlabs/Module/Admin.php:144
+msgid "Registered channels"
+msgstr "Зарегистрированные каналы"
+
+#: ../../Zotlabs/Module/Admin.php:145
+msgid "Active addons"
+msgstr "Активные расширения"
+
+#: ../../Zotlabs/Module/Admin.php:146
+msgid "Version"
+msgstr "Версия системы"
+
+#: ../../Zotlabs/Module/Admin.php:147
+msgid "Repository version (master)"
+msgstr "Версия репозитория (master)"
+
+#: ../../Zotlabs/Module/Admin.php:148
+msgid "Repository version (dev)"
+msgstr "Версия репозитория (dev)"
+
+#: ../../Zotlabs/Module/Service_limits.php:23
+msgid "No service class restrictions found."
+msgstr "Ограничений класса обслуживание не найдено."
+
+#: ../../Zotlabs/Module/Rate.php:156
+msgid "Website:"
+msgstr "Веб-сайт:"
+
+#: ../../Zotlabs/Module/Rate.php:159
+#, php-format
+msgid "Remote Channel [%s] (not yet known on this site)"
+msgstr "Удалённый канал [%s] (пока неизвестен на этом сайте)"
+
+#: ../../Zotlabs/Module/Rate.php:160
+msgid "Rating (this information is public)"
+msgstr "Оценка (эта информация общедоступна)"
+
+#: ../../Zotlabs/Module/Rate.php:161
+msgid "Optionally explain your rating (this information is public)"
+msgstr "Объясните свою оценку (необязательно; эта информация общедоступна)"
+
+#: ../../Zotlabs/Module/Card_edit.php:128
+msgid "Edit Card"
+msgstr "Редактировать карточку"
+
+#: ../../Zotlabs/Module/Lostpass.php:19
+msgid "No valid account found."
+msgstr "Действительный аккаунт не найден."
+
+#: ../../Zotlabs/Module/Lostpass.php:33
+msgid "Password reset request issued. Check your email."
+msgstr "Запрос на сброс пароля отправлен. Проверьте вашу электронную почту."
+
+#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:108
+#, php-format
+msgid "Site Member (%s)"
+msgstr "Участник сайта (%s)"
+
+#: ../../Zotlabs/Module/Lostpass.php:44 ../../Zotlabs/Module/Lostpass.php:49
+#, php-format
+msgid "Password reset requested at %s"
+msgstr "Запрошен сброс пароля на %s"
+
+#: ../../Zotlabs/Module/Lostpass.php:68
+msgid ""
+"Request could not be verified. (You may have previously submitted it.) "
+"Password reset failed."
+msgstr "Запрос не может быть проверен. (Вы могли отправить его раньше). Сброс пароля не возможен."
+
+#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1638
+msgid "Password Reset"
+msgstr "Сбросить пароль"
+
+#: ../../Zotlabs/Module/Lostpass.php:92
+msgid "Your password has been reset as requested."
+msgstr "Ваш пароль в соответствии с просьбой сброшен."
+
+#: ../../Zotlabs/Module/Lostpass.php:93
+msgid "Your new password is"
+msgstr "Ваш новый пароль"
+
+#: ../../Zotlabs/Module/Lostpass.php:94
+msgid "Save or copy your new password - and then"
+msgstr "Сохраните ваш новый пароль и затем"
+
+#: ../../Zotlabs/Module/Lostpass.php:95
+msgid "click here to login"
+msgstr "нажмите здесь чтобы войти"
+
+#: ../../Zotlabs/Module/Lostpass.php:96
+msgid ""
+"Your password may be changed from the <em>Settings</em> page after "
+"successful login."
+msgstr "Ваш пароль может быть изменён на странице <em>Настройки</em> после успешного входа."
+
+#: ../../Zotlabs/Module/Lostpass.php:117
+#, php-format
+msgid "Your password has changed at %s"
+msgstr "Пароль был изменен на %s"
+
+#: ../../Zotlabs/Module/Lostpass.php:130
+msgid "Forgot your Password?"
+msgstr "Забыли ваш пароль?"
+
+#: ../../Zotlabs/Module/Lostpass.php:131
+msgid ""
+"Enter your email address and submit to have your password reset. Then check "
+"your email for further instructions."
+msgstr "Введите ваш адрес электронной почты и нажмите отправить чтобы сбросить пароль. Затем проверьте ваш почтовый ящик для дальнейших инструкций. "
+
+#: ../../Zotlabs/Module/Lostpass.php:132
+msgid "Email Address"
+msgstr "Адрес электронной почты"
+
+#: ../../Zotlabs/Module/Oauth.php:45
+msgid "Name is required"
+msgstr "Необходимо имя"
+
+#: ../../Zotlabs/Module/Oauth.php:49
+msgid "Key and Secret are required"
+msgstr "Требуются ключ и код"
+
+#: ../../Zotlabs/Module/Oauth.php:100
+msgid "OAuth Apps Manager App"
+msgstr "Приложение \"Менеджер Oauth\""
+
+#: ../../Zotlabs/Module/Oauth.php:101
+msgid "OAuth authentication tokens for mobile and remote apps"
+msgstr "Токены аутентификации OAuth для мобильный и удалённых приложений"
+
+#: ../../Zotlabs/Module/Oauth.php:114 ../../Zotlabs/Module/Oauth.php:140
+#: ../../addon/statusnet/statusnet.php:596 ../../addon/twitter/twitter.php:614
+msgid "Consumer Key"
+msgstr "Ключ клиента"
+
+#: ../../Zotlabs/Module/Oauth.php:117 ../../Zotlabs/Module/Oauth.php:143
+msgid "Icon url"
+msgstr "URL значка"
+
+#: ../../Zotlabs/Module/Oauth.php:128
+msgid "Application not found."
+msgstr "Приложение не найдено."
+
+#: ../../Zotlabs/Module/Oauth.php:171
+msgid "Connected OAuth Apps"
+msgstr "Подключенные приложения OAuth"
+
+#: ../../Zotlabs/Module/Notifications.php:60
+#: ../../Zotlabs/Lib/ThreadItem.php:450
+msgid "Mark all seen"
+msgstr "Отметить как просмотренное"
+
+#: ../../Zotlabs/Lib/Activity.php:1458
+#, php-format
+msgid "Likes %1$s's %2$s"
+msgstr "Нравится %1$s %2$s"
+
+#: ../../Zotlabs/Lib/Activity.php:1461
+#, php-format
+msgid "Doesn't like %1$s's %2$s"
+msgstr "Не нравится %1$s %2$s"
+
+#: ../../Zotlabs/Lib/Activity.php:1464
+#, php-format
+msgid "Will attend %1$s's %2$s"
+msgstr "Примет участие %1$s %2$s"
+
+#: ../../Zotlabs/Lib/Activity.php:1467
+#, php-format
+msgid "Will not attend %1$s's %2$s"
+msgstr "Не примет участие %1$s %2$s"
+
+#: ../../Zotlabs/Lib/Activity.php:1470
+#, php-format
+msgid "May attend %1$s's %2$s"
+msgstr "Возможно примет участие %1$s %2$s"
+
+#: ../../Zotlabs/Lib/Activity.php:1806 ../../Zotlabs/Lib/Activity.php:2003
+#: ../../widget/Netselect/Netselect.php:42 ../../addon/pubcrawl/as.php:1214
+#: ../../addon/pubcrawl/as.php:1369 ../../addon/pubcrawl/as.php:1549
+#: ../../include/network.php:1720
+msgid "ActivityPub"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Techlevels.php:10
+msgid "0. Beginner/Basic"
+msgstr "Начинающий / Базовый"
+
+#: ../../Zotlabs/Lib/Techlevels.php:11
+msgid "1. Novice - not skilled but willing to learn"
+msgstr "1. Новичок - не опытный, но желающий учиться"
+
+#: ../../Zotlabs/Lib/Techlevels.php:12
+msgid "2. Intermediate - somewhat comfortable"
+msgstr "2. Промежуточный - более удобный"
+
+#: ../../Zotlabs/Lib/Techlevels.php:13
+msgid "3. Advanced - very comfortable"
+msgstr "3. Продвинутый - очень удобный"
+
+#: ../../Zotlabs/Lib/Techlevels.php:14
+msgid "4. Expert - I can write computer code"
+msgstr "4. Эксперт - я умею программировать"
+
+#: ../../Zotlabs/Lib/Techlevels.php:15
+msgid "5. Wizard - I probably know more than you do"
+msgstr "5. Волшебник - возможно я знаю больше чем ты"
+
+#: ../../Zotlabs/Lib/Libzot.php:652 ../../include/zot.php:802
+msgid "Unable to verify channel signature"
+msgstr "Невозможно проверить подпись канала"
+
+#: ../../Zotlabs/Lib/Apps.php:322
+msgid "Apps"
+msgstr "Приложения"
+
+#: ../../Zotlabs/Lib/Apps.php:323
+msgid "Affinity Tool"
+msgstr "Степень сходства"
+
+#: ../../Zotlabs/Lib/Apps.php:326
+msgid "Site Admin"
+msgstr "Администратор сайта"
+
+#: ../../Zotlabs/Lib/Apps.php:327 ../../addon/buglink/buglink.php:16
+msgid "Report Bug"
+msgstr "Сообщить об ошибке"
+
+#: ../../Zotlabs/Lib/Apps.php:328 ../../include/nav.php:490
+msgid "Bookmarks"
+msgstr "Закладки"
+
+#: ../../Zotlabs/Lib/Apps.php:329 ../../Zotlabs/Widget/Chatroom_list.php:16
+#: ../../include/nav.php:477 ../../include/nav.php:480
+msgid "Chatrooms"
+msgstr "Чаты"
+
+#: ../../Zotlabs/Lib/Apps.php:331
+msgid "Remote Diagnostics"
+msgstr "Удалённая диагностика"
+
+#: ../../Zotlabs/Lib/Apps.php:332 ../../include/features.php:365
+msgid "Suggest Channels"
+msgstr "Предлагаемые каналы"
+
+#: ../../Zotlabs/Lib/Apps.php:333 ../../boot.php:1629 ../../include/nav.php:118
+#: ../../include/nav.php:122
+msgid "Login"
+msgstr "Войти"
+
+#: ../../Zotlabs/Lib/Apps.php:335
+msgid "Stream"
+msgstr "Поток"
+
+#: ../../Zotlabs/Lib/Apps.php:339 ../../include/nav.php:539
+msgid "Wiki"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Apps.php:340 ../../include/features.php:96
+msgid "Channel Home"
+msgstr "Главная канала"
+
+#: ../../Zotlabs/Lib/Apps.php:343 ../../include/features.php:269
+msgid "Events"
+msgstr "События"
+
+#: ../../Zotlabs/Lib/Apps.php:344 ../../include/features.php:176
+msgid "Directory"
+msgstr "Каталог"
+
+#: ../../Zotlabs/Lib/Apps.php:346
+msgid "Mail"
+msgstr "Переписка"
+
+#: ../../Zotlabs/Lib/Apps.php:349
+msgid "Chat"
+msgstr "Чат"
+
+#: ../../Zotlabs/Lib/Apps.php:351
+msgid "Probe"
+msgstr "Проба"
+
+#: ../../Zotlabs/Lib/Apps.php:352
+msgid "Suggest"
+msgstr "Предложить"
+
+#: ../../Zotlabs/Lib/Apps.php:353
+msgid "Random Channel"
+msgstr "Случайный канал"
+
+#: ../../Zotlabs/Lib/Apps.php:354
+msgid "Invite"
+msgstr "Пригласить"
+
+#: ../../Zotlabs/Lib/Apps.php:355 ../../Zotlabs/Widget/Admin.php:26
+msgid "Features"
+msgstr "Функции"
+
+#: ../../Zotlabs/Lib/Apps.php:356 ../../addon/openid/MysqlProvider.php:69
+msgid "Language"
+msgstr "Язык"
+
+#: ../../Zotlabs/Lib/Apps.php:357
+msgid "Post"
+msgstr "Публикация"
+
+#: ../../Zotlabs/Lib/Apps.php:358 ../../addon/openid/MysqlProvider.php:58
+#: ../../addon/openid/MysqlProvider.php:59
+#: ../../addon/openid/MysqlProvider.php:60
+msgid "Profile Photo"
+msgstr "Фотография профиля"
+
+#: ../../Zotlabs/Lib/Apps.php:360 ../../include/features.php:397
+msgid "Profiles"
+msgstr "Редактировать профиль"
+
+#: ../../Zotlabs/Lib/Apps.php:362
+msgid "Notifications"
+msgstr "Оповещения"
+
+#: ../../Zotlabs/Lib/Apps.php:363
+msgid "Order Apps"
+msgstr "Порядок приложений"
+
+#: ../../Zotlabs/Lib/Apps.php:364 ../../include/features.php:82
+msgid "CalDAV"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Apps.php:365
+msgid "CardDAV"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Apps.php:367
+msgid "Guest Access"
+msgstr "Гостевой доступ"
+
+#: ../../Zotlabs/Lib/Apps.php:368 ../../Zotlabs/Widget/Notes.php:21
+msgid "Notes"
+msgstr "Заметки"
+
+#: ../../Zotlabs/Lib/Apps.php:369
+msgid "OAuth Apps Manager"
+msgstr "Менеджер OAuth"
+
+#: ../../Zotlabs/Lib/Apps.php:370
+msgid "OAuth2 Apps Manager"
+msgstr "Менеджер OAuth2"
+
+#: ../../Zotlabs/Lib/Apps.php:371
+msgid "PDL Editor"
+msgstr "Редактор PDL"
+
+#: ../../Zotlabs/Lib/Apps.php:373
+msgid "Premium Channel"
+msgstr "Премиальный канал"
+
+#: ../../Zotlabs/Lib/Apps.php:375
+msgid "My Chatrooms"
+msgstr "Мои чаты"
+
+#: ../../Zotlabs/Lib/Apps.php:376
+msgid "Channel Export"
+msgstr "Экспорт канала"
+
+#: ../../Zotlabs/Lib/Apps.php:553
+msgid "Purchase"
+msgstr "Купить"
+
+#: ../../Zotlabs/Lib/Apps.php:558
+msgid "Undelete"
+msgstr "Восстановить"
+
+#: ../../Zotlabs/Lib/Apps.php:567
+msgid "Add to app-tray"
+msgstr "Добавить в app-tray"
+
+#: ../../Zotlabs/Lib/Apps.php:568
+msgid "Remove from app-tray"
+msgstr "Удалить из app-tray"
+
+#: ../../Zotlabs/Lib/Apps.php:569
+msgid "Pin to navbar"
+msgstr "Добавить на панель навигации"
+
+#: ../../Zotlabs/Lib/Apps.php:570
+msgid "Unpin from navbar"
+msgstr "Удалить с панели навигации"
+
+#: ../../Zotlabs/Lib/Permcat.php:82
+msgctxt "permcat"
+msgid "default"
+msgstr "по умолчанию"
+
+#: ../../Zotlabs/Lib/Permcat.php:133
+msgctxt "permcat"
+msgid "follower"
+msgstr "поклонник"
+
+#: ../../Zotlabs/Lib/Permcat.php:137
+msgctxt "permcat"
+msgid "contributor"
+msgstr "участник"
+
+#: ../../Zotlabs/Lib/Permcat.php:141
+msgctxt "permcat"
+msgid "publisher"
+msgstr "издатель"
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:42
+#: ../../Zotlabs/Lib/NativeWikiPage.php:94
+msgid "(No Title)"
+msgstr "(нет заголовка)"
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:109
+msgid "Wiki page create failed."
+msgstr "Не удалось создать страницу Wiki."
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:122
+msgid "Wiki not found."
+msgstr "Wiki не найдена."
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:133
+msgid "Destination name already exists"
+msgstr "Имя назначения уже существует"
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:166
+#: ../../Zotlabs/Lib/NativeWikiPage.php:362
+msgid "Page not found"
+msgstr "Страница не найдена."
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:197
+msgid "Error reading page content"
+msgstr "Ошибка чтения содержимого страницы"
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:353
+#: ../../Zotlabs/Lib/NativeWikiPage.php:402
+#: ../../Zotlabs/Lib/NativeWikiPage.php:469
+#: ../../Zotlabs/Lib/NativeWikiPage.php:510
+msgid "Error reading wiki"
+msgstr "Ошибка чтения Wiki"
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:390
+msgid "Page update failed."
+msgstr "Не удалось обновить страницу."
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:424
+msgid "Nothing deleted"
+msgstr "Ничего не удалено"
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:490
+msgid "Compare: object not found."
+msgstr "Сравнение: объект не найден."
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:496
+msgid "Page updated"
+msgstr "Страница обновлена"
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:499
+msgid "Untitled"
+msgstr "Не озаглавлено"
+
+#: ../../Zotlabs/Lib/NativeWikiPage.php:505
+msgid "Wiki resource_id required for git commit"
+msgstr "Требуется resource_id Wiki для отправки в Git"
-#: ../../Zotlabs/Widget/Wiki_page_history.php:23
#: ../../Zotlabs/Lib/NativeWikiPage.php:562
+#: ../../Zotlabs/Widget/Wiki_page_history.php:23
msgctxt "wiki_history"
msgid "Message"
msgstr "Сообщение"
-#: ../../Zotlabs/Widget/Wiki_page_history.php:24
#: ../../Zotlabs/Lib/NativeWikiPage.php:563
+#: ../../Zotlabs/Widget/Wiki_page_history.php:24
msgid "Date"
msgstr "Дата"
-#: ../../Zotlabs/Widget/Wiki_page_history.php:26
#: ../../Zotlabs/Lib/NativeWikiPage.php:565
+#: ../../Zotlabs/Widget/Wiki_page_history.php:26
msgid "Compare"
msgstr "Сравнить"
-#: ../../Zotlabs/Access/Permissions.php:56
-msgid "Can view my channel stream and posts"
-msgstr "Может просматривать мой поток и сообщения"
-
-#: ../../Zotlabs/Access/Permissions.php:57
-msgid "Can send me their channel stream and posts"
-msgstr "Может присылать мне свои потоки и сообщения"
-
-#: ../../Zotlabs/Access/Permissions.php:58
-msgid "Can view my default channel profile"
-msgstr "Может просматривать мой стандартный профиль канала"
-
-#: ../../Zotlabs/Access/Permissions.php:59
-msgid "Can view my connections"
-msgstr "Может просматривать мои контакты"
-
-#: ../../Zotlabs/Access/Permissions.php:60
-msgid "Can view my file storage and photos"
-msgstr "Может просматривать мое хранилище файлов"
+#: ../../Zotlabs/Lib/NativeWikiPage.php:603 ../../include/bbcode.php:735
+#: ../../include/bbcode.php:905
+msgid "Different viewers will see this text differently"
+msgstr "Различные зрители увидят этот текст по-разному"
-#: ../../Zotlabs/Access/Permissions.php:61
-msgid "Can upload/modify my file storage and photos"
-msgstr "Может загружать/изменять мои файлы и фотографии в хранилище"
+#: ../../Zotlabs/Lib/PermissionDescription.php:34
+#: ../../include/acl_selectors.php:33
+msgid "Visible to your default audience"
+msgstr "Видно вашей аудитории по умолчанию."
-#: ../../Zotlabs/Access/Permissions.php:62
-msgid "Can view my channel webpages"
-msgstr "Может просматривать мои веб-страницы"
+#: ../../Zotlabs/Lib/PermissionDescription.php:107
+#: ../../include/acl_selectors.php:106
+msgid "Only me"
+msgstr "Только мне"
-#: ../../Zotlabs/Access/Permissions.php:63
-msgid "Can view my wiki pages"
-msgstr "Может просматривать мои вики-страницы"
+#: ../../Zotlabs/Lib/PermissionDescription.php:108
+msgid "Public"
+msgstr "Общедоступно"
-#: ../../Zotlabs/Access/Permissions.php:64
-msgid "Can create/edit my channel webpages"
-msgstr "Может редактировать мои веб-страницы"
+#: ../../Zotlabs/Lib/PermissionDescription.php:109
+msgid "Anybody in the $Projectname network"
+msgstr "Любому в сети $Projectname"
-#: ../../Zotlabs/Access/Permissions.php:65
-msgid "Can write to my wiki pages"
-msgstr "Может редактировать мои вики-страницы"
+#: ../../Zotlabs/Lib/PermissionDescription.php:110
+#, php-format
+msgid "Any account on %s"
+msgstr "Любой аккаунт в %s"
-#: ../../Zotlabs/Access/Permissions.php:66
-msgid "Can post on my channel (wall) page"
-msgstr "Может публиковать на моей странице канала"
+#: ../../Zotlabs/Lib/PermissionDescription.php:111
+msgid "Any of my connections"
+msgstr "Любой из моих контактов"
-#: ../../Zotlabs/Access/Permissions.php:67
-msgid "Can comment on or like my posts"
-msgstr "Может прокомментировать или отмечать как понравившиеся мои посты"
+#: ../../Zotlabs/Lib/PermissionDescription.php:112
+msgid "Only connections I specifically allow"
+msgstr "Только те контакты, кому я дам разрешение"
-#: ../../Zotlabs/Access/Permissions.php:68
-msgid "Can send me private mail messages"
-msgstr "Может отправлять мне личные сообщения по эл. почте"
+#: ../../Zotlabs/Lib/PermissionDescription.php:113
+msgid "Anybody authenticated (could include visitors from other networks)"
+msgstr "Любой аутентифицированный (может включать посетителей их других сетей)"
-#: ../../Zotlabs/Access/Permissions.php:69
-msgid "Can like/dislike profiles and profile things"
-msgstr "Может комментировать или отмечать как нравится/ненравится мой профиль"
+#: ../../Zotlabs/Lib/PermissionDescription.php:114
+msgid "Any connections including those who haven't yet been approved"
+msgstr "Любые контакты включая те, которые вы ещё не одобрили"
-#: ../../Zotlabs/Access/Permissions.php:70
-msgid "Can forward to all my channel connections via ! mentions in posts"
-msgstr "Может пересылать всем подписчикам моего канала используя ! в публикациях"
+#: ../../Zotlabs/Lib/PermissionDescription.php:150
+msgid ""
+"This is your default setting for the audience of your normal stream, and "
+"posts."
+msgstr "Это настройка по умолчанию для аудитории ваших обычных потоков и публикаций"
-#: ../../Zotlabs/Access/Permissions.php:71
-msgid "Can chat with me"
-msgstr "Может общаться со мной в чате"
+#: ../../Zotlabs/Lib/PermissionDescription.php:151
+msgid ""
+"This is your default setting for who can view your default channel profile"
+msgstr "Это настройка по умолчанию для тех, кто может просматривать профиль вашего основного канала"
-#: ../../Zotlabs/Access/Permissions.php:72
-msgid "Can source my public posts in derived channels"
-msgstr "Может использовать мои публичные сообщения в клонированных лентах сообщений"
+#: ../../Zotlabs/Lib/PermissionDescription.php:152
+msgid "This is your default setting for who can view your connections"
+msgstr "Это настройка по умолчанию для тех, кто может просматривать ваши контакты"
-#: ../../Zotlabs/Access/Permissions.php:73
-msgid "Can administer my channel"
-msgstr "Может администрировать мой канал"
+#: ../../Zotlabs/Lib/PermissionDescription.php:153
+msgid ""
+"This is your default setting for who can view your file storage and photos"
+msgstr "Это настройка по умолчанию для тех, кто может просматривать ваше хранилище файлов и фотографий"
-#: ../../Zotlabs/Access/PermissionRoles.php:283
-msgid "Social Networking"
-msgstr "Социальная Сеть"
+#: ../../Zotlabs/Lib/PermissionDescription.php:154
+msgid "This is your default setting for the audience of your webpages"
+msgstr "Это настройка по умолчанию для аудитории ваших веб-страниц"
-#: ../../Zotlabs/Access/PermissionRoles.php:284
-msgid "Social - Federation"
-msgstr "Социальная - Федерация"
+#: ../../Zotlabs/Lib/Libzotdir.php:160 ../../include/dir_fns.php:141
+msgid "Directory Options"
+msgstr "Параметры каталога"
-#: ../../Zotlabs/Access/PermissionRoles.php:285
-msgid "Social - Mostly Public"
-msgstr "Социальная - В основном общественный"
+#: ../../Zotlabs/Lib/Libzotdir.php:162 ../../include/dir_fns.php:143
+msgid "Safe Mode"
+msgstr "Безопасный режим"
-#: ../../Zotlabs/Access/PermissionRoles.php:286
-msgid "Social - Restricted"
-msgstr "Социальная - Ограниченный"
+#: ../../Zotlabs/Lib/Libzotdir.php:163 ../../include/dir_fns.php:144
+msgid "Public Forums Only"
+msgstr "Только публичные форумы"
-#: ../../Zotlabs/Access/PermissionRoles.php:287
-msgid "Social - Private"
-msgstr "Социальная - Частный"
+#: ../../Zotlabs/Lib/Libzotdir.php:165 ../../include/dir_fns.php:145
+msgid "This Website Only"
+msgstr "Только этот веб-сайт"
-#: ../../Zotlabs/Access/PermissionRoles.php:290
-msgid "Community Forum"
-msgstr "Форум сообщества"
+#: ../../Zotlabs/Lib/Group.php:28 ../../include/group.php:22
+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 "Удаленная группа с этим названием была восстановлена. Существующие разрешения пункт <strong>могут</strong> применяться к этой группе и к её будущих участников. Если это не то, чего вы хотели, пожалуйста, создайте другую группу с другим именем."
-#: ../../Zotlabs/Access/PermissionRoles.php:291
-msgid "Forum - Mostly Public"
-msgstr "Форум - В основном общественный"
+#: ../../Zotlabs/Lib/Group.php:270 ../../include/group.php:264
+msgid "Add new connections to this privacy group"
+msgstr "Добавить новые контакты в группу безопасности"
-#: ../../Zotlabs/Access/PermissionRoles.php:292
-msgid "Forum - Restricted"
-msgstr "Форум - Ограниченный"
+#: ../../Zotlabs/Lib/Group.php:302 ../../include/group.php:298
+msgid "edit"
+msgstr "редактировать"
-#: ../../Zotlabs/Access/PermissionRoles.php:293
-msgid "Forum - Private"
-msgstr "Форум - Частный"
+#: ../../Zotlabs/Lib/Group.php:325 ../../include/group.php:321
+msgid "Edit group"
+msgstr "Редактировать группу"
-#: ../../Zotlabs/Access/PermissionRoles.php:296
-msgid "Feed Republish"
-msgstr "Публиковать ленты новостей"
+#: ../../Zotlabs/Lib/Group.php:326 ../../include/group.php:322
+msgid "Add privacy group"
+msgstr "Добавить группу безопасности"
-#: ../../Zotlabs/Access/PermissionRoles.php:297
-msgid "Feed - Mostly Public"
-msgstr "Ленты новостей - В основном общественный"
+#: ../../Zotlabs/Lib/Group.php:327 ../../include/group.php:323
+msgid "Channels not in any privacy group"
+msgstr "Каналы не включены ни в одну группу безопасности"
-#: ../../Zotlabs/Access/PermissionRoles.php:298
-msgid "Feed - Restricted"
-msgstr "Ленты новостей - Ограниченный"
+#: ../../Zotlabs/Lib/Group.php:329 ../../Zotlabs/Widget/Savedsearch.php:84
+#: ../../include/group.php:325
+msgid "add"
+msgstr "добавить"
-#: ../../Zotlabs/Access/PermissionRoles.php:301
-msgid "Special Purpose"
-msgstr "Спец. назначение"
+#: ../../Zotlabs/Lib/Chatroom.php:23
+msgid "Missing room name"
+msgstr "Отсутствует название комнаты"
-#: ../../Zotlabs/Access/PermissionRoles.php:302
-msgid "Special - Celebrity/Soapbox"
-msgstr "Спец. назначение - Знаменитость/Soapbox"
+#: ../../Zotlabs/Lib/Chatroom.php:32
+msgid "Duplicate room name"
+msgstr "Название комнаты дублируется"
-#: ../../Zotlabs/Access/PermissionRoles.php:303
-msgid "Special - Group Repository"
-msgstr "Спец. назначение - Групповой репозиторий"
+#: ../../Zotlabs/Lib/Chatroom.php:82 ../../Zotlabs/Lib/Chatroom.php:90
+msgid "Invalid room specifier."
+msgstr "Неверный указатель комнаты."
-#: ../../Zotlabs/Access/PermissionRoles.php:307
-msgid "Custom/Expert Mode"
-msgstr "Экспертный режим"
+#: ../../Zotlabs/Lib/Chatroom.php:122
+msgid "Room not found."
+msgstr "Комната не найдена."
-#: ../../Zotlabs/Lib/DB_Upgrade.php:83
-#, php-format
-msgid "Update Error at %s"
-msgstr "Ошибка обновления на %s"
+#: ../../Zotlabs/Lib/Chatroom.php:143
+msgid "Room is full"
+msgstr "Комната переполнена"
-#: ../../Zotlabs/Lib/DB_Upgrade.php:89
+#: ../../Zotlabs/Lib/Libsync.php:733 ../../include/zot.php:2591
#, php-format
-msgid "Update %s failed. See error logs."
-msgstr "Выполнение %s неудачно. Проверьте системный журнал."
+msgid "Unable to verify site signature for %s"
+msgstr "Невозможно проверить подпись сайта %s"
#: ../../Zotlabs/Lib/Enotify.php:60
msgid "$Projectname Notification"
msgstr "Оповещение $Projectname "
-#: ../../Zotlabs/Lib/Enotify.php:61
-#: ../../extend/addon/hzaddons/diaspora/p.php:48
-#: ../../extend/addon/hzaddons/diaspora/util.php:308
-#: ../../extend/addon/hzaddons/diaspora/util.php:321
+#: ../../Zotlabs/Lib/Enotify.php:61 ../../addon/diaspora/util.php:313
+#: ../../addon/diaspora/util.php:326 ../../addon/diaspora/p.php:48
msgid "$projectname"
msgstr ""
@@ -11667,8 +8548,7 @@ msgstr ""
msgid "Thank You,"
msgstr "Спасибо,"
-#: ../../Zotlabs/Lib/Enotify.php:65
-#: ../../extend/addon/hzaddons/hubwall/hubwall.php:33
+#: ../../Zotlabs/Lib/Enotify.php:65 ../../addon/hubwall/hubwall.php:33
#, php-format
msgid "%s Administrator"
msgstr "администратор %s"
@@ -11922,249 +8802,105 @@ msgstr "отредактировал публикацию датированну
msgid "edited a comment dated %s"
msgstr "отредактировал комментарий датированный %s"
-#: ../../Zotlabs/Lib/NativeWikiPage.php:42
-#: ../../Zotlabs/Lib/NativeWikiPage.php:94
-msgid "(No Title)"
-msgstr "(нет заголовка)"
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:109
-msgid "Wiki page create failed."
-msgstr "Не удалось создать страницу Wiki."
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:122
-msgid "Wiki not found."
-msgstr "Wiki не найдена."
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:133
-msgid "Destination name already exists"
-msgstr "Имя назначения уже существует"
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:166
-#: ../../Zotlabs/Lib/NativeWikiPage.php:362
-msgid "Page not found"
-msgstr "Страница не найдена."
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:197
-msgid "Error reading page content"
-msgstr "Ошибка чтения содержимого страницы"
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:353
-#: ../../Zotlabs/Lib/NativeWikiPage.php:402
-#: ../../Zotlabs/Lib/NativeWikiPage.php:469
-#: ../../Zotlabs/Lib/NativeWikiPage.php:510
-msgid "Error reading wiki"
-msgstr "Ошибка чтения Wiki"
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:390
-msgid "Page update failed."
-msgstr "Не удалось обновить страницу."
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:424
-msgid "Nothing deleted"
-msgstr "Ничего не удалено"
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:490
-msgid "Compare: object not found."
-msgstr "Сравнение: объект не найден."
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:496
-msgid "Page updated"
-msgstr "Страница обновлена"
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:499
-msgid "Untitled"
-msgstr "Не озаглавлено"
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:505
-msgid "Wiki resource_id required for git commit"
-msgstr "Требуется resource_id Wiki для отправки в Git"
-
-#: ../../Zotlabs/Lib/Permcat.php:82
-msgctxt "permcat"
-msgid "default"
-msgstr "по умолчанию"
-
-#: ../../Zotlabs/Lib/Permcat.php:133
-msgctxt "permcat"
-msgid "follower"
-msgstr "поклонник"
-
-#: ../../Zotlabs/Lib/Permcat.php:137
-msgctxt "permcat"
-msgid "contributor"
-msgstr "участник"
-
-#: ../../Zotlabs/Lib/Permcat.php:141
-msgctxt "permcat"
-msgid "publisher"
-msgstr "издатель"
-
-#: ../../Zotlabs/Lib/Apps.php:301
-msgid "Apps"
-msgstr "Приложения"
-
-#: ../../Zotlabs/Lib/Apps.php:304
-msgid "Site Admin"
-msgstr "Администратор сайта"
-
-#: ../../Zotlabs/Lib/Apps.php:305
-#: ../../extend/addon/hzaddons/buglink/buglink.php:16
-msgid "Report Bug"
-msgstr "Сообщить об ошибке"
-
-#: ../../Zotlabs/Lib/Apps.php:309
-msgid "Remote Diagnostics"
-msgstr "Удалённая диагностика"
-
-#: ../../Zotlabs/Lib/Apps.php:313
-msgid "Stream"
-msgstr "Поток"
-
-#: ../../Zotlabs/Lib/Apps.php:324
-msgid "Mail"
-msgstr "Переписка"
-
-#: ../../Zotlabs/Lib/Apps.php:327
-msgid "Chat"
-msgstr "Чат"
-
-#: ../../Zotlabs/Lib/Apps.php:329
-msgid "Probe"
-msgstr "Проба"
-
-#: ../../Zotlabs/Lib/Apps.php:330
-msgid "Suggest"
-msgstr "Предложить"
-
-#: ../../Zotlabs/Lib/Apps.php:331
-msgid "Random Channel"
-msgstr "Случайный канал"
-
-#: ../../Zotlabs/Lib/Apps.php:332
-msgid "Invite"
-msgstr "Пригласить"
-
-#: ../../Zotlabs/Lib/Apps.php:334
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:69
-msgid "Language"
-msgstr "Язык"
-
-#: ../../Zotlabs/Lib/Apps.php:335
-msgid "Post"
-msgstr "Публикация"
-
-#: ../../Zotlabs/Lib/Apps.php:336
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:58
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:59
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:60
-msgid "Profile Photo"
-msgstr "Фотография профиля"
-
-#: ../../Zotlabs/Lib/Apps.php:340
-msgid "Notifications"
-msgstr "Оповещения"
-
-#: ../../Zotlabs/Lib/Apps.php:341
-msgid "Order Apps"
-msgstr "Порядок приложений"
-
-#: ../../Zotlabs/Lib/Apps.php:343
-msgid "CardDAV"
-msgstr ""
-
-#: ../../Zotlabs/Lib/Apps.php:345
-msgid "Guest Access"
-msgstr "Гостевой доступ"
-
-#: ../../Zotlabs/Lib/Apps.php:347
-msgid "OAuth Apps Manager"
-msgstr "Менеджер OAuth"
-
-#: ../../Zotlabs/Lib/Apps.php:348
-msgid "OAuth2 Apps Manager"
-msgstr "Менеджер OAuth2"
-
-#: ../../Zotlabs/Lib/Apps.php:349
-msgid "PDL Editor"
-msgstr "Редактор PDL"
-
-#: ../../Zotlabs/Lib/Apps.php:351
-msgid "Premium Channel"
-msgstr "Премиальный канал"
-
-#: ../../Zotlabs/Lib/Apps.php:353
-msgid "My Chatrooms"
-msgstr "Мои чаты"
+#: ../../Zotlabs/Lib/NativeWiki.php:143
+msgid "Wiki updated successfully"
+msgstr "Wiki успешно обновлена"
-#: ../../Zotlabs/Lib/Apps.php:354
-msgid "Channel Export"
-msgstr "Экспорт канала"
+#: ../../Zotlabs/Lib/NativeWiki.php:197
+msgid "Wiki files deleted successfully"
+msgstr "Wiki успешно удалена"
-#: ../../Zotlabs/Lib/Apps.php:531
-msgid "Purchase"
-msgstr "Купить"
+#: ../../Zotlabs/Lib/DB_Upgrade.php:83
+#, php-format
+msgid "Update Error at %s"
+msgstr "Ошибка обновления на %s"
-#: ../../Zotlabs/Lib/Apps.php:536
-msgid "Undelete"
-msgstr "Восстановить"
+#: ../../Zotlabs/Lib/DB_Upgrade.php:89
+#, php-format
+msgid "Update %s failed. See error logs."
+msgstr "Выполнение %s неудачно. Проверьте системный журнал."
-#: ../../Zotlabs/Lib/Apps.php:545
-msgid "Add to app-tray"
-msgstr "Добавить в app-tray"
+#: ../../Zotlabs/Lib/ThreadItem.php:102 ../../include/conversation.php:700
+msgid "Private Message"
+msgstr "Личное сообщение"
-#: ../../Zotlabs/Lib/Apps.php:546
-msgid "Remove from app-tray"
-msgstr "Удалить из app-tray"
+#: ../../Zotlabs/Lib/ThreadItem.php:129
+msgid "Privacy conflict. Discretion advised."
+msgstr "Конфиликт настроек конфиденциальности."
-#: ../../Zotlabs/Lib/Apps.php:547
-msgid "Pin to navbar"
-msgstr "Добавить на панель навигации"
+#: ../../Zotlabs/Lib/ThreadItem.php:171 ../../Zotlabs/Storage/Browser.php:280
+msgid "Admin Delete"
+msgstr "Удалено администратором"
-#: ../../Zotlabs/Lib/Apps.php:548
-msgid "Unpin from navbar"
-msgstr "Удалить с панели навигации"
+#: ../../Zotlabs/Lib/ThreadItem.php:177 ../../include/conversation.php:690
+msgid "Select"
+msgstr "Выбрать"
-#: ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../Zotlabs/Lib/ThreadItem.php:202
msgid "I will attend"
-msgstr "Я буду присутствовать"
+msgstr "Я буду участвовать"
-#: ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../Zotlabs/Lib/ThreadItem.php:202
msgid "I will not attend"
-msgstr "Я не буду присутствовать"
+msgstr "Я не буду участвовать"
-#: ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../Zotlabs/Lib/ThreadItem.php:202
msgid "I might attend"
msgstr "Я возможно буду присутствовать"
-#: ../../Zotlabs/Lib/ThreadItem.php:195
+#: ../../Zotlabs/Lib/ThreadItem.php:212
msgid "I agree"
msgstr "Я согласен"
-#: ../../Zotlabs/Lib/ThreadItem.php:195
+#: ../../Zotlabs/Lib/ThreadItem.php:212
msgid "I disagree"
msgstr "Я не согласен"
-#: ../../Zotlabs/Lib/ThreadItem.php:195
+#: ../../Zotlabs/Lib/ThreadItem.php:212
msgid "I abstain"
msgstr "Я воздержался"
-#: ../../Zotlabs/Lib/ThreadItem.php:269
+#: ../../Zotlabs/Lib/ThreadItem.php:266 ../../include/conversation.php:695
+msgid "Toggle Star Status"
+msgstr "Переключить статус пометки"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:277 ../../include/conversation.php:707
+msgid "Message signature validated"
+msgstr "Подпись сообщения проверена"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:278 ../../include/conversation.php:708
+msgid "Message signature incorrect"
+msgstr "Подпись сообщения неверная"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:286
msgid "Add Tag"
msgstr "Добавить тег"
-#: ../../Zotlabs/Lib/ThreadItem.php:294
+#: ../../Zotlabs/Lib/ThreadItem.php:290 ../../include/conversation.php:891
+msgid "Conversation Tools"
+msgstr "Инструменты общения"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:306 ../../include/taxonomy.php:575
+msgid "like"
+msgstr "нравится"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:307 ../../include/taxonomy.php:576
+msgid "dislike"
+msgstr "не нравится"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:317
msgid "Share This"
msgstr "Поделиться этим"
-#: ../../Zotlabs/Lib/ThreadItem.php:294
+#: ../../Zotlabs/Lib/ThreadItem.php:317
msgid "share"
msgstr "поделиться"
-#: ../../Zotlabs/Lib/ThreadItem.php:303
+#: ../../Zotlabs/Lib/ThreadItem.php:327
msgid "Delivery Report"
msgstr "Отчёт о доставке"
-#: ../../Zotlabs/Lib/ThreadItem.php:321
+#: ../../Zotlabs/Lib/ThreadItem.php:347
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
@@ -12172,1494 +8908,3027 @@ msgstr[0] "%d комментарий"
msgstr[1] "%d комментария"
msgstr[2] "%d комментариев"
-#: ../../Zotlabs/Lib/ThreadItem.php:355 ../../Zotlabs/Lib/ThreadItem.php:356
+#: ../../Zotlabs/Lib/ThreadItem.php:381 ../../Zotlabs/Lib/ThreadItem.php:382
#, php-format
msgid "View %s's profile - %s"
msgstr "Просмотр %s профиля - %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:359
+#: ../../Zotlabs/Lib/ThreadItem.php:385
msgid "to"
msgstr "к"
-#: ../../Zotlabs/Lib/ThreadItem.php:360
+#: ../../Zotlabs/Lib/ThreadItem.php:386
msgid "via"
msgstr "через"
-#: ../../Zotlabs/Lib/ThreadItem.php:361
+#: ../../Zotlabs/Lib/ThreadItem.php:387
msgid "Wall-to-Wall"
msgstr "Стена-к-Стене"
-#: ../../Zotlabs/Lib/ThreadItem.php:362
+#: ../../Zotlabs/Lib/ThreadItem.php:388
msgid "via Wall-To-Wall:"
msgstr "через Стена-к-Стене:"
-#: ../../Zotlabs/Lib/ThreadItem.php:387
+#: ../../Zotlabs/Lib/ThreadItem.php:402 ../../include/conversation.php:766
+#, php-format
+msgid "from %s"
+msgstr "от %s"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:405 ../../include/conversation.php:769
+#, php-format
+msgid "last edited: %s"
+msgstr "последнее редактирование: %s"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:406 ../../include/conversation.php:770
+#, php-format
+msgid "Expires: %s"
+msgstr "Срок действия: %s"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:414
msgid "Attend"
msgstr "Посетить"
-#: ../../Zotlabs/Lib/ThreadItem.php:388
+#: ../../Zotlabs/Lib/ThreadItem.php:415
msgid "Attendance Options"
msgstr "Параметры посещаемости"
-#: ../../Zotlabs/Lib/ThreadItem.php:389
+#: ../../Zotlabs/Lib/ThreadItem.php:416
msgid "Vote"
msgstr "Голосовать"
-#: ../../Zotlabs/Lib/ThreadItem.php:390
+#: ../../Zotlabs/Lib/ThreadItem.php:417
msgid "Voting Options"
msgstr "Параметры голосования"
-#: ../../Zotlabs/Lib/ThreadItem.php:411
-#: ../../extend/addon/hzaddons/bookmarker/bookmarker.php:38
+#: ../../Zotlabs/Lib/ThreadItem.php:439
+#: ../../addon/bookmarker/bookmarker.php:38
msgid "Save Bookmarks"
msgstr "Сохранить закладки"
-#: ../../Zotlabs/Lib/ThreadItem.php:412
+#: ../../Zotlabs/Lib/ThreadItem.php:440
msgid "Add to Calendar"
msgstr "Добавить в календарь"
-#: ../../Zotlabs/Lib/ThreadItem.php:773
+#: ../../Zotlabs/Lib/ThreadItem.php:468 ../../include/conversation.php:483
+msgid "This is an unsaved preview"
+msgstr "Это несохранённый просмотр"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:501 ../../include/js_strings.php:7
+#, php-format
+msgid "%s show all"
+msgstr "%s показать всё"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:796 ../../addon/hsse/hsse.php:200
+#: ../../include/conversation.php:1406
+msgid "Bold"
+msgstr "Жирный"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:797 ../../addon/hsse/hsse.php:201
+#: ../../include/conversation.php:1407
+msgid "Italic"
+msgstr "Курсив"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:798 ../../addon/hsse/hsse.php:202
+#: ../../include/conversation.php:1408
+msgid "Underline"
+msgstr "Подчеркнутый"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:799 ../../addon/hsse/hsse.php:203
+#: ../../include/conversation.php:1409
+msgid "Quote"
+msgstr "Цитата"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:800 ../../addon/hsse/hsse.php:204
+#: ../../include/conversation.php:1410
+msgid "Code"
+msgstr "Код"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:801
msgid "Image"
msgstr "Изображение"
-#: ../../Zotlabs/Lib/ThreadItem.php:775
+#: ../../Zotlabs/Lib/ThreadItem.php:802 ../../addon/hsse/hsse.php:205
+#: ../../include/conversation.php:1411
+msgid "Attach/Upload file"
+msgstr "Прикрепить/загрузить файл"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:803
msgid "Insert Link"
msgstr "Вставить ссылку"
-#: ../../Zotlabs/Lib/ThreadItem.php:776
+#: ../../Zotlabs/Lib/ThreadItem.php:804
msgid "Video"
msgstr "Видео"
-#: ../../Zotlabs/Lib/ThreadItem.php:786
+#: ../../Zotlabs/Lib/ThreadItem.php:814
msgid "Your full name (required)"
msgstr "Ваше полное имя (требуется)"
-#: ../../Zotlabs/Lib/ThreadItem.php:787
+#: ../../Zotlabs/Lib/ThreadItem.php:815
msgid "Your email address (required)"
msgstr "Ваш адрес электронной почты (требуется)"
-#: ../../Zotlabs/Lib/ThreadItem.php:788
+#: ../../Zotlabs/Lib/ThreadItem.php:816
msgid "Your website URL (optional)"
msgstr "URL вашего вебсайта (необязательно)"
-#: ../../Zotlabs/Lib/Chatroom.php:23
-msgid "Missing room name"
-msgstr "Отсутствует название комнаты"
+#: ../../Zotlabs/Zot/Auth.php:152
+msgid ""
+"Remote authentication blocked. You are logged into this site locally. Please "
+"logout and retry."
+msgstr "Удалённая аутентификация заблокирована. Вы вошли на этот сайт локально. Пожалуйста, выйдите и попробуйте ещё раз."
-#: ../../Zotlabs/Lib/Chatroom.php:32
-msgid "Duplicate room name"
-msgstr "Название комнаты дублируется"
+#: ../../Zotlabs/Zot/Auth.php:264 ../../addon/openid/Mod_Openid.php:76
+#: ../../addon/openid/Mod_Openid.php:178
+#, php-format
+msgid "Welcome %s. Remote authentication successful."
+msgstr "Добро пожаловать %s. Удаленная аутентификация успешно завершена."
-#: ../../Zotlabs/Lib/Chatroom.php:82 ../../Zotlabs/Lib/Chatroom.php:90
-msgid "Invalid room specifier."
-msgstr "Неверный указатель комнаты."
+#: ../../Zotlabs/Storage/Browser.php:107 ../../Zotlabs/Storage/Browser.php:289
+msgid "parent"
+msgstr "источник"
-#: ../../Zotlabs/Lib/Chatroom.php:122
-msgid "Room not found."
-msgstr "Комната не найдена."
+#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2941
+msgid "Collection"
+msgstr "Коллекция"
-#: ../../Zotlabs/Lib/Chatroom.php:143
-msgid "Room is full"
-msgstr "Комната переполнена"
+#: ../../Zotlabs/Storage/Browser.php:134
+msgid "Principal"
+msgstr "Субъект"
-#: ../../Zotlabs/Lib/PermissionDescription.php:108
-msgid "Public"
-msgstr "Общедоступно"
+#: ../../Zotlabs/Storage/Browser.php:137
+msgid "Addressbook"
+msgstr "Адресная книга"
-#: ../../Zotlabs/Lib/PermissionDescription.php:109
-msgid "Anybody in the $Projectname network"
-msgstr "Любому в сети $Projectname"
+#: ../../Zotlabs/Storage/Browser.php:140 ../../include/nav.php:463
+#: ../../include/nav.php:466
+msgid "Calendar"
+msgstr "Календарь"
-#: ../../Zotlabs/Lib/PermissionDescription.php:110
+#: ../../Zotlabs/Storage/Browser.php:143
+msgid "Schedule Inbox"
+msgstr "План занятий входящий"
+
+#: ../../Zotlabs/Storage/Browser.php:146
+msgid "Schedule Outbox"
+msgstr "План занятий исходящий"
+
+#: ../../Zotlabs/Storage/Browser.php:273
+msgid "Total"
+msgstr "Всего"
+
+#: ../../Zotlabs/Storage/Browser.php:275
+msgid "Shared"
+msgstr "Общие"
+
+#: ../../Zotlabs/Storage/Browser.php:277
+msgid "Add Files"
+msgstr "Добавить файлы"
+
+#: ../../Zotlabs/Storage/Browser.php:361
#, php-format
-msgid "Any account on %s"
-msgstr "Любой аккаунт в %s"
+msgid "You are using %1$s of your available file storage."
+msgstr "Вы используете %1$s из доступного вам хранилища файлов."
-#: ../../Zotlabs/Lib/PermissionDescription.php:111
-msgid "Any of my connections"
-msgstr "Любой из моих контактов"
+#: ../../Zotlabs/Storage/Browser.php:366
+#, php-format
+msgid "You are using %1$s of %2$s available file storage. (%3$s&#37;)"
+msgstr "Вы используете %1$s из %2$s доступного хранилища файлов (%3$s&#37;)."
-#: ../../Zotlabs/Lib/PermissionDescription.php:112
-msgid "Only connections I specifically allow"
-msgstr "Только те контакты, кому я дам разрешение"
+#: ../../Zotlabs/Storage/Browser.php:377
+msgid "WARNING:"
+msgstr "Предупреждение:"
-#: ../../Zotlabs/Lib/PermissionDescription.php:113
-msgid "Anybody authenticated (could include visitors from other networks)"
-msgstr "Любой аутентифицированный (может включать посетителей их других сетей)"
+#: ../../Zotlabs/Storage/Browser.php:389
+msgid "Create new folder"
+msgstr "Создать новую папку"
-#: ../../Zotlabs/Lib/PermissionDescription.php:114
-msgid "Any connections including those who haven't yet been approved"
-msgstr "Любые контакты включая те, которые вы ещё не одобрили"
+#: ../../Zotlabs/Storage/Browser.php:391
+msgid "Upload file"
+msgstr "Загрузить файл"
-#: ../../Zotlabs/Lib/PermissionDescription.php:150
-msgid ""
-"This is your default setting for the audience of your normal stream, and "
-"posts."
-msgstr "Это настройка по умолчанию для аудитории ваших обычных потоков и публикаций"
+#: ../../Zotlabs/Storage/Browser.php:404
+msgid "Drop files here to immediately upload"
+msgstr "Поместите файлы сюда для немедленной загрузки"
-#: ../../Zotlabs/Lib/PermissionDescription.php:151
-msgid ""
-"This is your default setting for who can view your default channel profile"
-msgstr "Это настройка по умолчанию для тех, кто может просматривать профиль вашего основного канала"
+#: ../../Zotlabs/Widget/Forums.php:100
+#: ../../Zotlabs/Widget/Activity_filter.php:73
+#: ../../Zotlabs/Widget/Notifications.php:119
+#: ../../Zotlabs/Widget/Notifications.php:120
+msgid "Forums"
+msgstr "Форумы"
-#: ../../Zotlabs/Lib/PermissionDescription.php:152
-msgid "This is your default setting for who can view your connections"
-msgstr "Это настройка по умолчанию для тех, кто может просматривать ваши контакты"
+#: ../../Zotlabs/Widget/Cdav.php:37
+msgid "Select Channel"
+msgstr "Выбрать канал"
-#: ../../Zotlabs/Lib/PermissionDescription.php:153
-msgid ""
-"This is your default setting for who can view your file storage and photos"
-msgstr "Это настройка по умолчанию для тех, кто может просматривать ваше хранилище файлов и фотографий"
+#: ../../Zotlabs/Widget/Cdav.php:42
+msgid "Read-write"
+msgstr "Чтение-запись"
-#: ../../Zotlabs/Lib/PermissionDescription.php:154
-msgid "This is your default setting for the audience of your webpages"
-msgstr "Это настройка по умолчанию для аудитории ваших веб-страниц"
+#: ../../Zotlabs/Widget/Cdav.php:43
+msgid "Read-only"
+msgstr "Только чтение"
-#: ../../Zotlabs/Lib/Techlevels.php:10
-msgid "0. Beginner/Basic"
-msgstr "Начинающий / Базовый"
+#: ../../Zotlabs/Widget/Cdav.php:117
+msgid "My Calendars"
+msgstr "Мои календари"
-#: ../../Zotlabs/Lib/Techlevels.php:11
-msgid "1. Novice - not skilled but willing to learn"
-msgstr "1. Новичок - не опытный, но желающий учиться"
+#: ../../Zotlabs/Widget/Cdav.php:119
+msgid "Shared Calendars"
+msgstr "Общие календари"
-#: ../../Zotlabs/Lib/Techlevels.php:12
-msgid "2. Intermediate - somewhat comfortable"
-msgstr "2. Промежуточный - более удобный"
+#: ../../Zotlabs/Widget/Cdav.php:123
+msgid "Share this calendar"
+msgstr "Поделиться этим календарём"
-#: ../../Zotlabs/Lib/Techlevels.php:13
-msgid "3. Advanced - very comfortable"
-msgstr "3. Продвинутый - очень удобный"
+#: ../../Zotlabs/Widget/Cdav.php:125
+msgid "Calendar name and color"
+msgstr "Имя и цвет календаря"
-#: ../../Zotlabs/Lib/Techlevels.php:14
-msgid "4. Expert - I can write computer code"
-msgstr "4. Эксперт - я умею программировать"
+#: ../../Zotlabs/Widget/Cdav.php:127
+msgid "Create new calendar"
+msgstr "Создать новый календарь"
-#: ../../Zotlabs/Lib/Techlevels.php:15
-msgid "5. Wizard - I probably know more than you do"
-msgstr "5. Волшебник - возможно я знаю больше чем ты"
+#: ../../Zotlabs/Widget/Cdav.php:129
+msgid "Calendar Name"
+msgstr "Имя календаря"
-#: ../../Zotlabs/Lib/NativeWiki.php:152
-msgid "Wiki updated successfully"
-msgstr "Wiki успешно обновлена"
+#: ../../Zotlabs/Widget/Cdav.php:130
+msgid "Calendar Tools"
+msgstr "Инструменты календаря"
-#: ../../Zotlabs/Lib/NativeWiki.php:206
-msgid "Wiki files deleted successfully"
-msgstr "Wiki успешно удалена"
+#: ../../Zotlabs/Widget/Cdav.php:131
+msgid "Import calendar"
+msgstr "Импортировать календарь"
-#: ../../extend/addon/hzaddons/mdpost/mdpost.php:42
-msgid "Use markdown for editing posts"
-msgstr "Использовать язык разметки Markdown для редактирования публикаций"
+#: ../../Zotlabs/Widget/Cdav.php:132
+msgid "Select a calendar to import to"
+msgstr "Выбрать календарь для импорта в"
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:42
-msgid "Post to Dreamwidth"
-msgstr "Публиковать в Dreamwidth"
+#: ../../Zotlabs/Widget/Cdav.php:159
+msgid "Addressbooks"
+msgstr "Адресные книги"
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:73
-msgid "Enable Dreamwidth Post Plugin"
-msgstr "Включить плагин публикаций Dreamwidth"
+#: ../../Zotlabs/Widget/Cdav.php:161
+msgid "Addressbook name"
+msgstr "Имя адресной книги"
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:77
-msgid "Dreamwidth username"
-msgstr "Имя пользователя Dreamwidth"
+#: ../../Zotlabs/Widget/Cdav.php:163
+msgid "Create new addressbook"
+msgstr "Создать новую адресную книгу"
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:81
-msgid "Dreamwidth password"
-msgstr "Пароль Dreamwidth"
+#: ../../Zotlabs/Widget/Cdav.php:164
+msgid "Addressbook Name"
+msgstr "Имя адресной книги"
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:85
-msgid "Post to Dreamwidth by default"
-msgstr "Публиковать в Dreamwidth по умолчанию"
+#: ../../Zotlabs/Widget/Cdav.php:166
+msgid "Addressbook Tools"
+msgstr "Инструменты адресной книги"
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:89
-msgid "Dreamwidth Post Settings"
-msgstr "Настройки публикаций в Dreamwidth"
+#: ../../Zotlabs/Widget/Cdav.php:167
+msgid "Import addressbook"
+msgstr "Импортировать адресную книгу"
-#: ../../extend/addon/hzaddons/donate/donate.php:21
-msgid "Project Servers and Resources"
-msgstr "Серверы и ресурсы проекта"
+#: ../../Zotlabs/Widget/Cdav.php:168
+msgid "Select an addressbook to import to"
+msgstr "Выбрать адресную книгу для импорта в"
-#: ../../extend/addon/hzaddons/donate/donate.php:22
-msgid "Project Creator and Tech Lead"
-msgstr "Создатель проекта и технический руководитель"
+#: ../../Zotlabs/Widget/Appcategories.php:43
+#: ../../include/contact_widgets.php:96 ../../include/contact_widgets.php:139
+#: ../../include/contact_widgets.php:184 ../../include/taxonomy.php:409
+#: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511
+#: ../../include/taxonomy.php:532
+msgid "Categories"
+msgstr "Категории"
+
+#: ../../Zotlabs/Widget/Appcategories.php:46 ../../Zotlabs/Widget/Filer.php:31
+#: ../../widget/Netselect/Netselect.php:26 ../../include/contact_widgets.php:56
+#: ../../include/contact_widgets.php:99 ../../include/contact_widgets.php:142
+#: ../../include/contact_widgets.php:187
+msgid "Everything"
+msgstr "Всё"
+
+#: ../../Zotlabs/Widget/Eventstools.php:13
+msgid "Events Tools"
+msgstr "Инструменты для событий"
+
+#: ../../Zotlabs/Widget/Eventstools.php:14
+msgid "Export Calendar"
+msgstr "Экспортировать календарь"
+
+#: ../../Zotlabs/Widget/Eventstools.php:15
+msgid "Import Calendar"
+msgstr "Импортировать календарь"
+
+#: ../../Zotlabs/Widget/Suggestedchats.php:32
+msgid "Suggested Chatrooms"
+msgstr "Рекомендуемые чаты"
+
+#: ../../Zotlabs/Widget/Hq_controls.php:14
+msgid "HQ Control Panel"
+msgstr "Панель управления HQ"
+
+#: ../../Zotlabs/Widget/Hq_controls.php:17
+msgid "Create a new post"
+msgstr "Создать новую публикацию"
+
+#: ../../Zotlabs/Widget/Mailmenu.php:13
+msgid "Private Mail Menu"
+msgstr "Меню личной переписки"
+
+#: ../../Zotlabs/Widget/Mailmenu.php:15
+msgid "Combined View"
+msgstr "Комбинированный вид"
+
+#: ../../Zotlabs/Widget/Mailmenu.php:20
+msgid "Inbox"
+msgstr "Входящие"
+
+#: ../../Zotlabs/Widget/Mailmenu.php:25
+msgid "Outbox"
+msgstr "Исходящие"
+
+#: ../../Zotlabs/Widget/Mailmenu.php:30
+msgid "New Message"
+msgstr "Новое сообщение"
+
+#: ../../Zotlabs/Widget/Chatroom_list.php:20
+msgid "Overview"
+msgstr "Обзор"
+
+#: ../../Zotlabs/Widget/Rating.php:51
+msgid "Rating Tools"
+msgstr "Инструменты оценки"
+
+#: ../../Zotlabs/Widget/Rating.php:55 ../../Zotlabs/Widget/Rating.php:57
+msgid "Rate Me"
+msgstr "Оценить меня"
+
+#: ../../Zotlabs/Widget/Rating.php:60
+msgid "View Ratings"
+msgstr "Просмотр оценок"
+
+#: ../../Zotlabs/Widget/Activity.php:50
+msgctxt "widget"
+msgid "Activity"
+msgstr "Активность"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:36
+#, php-format
+msgid "Show posts related to the %s privacy group"
+msgstr "Показывать публикации относящиеся к группе безопасности %s"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:45
+msgid "Show my privacy groups"
+msgstr "Показывать мои группы безопасности"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:66
+msgid "Show posts to this forum"
+msgstr "Показывать публикации этого форума"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:77
+msgid "Show forums"
+msgstr "Показывать форумы"
+
+#: ../../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:137
+#: ../../Zotlabs/Widget/Filer.php:28 ../../include/contact_widgets.php:53
+#: ../../include/features.php:325
+msgid "Saved Folders"
+msgstr "Сохранённые каталоги"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:141
+msgid "Show filed post categories"
+msgstr "Показывать категории добавленных публикаций"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:155
+msgid "Panel search"
+msgstr "Панель поиска"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:165
+msgid "Filter by name"
+msgstr "Отфильтровать по имени"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:180
+msgid "Remove active filter"
+msgstr "Удалить активный фильтр"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:196
+msgid "Stream Filters"
+msgstr "Фильтры потока"
+
+#: ../../Zotlabs/Widget/Follow.php:22
+#, php-format
+msgid "You have %1$.0f of %2$.0f allowed connections."
+msgstr "У вас есть %1$.0f из %2$.0f разрешенных контактов."
+
+#: ../../Zotlabs/Widget/Follow.php:29
+msgid "Add New Connection"
+msgstr "Добавить новый контакт"
+
+#: ../../Zotlabs/Widget/Follow.php:30
+msgid "Enter channel address"
+msgstr "Введите адрес канала"
+
+#: ../../Zotlabs/Widget/Follow.php:31
+msgid "Examples: bob@example.com, https://example.com/barbara"
+msgstr "Пример: ivan@example.com, http://example.com/ivan"
+
+#: ../../Zotlabs/Widget/Archive.php:43
+msgid "Archives"
+msgstr "Архивы"
+
+#: ../../Zotlabs/Widget/Conversations.php:17
+msgid "Received Messages"
+msgstr "Полученные сообщения"
+
+#: ../../Zotlabs/Widget/Conversations.php:21
+msgid "Sent Messages"
+msgstr "Отправленные сообщения"
+
+#: ../../Zotlabs/Widget/Conversations.php:25
+msgid "Conversations"
+msgstr "Беседы"
+
+#: ../../Zotlabs/Widget/Conversations.php:37
+msgid "No messages."
+msgstr "Сообщений нет."
+
+#: ../../Zotlabs/Widget/Conversations.php:57
+msgid "Delete conversation"
+msgstr "Удалить беседу"
+
+#: ../../Zotlabs/Widget/Chatroom_members.php:11
+msgid "Chat Members"
+msgstr "Участники чата"
+
+#: ../../Zotlabs/Widget/Photo.php:48 ../../Zotlabs/Widget/Photo_rand.php:58
+msgid "photo/image"
+msgstr "фотография / изображение"
+
+#: ../../Zotlabs/Widget/Savedsearch.php:75
+msgid "Remove term"
+msgstr "Удалить термин"
+
+#: ../../Zotlabs/Widget/Savedsearch.php:83 ../../include/features.php:317
+msgid "Saved Searches"
+msgstr "Сохранённые поиски"
+
+#: ../../Zotlabs/Widget/Wiki_pages.php:34
+#: ../../Zotlabs/Widget/Wiki_pages.php:91
+msgid "Add new page"
+msgstr "Добавить новую страницу"
+
+#: ../../Zotlabs/Widget/Wiki_pages.php:85
+msgid "Wiki Pages"
+msgstr "Wiki страницы"
+
+#: ../../Zotlabs/Widget/Wiki_pages.php:96
+msgid "Page name"
+msgstr "Название страницы"
+
+#: ../../Zotlabs/Widget/Affinity.php:54
+msgid "Refresh"
+msgstr "Обновить"
+
+#: ../../Zotlabs/Widget/Tasklist.php:23
+msgid "Tasks"
+msgstr "Задачи"
+
+#: ../../Zotlabs/Widget/Suggestions.php:51
+msgid "Suggestions"
+msgstr "Рекомендации"
+
+#: ../../Zotlabs/Widget/Suggestions.php:52
+msgid "See more..."
+msgstr "Просмотреть больше..."
+
+#: ../../Zotlabs/Widget/Activity_order.php:90
+msgid "Commented Date"
+msgstr "По комментариям"
+
+#: ../../Zotlabs/Widget/Activity_order.php:94
+msgid "Order by last commented date"
+msgstr "Сортировка по дате последнего комментария"
+
+#: ../../Zotlabs/Widget/Activity_order.php:97
+msgid "Posted Date"
+msgstr "По публикациям"
+
+#: ../../Zotlabs/Widget/Activity_order.php:101
+msgid "Order by last posted date"
+msgstr "Сортировка по дате последней публикации"
+
+#: ../../Zotlabs/Widget/Activity_order.php:104
+msgid "Date Unthreaded"
+msgstr "По порядку"
+
+#: ../../Zotlabs/Widget/Activity_order.php:108
+msgid "Order unthreaded by date"
+msgstr "Сортировка в порядке поступления"
+
+#: ../../Zotlabs/Widget/Activity_order.php:123
+msgid "Stream Order"
+msgstr "Упорядочить поток"
+
+#: ../../Zotlabs/Widget/Cover_photo.php:65
+msgid "Click to show more"
+msgstr "Нажмите чтобы показать больше"
+
+#: ../../Zotlabs/Widget/Tagcloud.php:22 ../../include/taxonomy.php:320
+#: ../../include/taxonomy.php:449 ../../include/taxonomy.php:470
+msgid "Tags"
+msgstr "Теги"
+
+#: ../../Zotlabs/Widget/Appstore.php:11
+msgid "App Collections"
+msgstr "Коллекции приложений"
+
+#: ../../Zotlabs/Widget/Appstore.php:13
+msgid "Installed apps"
+msgstr "Установленные приложения"
+
+#: ../../Zotlabs/Widget/Newmember.php:31
+msgid "Profile Creation"
+msgstr "Создание профиля"
+
+#: ../../Zotlabs/Widget/Newmember.php:33
+msgid "Upload profile photo"
+msgstr "Загрузить фотографию профиля"
+
+#: ../../Zotlabs/Widget/Newmember.php:34
+msgid "Upload cover photo"
+msgstr "Загрузить фотографию обложки"
+
+#: ../../Zotlabs/Widget/Newmember.php:35 ../../include/nav.php:111
+msgid "Edit your profile"
+msgstr "Редактировать профиль"
+
+#: ../../Zotlabs/Widget/Newmember.php:38
+msgid "Find and Connect with others"
+msgstr "Найти и вступить в контакт"
+
+#: ../../Zotlabs/Widget/Newmember.php:40
+msgid "View the directory"
+msgstr "Просмотреть каталог"
+
+#: ../../Zotlabs/Widget/Newmember.php:42
+msgid "Manage your connections"
+msgstr "Управление вашими контактами"
+
+#: ../../Zotlabs/Widget/Newmember.php:45
+msgid "Communicate"
+msgstr "Связаться"
+
+#: ../../Zotlabs/Widget/Newmember.php:47
+msgid "View your channel homepage"
+msgstr "Домашняя страница канала"
+
+#: ../../Zotlabs/Widget/Newmember.php:48
+msgid "View your network stream"
+msgstr "Просмотреть ваш сетевой поток"
+
+#: ../../Zotlabs/Widget/Newmember.php:54
+msgid "Documentation"
+msgstr "Документация"
+
+#: ../../Zotlabs/Widget/Newmember.php:57
+msgid "Missing Features?"
+msgstr "Отсутствует функция?"
+
+#: ../../Zotlabs/Widget/Newmember.php:59
+msgid "Pin apps to navigation bar"
+msgstr "Прикрепить приложение к панели"
+
+#: ../../Zotlabs/Widget/Newmember.php:60
+msgid "Install more apps"
+msgstr "Установить больше приложений"
+
+#: ../../Zotlabs/Widget/Newmember.php:71
+msgid "View public stream"
+msgstr "Просмотреть публичный поток"
+
+#: ../../Zotlabs/Widget/Admin.php:23 ../../Zotlabs/Widget/Admin.php:60
+msgid "Member registrations waiting for confirmation"
+msgstr "Регистрации участников, ожидающие подверждения"
+
+#: ../../Zotlabs/Widget/Admin.php:29
+msgid "Inspect queue"
+msgstr "Просмотр очереди"
+
+#: ../../Zotlabs/Widget/Admin.php:31
+msgid "DB updates"
+msgstr "Обновление базы данных"
+
+#: ../../Zotlabs/Widget/Admin.php:55 ../../include/nav.php:189
+msgid "Admin"
+msgstr "Администрирование"
+
+#: ../../Zotlabs/Widget/Admin.php:56
+msgid "Addon Features"
+msgstr "Настройки расширений"
+
+#: ../../Zotlabs/Widget/Settings_menu.php:32
+msgid "Account settings"
+msgstr "Настройки аккаунта"
+
+#: ../../Zotlabs/Widget/Settings_menu.php:38
+msgid "Channel settings"
+msgstr "Настройки канала"
+
+#: ../../Zotlabs/Widget/Settings_menu.php:46
+msgid "Display settings"
+msgstr "Настройки отображения"
+
+#: ../../Zotlabs/Widget/Settings_menu.php:53
+msgid "Manage locations"
+msgstr "Управление местоположением"
+
+#: ../../Zotlabs/Widget/Bookmarkedchats.php:24
+msgid "Bookmarked Chatrooms"
+msgstr "Закладки чатов"
+
+#: ../../Zotlabs/Widget/Notifications.php:16
+msgid "New Network Activity"
+msgstr "Новая сетевая активность"
+
+#: ../../Zotlabs/Widget/Notifications.php:17
+msgid "New Network Activity Notifications"
+msgstr "Новые уведомления о сетевой активности"
+
+#: ../../Zotlabs/Widget/Notifications.php:20
+msgid "View your network activity"
+msgstr "Просмотреть вашу сетевую активность"
+
+#: ../../Zotlabs/Widget/Notifications.php:23
+msgid "Mark all notifications read"
+msgstr "Пометить уведомления как прочитанные"
+
+#: ../../Zotlabs/Widget/Notifications.php:26
+#: ../../Zotlabs/Widget/Notifications.php:45
+#: ../../Zotlabs/Widget/Notifications.php:152
+msgid "Show new posts only"
+msgstr "Показывать только новые публикации"
+
+#: ../../Zotlabs/Widget/Notifications.php:27
+#: ../../Zotlabs/Widget/Notifications.php:46
+#: ../../Zotlabs/Widget/Notifications.php:122
+#: ../../Zotlabs/Widget/Notifications.php:153
+msgid "Filter by name or address"
+msgstr "Фильтровать по имени или адресу"
+
+#: ../../Zotlabs/Widget/Notifications.php:35
+msgid "New Home Activity"
+msgstr "Новая локальная активность"
+
+#: ../../Zotlabs/Widget/Notifications.php:36
+msgid "New Home Activity Notifications"
+msgstr "Новые уведомления локальной активности"
+
+#: ../../Zotlabs/Widget/Notifications.php:39
+msgid "View your home activity"
+msgstr "Просмотреть локальную активность"
+
+#: ../../Zotlabs/Widget/Notifications.php:42
+#: ../../Zotlabs/Widget/Notifications.php:149
+msgid "Mark all notifications seen"
+msgstr "Пометить уведомления как просмотренные"
+
+#: ../../Zotlabs/Widget/Notifications.php:54
+msgid "New Mails"
+msgstr "Новая переписка"
+
+#: ../../Zotlabs/Widget/Notifications.php:55
+msgid "New Mails Notifications"
+msgstr "Уведомления о новой переписке"
+
+#: ../../Zotlabs/Widget/Notifications.php:58
+msgid "View your private mails"
+msgstr "Просмотреть вашу личную переписку"
+
+#: ../../Zotlabs/Widget/Notifications.php:61
+msgid "Mark all messages seen"
+msgstr "Пометить сообщения как просмотренные"
+
+#: ../../Zotlabs/Widget/Notifications.php:69
+msgid "New Events"
+msgstr "Новые события"
+
+#: ../../Zotlabs/Widget/Notifications.php:70
+msgid "New Events Notifications"
+msgstr "Уведомления о новых событиях"
+
+#: ../../Zotlabs/Widget/Notifications.php:73
+msgid "View events"
+msgstr "Просмотреть события"
+
+#: ../../Zotlabs/Widget/Notifications.php:76
+msgid "Mark all events seen"
+msgstr "Пометить все события как просмотренные"
+
+#: ../../Zotlabs/Widget/Notifications.php:85
+msgid "New Connections Notifications"
+msgstr "Уведомления о новых контактах"
+
+#: ../../Zotlabs/Widget/Notifications.php:88
+msgid "View all connections"
+msgstr "Просмотр всех контактов"
+
+#: ../../Zotlabs/Widget/Notifications.php:96
+msgid "New Files"
+msgstr "Новые файлы"
+
+#: ../../Zotlabs/Widget/Notifications.php:97
+msgid "New Files Notifications"
+msgstr "Уведомления о новых файлах"
+
+#: ../../Zotlabs/Widget/Notifications.php:104
+#: ../../Zotlabs/Widget/Notifications.php:105
+msgid "Notices"
+msgstr "Оповещения"
+
+#: ../../Zotlabs/Widget/Notifications.php:108
+msgid "View all notices"
+msgstr "Просмотреть все оповещения"
+
+#: ../../Zotlabs/Widget/Notifications.php:111
+msgid "Mark all notices seen"
+msgstr "Пометить все оповещения как просмотренные"
+
+#: ../../Zotlabs/Widget/Notifications.php:132
+msgid "New Registrations"
+msgstr "Новые регистрации"
+
+#: ../../Zotlabs/Widget/Notifications.php:133
+msgid "New Registrations Notifications"
+msgstr "Уведомления о новых регистрациях"
+
+#: ../../Zotlabs/Widget/Notifications.php:143
+msgid "Public Stream Notifications"
+msgstr "Уведомления публичного потока"
+
+#: ../../Zotlabs/Widget/Notifications.php:146
+msgid "View the public stream"
+msgstr "Просмотреть публичный поток"
+
+#: ../../Zotlabs/Widget/Notifications.php:161
+msgid "Sorry, you have got no notifications at the moment"
+msgstr "Извините, но сейчас у вас нет уведомлений"
+
+#: ../../util/nconfig.php:34
+msgid "Source channel not found."
+msgstr "Канал-источник не найден."
+
+#: ../../widget/Netselect/Netselect.php:24
+msgid "Network/Protocol"
+msgstr "Сеть / протокол"
+
+#: ../../widget/Netselect/Netselect.php:28 ../../include/network.php:1724
+msgid "Zot"
+msgstr ""
+
+#: ../../widget/Netselect/Netselect.php:31 ../../include/network.php:1722
+msgid "Diaspora"
+msgstr ""
+
+#: ../../widget/Netselect/Netselect.php:33 ../../include/network.php:1715
+#: ../../include/network.php:1716
+msgid "Friendica"
+msgstr ""
+
+#: ../../widget/Netselect/Netselect.php:38 ../../include/network.php:1717
+msgid "OStatus"
+msgstr ""
+
+#: ../../boot.php:1608
+msgid "Create an account to access services and applications"
+msgstr "Создайте аккаунт для доступа к службам и приложениям"
+
+#: ../../boot.php:1628 ../../include/nav.php:103 ../../include/nav.php:132
+#: ../../include/nav.php:151
+msgid "Logout"
+msgstr "Выход"
+
+#: ../../boot.php:1632
+msgid "Login/Email"
+msgstr "Пользователь / email"
+
+#: ../../boot.php:1633
+msgid "Password"
+msgstr "Пароль"
+
+#: ../../boot.php:1634
+msgid "Remember me"
+msgstr "Запомнить меня"
+
+#: ../../boot.php:1637
+msgid "Forgot your password?"
+msgstr "Забыли пароль или логин?"
+
+#: ../../boot.php:2433
+#, php-format
+msgid "[$Projectname] Website SSL error for %s"
+msgstr "[$Projectname] Ошибка SSL/TLS веб-сайта для %s"
-#: ../../extend/addon/hzaddons/donate/donate.php:23
-msgid "Admin, developer, directorymin, support bloke"
-msgstr "Администратор, разработчик, администратор каталога, поддержка"
+#: ../../boot.php:2438
+msgid "Website SSL certificate is not valid. Please correct."
+msgstr "SSL/TLS сертификат веб-сайт недействителен. Исправьте это."
+
+#: ../../boot.php:2554
+#, php-format
+msgid "[$Projectname] Cron tasks not running on %s"
+msgstr "[$Projectname] Задания Cron не запущены на %s"
+
+#: ../../boot.php:2559
+msgid "Cron/Scheduled tasks not running."
+msgstr "Задания Cron / планировщика не запущены."
+
+#: ../../boot.php:2560 ../../include/datetime.php:238
+msgid "never"
+msgstr "никогда"
+
+#: ../../view/theme/redbasic_c/php/config.php:16
+#: ../../view/theme/redbasic_c/php/config.php:19
+#: ../../view/theme/redbasic/php/config.php:16
+#: ../../view/theme/redbasic/php/config.php:19
+msgid "Focus (Hubzilla default)"
+msgstr "Фокус (по умолчанию Hubzilla)"
+
+#: ../../view/theme/redbasic_c/php/config.php:99
+#: ../../view/theme/redbasic/php/config.php:98
+msgid "Theme settings"
+msgstr "Настройки темы"
+
+#: ../../view/theme/redbasic_c/php/config.php:100
+#: ../../view/theme/redbasic/php/config.php:99
+msgid "Narrow navbar"
+msgstr "Узкая панель навигации"
+
+#: ../../view/theme/redbasic_c/php/config.php:101
+#: ../../view/theme/redbasic/php/config.php:100
+msgid "Navigation bar background color"
+msgstr "Панель навигации, цвет фона"
-#: ../../extend/addon/hzaddons/donate/donate.php:50
+#: ../../view/theme/redbasic_c/php/config.php:102
+#: ../../view/theme/redbasic/php/config.php:101
+msgid "Navigation bar icon color "
+msgstr "Панель навигации, цвет значков"
+
+#: ../../view/theme/redbasic_c/php/config.php:103
+#: ../../view/theme/redbasic/php/config.php:102
+msgid "Navigation bar active icon color "
+msgstr "Панель навигации, цвет активного значка"
+
+#: ../../view/theme/redbasic_c/php/config.php:104
+#: ../../view/theme/redbasic/php/config.php:103
+msgid "Link color"
+msgstr "Цвет ссылок"
+
+#: ../../view/theme/redbasic_c/php/config.php:105
+#: ../../view/theme/redbasic/php/config.php:104
+msgid "Set font-color for banner"
+msgstr "Цвет текста в шапке"
+
+#: ../../view/theme/redbasic_c/php/config.php:106
+#: ../../view/theme/redbasic/php/config.php:105
+msgid "Set the background color"
+msgstr "Цвет фона"
+
+#: ../../view/theme/redbasic_c/php/config.php:107
+#: ../../view/theme/redbasic/php/config.php:106
+msgid "Set the background image"
+msgstr "Фоновое изображение"
+
+#: ../../view/theme/redbasic_c/php/config.php:108
+#: ../../view/theme/redbasic/php/config.php:107
+msgid "Set the background color of items"
+msgstr "Цвет фона элементов"
+
+#: ../../view/theme/redbasic_c/php/config.php:109
+#: ../../view/theme/redbasic/php/config.php:108
+msgid "Set the background color of comments"
+msgstr "Цвет фона комментариев"
+
+#: ../../view/theme/redbasic_c/php/config.php:110
+#: ../../view/theme/redbasic/php/config.php:109
+msgid "Set font-size for the entire application"
+msgstr "Установить системный размер шрифта"
+
+#: ../../view/theme/redbasic_c/php/config.php:110
+#: ../../view/theme/redbasic/php/config.php:109
+msgid "Examples: 1rem, 100%, 16px"
+msgstr "Например: 1rem, 100%, 16px"
+
+#: ../../view/theme/redbasic_c/php/config.php:111
+#: ../../view/theme/redbasic/php/config.php:110
+msgid "Set font-color for posts and comments"
+msgstr "Цвет шрифта для публикаций и комментариев"
+
+#: ../../view/theme/redbasic_c/php/config.php:112
+#: ../../view/theme/redbasic/php/config.php:111
+msgid "Set radius of corners"
+msgstr "Радиус скруглений"
+
+#: ../../view/theme/redbasic_c/php/config.php:112
+#: ../../view/theme/redbasic/php/config.php:111
+msgid "Example: 4px"
+msgstr "Например: 4px"
+
+#: ../../view/theme/redbasic_c/php/config.php:113
+#: ../../view/theme/redbasic/php/config.php:112
+msgid "Set shadow depth of photos"
+msgstr "Глубина теней фотографий"
+
+#: ../../view/theme/redbasic_c/php/config.php:114
+#: ../../view/theme/redbasic/php/config.php:113
+msgid "Set maximum width of content region in pixel"
+msgstr "Максимальная ширина содержания региона (в пикселях)"
+
+#: ../../view/theme/redbasic_c/php/config.php:114
+#: ../../view/theme/redbasic/php/config.php:113
+msgid "Leave empty for default width"
+msgstr "Оставьте пустым для ширины по умолчанию"
+
+#: ../../view/theme/redbasic_c/php/config.php:115
+msgid "Left align page content"
+msgstr "Выровнять содержимое страницы по левому краю"
+
+#: ../../view/theme/redbasic_c/php/config.php:116
+#: ../../view/theme/redbasic/php/config.php:114
+msgid "Set size of conversation author photo"
+msgstr "Размер фотографии автора беседы"
+
+#: ../../view/theme/redbasic_c/php/config.php:117
+#: ../../view/theme/redbasic/php/config.php:115
+msgid "Set size of followup author photos"
+msgstr "Размер фотографий подписчиков"
+
+#: ../../view/theme/redbasic/php/config.php:116
+msgid "Show advanced settings"
+msgstr "Показать расширенные настройки"
+
+#: ../../addon/rendezvous/rendezvous.php:57
+msgid "Errors encountered deleting database table "
+msgstr "Возникшие при удалении таблицы базы данных ошибки"
+
+#: ../../addon/rendezvous/rendezvous.php:95 ../../addon/twitter/twitter.php:612
+msgid "Submit Settings"
+msgstr "Отправить настройки"
+
+#: ../../addon/rendezvous/rendezvous.php:96
+msgid "Drop tables when uninstalling?"
+msgstr "Удалить таблицы при деинсталляции?"
+
+#: ../../addon/rendezvous/rendezvous.php:96
msgid ""
-"And the hundreds of other people and organisations who helped make the "
-"Hubzilla possible."
-msgstr "И сотни других людей и организаций которые помогали в создании Hubzilla."
+"If checked, the Rendezvous database tables will be deleted when the plugin "
+"is uninstalled."
+msgstr "Если включено, то таблицы базы данных Rendezvous будут удалены при удалении плагина."
-#: ../../extend/addon/hzaddons/donate/donate.php:53
+#: ../../addon/rendezvous/rendezvous.php:97
+msgid "Mapbox Access Token"
+msgstr "Токен доступа к Mapbox"
+
+#: ../../addon/rendezvous/rendezvous.php:97
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 предоставляются, в основном, добровольцами, которые предоставляют свое время и опыт и, часто, оплачивают из своего кармана услуги, которыми они делятся с другими."
+"If you enter a Mapbox access token, it will be used to retrieve map tiles "
+"from Mapbox instead of the default OpenStreetMap tile server."
+msgstr "Если вы введете токен доступа к Mapbox, он будет использоваться для извлечения фрагментов карты из Mapbox вместо стандартного сервера OpenStreetMap."
+
+#: ../../addon/rendezvous/rendezvous.php:162
+msgid "Rendezvous"
+msgstr ""
-#: ../../extend/addon/hzaddons/donate/donate.php:54
+#: ../../addon/rendezvous/rendezvous.php:167
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>.)"
+"This identity has been deleted by another member due to inactivity. Please "
+"press the \"New identity\" button or refresh the page to register a new "
+"identity. You may use the same name."
+msgstr "Этот идентификатор был удалён другим участником из-за неактивности. Пожалуйста нажмите кнопку \"Новый идентификатор\" для обновления страницы и получения нового идентификатора. Вы можете использовать то же имя."
-#: ../../extend/addon/hzaddons/donate/donate.php:55
+#: ../../addon/rendezvous/rendezvous.php:168
+msgid "Welcome to Rendezvous!"
+msgstr "Добро пожаловать в Rendezvous!"
+
+#: ../../addon/rendezvous/rendezvous.php:169
msgid ""
-"Help support our ground-breaking work in decentralisation, web identity, and "
-"privacy."
-msgstr "Помогите поддержать нашу новаторскую работу в областях децентрализации, веб-идентификации и конфиденциальности."
+"Enter your name to join this rendezvous. To begin sharing your location with "
+"the other members, tap the GPS control. When your location is discovered, a "
+"red dot will appear and others will be able to see you on the map."
+msgstr "Введите ваше имя для вступления в это Rendezvous. Для того, чтобы делиться вашим положением с другими участниками, нажмите \"GPS control\". Когда ваше местоположение определно, красная точка появится и остальные смогут увидеть вас на карте."
-#: ../../extend/addon/hzaddons/donate/donate.php:57
+#: ../../addon/rendezvous/rendezvous.php:171
+msgid "Let's meet here"
+msgstr "Давайте встретимся здесь"
+
+#: ../../addon/rendezvous/rendezvous.php:174
+msgid "New marker"
+msgstr "Новый маркер"
+
+#: ../../addon/rendezvous/rendezvous.php:175
+msgid "Edit marker"
+msgstr "Редактировать маркер"
+
+#: ../../addon/rendezvous/rendezvous.php:176
+msgid "New identity"
+msgstr "Новый идентификатор"
+
+#: ../../addon/rendezvous/rendezvous.php:177
+msgid "Delete marker"
+msgstr "Удалить маркер"
+
+#: ../../addon/rendezvous/rendezvous.php:178
+msgid "Delete member"
+msgstr "Удалить участника"
+
+#: ../../addon/rendezvous/rendezvous.php:179
+msgid "Edit proximity alert"
+msgstr "Изменить оповещение о близости"
+
+#: ../../addon/rendezvous/rendezvous.php:180
msgid ""
-"Your donations keep servers and services running and also helps us to "
-"provide innovative new features and continued development."
-msgstr "В ваших пожертвованиях поддерживают серверы и службы, а также помогают нам предоставлять новые возможности и продолжать развитие."
+"A proximity alert will be issued when this member is within a certain radius "
+"of you.<br><br>Enter a radius in meters (0 to disable):"
+msgstr "Оповещение о близости будет произведено, если этот участник находится на определённом расстоянии от вас. <br><br>Введите радиус в метрах (0 для отключения):"
-#: ../../extend/addon/hzaddons/donate/donate.php:60
-msgid "Donate"
-msgstr "Пожертвовать"
+#: ../../addon/rendezvous/rendezvous.php:180
+#: ../../addon/rendezvous/rendezvous.php:185
+msgid "distance"
+msgstr "расстояние"
+
+#: ../../addon/rendezvous/rendezvous.php:181
+msgid "Proximity alert distance (meters)"
+msgstr "Расстояние для уведомления о близости (метров)"
-#: ../../extend/addon/hzaddons/donate/donate.php:62
+#: ../../addon/rendezvous/rendezvous.php:182
+#: ../../addon/rendezvous/rendezvous.php:184
msgid ""
-"Choose a project, developer, or public hub to support with a one-time "
-"donation"
-msgstr "Выберите проект, разработчика или общедоступный узел для поддержки в форме единоразового пожертвования"
+"A proximity alert will be issued when you are within a certain radius of the "
+"marker location.<br><br>Enter a radius in meters (0 to disable):"
+msgstr "Оповещение о близости будет произведено, если вы находитесь на определённом расстоянии местоположения маркера. <br><br>Введите радиус в метрах (0 для отключения):"
-#: ../../extend/addon/hzaddons/donate/donate.php:63
-msgid "Donate Now"
-msgstr "Пожертвовать сейчас"
+#: ../../addon/rendezvous/rendezvous.php:183
+msgid "Marker proximity alert"
+msgstr "Маркер уведомления о близости"
-#: ../../extend/addon/hzaddons/donate/donate.php:64
+#: ../../addon/rendezvous/rendezvous.php:186
+msgid "Reminder note"
+msgstr "Напоминание"
+
+#: ../../addon/rendezvous/rendezvous.php:187
msgid ""
-"<strong><em>Or</em></strong> become a project sponsor (Hubzilla Project only)"
-msgstr "<strong><em>или</em></strong> станьте спонсором проекта (только для Hubzilla)"
+"Enter a note to be displayed when you are within the specified proximity..."
+msgstr "Введите сообщение для отображения когда вы находитесь рядом"
-#: ../../extend/addon/hzaddons/donate/donate.php:65
+#: ../../addon/rendezvous/rendezvous.php:199
+msgid "Add new rendezvous"
+msgstr "Добавить новое Rendezvous."
+
+#: ../../addon/rendezvous/rendezvous.php:200
msgid ""
-"Please indicate if you would like your first name or full name (or nothing) "
-"to appear in our sponsor listing"
-msgstr "Пожалуйста, если желаете, укажите ваше имя для отображения в списке спонсоров."
+"Create a new rendezvous and share the access link with those you wish to "
+"invite to the group. Those who open the link become members of the "
+"rendezvous. They can view other member locations, add markers to the map, or "
+"share their own locations with the group."
+msgstr "Создайте новое Rendezvous и поделитесь ссылкой доступа с теми, кого вы хотите пригласить в группу. Тот, кто откроет эту ссылку, станет её участником. Участники могут видеть местоположение, добавлять маркеры на карту или делится своим собственным местоположением с группой."
-#: ../../extend/addon/hzaddons/donate/donate.php:66
-msgid "Sponsor"
-msgstr "Спонсор"
+#: ../../addon/rendezvous/rendezvous.php:232
+msgid "You have no rendezvous. Press the button above to create a rendezvous!"
+msgstr "У вас нет Rendezvous. Нажмите на кнопку ниже чтобы создать его!"
-#: ../../extend/addon/hzaddons/donate/donate.php:69
-msgid "Special thanks to: "
-msgstr "Особые благодарности:"
+#: ../../addon/skeleton/Mod_Skeleton.php:32
+msgid "Skeleton App"
+msgstr "Приложение \"Скелет\""
-#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:148
-msgid "Fuzzloc Settings updated."
-msgstr "Настройки Fuzzloc обновлены."
+#: ../../addon/skeleton/Mod_Skeleton.php:33
+msgid "A skeleton for addons, you can copy/paste"
+msgstr "Скелет для приложений. Вы можете использовать copy/paste"
+
+#: ../../addon/skeleton/Mod_Skeleton.php:40
+msgid "Some setting"
+msgstr "Некоторые настройки"
+
+#: ../../addon/skeleton/Mod_Skeleton.php:40
+msgid "A setting"
+msgstr "Настройка"
+
+#: ../../addon/skeleton/Mod_Skeleton.php:48
+msgid "Skeleton Settings"
+msgstr "Настройки скелета"
-#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:175
+#: ../../addon/gnusoc/Mod_Gnusoc.php:16
msgid ""
-"Fuzzloc allows you to blur your precise location if your channel uses "
-"browser location mapping."
-msgstr "Fuzzloc позволяет размыть ваше точное местоположение, если ваш канал использует сопоставление местоположений браузера."
+"The GNU-Social protocol does not support location independence. Connections "
+"you make within that network may be unreachable from alternate channel "
+"locations."
+msgstr "Протокол GNU-Social не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала."
-#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:178
-msgid "Enable Fuzzloc Plugin"
-msgstr "Включить плагин Fuzzloc"
+#: ../../addon/gnusoc/Mod_Gnusoc.php:22
+msgid "GNU-Social Protocol App"
+msgstr "Приложение \"Протокол GNU-Social\""
-#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:182
-msgid "Minimum offset in meters"
-msgstr "Минимальное смещение в метрах"
+#: ../../addon/gnusoc/Mod_Gnusoc.php:34
+msgid "GNU-Social Protocol"
+msgstr "Протокол GNU-Social"
-#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:186
-msgid "Maximum offset in meters"
-msgstr "Максимальное смещение в метрах"
+#: ../../addon/gnusoc/gnusoc.php:451
+msgid "Follow"
+msgstr "Отслеживать"
+
+#: ../../addon/gnusoc/gnusoc.php:454
+#, php-format
+msgid "%1$s is now following %2$s"
+msgstr "%1$s сейчас отслеживает %2$s"
+
+#: ../../addon/planets/Mod_Planets.php:20
+#: ../../addon/planets/Mod_Planets.php:23
+msgid "Random Planet App"
+msgstr "Приложение \"Случайная планета\""
-#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:191
-msgid "Fuzzloc Settings"
-msgstr "Настройки Fuzzloc"
+#: ../../addon/planets/Mod_Planets.php:23
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:26
+#: ../../addon/nsabait/Mod_Nsabait.php:24 ../../addon/hsse/Mod_Hsse.php:26
+#: ../../addon/authchoose/Mod_Authchoose.php:33
+msgid "Installed"
+msgstr "Установлено"
-#: ../../extend/addon/hzaddons/authchoose/Mod_Authchoose.php:22
+#: ../../addon/planets/Mod_Planets.php:25
msgid ""
-"Allow magic authentication only to websites of your immediate connections"
-msgstr "Разрешить волшебную аутентификацию только на сайтах ваших непосредственных соединений"
+"Set a random planet from the Star Wars Empire as your location when posting"
+msgstr "Установить случайную планету из Империи Звездных Войн в качестве вашего местоположения при публикации"
-#: ../../extend/addon/hzaddons/authchoose/Mod_Authchoose.php:39
-msgid "Authchoose"
-msgstr ""
+#: ../../addon/openclipatar/openclipatar.php:50
+#: ../../addon/openclipatar/openclipatar.php:128
+msgid "System defaults:"
+msgstr "Системные по умолчанию:"
-#: ../../extend/addon/hzaddons/redphotos/redphotos.php:106
-msgid "Photos imported"
-msgstr "Фотографии импортированы"
+#: ../../addon/openclipatar/openclipatar.php:54
+msgid "Preferred Clipart IDs"
+msgstr "Предпочитаемый Clipart ID"
-#: ../../extend/addon/hzaddons/redphotos/redphotos.php:129
-msgid "Redmatrix Photo Album Import"
-msgstr "Импортировать альбом фотографий Redmatrix"
+#: ../../addon/openclipatar/openclipatar.php:54
+msgid "List of preferred clipart ids. These will be shown first."
+msgstr "Список предпочитаемых Clipart ID. Эти будут показаны первыми."
-#: ../../extend/addon/hzaddons/redphotos/redphotos.php:130
-msgid "This will import all your Redmatrix photo albums to this channel."
-msgstr "Это позволит импортировать все ваши альбомы фотографий Redmatrix в этот канал."
+#: ../../addon/openclipatar/openclipatar.php:55
+msgid "Default Search Term"
+msgstr "Условие поиска по умолчанию"
-#: ../../extend/addon/hzaddons/redphotos/redphotos.php:131
-#: ../../extend/addon/hzaddons/redfiles/redfiles.php:121
-msgid "Redmatrix Server base URL"
-msgstr "Базовый URL сервера Redmatrix"
+#: ../../addon/openclipatar/openclipatar.php:55
+msgid "The default search term. These will be shown second."
+msgstr "Условие поиска по умолчанию. Показываются во вторую очередь."
-#: ../../extend/addon/hzaddons/redphotos/redphotos.php:132
-#: ../../extend/addon/hzaddons/redfiles/redfiles.php:122
-msgid "Redmatrix Login Username"
-msgstr "Имя пользователя Redmatrix"
+#: ../../addon/openclipatar/openclipatar.php:56
+msgid "Return After"
+msgstr "Вернуться после"
-#: ../../extend/addon/hzaddons/redphotos/redphotos.php:133
-#: ../../extend/addon/hzaddons/redfiles/redfiles.php:123
-msgid "Redmatrix Login Password"
-msgstr "Пароль Redmatrix"
+#: ../../addon/openclipatar/openclipatar.php:56
+msgid "Page to load after image selection."
+msgstr "Страница для загрузки после выбора изображения."
-#: ../../extend/addon/hzaddons/redphotos/redphotos.php:134
-msgid "Import just this album"
-msgstr "Импортировать только этот альбом"
+#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1356
+#: ../../include/nav.php:111
+msgid "Edit Profile"
+msgstr "Редактировать профиль"
-#: ../../extend/addon/hzaddons/redphotos/redphotos.php:134
-msgid "Leave blank to import all albums"
-msgstr "Оставьте пустым для импорта всех альбомов"
+#: ../../addon/openclipatar/openclipatar.php:59
+msgid "Profile List"
+msgstr "Список профилей"
-#: ../../extend/addon/hzaddons/redphotos/redphotos.php:135
-msgid "Maximum count to import"
-msgstr "Максимальное количество для импорта"
+#: ../../addon/openclipatar/openclipatar.php:61
+msgid "Order of Preferred"
+msgstr "Порядок предпочтения"
-#: ../../extend/addon/hzaddons/redphotos/redphotos.php:135
-msgid "0 or blank to import all available"
-msgstr "0 или пусто для импорта всех доступных"
+#: ../../addon/openclipatar/openclipatar.php:61
+msgid "Sort order of preferred clipart ids."
+msgstr "Порядок сортировки предпочитаемых Clipart ID. "
-#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:57
-msgid "A simple gallery for your photo albums"
-msgstr "Простая галлерея для ваших фотоальбомов"
+#: ../../addon/openclipatar/openclipatar.php:62
+#: ../../addon/openclipatar/openclipatar.php:68
+msgid "Newest first"
+msgstr "Новое первым"
-#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:115
-#: ../../extend/addon/hzaddons/gallery/gallery.php:47
-msgid "Gallery"
-msgstr "Галерея"
+#: ../../addon/openclipatar/openclipatar.php:65
+msgid "As entered"
+msgstr "По мере ввода"
-#: ../../extend/addon/hzaddons/gallery/gallery.php:50
-msgid "Photo Gallery"
-msgstr "Фотогалерея"
+#: ../../addon/openclipatar/openclipatar.php:67
+msgid "Order of other"
+msgstr "Порядок других"
-#: ../../extend/addon/hzaddons/rtof/rtof.php:45
-msgid "Post to Friendica"
-msgstr "Опубликовать в Friendica"
+#: ../../addon/openclipatar/openclipatar.php:67
+msgid "Sort order of other clipart ids."
+msgstr "Порядок сортировки остальных Clipart ID."
-#: ../../extend/addon/hzaddons/rtof/rtof.php:62
-msgid "rtof Settings saved."
-msgstr "Настройки rtof сохранены."
+#: ../../addon/openclipatar/openclipatar.php:69
+msgid "Most downloaded first"
+msgstr "Самое загружаемое первым"
-#: ../../extend/addon/hzaddons/rtof/rtof.php:81
-msgid "Allow posting to Friendica"
-msgstr "Разрешить публиковать в Friendica"
+#: ../../addon/openclipatar/openclipatar.php:70
+msgid "Most liked first"
+msgstr "Самое нравящееся первым"
-#: ../../extend/addon/hzaddons/rtof/rtof.php:85
-msgid "Send public postings to Friendica by default"
-msgstr "Отправлять общедоступные публикации во Friendica по умолчанию"
+#: ../../addon/openclipatar/openclipatar.php:72
+msgid "Preferred IDs Message"
+msgstr "Сообщение от предпочитаемых ID"
-#: ../../extend/addon/hzaddons/rtof/rtof.php:89
-msgid "Friendica API Path"
-msgstr "Путь к Friendica API"
+#: ../../addon/openclipatar/openclipatar.php:72
+msgid "Message to display above preferred results."
+msgstr "Отображаемое сообщение над предпочитаемыми результатами."
-#: ../../extend/addon/hzaddons/rtof/rtof.php:89
-#: ../../extend/addon/hzaddons/redred/redred.php:103
-msgid "https://{sitename}/api"
+#: ../../addon/openclipatar/openclipatar.php:78
+msgid "Uploaded by: "
+msgstr "Загружено:"
+
+#: ../../addon/openclipatar/openclipatar.php:78
+msgid "Drawn by: "
+msgstr "Нарисовано:"
+
+#: ../../addon/openclipatar/openclipatar.php:182
+#: ../../addon/openclipatar/openclipatar.php:194
+msgid "Use this image"
+msgstr "Использовать это изображение"
+
+#: ../../addon/openclipatar/openclipatar.php:192
+msgid "Or select from a free OpenClipart.org image:"
+msgstr "Или выберите из бесплатных изображений на OpenClipart.org"
+
+#: ../../addon/openclipatar/openclipatar.php:195
+msgid "Search Term"
+msgstr "Условие поиска"
+
+#: ../../addon/openclipatar/openclipatar.php:232
+msgid "Unknown error. Please try again later."
+msgstr "Неизвестная ошибка. Пожалуйста, повторите попытку позже."
+
+#: ../../addon/openclipatar/openclipatar.php:308
+msgid "Profile photo updated successfully."
+msgstr "Фотография профиля обновлена успешно."
+
+#: ../../addon/adultphotoflag/adultphotoflag.php:24
+msgid "Flag Adult Photos"
+msgstr "Пометка фотографий для взрослых"
+
+#: ../../addon/adultphotoflag/adultphotoflag.php:25
+msgid ""
+"Provide photo edit option to hide inappropriate photos from default album "
+"view"
+msgstr "Предоставьте возможность редактирования фотографий, чтобы скрыть неприемлемые фотографии из альбома по умолчанию"
+
+#: ../../addon/totp/Settings/Totp.php:90
+msgid ""
+"You haven't set a TOTP secret yet.\n"
+"Please click the button below to generate one and register this site\n"
+"with your preferred authenticator app."
+msgstr "Вы еще не установили секретный код TOTP. Пожалуйста, нажмите на кнопку ниже, чтобы сгенерировать его и зарегистрировать этот сайт в предпочитаемом вами приложении для аутентификации."
+
+#: ../../addon/totp/Settings/Totp.php:93
+msgid "Your TOTP secret is"
+msgstr "Ваш секретный код TOTP"
+
+#: ../../addon/totp/Settings/Totp.php:94
+msgid ""
+"Be sure to save it somewhere in case you lose or replace your mobile "
+"device.\n"
+"Use your mobile device to scan the QR code below to register this site\n"
+"with your preferred authenticator app."
+msgstr "Обязательно сохраните его где-нибудь на случай потери или замены мобильного устройства. С помощью мобильного устройства отсканируйте приведенный ниже QR-код, чтобы зарегистрировать этот сайт в предпочитаемом вами приложении для аутентификации."
+
+#: ../../addon/totp/Settings/Totp.php:99
+msgid "Test"
+msgstr "Тест"
+
+#: ../../addon/totp/Settings/Totp.php:100
+msgid "Generate New Secret"
+msgstr "Сгенерировать новый секретный код"
+
+#: ../../addon/totp/Settings/Totp.php:101
+msgid "Go"
+msgstr "Вперёд"
+
+#: ../../addon/totp/Settings/Totp.php:102
+msgid "Enter your password"
+msgstr "Введите ваш пароль"
+
+#: ../../addon/totp/Settings/Totp.php:103
+msgid "enter TOTP code from your device"
+msgstr "введите код TOTP из вашего устройства"
+
+#: ../../addon/totp/Settings/Totp.php:104
+msgid "Pass!"
+msgstr "Принято!"
+
+#: ../../addon/totp/Settings/Totp.php:105
+msgid "Fail"
+msgstr "Отказано"
+
+#: ../../addon/totp/Settings/Totp.php:106
+msgid "Incorrect password, try again."
+msgstr "Неверный пароль, попробуйте снова."
+
+#: ../../addon/totp/Settings/Totp.php:107
+msgid "Record your new TOTP secret and rescan the QR code above."
+msgstr "Запишите ваш секретный код TOTP и повторно отсканируйте приведенный ниже QR-код."
+
+#: ../../addon/totp/Settings/Totp.php:115
+msgid "TOTP Settings"
+msgstr "Настройки TOTP"
+
+#: ../../addon/totp/Mod_Totp.php:23
+msgid "TOTP Two-Step Verification"
+msgstr "Двухэтапная верификация TOTP"
+
+#: ../../addon/totp/Mod_Totp.php:24
+msgid "Enter the 2-step verification generated by your authenticator app:"
+msgstr "Введите код проверки, созданный вашим приложением для аутентификации"
+
+#: ../../addon/totp/Mod_Totp.php:25
+msgid "Success!"
+msgstr "Успех!"
+
+#: ../../addon/totp/Mod_Totp.php:26
+msgid "Invalid code, please try again."
+msgstr "Неверный код. Пожалуйста, попробуйте ещё раз."
+
+#: ../../addon/totp/Mod_Totp.php:27
+msgid "Too many invalid codes..."
+msgstr "Слишком много неверных кодов..."
+
+#: ../../addon/totp/Mod_Totp.php:28
+msgid "Verify"
+msgstr "Проверить"
+
+#: ../../addon/wppost/Mod_Wppost.php:28
+msgid "Wordpress Settings saved."
+msgstr "Настройки WordPress сохранены."
+
+#: ../../addon/wppost/Mod_Wppost.php:41
+msgid "Wordpress Post App"
+msgstr "Приложение \"Публикация в Wordpress\""
+
+#: ../../addon/wppost/Mod_Wppost.php:42
+msgid "Post to WordPress or anything else which uses the wordpress XMLRPC API"
+msgstr "Опубликовать в WordPress или в чём-то ещё, поддерживающем wordpress XMLRPC API"
+
+#: ../../addon/wppost/Mod_Wppost.php:65
+msgid "WordPress username"
+msgstr "Имя пользователя WordPress"
+
+#: ../../addon/wppost/Mod_Wppost.php:69
+msgid "WordPress password"
+msgstr "Пароль WordPress"
+
+#: ../../addon/wppost/Mod_Wppost.php:73
+msgid "WordPress API URL"
+msgstr "URL API WordPress"
+
+#: ../../addon/wppost/Mod_Wppost.php:74
+msgid "Typically https://your-blog.tld/xmlrpc.php"
+msgstr "Обычно https://your-blog.tld/xmlrpc.php"
+
+#: ../../addon/wppost/Mod_Wppost.php:77
+msgid "WordPress blogid"
msgstr ""
-#: ../../extend/addon/hzaddons/rtof/rtof.php:93
-msgid "Friendica login name"
-msgstr "Имя входа Friendica"
+#: ../../addon/wppost/Mod_Wppost.php:78
+msgid "For multi-user sites such as wordpress.com, otherwise leave blank"
+msgstr "Для многопользовательских сайтов, таких, как wordpress.com. В противном случае оставьте пустым"
-#: ../../extend/addon/hzaddons/rtof/rtof.php:97
-msgid "Friendica password"
-msgstr "Пароль Friendica"
+#: ../../addon/wppost/Mod_Wppost.php:82
+msgid "Post to WordPress by default"
+msgstr "Публиковать в WordPress по умолчанию"
-#: ../../extend/addon/hzaddons/rtof/rtof.php:101
-msgid "Hubzilla to Friendica Post Settings"
-msgstr "Настройки публикаций Hubzilla для Friendica"
+#: ../../addon/wppost/Mod_Wppost.php:86
+msgid "Forward comments (requires hubzilla_wp plugin)"
+msgstr "Пересылать комментарии (требуется плагин hubzilla_wp)"
-#: ../../extend/addon/hzaddons/ldapauth/ldapauth.php:70
-msgid "An account has been created for you."
-msgstr "Учётная запись, которая была для вас создана."
+#: ../../addon/wppost/Mod_Wppost.php:94
+msgid "Wordpress Post"
+msgstr "Публикация в WordPress"
-#: ../../extend/addon/hzaddons/ldapauth/ldapauth.php:77
-msgid "Authentication successful but rejected: account creation is disabled."
-msgstr "Аутентификация выполнена успешно, но отклонена: создание учетной записи отключено."
+#: ../../addon/wppost/wppost.php:46
+msgid "Post to WordPress"
+msgstr "Опубликовать в WordPress"
+
+#: ../../addon/nsfw/nsfw.php:152
+msgid "Possible adult content"
+msgstr "Возможно содержимое для взрослых"
+
+#: ../../addon/nsfw/nsfw.php:167
+#, php-format
+msgid "%s - view"
+msgstr "%s - просмотр"
+
+#: ../../addon/nsfw/Mod_Nsfw.php:22
+msgid "NSFW Settings saved."
+msgstr "Настройки NSFW сохранены."
+
+#: ../../addon/nsfw/Mod_Nsfw.php:33
+msgid "NSFW App"
+msgstr "Приложение NSFW"
-#: ../../extend/addon/hzaddons/ijpost/ijpost.php:42
-msgid "Post to Insanejournal"
-msgstr "Опубликовать в InsaneJournal"
+#: ../../addon/nsfw/Mod_Nsfw.php:34
+msgid "Collapse content that contains predefined words"
+msgstr "Свернуть содержимое, содержащее предопределенные слова"
+
+#: ../../addon/nsfw/Mod_Nsfw.php:44
+msgid ""
+"This app looks in posts for the words/text you specify below, and collapses "
+"any content containing those keywords so it is not displayed at "
+"inappropriate times, such as sexual innuendo that may be improper in a work "
+"setting. It is polite and recommended to tag any content containing nudity "
+"with #NSFW. This filter can also match any other word/text you specify, and "
+"can thereby be used as a general purpose content filter."
+msgstr "Это приложение просматривает публикации для слов / текста, которые вы указываете ниже, и сворачивает любой контент, содержащий эти ключевые слова, поэтому он не отображается в неподходящее время, например, сексуальные инсинуации, которые могут быть неправильными в настройке работы. Например, мы рекомендуем отмечать любой контент, содержащий наготу, тегом #NSFW. Этот фильтр также способен реагировать на любое другое указанное вами слово / текст и может использоваться в качестве фильтра содержимого общего назначения."
-#: ../../extend/addon/hzaddons/ijpost/ijpost.php:73
-msgid "Enable InsaneJournal Post Plugin"
-msgstr "Включить плагин публикаций InsaneJournal"
+#: ../../addon/nsfw/Mod_Nsfw.php:49
+msgid "Comma separated list of keywords to hide"
+msgstr "Список ключевых слов для скрытия, через запятую"
-#: ../../extend/addon/hzaddons/ijpost/ijpost.php:77
+#: ../../addon/nsfw/Mod_Nsfw.php:49
+msgid "Word, /regular-expression/, lang=xx, lang!=xx"
+msgstr "слово, /регулярное_выражение/, lang=xx, lang!=xx"
+
+#: ../../addon/nsfw/Mod_Nsfw.php:58
+msgid "NSFW"
+msgstr ""
+
+#: ../../addon/queueworker/Mod_Queueworker.php:73
+msgid "Max queueworker threads"
+msgstr "Макс. количество обработчиков очереди"
+
+#: ../../addon/queueworker/Mod_Queueworker.php:87
+msgid "Assume workers dead after ___ seconds"
+msgstr "Считать обработчики неактивными через секунд"
+
+#: ../../addon/queueworker/Mod_Queueworker.php:99
+msgid "Queueworker Settings"
+msgstr "Настройки обработчика очереди"
+
+#: ../../addon/ijpost/Mod_Ijpost.php:23
+msgid "Insane Journal Crosspost Connector Settings saved."
+msgstr "Настройки пересылки публикаций Insane Journal сохранены."
+
+#: ../../addon/ijpost/Mod_Ijpost.php:35
+msgid "Insane Journal Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Insane Journal\""
+
+#: ../../addon/ijpost/Mod_Ijpost.php:36
+msgid "Relay public postings to Insane Journal"
+msgstr "Пересылает общедоступные публикации в Insane Journal"
+
+#: ../../addon/ijpost/Mod_Ijpost.php:53
msgid "InsaneJournal username"
-msgstr "Имя пользователя InsaneJournal"
+msgstr "Имя пользователя Insane Journal"
-#: ../../extend/addon/hzaddons/ijpost/ijpost.php:81
+#: ../../addon/ijpost/Mod_Ijpost.php:57
msgid "InsaneJournal password"
-msgstr "Пароль InsaneJournal"
+msgstr "Пароль Insane Journal"
-#: ../../extend/addon/hzaddons/ijpost/ijpost.php:85
+#: ../../addon/ijpost/Mod_Ijpost.php:61
msgid "Post to InsaneJournal by default"
-msgstr "Публиковать в InsaneJournal по умолчанию"
+msgstr "Публиковать в Insane Journal по умолчанию"
+
+#: ../../addon/ijpost/Mod_Ijpost.php:69
+msgid "Insane Journal Crosspost Connector"
+msgstr "Пересылка публикаций Insane Journal"
+
+#: ../../addon/ijpost/ijpost.php:45
+msgid "Post to Insane Journal"
+msgstr "Опубликовать в Insane Journal"
+
+#: ../../addon/dwpost/dwpost.php:48
+msgid "Post to Dreamwidth"
+msgstr "Публиковать в Dreamwidth"
+
+#: ../../addon/dwpost/Mod_Dwpost.php:24
+msgid "Dreamwidth Crosspost Connector Settings saved."
+msgstr "Настройки пересылки публикаций Dreamwidth сохранены."
+
+#: ../../addon/dwpost/Mod_Dwpost.php:36
+msgid "Dreamwidth Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Dreamwidth\""
+
+#: ../../addon/dwpost/Mod_Dwpost.php:37
+msgid "Relay public postings to Dreamwidth"
+msgstr "Пересылает общедоступные публикации в Dreamwidth"
+
+#: ../../addon/dwpost/Mod_Dwpost.php:52
+msgid "Dreamwidth username"
+msgstr "Имя пользователя Dreamwidth"
-#: ../../extend/addon/hzaddons/ijpost/ijpost.php:89
-msgid "InsaneJournal Post Settings"
-msgstr "Настройки публикаций в InsaneJournal"
+#: ../../addon/dwpost/Mod_Dwpost.php:56
+msgid "Dreamwidth password"
+msgstr "Пароль Dreamwidth"
-#: ../../extend/addon/hzaddons/ijpost/ijpost.php:104
-msgid "Insane Journal Settings saved."
-msgstr "Настройки InsaneJournal сохранены."
+#: ../../addon/dwpost/Mod_Dwpost.php:60
+msgid "Post to Dreamwidth by default"
+msgstr "Публиковать в Dreamwidth по умолчанию"
+
+#: ../../addon/dwpost/Mod_Dwpost.php:68
+msgid "Dreamwidth Crosspost Connector"
+msgstr "Пересылка публикаций Dreamwidth"
+
+#: ../../addon/notifyadmin/notifyadmin.php:34
+msgid "New registration"
+msgstr "Новая регистрация"
-#: ../../extend/addon/hzaddons/testdrive/testdrive.php:104
+#: ../../addon/notifyadmin/notifyadmin.php:42
#, php-format
-msgid "Your account on %s will expire in a few days."
-msgstr "Ваш аккаунт на %s перестанет работать через несколько дней."
+msgid "Message sent to %s. New account registration: %s"
+msgstr "Сообщение отправлено в %s. Регистрация нового аккаунта: %s"
-#: ../../extend/addon/hzaddons/testdrive/testdrive.php:105
-msgid "Your $Productname test account is about to expire."
-msgstr "Ваш тестовый аккаунт в $Productname близок к окончанию срока действия."
+#: ../../addon/dirstats/dirstats.php:94
+msgid "Hubzilla Directory Stats"
+msgstr "Каталог статистики Hubzilla"
-#: ../../extend/addon/hzaddons/redfiles/redfiles.php:119
-msgid "Redmatrix File Storage Import"
-msgstr "Импорт файлового хранилища Redmatrix"
+#: ../../addon/dirstats/dirstats.php:95
+msgid "Total Hubs"
+msgstr "Всего хабов"
-#: ../../extend/addon/hzaddons/redfiles/redfiles.php:120
-msgid "This will import all your Redmatrix cloud files to this channel."
-msgstr "Это позволит импортировать все ваши файлы в Redmatrix в этот канал."
+#: ../../addon/dirstats/dirstats.php:97
+msgid "Hubzilla Hubs"
+msgstr "Хабы Hubzilla"
-#: ../../extend/addon/hzaddons/redfiles/redfilehelper.php:64
-msgid "file"
-msgstr "файл"
+#: ../../addon/dirstats/dirstats.php:99
+msgid "Friendica Hubs"
+msgstr "Хабы Friendica"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:102
-msgid "Post to Twitter"
-msgstr "Опубликовать в Twitter"
+#: ../../addon/dirstats/dirstats.php:101
+msgid "Diaspora Pods"
+msgstr "Стручки Diaspora"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:158
-msgid "Twitter settings updated."
-msgstr "Настройки Twitter обновлены"
+#: ../../addon/dirstats/dirstats.php:103
+msgid "Hubzilla Channels"
+msgstr "Каналы Hubzilla"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:187
-msgid ""
-"No consumer key pair for Twitter found. Please contact your site "
-"administrator."
-msgstr "Не найдено пары ключей для Twitter. Пожалуйста, свяжитесь с администратором сайта."
+#: ../../addon/dirstats/dirstats.php:105
+msgid "Friendica Channels"
+msgstr "Каналы Friendica"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:209
-msgid ""
-"At this Hubzilla instance the Twitter plugin was enabled but you have not "
-"yet connected your account to your Twitter account. To do so click the "
-"button below to get a PIN from Twitter which you have to copy into the input "
-"box below and submit the form. Only your <strong>public</strong> posts will "
-"be posted to Twitter."
-msgstr "В этой установке Hubzilla плагин Twitter был включён, однако пока он не подключён к вашему аккаунту в Twitter. Для этого нажмите на кнопку ниже для получения PIN-кода от Twitter который нужно скопировать в поле ввода и отправить форму. Только ваши <strong>общедоступные</strong> публикации будут опубликованы в Twitter."
+#: ../../addon/dirstats/dirstats.php:107
+msgid "Diaspora Channels"
+msgstr "Каналы Diaspora"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:211
-msgid "Log in with Twitter"
-msgstr "Войти в Twitter"
+#: ../../addon/dirstats/dirstats.php:109
+msgid "Aged 35 and above"
+msgstr "Возраст 35 и выше"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:214
-msgid "Copy the PIN from Twitter here"
-msgstr "Скопируйте PIN-код из Twitter здесь"
+#: ../../addon/dirstats/dirstats.php:111
+msgid "Aged 34 and under"
+msgstr "Возраст 34 и ниже"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:236
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:401
-msgid "Currently connected to: "
-msgstr "В настоящее время подключён к:"
+#: ../../addon/dirstats/dirstats.php:113
+msgid "Average Age"
+msgstr "Средний возраст"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:241
-msgid ""
-"<strong>Note:</strong> Due your privacy settings (<em>Hide your profile "
-"details from unknown viewers?</em>) the link potentially included in public "
-"postings relayed to Twitter will lead the visitor to a blank page informing "
-"the visitor that the access to your profile has been restricted."
-msgstr "<strong>Замечание</strong>: Из-за настроек конфиденциальности (<em>скрыть данные своего профиля от неизвестных зрителей?</em>) cсылка, потенциально включенная в общедоступные публикации, переданные в Twitter, приведет посетителя к пустой странице, информирующей его о том, что доступ к вашему профилю был ограничен."
+#: ../../addon/dirstats/dirstats.php:115
+msgid "Known Chatrooms"
+msgstr "Известные чаты"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:246
-msgid "Allow posting to Twitter"
-msgstr "Разрешить публиковать в Twitter"
+#: ../../addon/dirstats/dirstats.php:117
+msgid "Known Tags"
+msgstr "Известные теги"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:246
+#: ../../addon/dirstats/dirstats.php:119
msgid ""
-"If enabled your public postings can be posted to the associated Twitter "
-"account"
-msgstr "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи Twitter"
+"Please note Diaspora and Friendica statistics are merely those **this "
+"directory** is aware of, and not all those known in the network. This also "
+"applies to chatrooms,"
+msgstr "Обратите внимание, что статистика Diaspora и Friendica это только те, о которых ** этот каталог ** знает, а не все известные в сети. Это также относится и к чатам."
-#: ../../extend/addon/hzaddons/twitter/twitter.php:250
-msgid "Twitter post length"
-msgstr "Длина публикации Twitter"
+#: ../../addon/likebanner/likebanner.php:51
+msgid "Your Webbie:"
+msgstr "Ваш Webbie:"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:250
-msgid "Maximum tweet length"
-msgstr "Максимальная длина твита"
+#: ../../addon/likebanner/likebanner.php:54
+msgid "Fontsize (px):"
+msgstr "Размер шрифта (px):"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:255
-msgid "Send public postings to Twitter by default"
-msgstr "Отправлять общедоступные публикации в Twitter по умолчанию"
+#: ../../addon/likebanner/likebanner.php:68
+msgid "Link:"
+msgstr "Ссылка:"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:255
-msgid ""
-"If enabled your public postings will be posted to the associated Twitter "
-"account by default"
-msgstr "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи Twitter по умолчанию"
+#: ../../addon/likebanner/likebanner.php:70
+msgid "Like us on Hubzilla"
+msgstr "Нравится на Hubzilla"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:264
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:424
-msgid "Clear OAuth configuration"
-msgstr "Очистить конфигурацию OAuth"
+#: ../../addon/likebanner/likebanner.php:72
+msgid "Embed:"
+msgstr "Встроить:"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:273
-msgid "Twitter Post Settings"
-msgstr "Настройки публикаций в Twitter"
+#: ../../addon/redphotos/redphotos.php:106
+msgid "Photos imported"
+msgstr "Фотографии импортированы"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:782
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:95
-msgid "Submit Settings"
-msgstr "Отправить настройки"
+#: ../../addon/redphotos/redphotos.php:129
+msgid "Redmatrix Photo Album Import"
+msgstr "Импортировать альбом фотографий Redmatrix"
-#: ../../extend/addon/hzaddons/tour/tour.php:76
-msgid "Edit your profile and change settings."
-msgstr "Отредактировать ваш профиль и изменить настройки."
+#: ../../addon/redphotos/redphotos.php:130
+msgid "This will import all your Redmatrix photo albums to this channel."
+msgstr "Это позволит импортировать все ваши альбомы фотографий Redmatrix в этот канал."
-#: ../../extend/addon/hzaddons/tour/tour.php:77
-msgid "Click here to see activity from your connections."
-msgstr "Нажмите сюда для отображения активности ваши контактов."
+#: ../../addon/redphotos/redphotos.php:131
+#: ../../addon/redfiles/redfiles.php:121
+msgid "Redmatrix Server base URL"
+msgstr "Базовый URL сервера Redmatrix"
-#: ../../extend/addon/hzaddons/tour/tour.php:78
-msgid "Click here to see your channel home."
-msgstr "Нажмите сюда чтобы увидеть главную страницу вашего канала."
+#: ../../addon/redphotos/redphotos.php:132
+#: ../../addon/redfiles/redfiles.php:122
+msgid "Redmatrix Login Username"
+msgstr "Имя пользователя Redmatrix"
-#: ../../extend/addon/hzaddons/tour/tour.php:79
-msgid "You can access your private messages from here."
-msgstr "Вы можете получить доступ с личной переписке здесь."
+#: ../../addon/redphotos/redphotos.php:133
+#: ../../addon/redfiles/redfiles.php:123
+msgid "Redmatrix Login Password"
+msgstr "Пароль Redmatrix"
-#: ../../extend/addon/hzaddons/tour/tour.php:80
-msgid "Create new events here."
-msgstr "Создать новое событие здесь."
+#: ../../addon/redphotos/redphotos.php:134
+msgid "Import just this album"
+msgstr "Импортировать только этот альбом"
-#: ../../extend/addon/hzaddons/tour/tour.php:81
-msgid ""
-"You can accept new connections and change permissions for existing ones "
-"here. You can also e.g. create groups of contacts."
-msgstr "Вы можете подключать новые контакты и менять разрешения для существующих здесь. Также вы можете создавать их группы."
+#: ../../addon/redphotos/redphotos.php:134
+msgid "Leave blank to import all albums"
+msgstr "Оставьте пустым для импорта всех альбомов"
-#: ../../extend/addon/hzaddons/tour/tour.php:82
-msgid "System notifications will arrive here"
-msgstr "Системные оповещения будут показываться здесь"
+#: ../../addon/redphotos/redphotos.php:135
+msgid "Maximum count to import"
+msgstr "Максимальное количество для импорта"
-#: ../../extend/addon/hzaddons/tour/tour.php:83
-msgid "Search for content and users"
-msgstr "Поиск пользователей и содержимого"
+#: ../../addon/redphotos/redphotos.php:135
+msgid "0 or blank to import all available"
+msgstr "0 или пусто для импорта всех доступных"
-#: ../../extend/addon/hzaddons/tour/tour.php:84
-msgid "Browse for new contacts"
-msgstr "Поиск новых контактов"
+#: ../../addon/irc/Mod_Irc.php:23 ../../addon/irc/irc.php:41
+msgid "Popular Channels"
+msgstr "Популярные каналы"
-#: ../../extend/addon/hzaddons/tour/tour.php:85
-msgid "Launch installed apps"
-msgstr "Запустить установленные приложения"
+#: ../../addon/irc/irc.php:37
+msgid "Channels to auto connect"
+msgstr "Каналы для автоматического подключения"
-#: ../../extend/addon/hzaddons/tour/tour.php:86
-msgid "Looking for help? Click here."
-msgstr "Нужна помощь? Нажмите сюда."
+#: ../../addon/irc/irc.php:37 ../../addon/irc/irc.php:41
+msgid "Comma separated list"
+msgstr "Список, разделённый запятыми"
-#: ../../extend/addon/hzaddons/tour/tour.php:87
-msgid ""
-"New events have occurred in your network. Click here to see what has "
-"happened!"
-msgstr "Новые события произошли в вашей сети. Нажмите здесь для того, чтобы знать что случилось!"
+#: ../../addon/irc/irc.php:45
+msgid "IRC Settings"
+msgstr "Настройки IRC"
-#: ../../extend/addon/hzaddons/tour/tour.php:88
-msgid "You have received a new private message. Click here to see from who!"
-msgstr "Вы получили новое личное сообщение. Нажмите чтобы увидеть от кого!"
+#: ../../addon/irc/irc.php:54
+msgid "IRC settings saved."
+msgstr "Настройки IRC сохранены"
-#: ../../extend/addon/hzaddons/tour/tour.php:89
-msgid "There are events this week. Click here too see which!"
-msgstr "На этой неделе есть события. Нажмите здесь чтобы увидеть какие!"
+#: ../../addon/irc/irc.php:58
+msgid "IRC Chatroom"
+msgstr "Чат IRC"
-#: ../../extend/addon/hzaddons/tour/tour.php:90
-msgid "You have received a new introduction. Click here to see who!"
-msgstr "Вы были представлены. Нажмите чтобы увидеть кому!"
+#: ../../addon/gallery/gallery.php:38 ../../addon/gallery/Mod_Gallery.php:135
+msgid "Gallery"
+msgstr "Галерея"
-#: ../../extend/addon/hzaddons/tour/tour.php:91
-msgid ""
-"There is a new system notification. Click here to see what has happened!"
-msgstr "Это новое системное уведомление. Нажмите чтобы посмотреть что случилось!"
+#: ../../addon/gallery/gallery.php:41
+msgid "Photo Gallery"
+msgstr "Фотогалерея"
-#: ../../extend/addon/hzaddons/tour/tour.php:94
-msgid "Click here to share text, images, videos and sound."
-msgstr "Нажмите сюда чтобы поделиться текстом, изображениями, видео или треком."
+#: ../../addon/gallery/Mod_Gallery.php:58
+msgid "Gallery App"
+msgstr "Приложение \"Галерея\""
-#: ../../extend/addon/hzaddons/tour/tour.php:95
-msgid "You can write an optional title for your update (good for long posts)."
-msgstr "Вы можете написать необязательный заголовок для вашей публикации (желательно для больших постов)."
+#: ../../addon/gallery/Mod_Gallery.php:59
+msgid "A simple gallery for your photo albums"
+msgstr "Простая галлерея для ваших фотоальбомов"
-#: ../../extend/addon/hzaddons/tour/tour.php:96
-msgid "Entering some categories here makes it easier to find your post later."
-msgstr "Введите категории здесь чтобы было проще найти вашу публикацию позднее."
+#: ../../addon/ljpost/Mod_Ljpost.php:36
+msgid "Livejournal Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Livejournal\""
-#: ../../extend/addon/hzaddons/tour/tour.php:97
-msgid "Share photos, links, location, etc."
-msgstr "Поделиться фотографией, ссылками, местоположение и т.п."
+#: ../../addon/ljpost/Mod_Ljpost.php:37
+msgid "Relay public posts to Livejournal"
+msgstr "Пересылает общедоступные публикации в Livejournal"
-#: ../../extend/addon/hzaddons/tour/tour.php:98
+#: ../../addon/ljpost/Mod_Ljpost.php:54
+msgid "Livejournal username"
+msgstr "Имя пользователя Livejournal"
+
+#: ../../addon/ljpost/Mod_Ljpost.php:58
+msgid "Livejournal password"
+msgstr "Пароль Livejournal"
+
+#: ../../addon/ljpost/Mod_Ljpost.php:62
+msgid "Post to Livejournal by default"
+msgstr "Публиковать в Livejournal по умолчанию"
+
+#: ../../addon/ljpost/Mod_Ljpost.php:70
+msgid "Livejournal Crosspost Connector"
+msgstr "Пересылка публикаций Livejournal"
+
+#: ../../addon/ljpost/ljpost.php:45
+msgid "Post to Livejournal"
+msgstr "Опубликовать в Livejournal"
+
+#: ../../addon/openid/openid.php:49
msgid ""
-"Only want to share content for a while? Make it expire at a certain date."
-msgstr "Хотите только поделиться временным содержимым? Установите срок его действия."
+"We encountered a problem while logging in with the OpenID you provided. "
+"Please check the correct spelling of the ID."
+msgstr "Мы столкнулись с проблемой входа с предоставленным вами OpenID. Пожалуйста, проверьте корректность его написания."
-#: ../../extend/addon/hzaddons/tour/tour.php:99
-msgid "You can password protect content."
-msgstr "Вы можете защитить содержимое паролем."
+#: ../../addon/openid/openid.php:49
+msgid "The error message was:"
+msgstr "Сообщение об ошибке было:"
-#: ../../extend/addon/hzaddons/tour/tour.php:100
-msgid "Choose who you share with."
-msgstr "Выбрать с кем поделиться."
+#: ../../addon/openid/MysqlProvider.php:52
+msgid "First Name"
+msgstr "Имя"
-#: ../../extend/addon/hzaddons/tour/tour.php:102
-msgid "Click here when you are done."
-msgstr "Нажмите здесь когда закончите."
+#: ../../addon/openid/MysqlProvider.php:53
+msgid "Last Name"
+msgstr "Фамилия"
-#: ../../extend/addon/hzaddons/tour/tour.php:105
-msgid "Adjust from which channels posts should be displayed."
-msgstr "Настройте из каких каналов должны отображаться публикации."
+#: ../../addon/openid/MysqlProvider.php:54 ../../addon/redred/Mod_Redred.php:75
+msgid "Nickname"
+msgstr "Псевдоним"
-#: ../../extend/addon/hzaddons/tour/tour.php:106
-msgid "Only show posts from channels in the specified privacy group."
-msgstr "Показывать только публикации из определённой группы безопасности."
+#: ../../addon/openid/MysqlProvider.php:55
+msgid "Full Name"
+msgstr "Полное имя"
-#: ../../extend/addon/hzaddons/tour/tour.php:110
-msgid ""
-"Easily find posts containing tags (keywords preceded by the \"#\" symbol)."
-msgstr "Лёгкий поиск сообщения, содержащего теги (ключевые слова, которым предшествует символ #)."
+#: ../../addon/openid/MysqlProvider.php:61
+msgid "Profile Photo 16px"
+msgstr "Фотография профиля 16px"
-#: ../../extend/addon/hzaddons/tour/tour.php:111
-msgid "Easily find posts in given category."
-msgstr "Лёгкий поиск публикаций в данной категории."
+#: ../../addon/openid/MysqlProvider.php:62
+msgid "Profile Photo 32px"
+msgstr "Фотография профиля 32px"
-#: ../../extend/addon/hzaddons/tour/tour.php:112
-msgid "Easily find posts by date."
-msgstr "Лёгкий поиск публикаций по дате."
+#: ../../addon/openid/MysqlProvider.php:63
+msgid "Profile Photo 48px"
+msgstr "Фотография профиля 48px"
-#: ../../extend/addon/hzaddons/tour/tour.php:113
-msgid ""
-"Suggested users who have volounteered to be shown as suggestions, and who we "
-"think you might find interesting."
-msgstr "Рекомендуемые пользователи, которые были представлены в качестве предложений, и которые, по нашему мнению, могут оказаться интересными."
+#: ../../addon/openid/MysqlProvider.php:64
+msgid "Profile Photo 64px"
+msgstr "Фотография профиля 64px"
-#: ../../extend/addon/hzaddons/tour/tour.php:114
-msgid "Here you see channels you have connected to."
-msgstr "Здесь вы видите каналы, к которым вы подключились."
+#: ../../addon/openid/MysqlProvider.php:65
+msgid "Profile Photo 80px"
+msgstr "Фотография профиля 80px"
-#: ../../extend/addon/hzaddons/tour/tour.php:115
-msgid "Save your search so you can repeat it at a later date."
-msgstr "Сохраните ваш поиск с тем, чтобы повторить его позже."
+#: ../../addon/openid/MysqlProvider.php:66
+msgid "Profile Photo 128px"
+msgstr "Фотография профиля 128px"
-#: ../../extend/addon/hzaddons/tour/tour.php:118
-msgid ""
-"If you see this icon you can be sure that the sender is who it say it is. It "
-"is normal that it is not always possible to verify the sender, so the icon "
-"will be missing sometimes. There is usually no need to worry about that."
-msgstr "Если вы видите этот значок, вы можете быть уверены, что отправитель - это тот, кто это говорит. Это нормально, что не всегда можно проверить отправителя, поэтому значок иногда будет отсутствовать. Обычно об этом не нужно беспокоиться."
+#: ../../addon/openid/MysqlProvider.php:67
+msgid "Timezone"
+msgstr "Часовой пояс"
-#: ../../extend/addon/hzaddons/tour/tour.php:119
-msgid ""
-"Danger! It seems someone tried to forge a message! This message is not "
-"necessarily from who it says it is from!"
-msgstr "Опасность! Кажется, кто-то пытался подделать сообщение! Это сообщение не обязательно от того, от кого оно значится!"
+#: ../../addon/openid/MysqlProvider.php:70
+msgid "Birth Year"
+msgstr "Год рождения"
-#: ../../extend/addon/hzaddons/tour/tour.php:126
-msgid ""
-"Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can "
-"pause it at any time and continue where you left off by reloading the page, "
-"or navigting to another page.</p><p>You can also advance by pressing the "
-"return key"
-msgstr "Добро пожаловать в Hubzilla! Желаете получить обзор пользовательского интерфейса?</p> <p>Вы можете его приостановаить и в любое время перезагрузив страницу или перейдя на другую.</p><p>Также вы можете нажать клавишу \"Назад\""
+#: ../../addon/openid/MysqlProvider.php:71
+msgid "Birth Month"
+msgstr "Месяц рождения"
-#: ../../extend/addon/hzaddons/superblock/superblock.php:318
-msgid "Block Completely"
-msgstr "Заблокировать полностью"
+#: ../../addon/openid/MysqlProvider.php:72
+msgid "Birth Day"
+msgstr "День рождения"
-#: ../../extend/addon/hzaddons/superblock/Mod_Superblock.php:21
-msgid "Block channels"
-msgstr "Заблокировать каналы"
+#: ../../addon/openid/MysqlProvider.php:73
+msgid "Birthdate"
+msgstr "Дата рождения"
-#: ../../extend/addon/hzaddons/superblock/Mod_Superblock.php:63
-msgid "superblock settings updated"
-msgstr "Настройки Superblock обновлены."
+#: ../../addon/openid/Mod_Openid.php:30
+msgid "OpenID protocol error. No ID returned."
+msgstr "Ошибка протокола OpenID. Идентификатор не возвращён."
-#: ../../extend/addon/hzaddons/superblock/Mod_Superblock.php:87
-msgid "Currently blocked"
-msgstr "В настоящее время заблокирован"
+#: ../../addon/openid/Mod_Openid.php:188 ../../include/auth.php:317
+msgid "Login failed."
+msgstr "Не удалось войти."
-#: ../../extend/addon/hzaddons/superblock/Mod_Superblock.php:89
-msgid "No channels currently blocked"
-msgstr "В настоящее время никакие каналы не блокируются"
+#: ../../addon/openid/Mod_Id.php:85 ../../include/selectors.php:60
+#: ../../include/selectors.php:77 ../../include/channel.php:1536
+msgid "Male"
+msgstr "Мужчина"
+
+#: ../../addon/openid/Mod_Id.php:87 ../../include/selectors.php:60
+#: ../../include/selectors.php:77 ../../include/channel.php:1534
+msgid "Female"
+msgstr "Женщина"
+
+#: ../../addon/randpost/randpost.php:97
+msgid "You're welcome."
+msgstr "Пожалуйста."
+
+#: ../../addon/randpost/randpost.php:98
+msgid "Ah shucks..."
+msgstr "О, чёрт..."
+
+#: ../../addon/randpost/randpost.php:99
+msgid "Don't mention it."
+msgstr "Не стоит благодарности."
+
+#: ../../addon/randpost/randpost.php:100
+msgid "&lt;blush&gt;"
+msgstr "&lt;краснею&gt;"
+
+#: ../../addon/startpage/Mod_Startpage.php:50
+msgid "Startpage App"
+msgstr "Приложение \"Стартовая страница\""
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:19
+#: ../../addon/startpage/Mod_Startpage.php:51
+msgid "Set a preferred page to load on login from home page"
+msgstr "Устанавливает предпочтительную страницу для загрузки при входе с домашней страницы"
+
+#: ../../addon/startpage/Mod_Startpage.php:62
+msgid "Page to load after login"
+msgstr "Страница для загрузки после входа"
+
+#: ../../addon/startpage/Mod_Startpage.php:62
+msgid ""
+"Examples: &quot;apps&quot;, &quot;network?f=&gid=37&quot; (privacy "
+"collection), &quot;channel&quot; or &quot;notifications/system&quot; (leave "
+"blank for default network page (grid)."
+msgstr "Примеры: &quot;apps&quot;, &quot;network?f=&gid=37&quot; (privacy collection), &quot;channel&quot; or &quot;notifications/system&quot; (оставьте пустым для для страницы сети по умолчанию)."
+
+#: ../../addon/startpage/Mod_Startpage.php:70
+msgid "Startpage"
+msgstr "Стартовая страница"
+
+#: ../../addon/morepokes/morepokes.php:19
msgid "bitchslap"
msgstr "дать леща"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:19
+#: ../../addon/morepokes/morepokes.php:19
msgid "bitchslapped"
msgstr "получил леща"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:20
+#: ../../addon/morepokes/morepokes.php:20
msgid "shag"
msgstr "вздрючить"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:20
+#: ../../addon/morepokes/morepokes.php:20
msgid "shagged"
msgstr "вздрюченный"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:21
+#: ../../addon/morepokes/morepokes.php:21
msgid "patent"
msgstr ""
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:21
+#: ../../addon/morepokes/morepokes.php:21
msgid "patented"
msgstr ""
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:22
+#: ../../addon/morepokes/morepokes.php:22
msgid "hug"
msgstr "обнять"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:22
+#: ../../addon/morepokes/morepokes.php:22
msgid "hugged"
msgstr "обнятый"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:23
+#: ../../addon/morepokes/morepokes.php:23
msgid "murder"
msgstr "убить"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:23
+#: ../../addon/morepokes/morepokes.php:23
msgid "murdered"
msgstr "убитый"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:24
+#: ../../addon/morepokes/morepokes.php:24
msgid "worship"
msgstr "почитать"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:24
+#: ../../addon/morepokes/morepokes.php:24
msgid "worshipped"
msgstr "почитаемый"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:25
+#: ../../addon/morepokes/morepokes.php:25
msgid "kiss"
msgstr "целовать"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:25
+#: ../../addon/morepokes/morepokes.php:25
msgid "kissed"
msgstr "поцелованный"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:26
+#: ../../addon/morepokes/morepokes.php:26
msgid "tempt"
msgstr "искушать"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:26
+#: ../../addon/morepokes/morepokes.php:26
msgid "tempted"
msgstr "искушённый"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:27
+#: ../../addon/morepokes/morepokes.php:27
msgid "raise eyebrows at"
msgstr "поднять брови"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:27
+#: ../../addon/morepokes/morepokes.php:27
msgid "raised their eyebrows at"
msgstr "поднял брови"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:28
+#: ../../addon/morepokes/morepokes.php:28
msgid "insult"
msgstr "оскорбить"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:28
+#: ../../addon/morepokes/morepokes.php:28
msgid "insulted"
msgstr "оскорблённый"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:29
+#: ../../addon/morepokes/morepokes.php:29
msgid "praise"
msgstr "хвалить"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:29
+#: ../../addon/morepokes/morepokes.php:29
msgid "praised"
msgstr "похваленный"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:30
+#: ../../addon/morepokes/morepokes.php:30
msgid "be dubious of"
msgstr "усомниться"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:30
+#: ../../addon/morepokes/morepokes.php:30
msgid "was dubious of"
msgstr "усомнился"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:31
+#: ../../addon/morepokes/morepokes.php:31
msgid "eat"
msgstr "есть"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:31
+#: ../../addon/morepokes/morepokes.php:31
msgid "ate"
msgstr "съел"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:32
+#: ../../addon/morepokes/morepokes.php:32
msgid "giggle and fawn at"
msgstr ""
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:32
+#: ../../addon/morepokes/morepokes.php:32
msgid "giggled and fawned at"
msgstr ""
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:33
+#: ../../addon/morepokes/morepokes.php:33
msgid "doubt"
msgstr "сомневаться"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:33
+#: ../../addon/morepokes/morepokes.php:33
msgid "doubted"
msgstr "сомневался"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:34
+#: ../../addon/morepokes/morepokes.php:34
msgid "glare"
msgstr ""
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:34
+#: ../../addon/morepokes/morepokes.php:34
msgid "glared at"
msgstr ""
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:35
+#: ../../addon/morepokes/morepokes.php:35
msgid "fuck"
msgstr "трахнуть"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:35
+#: ../../addon/morepokes/morepokes.php:35
msgid "fucked"
msgstr "трахнул"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:36
+#: ../../addon/morepokes/morepokes.php:36
msgid "bonk"
msgstr ""
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:36
+#: ../../addon/morepokes/morepokes.php:36
msgid "bonked"
msgstr ""
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:37
+#: ../../addon/morepokes/morepokes.php:37
msgid "declare undying love for"
msgstr "признаться в любви к"
-#: ../../extend/addon/hzaddons/morepokes/morepokes.php:37
+#: ../../addon/morepokes/morepokes.php:37
msgid "declared undying love for"
msgstr "признался в любви к"
-#: ../../extend/addon/hzaddons/logrot/logrot.php:36
-msgid "Logfile archive directory"
-msgstr "Каталог архивирования журнала"
+#: ../../addon/diaspora/Receiver.php:1495
+#, php-format
+msgid "%1$s dislikes %2$s's %3$s"
+msgstr "%1$s не нравится %2$s's %3$s"
-#: ../../extend/addon/hzaddons/logrot/logrot.php:36
-msgid "Directory to store rotated logs"
-msgstr "Каталог для хранения заархивированных журналов"
+#: ../../addon/diaspora/Mod_Diaspora.php:40
+msgid "Diaspora Protocol Settings updated."
+msgstr "Настройки протокола Diaspora обновлены."
-#: ../../extend/addon/hzaddons/logrot/logrot.php:37
-msgid "Logfile size in bytes before rotating"
-msgstr "Размер файла журнала в байтах для архивирования"
+#: ../../addon/diaspora/Mod_Diaspora.php:49
+msgid ""
+"The diaspora protocol does not support location independence. Connections "
+"you make within that network may be unreachable from alternate channel "
+"locations."
+msgstr "Протокол Diaspora не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала."
-#: ../../extend/addon/hzaddons/logrot/logrot.php:38
-msgid "Number of logfiles to retain"
-msgstr "Количество сохраняемых файлов журналов"
+#: ../../addon/diaspora/Mod_Diaspora.php:55
+msgid "Diaspora Protocol App"
+msgstr "Приложение \"Протокол Diaspora\""
-#: ../../extend/addon/hzaddons/likebanner/likebanner.php:51
-msgid "Your Webbie:"
-msgstr "Ваш Webbie:"
+#: ../../addon/diaspora/Mod_Diaspora.php:74
+msgid "Allow any Diaspora member to comment on your public posts"
+msgstr "Разрешить любому участнику Diaspora комментировать ваши общедоступные публикации"
-#: ../../extend/addon/hzaddons/likebanner/likebanner.php:54
-msgid "Fontsize (px):"
-msgstr "Размер шрифта (px):"
+#: ../../addon/diaspora/Mod_Diaspora.php:78
+msgid "Prevent your hashtags from being redirected to other sites"
+msgstr "Предотвратить перенаправление тегов на другие сайты"
-#: ../../extend/addon/hzaddons/likebanner/likebanner.php:68
-msgid "Link:"
-msgstr "Ссылка:"
+#: ../../addon/diaspora/Mod_Diaspora.php:82
+msgid "Sign and forward posts and comments with no existing Diaspora signature"
+msgstr "Подписывать и отправлять публикации и комментарии с несуществующей подписью Diaspora"
-#: ../../extend/addon/hzaddons/likebanner/likebanner.php:70
-msgid "Like us on Hubzilla"
-msgstr "Нравится на Hubzilla"
+#: ../../addon/diaspora/Mod_Diaspora.php:87
+msgid "Followed hashtags (comma separated, do not include the #)"
+msgstr "Отслеживаемые теги (через запятую, исключая #)"
-#: ../../extend/addon/hzaddons/likebanner/likebanner.php:72
-msgid "Embed:"
-msgstr "Встроить:"
+#: ../../addon/diaspora/Mod_Diaspora.php:96
+msgid "Diaspora Protocol"
+msgstr "Протокол Diaspora"
-#: ../../extend/addon/hzaddons/qrator/qrator.php:48
-msgid "QR code"
-msgstr "QR-код"
+#: ../../addon/diaspora/import_diaspora.php:18
+msgid "No username found in import file."
+msgstr "Имя пользователя не найдено в файле для импорта."
-#: ../../extend/addon/hzaddons/qrator/qrator.php:63
-msgid "QR Generator"
-msgstr "Генератор QR-кодов"
+#: ../../addon/diaspora/import_diaspora.php:43 ../../include/import.php:73
+msgid "Unable to create a unique channel address. Import failed."
+msgstr "Не удалось создать уникальный адрес канала. Импорт не завершен."
-#: ../../extend/addon/hzaddons/qrator/qrator.php:64
-msgid "Enter some text"
-msgstr "Введите любой текст"
+#: ../../addon/photocache/Mod_Photocache.php:27
+msgid "Photo Cache settings saved."
+msgstr "Настройки кэширования изображений сохранены."
+
+#: ../../addon/photocache/Mod_Photocache.php:36
+msgid ""
+"Photo Cache addon saves a copy of images from external sites locally to "
+"increase your anonymity in the web."
+msgstr "Приложение \"Кэшировние изображений\" сохраняет копию изображений с внешних сайтов локально для повышения вашей анонимности в Интернет."
+
+#: ../../addon/photocache/Mod_Photocache.php:42
+msgid "Photo Cache App"
+msgstr "Приложение \"Кэширование изображений\""
+
+#: ../../addon/photocache/Mod_Photocache.php:53
+msgid "Minimal photo size for caching"
+msgstr "Минимальный размер изображений для кэширования"
+
+#: ../../addon/photocache/Mod_Photocache.php:55
+msgid "In pixels. From 1 up to 1024, 0 will be replaced with system default."
+msgstr "В пикселях. От 1 до 1024, 0 будет заменён значением по умолчанию."
+
+#: ../../addon/photocache/Mod_Photocache.php:64
+msgid "Photo Cache"
+msgstr "Кэширование изображений"
+
+#: ../../addon/testdrive/testdrive.php:104
+#, php-format
+msgid "Your account on %s will expire in a few days."
+msgstr "Ваш аккаунт на %s перестанет работать через несколько дней."
+
+#: ../../addon/testdrive/testdrive.php:105
+msgid "Your $Productname test account is about to expire."
+msgstr "Ваш тестовый аккаунт в $Productname близок к окончанию срока действия."
+
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:15
+msgid "Add some colour to tag clouds"
+msgstr "Добавить немного цвета для облака тегов"
+
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:21
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:26
+msgid "Rainbow Tag App"
+msgstr "Приложение \"Радуга тегов\""
+
+#: ../../addon/rainbowtag/Mod_Rainbowtag.php:34
+msgid "Rainbow Tag"
+msgstr "Радуга тегов"
+
+#: ../../addon/upload_limits/upload_limits.php:25
+msgid "Show Upload Limits"
+msgstr "Показать ограничения на загрузку"
+
+#: ../../addon/upload_limits/upload_limits.php:27
+msgid "Hubzilla configured maximum size: "
+msgstr "Максимальный размер настроенный в Hubzilla:"
+
+#: ../../addon/upload_limits/upload_limits.php:28
+msgid "PHP upload_max_filesize: "
+msgstr ""
+
+#: ../../addon/upload_limits/upload_limits.php:29
+msgid "PHP post_max_size (must be larger than upload_max_filesize): "
+msgstr "PHP post_max_size (должен быть больше чем upload_max_filesize): "
+
+#: ../../addon/gravatar/gravatar.php:123
+msgid "generic profile image"
+msgstr "Стандартное изображение профиля"
+
+#: ../../addon/gravatar/gravatar.php:124
+msgid "random geometric pattern"
+msgstr "Случайный геометрический рисунок"
+
+#: ../../addon/gravatar/gravatar.php:125
+msgid "monster face"
+msgstr "Лицо чудовища"
+
+#: ../../addon/gravatar/gravatar.php:126
+msgid "computer generated face"
+msgstr "Сгенерированное компьютером лицо"
+
+#: ../../addon/gravatar/gravatar.php:127
+msgid "retro arcade style face"
+msgstr "Лицо в стиле старой аркадной игры"
+
+#: ../../addon/gravatar/gravatar.php:128
+msgid "Hub default profile photo"
+msgstr "Фотография профиля по умолчанию"
+
+#: ../../addon/gravatar/gravatar.php:143
+msgid "Information"
+msgstr "Информация"
+
+#: ../../addon/gravatar/gravatar.php:143
+msgid ""
+"Libravatar addon is installed, too. Please disable Libravatar addon or this "
+"Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if "
+"nothing was found at Libravatar."
+msgstr "Плагин Libravatar также установлен. Пожалуйста, отключите плагин Libravatar или этот плагин Gravatar. Если Плагин Libravatar ничего не найдёт, он вернётся в Gravatar."
+
+#: ../../addon/gravatar/gravatar.php:150 ../../addon/msgfooter/msgfooter.php:46
+#: ../../addon/xmpp/xmpp.php:43
+msgid "Save Settings"
+msgstr "Сохранить настройки"
+
+#: ../../addon/gravatar/gravatar.php:151
+msgid "Default avatar image"
+msgstr "Изображение аватара по умолчанию"
+
+#: ../../addon/gravatar/gravatar.php:151
+msgid "Select default avatar image if none was found at Gravatar. See README"
+msgstr "Выберите изображения аватар по умолчанию если ничего не было найдено в Gravatar (см. README)."
+
+#: ../../addon/gravatar/gravatar.php:152
+msgid "Rating of images"
+msgstr "Оценки изображений"
+
+#: ../../addon/gravatar/gravatar.php:152
+msgid "Select the appropriate avatar rating for your site. See README"
+msgstr "Выберите подходящую оценку аватара для вашего сайта (см. README)."
+
+#: ../../addon/gravatar/gravatar.php:165
+msgid "Gravatar settings updated."
+msgstr "Настройки Gravatar обновлены."
+
+#: ../../addon/hzfiles/hzfiles.php:79
+msgid "Hubzilla File Storage Import"
+msgstr "Импорт файлового хранилища Hubzilla"
+
+#: ../../addon/hzfiles/hzfiles.php:80
+msgid "This will import all your cloud files from another server."
+msgstr "Это позволит импортировать все ваши файлы с другого сервера."
+
+#: ../../addon/hzfiles/hzfiles.php:81
+msgid "Hubzilla Server base URL"
+msgstr "Базовый URL сервера Hubzilla"
+
+#: ../../addon/hzfiles/hzfiles.php:82
+msgid "Since modified date yyyy-mm-dd"
+msgstr "Начиная с даты изменений yyyy-mm-dd"
+
+#: ../../addon/hzfiles/hzfiles.php:83
+msgid "Until modified date yyyy-mm-dd"
+msgstr "Заканчивая датой изменений yyyy-mm-dd"
+
+#: ../../addon/visage/Mod_Visage.php:21
+msgid "Who viewed my channel/profile"
+msgstr "Кто смотрел мой канал / профиль"
+
+#: ../../addon/visage/Mod_Visage.php:25
+msgid "Recent Channel/Profile Viewers"
+msgstr "Последние просмотры канала / профиля"
+
+#: ../../addon/visage/Mod_Visage.php:36
+msgid "No entries."
+msgstr "Нет записей."
+
+#: ../../addon/nsabait/Mod_Nsabait.php:20
+#: ../../addon/nsabait/Mod_Nsabait.php:24
+msgid "NSA Bait App"
+msgstr "Приложение NSA Bait"
+
+#: ../../addon/nsabait/Mod_Nsabait.php:26
+msgid "Make yourself a political target"
+msgstr "Сделать себя политической мишенью"
+
+#: ../../addon/mailtest/mailtest.php:19
+msgid "Send test email"
+msgstr "Отправить тестовый email"
+
+#: ../../addon/mailtest/mailtest.php:50 ../../addon/hubwall/hubwall.php:50
+msgid "No recipients found."
+msgstr "Получателей не найдено."
-#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:146
+#: ../../addon/mailtest/mailtest.php:66
+msgid "Mail sent."
+msgstr "Сообщение отправлено"
+
+#: ../../addon/mailtest/mailtest.php:68
+msgid "Sending of mail failed."
+msgstr "Не удалось отправить сообщение."
+
+#: ../../addon/mailtest/mailtest.php:77
+msgid "Mail Test"
+msgstr "Тестовое сообщение"
+
+#: ../../addon/mailtest/mailtest.php:96 ../../addon/hubwall/hubwall.php:92
+msgid "Message subject"
+msgstr "Тема сообщения"
+
+#: ../../addon/mdpost/mdpost.php:42
+msgid "Use markdown for editing posts"
+msgstr "Использовать язык разметки Markdown для редактирования публикаций"
+
+#: ../../addon/openstreetmap/openstreetmap.php:146
msgid "View Larger"
msgstr "Увеличить"
-#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:169
+#: ../../addon/openstreetmap/openstreetmap.php:170
msgid "Tile Server URL"
msgstr "URL сервера Tile"
-#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:169
+#: ../../addon/openstreetmap/openstreetmap.php:170
msgid ""
"A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank"
"\">public tile servers</a>"
msgstr "Список <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">общедоступных серверов</a>"
-#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:170
+#: ../../addon/openstreetmap/openstreetmap.php:171
msgid "Nominatim (reverse geocoding) Server URL"
msgstr "URL сервера Nominatim (обратное геокодирование)"
-#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:170
+#: ../../addon/openstreetmap/openstreetmap.php:171
msgid ""
"A list of <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim\" target="
"\"_blank\">Nominatim servers</a>"
msgstr "Список <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\">серверов Nominatim</a>"
-#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:171
+#: ../../addon/openstreetmap/openstreetmap.php:172
msgid "Default zoom"
msgstr "Масштаб по умолчанию"
-#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:171
+#: ../../addon/openstreetmap/openstreetmap.php:172
msgid ""
"The default zoom level. (1:world, 18:highest, also depends on tile server)"
msgstr "Уровень размера по умолчанию (1 - весь мир, 18 - максимальный; зависит от сервера)."
-#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:172
+#: ../../addon/openstreetmap/openstreetmap.php:173
msgid "Include marker on map"
msgstr "Включите маркер на карте"
-#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:172
+#: ../../addon/openstreetmap/openstreetmap.php:173
msgid "Include a marker on the map."
msgstr "Включить маркер на карте"
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:309
-msgid "Activate addon"
-msgstr "Активировать расширение"
+#: ../../addon/msgfooter/msgfooter.php:47
+msgid "text to include in all outgoing posts from this site"
+msgstr "текст, который будет добавлен во все исходящие публикации с этого сайта"
+
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:22
+msgid "Fuzzloc Settings updated."
+msgstr "Настройки примерного положения обновлены."
+
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:34
+msgid "Fuzzy Location App"
+msgstr "Приложение \"Примерное положение\""
+
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:35
+msgid ""
+"Blur your precise location if your channel uses browser location mapping"
+msgstr "Размывает вашего точное местоположение в случае если ваш канал использует отображение местоположения из браузера"
+
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:40
+msgid "Minimum offset in meters"
+msgstr "Минимальное смещение в метрах"
+
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:44
+msgid "Maximum offset in meters"
+msgstr "Максимальное смещение в метрах"
+
+#: ../../addon/fuzzloc/Mod_Fuzzloc.php:53
+msgid "Fuzzy Location"
+msgstr "Примерное положение"
+
+#: ../../addon/rtof/rtof.php:51
+msgid "Post to Friendica"
+msgstr "Опубликовать в Friendica"
+
+#: ../../addon/rtof/Mod_Rtof.php:24
+msgid "Friendica Crosspost Connector Settings saved."
+msgstr "Настройки пересылки публикаций Friendica сохранены."
+
+#: ../../addon/rtof/Mod_Rtof.php:36
+msgid "Friendica Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Friendica\""
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:313
+#: ../../addon/rtof/Mod_Rtof.php:37
+msgid "Relay public postings to a connected Friendica account"
+msgstr "Пересылает общедоступные публикации на подключённую учётную запись Friendica"
+
+#: ../../addon/rtof/Mod_Rtof.php:49
+msgid "Send public postings to Friendica by default"
+msgstr "Отправлять общедоступные публикации во Friendica по умолчанию"
+
+#: ../../addon/rtof/Mod_Rtof.php:53
+msgid "Friendica API Path"
+msgstr "Путь к Friendica API"
+
+#: ../../addon/rtof/Mod_Rtof.php:53 ../../addon/redred/Mod_Redred.php:67
+msgid "https://{sitename}/api"
+msgstr ""
+
+#: ../../addon/rtof/Mod_Rtof.php:57
+msgid "Friendica login name"
+msgstr "Имя входа Friendica"
+
+#: ../../addon/rtof/Mod_Rtof.php:61
+msgid "Friendica password"
+msgstr "Пароль Friendica"
+
+#: ../../addon/rtof/Mod_Rtof.php:69
+msgid "Friendica Crosspost Connector"
+msgstr "Пересылка публикаций Friendica"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:96
+msgid "Jappixmini App"
+msgstr "Приложение Jappix Mini"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:97
+msgid "Provides a Facebook-like chat using Jappix Mini"
+msgstr "Предоставляет Facebook-подобный чат с использованием Jappix Mini"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:157 ../../include/channel.php:1452
+#: ../../include/channel.php:1623
+msgid "Status:"
+msgstr "Статус:"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:161
msgid "Hide Jappixmini Chat-Widget from the webinterface"
-msgstr "Скрыть виджет чата Jappixmini из веб-интерфейса"
+msgstr "Скрыть виджет чата Jappix Mini из веб-интерфейса"
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:318
+#: ../../addon/jappixmini/Mod_Jappixmini.php:166
msgid "Jabber username"
msgstr "Имя пользователя Jabber"
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:324
+#: ../../addon/jappixmini/Mod_Jappixmini.php:172
msgid "Jabber server"
msgstr "Сервер Jabber"
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:330
+#: ../../addon/jappixmini/Mod_Jappixmini.php:178
msgid "Jabber BOSH host URL"
msgstr "URL узла Jabber BOSH"
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:337
+#: ../../addon/jappixmini/Mod_Jappixmini.php:185
msgid "Jabber password"
msgstr "Пароль Jabber"
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:343
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
msgid "Encrypt Jabber password with Hubzilla password"
msgstr "Зашифровать пароль Jabber с помощью пароля Hubzilla"
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:347
-#: ../../extend/addon/hzaddons/redred/redred.php:115
+#: ../../addon/jappixmini/Mod_Jappixmini.php:195
+#: ../../addon/redred/Mod_Redred.php:79
msgid "Hubzilla password"
msgstr "Пароль Hubzilla"
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:351
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:355
+#: ../../addon/jappixmini/Mod_Jappixmini.php:199
+#: ../../addon/jappixmini/Mod_Jappixmini.php:203
msgid "Approve subscription requests from Hubzilla contacts automatically"
msgstr "Утверждать запросы на подписку от контактов Hubzilla автоматически"
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:359
+#: ../../addon/jappixmini/Mod_Jappixmini.php:207
msgid "Purge internal list of jabber addresses of contacts"
msgstr "Очистить внутренний список адресов контактов Jabber"
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:364
+#: ../../addon/jappixmini/Mod_Jappixmini.php:212
msgid "Configuration Help"
msgstr "Помощь по конфигурации"
-#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:371
-msgid "Jappix Mini Settings"
-msgstr "Настройки Jappix Mini"
+#: ../../addon/jappixmini/Mod_Jappixmini.php:258
+msgid "Jappixmini Settings"
+msgstr "Настройки Jappix Мini"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:57
-msgid "Errors encountered deleting database table "
-msgstr "Возникшие при удалении таблицы базы данных ошибки"
-
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:96
-msgid "Drop tables when uninstalling?"
-msgstr "Удалить таблицы при деинсталляции?"
+#: ../../addon/upgrade_info/upgrade_info.php:43
+msgid "Your channel has been upgraded to the latest $Projectname version."
+msgstr "Ваш канал был обновлён на последнюю версию $Projectname."
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:96
+#: ../../addon/upgrade_info/upgrade_info.php:44
msgid ""
-"If checked, the Rendezvous database tables will be deleted when the plugin "
-"is uninstalled."
-msgstr "Если включено, то таблицы базы данных Rendezvous будут удалены при удалении плагина."
+"To improve usability, we have converted some features into installable stand-"
+"alone apps."
+msgstr "Чтобы улучшить удобство использования, некоторые функции теперь доступны в виде устанавливаемых автономных приложений."
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:97
-msgid "Mapbox Access Token"
-msgstr "Токен доступа к Mapbox"
+#: ../../addon/upgrade_info/upgrade_info.php:45
+msgid "Please visit the $Projectname"
+msgstr "Пожалуйста, посетите $Projectname"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:97
-msgid ""
-"If you enter a Mapbox access token, it will be used to retrieve map tiles "
-"from Mapbox instead of the default OpenStreetMap tile server."
-msgstr "Если вы введете токен доступа к Mapbox, он будет использоваться для извлечения фрагментов карты из Mapbox вместо стандартного сервера OpenStreetMap."
+#: ../../addon/upgrade_info/upgrade_info.php:46
+msgid "app store"
+msgstr "раздел \"Приложения\""
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:162
-msgid "Rendezvous"
-msgstr ""
+#: ../../addon/upgrade_info/upgrade_info.php:47
+msgid "and install possibly missing apps."
+msgstr "и установите необходимые вам."
+
+#: ../../addon/upgrade_info/upgrade_info.php:52
+msgid "Upgrade Info"
+msgstr "Сведения об обновлении"
+
+#: ../../addon/upgrade_info/upgrade_info.php:56
+msgid "Do not show this again"
+msgstr "Больше не показывать"
+
+#: ../../addon/channelreputation/channelreputation.php:98
+#: ../../addon/channelreputation/channelreputation.php:99
+#: ../../addon/cart/myshop.php:141 ../../addon/cart/myshop.php:177
+#: ../../addon/cart/myshop.php:211 ../../addon/cart/myshop.php:259
+#: ../../addon/cart/myshop.php:294 ../../addon/cart/myshop.php:317
+msgid "Access Denied"
+msgstr "Доступ запрещён"
+
+#: ../../addon/channelreputation/channelreputation.php:106
+msgid "Enable Community Moderation"
+msgstr "Включить модерацию сообщества"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:167
+#: ../../addon/channelreputation/channelreputation.php:114
+msgid "Reputation automatically given to new members"
+msgstr "Репутация автоматически предоставляемая новым участникам"
+
+#: ../../addon/channelreputation/channelreputation.php:115
+msgid "Reputation will never fall below this value"
+msgstr "Репутация никогда не упадёт ниже этого значения"
+
+#: ../../addon/channelreputation/channelreputation.php:116
+msgid "Minimum reputation before posting is allowed"
+msgstr "Минимальная репутация для разрешения возможности размещать публикации"
+
+#: ../../addon/channelreputation/channelreputation.php:117
+msgid "Minimum reputation before commenting is allowed"
+msgstr "Минимальная репутация для разрешения комментирования"
+
+#: ../../addon/channelreputation/channelreputation.php:118
+msgid "Minimum reputation before a member is able to moderate other posts"
+msgstr "Минимальная репутация для возможности модерирования участником чужих публикаций"
+
+#: ../../addon/channelreputation/channelreputation.php:119
msgid ""
-"This identity has been deleted by another member due to inactivity. Please "
-"press the \"New identity\" button or refresh the page to register a new "
-"identity. You may use the same name."
-msgstr "Этот идентификатор был удалён другим участником из-за неактивности. Пожалуйста нажмите кнопку \"Новый идентификатор\" для обновления страницы и получения нового идентификатора. Вы можете использовать то же имя."
+"Max ratio of moderator's reputation that can be added to/deducted from "
+"reputation of person being moderated"
+msgstr "Максимальное соотношение репутации модератора, которое может быть добавлено / вычтено из репутации модерируемого участника"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:168
-msgid "Welcome to Rendezvous!"
-msgstr "Добро пожаловать в Rendezvous!"
+#: ../../addon/channelreputation/channelreputation.php:120
+msgid "Reputation \"cost\" to post"
+msgstr "\"Стоимость\" репутации для публикации"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:169
+#: ../../addon/channelreputation/channelreputation.php:121
+msgid "Reputation \"cost\" to comment"
+msgstr "\"Стоимость\" репутации для комментирования"
+
+#: ../../addon/channelreputation/channelreputation.php:122
msgid ""
-"Enter your name to join this rendezvous. To begin sharing your location with "
-"the other members, tap the GPS control. When your location is discovered, a "
-"red dot will appear and others will be able to see you on the map."
-msgstr "Введите ваше имя для вступления в это Rendezvous. Для того, чтобы делиться вашим положением с другими участниками, нажмите \"GPS control\". Когда ваше местоположение определно, красная точка появится и остальные смогут увидеть вас на карте."
+"Reputation automatically recovers at this rate per hour until it reaches "
+"minimum_to_post"
+msgstr "Репутация автоматически восстанавливается с этой скоростью в час пока не достигает значения minimum_to_post"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:171
-msgid "Let's meet here"
-msgstr "Давайте встретимся здесь"
+#: ../../addon/channelreputation/channelreputation.php:123
+msgid ""
+"When minimum_to_moderate > reputation > minimum_to_post reputation recovers "
+"at this rate per hour"
+msgstr "При minimum_to_moderate > репутация > minimum_to_post репутация восстанавливается с этой скоростью в час"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:174
-msgid "New marker"
-msgstr "Новый маркер"
+#: ../../addon/channelreputation/channelreputation.php:137
+msgid "Community Moderation Settings"
+msgstr "Настройки модерирования сообщества"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:175
-msgid "Edit marker"
-msgstr "Редактировать маркер"
+#: ../../addon/channelreputation/channelreputation.php:365
+msgid "Can moderate reputation on my channel."
+msgstr "Может модерировать репутацию на моём канале"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:176
-msgid "New identity"
-msgstr "Новый идентификатор"
+#: ../../addon/channelreputation/channelreputation.php:549
+#: ../../addon/channelreputation/channelreputation.php:552
+msgid "Channel Reputation"
+msgstr "Репутация канала"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:177
-msgid "Delete marker"
-msgstr "Удалить маркер"
+#: ../../addon/superblock/superblock.php:337
+msgid "Block Completely"
+msgstr "Заблокировать полностью"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:178
-msgid "Delete member"
-msgstr "Удалить участника"
+#: ../../addon/superblock/Mod_Superblock.php:20
+msgid "Superblock App"
+msgstr "Приложение Superblock"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:179
-msgid "Edit proximity alert"
-msgstr "Изменить оповещение о близости"
+#: ../../addon/superblock/Mod_Superblock.php:21
+msgid "Block channels"
+msgstr "Заблокировать каналы"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:180
-msgid ""
-"A proximity alert will be issued when this member is within a certain radius "
-"of you.<br><br>Enter a radius in meters (0 to disable):"
-msgstr "Оповещение о близости будет произведено, если этот участник находится на определённом расстоянии от вас. <br><br>Введите радиус в метрах (0 для отключения):"
+#: ../../addon/superblock/Mod_Superblock.php:63
+msgid "superblock settings updated"
+msgstr "Настройки Superblock обновлены."
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:180
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:185
-msgid "distance"
-msgstr "расстояние"
+#: ../../addon/superblock/Mod_Superblock.php:87
+msgid "Currently blocked"
+msgstr "В настоящее время заблокирован"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:181
-msgid "Proximity alert distance (meters)"
-msgstr "Расстояние для уведомления о близости (метров)"
+#: ../../addon/superblock/Mod_Superblock.php:89
+msgid "No channels currently blocked"
+msgstr "В настоящее время никакие каналы не блокируются"
+
+#: ../../addon/nofed/Mod_Nofed.php:21
+msgid "nofed Settings saved."
+msgstr "Настройки nofed сохранены."
+
+#: ../../addon/nofed/Mod_Nofed.php:33
+msgid "No Federation App"
+msgstr "Приложение No Federation"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:182
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:184
+#: ../../addon/nofed/Mod_Nofed.php:34
msgid ""
-"A proximity alert will be issued when you are within a certain radius of the "
-"marker location.<br><br>Enter a radius in meters (0 to disable):"
-msgstr "Оповещение о близости будет произведено, если вы находитесь на определённом расстоянии местоположения маркера. <br><br>Введите радиус в метрах (0 для отключения):"
+"Prevent posting from being federated to anybody. It will exist only on your "
+"channel page."
+msgstr "Запрещает федеративные функций для публикаций. Они будут существовать только на странице вашего канала."
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:183
-msgid "Marker proximity alert"
-msgstr "Маркер уведомления о близости"
+#: ../../addon/nofed/Mod_Nofed.php:42
+msgid "Federate posts by default"
+msgstr "Разрешить федерацию публикаций по умолчанию"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:186
-msgid "Reminder note"
-msgstr "Напоминание"
+#: ../../addon/nofed/Mod_Nofed.php:50
+msgid "No Federation"
+msgstr "Отключить Federation"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:187
-msgid ""
-"Enter a note to be displayed when you are within the specified proximity..."
-msgstr "Введите сообщение для отображения когда вы находитесь рядом"
+#: ../../addon/nofed/nofed.php:47
+msgid "Federate"
+msgstr "Федерировать"
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:199
-msgid "Add new rendezvous"
-msgstr "Добавить новое Rendezvous."
+#: ../../addon/redred/Mod_Redred.php:24
+msgid "Channel is required."
+msgstr "Необходим канал."
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:200
-msgid ""
-"Create a new rendezvous and share the access link with those you wish to "
-"invite to the group. Those who open the link become members of the "
-"rendezvous. They can view other member locations, add markers to the map, or "
-"share their own locations with the group."
-msgstr "Создайте новое Rendezvous и поделитесь ссылкой доступа с теми, кого вы хотите пригласить в группу. Тот, кто откроет эту ссылку, станет её участником. Участники могут видеть местоположение, добавлять маркеры на карту или делится своим собственным местоположением с группой."
+#: ../../addon/redred/Mod_Redred.php:38
+msgid "Hubzilla Crosspost Connector Settings saved."
+msgstr "Настройки пересылки публикаций Hubzilla сохранены."
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:232
-msgid "You have no rendezvous. Press the button above to create a rendezvous!"
-msgstr "У вас нет Rendezvous. Нажмите на кнопку ниже чтобы создать его!"
+#: ../../addon/redred/Mod_Redred.php:50
+#: ../../addon/statusnet/Mod_Statusnet.php:146
+msgid "Hubzilla Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Hubzilla\""
-#: ../../extend/addon/hzaddons/piwik/piwik.php:85
-msgid ""
-"This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
-"analytics tool."
-msgstr "Этот сайт отслеживается с помощью инструментов аналитики <a href='http://www.piwik.org'>Piwik</a>."
+#: ../../addon/redred/Mod_Redred.php:51
+msgid "Relay public postings to another Hubzilla channel"
+msgstr "Пересылает общедоступные публикации в другой канал Hubzilla"
-#: ../../extend/addon/hzaddons/piwik/piwik.php:88
-#, php-format
-msgid ""
-"If you do not want that your visits are logged this way you <a href='%s'>can "
-"set a cookie to prevent Piwik from tracking further visits of the site</a> "
-"(opt-out)."
-msgstr "Если вы не хотите, чтобы ваши визиты регистрировались таким образом, вы <a href='%s'>можете отключить cookie с тем, чтобы Piwik не отслеживал дальнейшие посещения сайта</a>."
+#: ../../addon/redred/Mod_Redred.php:63
+msgid "Send public postings to Hubzilla channel by default"
+msgstr "Отправлять общедоступные публикации в канал Hubzilla по умолчанию"
-#: ../../extend/addon/hzaddons/piwik/piwik.php:96
-msgid "Piwik Base URL"
-msgstr "Базовый URL Piwik"
+#: ../../addon/redred/Mod_Redred.php:67
+msgid "Hubzilla API Path"
+msgstr "Путь к Hubzilla API"
-#: ../../extend/addon/hzaddons/piwik/piwik.php:96
-msgid ""
-"Absolute path to your Piwik installation. (without protocol (http/s), with "
-"trailing slash)"
-msgstr "Абсолютный путь к вашей установке Piwik (без типа протокола, с начальным слэшем)"
+#: ../../addon/redred/Mod_Redred.php:71
+msgid "Hubzilla login name"
+msgstr "Имя входа Hubzilla"
-#: ../../extend/addon/hzaddons/piwik/piwik.php:97
-msgid "Site ID"
-msgstr "ID сайта"
+#: ../../addon/redred/Mod_Redred.php:75
+msgid "Hubzilla channel name"
+msgstr "Название канала Hubzilla"
-#: ../../extend/addon/hzaddons/piwik/piwik.php:98
-msgid "Show opt-out cookie link?"
-msgstr "Показывать ссылку на отказ от использования cookies?"
+#: ../../addon/redred/Mod_Redred.php:87
+msgid "Hubzilla Crosspost Connector"
+msgstr "Пересылка публикаций Hubzilla"
-#: ../../extend/addon/hzaddons/piwik/piwik.php:99
-msgid "Asynchronous tracking"
-msgstr "Асинхронное отслеживание"
+#: ../../addon/redred/redred.php:50
+msgid "Post to Hubzilla"
+msgstr "Опубликовать в Hubzilla"
-#: ../../extend/addon/hzaddons/piwik/piwik.php:100
-msgid "Enable frontend JavaScript error tracking"
-msgstr "Включить отслеживание ошибок JavaScript на фронтенде."
+#: ../../addon/logrot/logrot.php:36
+msgid "Logfile archive directory"
+msgstr "Каталог архивирования журнала"
-#: ../../extend/addon/hzaddons/piwik/piwik.php:100
-msgid "This feature requires Piwik >= 2.2.0"
-msgstr "Эта функция требует версию Piwik >= 2.2.0"
+#: ../../addon/logrot/logrot.php:36
+msgid "Directory to store rotated logs"
+msgstr "Каталог для хранения заархивированных журналов"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:148
-msgid "You are now authenticated to pumpio."
-msgstr "Вы аутентифицированы в Pump.io"
+#: ../../addon/logrot/logrot.php:37
+msgid "Logfile size in bytes before rotating"
+msgstr "Размер файла журнала в байтах для архивирования"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:149
-msgid "return to the featured settings page"
-msgstr "Вернутся к странице настроек"
+#: ../../addon/logrot/logrot.php:38
+msgid "Number of logfiles to retain"
+msgstr "Количество сохраняемых файлов журналов"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:163
-msgid "Post to Pump.io"
-msgstr "Опубликовать в Pump.io"
+#: ../../addon/frphotos/frphotos.php:92
+msgid "Friendica Photo Album Import"
+msgstr "Импортировать альбом фотографий Friendica"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:198
-msgid "Pump.io servername"
-msgstr "Имя сервера Pump.io"
+#: ../../addon/frphotos/frphotos.php:93
+msgid "This will import all your Friendica photo albums to this Red channel."
+msgstr "Это позволит импортировать все ваши альбомы фотографий Friendica в этот канал."
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:198
-msgid "Without \"http://\" or \"https://\""
-msgstr "Без \"http://\" или \"https://\""
+#: ../../addon/frphotos/frphotos.php:94
+msgid "Friendica Server base URL"
+msgstr "Базовый URL сервера Friendica"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:202
-msgid "Pump.io username"
-msgstr "Имя пользователя Pump.io"
+#: ../../addon/frphotos/frphotos.php:95
+msgid "Friendica Login Username"
+msgstr "Имя пользователя для входа Friendica"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:202
-msgid "Without the servername"
-msgstr "без имени сервера"
+#: ../../addon/frphotos/frphotos.php:96
+msgid "Friendica Login Password"
+msgstr "Пароль для входа Firendica"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:213
-msgid "You are not authenticated to pumpio"
-msgstr "Вы не аутентифицированы на Pump.io"
+#: ../../addon/hsse/Mod_Hsse.php:15
+msgid "WYSIWYG status editor"
+msgstr "WYSIWYG редактор статуса "
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:215
-msgid "(Re-)Authenticate your pump.io connection"
-msgstr "Аутентифицировать (повторно) ваше соединение с Pump.io"
+#: ../../addon/hsse/Mod_Hsse.php:21 ../../addon/hsse/Mod_Hsse.php:26
+msgid "WYSIWYG Status App"
+msgstr "Приложение \"WYSIWYG статус\""
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:219
-msgid "Enable pump.io Post Plugin"
-msgstr "Включить плагин публикаций Pump.io"
+#: ../../addon/hsse/Mod_Hsse.php:34
+msgid "WYSIWYG Status"
+msgstr "WYSIWYG статус"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:223
-msgid "Post to pump.io by default"
-msgstr "Публиковать в Pump.io по умолчанию"
+#: ../../addon/hsse/hsse.php:82 ../../include/conversation.php:1285
+msgid "Set your location"
+msgstr "Задать своё местоположение"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:227
-msgid "Should posts be public"
-msgstr "Публикации должны быть общедоступными"
+#: ../../addon/hsse/hsse.php:83 ../../include/conversation.php:1286
+msgid "Clear browser location"
+msgstr "Очистить местоположение из браузера"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:231
-msgid "Mirror all public posts"
-msgstr "Отображать все общедоступные публикации"
+#: ../../addon/hsse/hsse.php:99 ../../include/conversation.php:1302
+msgid "Embed (existing) photo from your photo albums"
+msgstr "Встроить (существующее) фото из вашего фотоальбома"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:237
-msgid "Pump.io Post Settings"
-msgstr "Настройки публикаций в Pump.io"
+#: ../../addon/hsse/hsse.php:135 ../../include/conversation.php:1338
+msgid "Tag term:"
+msgstr "Теги:"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:266
-msgid "PumpIO Settings saved."
-msgstr "Настройки публикаций в Pump.io сохранены."
+#: ../../addon/hsse/hsse.php:136 ../../include/conversation.php:1339
+msgid "Where are you right now?"
+msgstr "Где вы сейчас?"
-#: ../../extend/addon/hzaddons/nsabait/nsabait.php:125
-msgid "Nsabait Settings updated."
-msgstr "Настройки Nsabait обновлены"
+#: ../../addon/hsse/hsse.php:141 ../../include/conversation.php:1344
+msgid "Choose a different album..."
+msgstr "Выбрать другой альбом..."
-#: ../../extend/addon/hzaddons/nsabait/nsabait.php:157
-msgid "Enable NSAbait Plugin"
-msgstr "Включить плагин NSAbait"
+#: ../../addon/hsse/hsse.php:145 ../../include/conversation.php:1348
+msgid "Comments enabled"
+msgstr "Комментарии включены"
-#: ../../extend/addon/hzaddons/nsabait/nsabait.php:161
-msgid "NSAbait Settings"
-msgstr "Настройки Nsabait"
+#: ../../addon/hsse/hsse.php:146 ../../include/conversation.php:1349
+msgid "Comments disabled"
+msgstr "Комментарии отключены"
-#: ../../extend/addon/hzaddons/mailtest/mailtest.php:19
-msgid "Send test email"
-msgstr "Отправить тестовый email"
+#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1401
+msgid "Page link name"
+msgstr "Название ссылки на страницу "
-#: ../../extend/addon/hzaddons/mailtest/mailtest.php:50
-#: ../../extend/addon/hzaddons/hubwall/hubwall.php:50
-msgid "No recipients found."
-msgstr "Получателей не найдено."
+#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1404
+msgid "Post as"
+msgstr "Опубликовать как"
-#: ../../extend/addon/hzaddons/mailtest/mailtest.php:66
-msgid "Mail sent."
-msgstr "Сообщение отправлено"
+#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1418
+msgid "Toggle voting"
+msgstr "Подключить голосование"
-#: ../../extend/addon/hzaddons/mailtest/mailtest.php:68
-msgid "Sending of mail failed."
-msgstr "Не удалось отправить сообщение."
+#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1421
+msgid "Disable comments"
+msgstr "Отключить комментарии"
-#: ../../extend/addon/hzaddons/mailtest/mailtest.php:77
-msgid "Mail Test"
-msgstr "Тестовое сообщение"
+#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1422
+msgid "Toggle comments"
+msgstr "Переключить комментарии"
-#: ../../extend/addon/hzaddons/mailtest/mailtest.php:96
-#: ../../extend/addon/hzaddons/hubwall/hubwall.php:92
-msgid "Message subject"
-msgstr "Тема сообщения"
+#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1430
+msgid "Categories (optional, comma-separated list)"
+msgstr "Категории (необязательно, список через запятую)"
-#: ../../extend/addon/hzaddons/randpost/randpost.php:97
-msgid "You're welcome."
-msgstr "Пожалуйста."
+#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1453
+msgid "Other networks and post services"
+msgstr "Другие сети и службы публикаций"
-#: ../../extend/addon/hzaddons/randpost/randpost.php:98
-msgid "Ah shucks..."
-msgstr "О, чёрт..."
+#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1459
+msgid "Set publish date"
+msgstr "Установить дату публикации"
-#: ../../extend/addon/hzaddons/randpost/randpost.php:99
-msgid "Don't mention it."
-msgstr "Не стоит благодарности."
+#: ../../addon/pubcrawl/Mod_Pubcrawl.php:25
+msgid "ActivityPub Protocol Settings updated."
+msgstr "Настройки протокола ActivityPub обновлены."
-#: ../../extend/addon/hzaddons/randpost/randpost.php:100
-msgid "&lt;blush&gt;"
-msgstr "&lt;краснею&gt;"
+#: ../../addon/pubcrawl/Mod_Pubcrawl.php:34
+msgid ""
+"The activitypub protocol does not support location independence. Connections "
+"you make within that network may be unreachable from alternate channel "
+"locations."
+msgstr "Протокол ActivityPub не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала."
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:50
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:128
-msgid "System defaults:"
-msgstr "Системные по умолчанию:"
+#: ../../addon/pubcrawl/Mod_Pubcrawl.php:40
+msgid "Activitypub Protocol App"
+msgstr "Приложение \"Протокол ActivityPub\""
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:54
-msgid "Preferred Clipart IDs"
-msgstr "Предпочитаемый Clipart ID"
+#: ../../addon/pubcrawl/Mod_Pubcrawl.php:48
+msgid "Deliver to ActivityPub recipients in privacy groups"
+msgstr "Доставить получателям ActivityPub в группах безопасности"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:54
-msgid "List of preferred clipart ids. These will be shown first."
-msgstr "Список предпочитаемых Clipart ID. Эти будут показаны первыми."
+#: ../../addon/pubcrawl/Mod_Pubcrawl.php:48
+msgid ""
+"May result in a large number of mentions and expose all the members of your "
+"privacy group"
+msgstr "Может привести к большому количеству упоминаний и раскрытию участников группы безопасности"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:55
-msgid "Default Search Term"
-msgstr "Условие поиска по умолчанию"
+#: ../../addon/pubcrawl/Mod_Pubcrawl.php:52
+msgid "Send multi-media HTML articles"
+msgstr "Отправить HTML статьи с мультимедиа"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:55
-msgid "The default search term. These will be shown second."
-msgstr "Условие поиска по умолчанию. Показываются во вторую очередь."
+#: ../../addon/pubcrawl/Mod_Pubcrawl.php:52
+msgid "Not supported by some microblog services such as Mastodon"
+msgstr "Не поддерживается некоторыми микроблогами, например Mastodon"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:56
-msgid "Return After"
-msgstr "Вернуться после"
+#: ../../addon/pubcrawl/Mod_Pubcrawl.php:60
+msgid "Activitypub Protocol"
+msgstr "Протокол ActivityPub"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:56
-msgid "Page to load after image selection."
-msgstr "Страница для загрузки после выбора изображения."
+#: ../../addon/donate/donate.php:21
+msgid "Project Servers and Resources"
+msgstr "Серверы и ресурсы проекта"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:59
-msgid "Profile List"
-msgstr "Список профилей"
+#: ../../addon/donate/donate.php:22
+msgid "Project Creator and Tech Lead"
+msgstr "Создатель проекта и технический руководитель"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:61
-msgid "Order of Preferred"
-msgstr "Порядок предпочтения"
+#: ../../addon/donate/donate.php:49
+msgid ""
+"And the hundreds of other people and organisations who helped make the "
+"Hubzilla possible."
+msgstr "И сотни других людей и организаций которые помогали в создании Hubzilla."
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:61
-msgid "Sort order of preferred clipart ids."
-msgstr "Порядок сортировки предпочитаемых Clipart ID. "
+#: ../../addon/donate/donate.php:52
+msgid ""
+"The Redmatrix/Hubzilla projects are provided primarily by volunteers giving "
+"their time and expertise - and often paying out of pocket for services they "
+"share with others."
+msgstr "Проекты Redmatrix / Hubzilla предоставляются, в основном, добровольцами, которые предоставляют свое время и опыт и, часто, оплачивают из своего кармана услуги, которыми они делятся с другими."
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:62
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:68
-msgid "Newest first"
-msgstr "Новое первым"
+#: ../../addon/donate/donate.php:53
+msgid ""
+"There is no corporate funding and no ads, and we do not collect and sell "
+"your personal information. (We don't control your personal information - "
+"<strong>you do</strong>.)"
+msgstr "Здесь нет корпоративного финансирования и рекламы, мы не собираем и не продаем вашу личную информацию. (Мы не контролируем вашу личную информацию - <strong>это делаете вы</strong>.)"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:65
-msgid "As entered"
-msgstr "По мере ввода"
+#: ../../addon/donate/donate.php:54
+msgid ""
+"Help support our ground-breaking work in decentralisation, web identity, and "
+"privacy."
+msgstr "Помогите поддержать нашу новаторскую работу в областях децентрализации, веб-идентификации и конфиденциальности."
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:67
-msgid "Order of other"
-msgstr "Порядок других"
+#: ../../addon/donate/donate.php:56
+msgid ""
+"Your donations keep servers and services running and also helps us to "
+"provide innovative new features and continued development."
+msgstr "В ваших пожертвованиях поддерживают серверы и службы, а также помогают нам предоставлять новые возможности и продолжать развитие."
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:67
-msgid "Sort order of other clipart ids."
-msgstr "Порядок сортировки остальных Clipart ID."
+#: ../../addon/donate/donate.php:59
+msgid "Donate"
+msgstr "Пожертвовать"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:69
-msgid "Most downloaded first"
-msgstr "Самое загружаемое первым"
+#: ../../addon/donate/donate.php:61
+msgid ""
+"Choose a project, developer, or public hub to support with a one-time "
+"donation"
+msgstr "Выберите проект, разработчика или общедоступный узел для поддержки в форме единоразового пожертвования"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:70
-msgid "Most liked first"
-msgstr "Самое нравящееся первым"
+#: ../../addon/donate/donate.php:62
+msgid "Donate Now"
+msgstr "Пожертвовать сейчас"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:72
-msgid "Preferred IDs Message"
-msgstr "Сообщение от предпочитаемых ID"
+#: ../../addon/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/openclipatar/openclipatar.php:72
-msgid "Message to display above preferred results."
-msgstr "Отображаемое сообщение над предпочитаемыми результатами."
+#: ../../addon/donate/donate.php:64
+msgid ""
+"Please indicate if you would like your first name or full name (or nothing) "
+"to appear in our sponsor listing"
+msgstr "Пожалуйста, если желаете, укажите ваше имя для отображения в списке спонсоров."
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:78
-msgid "Uploaded by: "
-msgstr "Загружено:"
+#: ../../addon/donate/donate.php:65
+msgid "Sponsor"
+msgstr "Спонсор"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:78
-msgid "Drawn by: "
-msgstr "Нарисовано:"
+#: ../../addon/donate/donate.php:68
+msgid "Special thanks to: "
+msgstr "Особые благодарности:"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:182
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:194
-msgid "Use this image"
-msgstr "Использовать это изображение"
+#: ../../addon/chords/Mod_Chords.php:44
+msgid ""
+"This is a fairly comprehensive and complete guitar chord dictionary which "
+"will list most of the available ways to play a certain chord, starting from "
+"the base of the fingerboard up to a few frets beyond the twelfth fret "
+"(beyond which everything repeats). A couple of non-standard tunings are "
+"provided for the benefit of slide players, etc."
+msgstr ""
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:192
-msgid "Or select from a free OpenClipart.org image:"
-msgstr "Или выберите из бесплатных изображений на OpenClipart.org"
+#: ../../addon/chords/Mod_Chords.php:46
+msgid ""
+"Chord names start with a root note (A-G) and may include sharps (#) and "
+"flats (b). This software will parse most of the standard naming conventions "
+"such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements."
+msgstr ""
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:195
-msgid "Search Term"
-msgstr "Условие поиска"
+#: ../../addon/chords/Mod_Chords.php:48
+msgid ""
+"Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, "
+"E7b13b11 ..."
+msgstr "Примеры действительных включают A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..."
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:232
-msgid "Unknown error. Please try again later."
-msgstr "Неизвестная ошибка. Пожалуйста, повторите попытку позже."
+#: ../../addon/chords/Mod_Chords.php:51
+msgid "Guitar Chords"
+msgstr "Гитарные аккорды"
-#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:308
-msgid "Profile photo updated successfully."
-msgstr "Фотография профиля обновлена успешно."
+#: ../../addon/chords/Mod_Chords.php:52
+msgid "The complete online chord dictionary"
+msgstr "Полный онлайн словарь аккордов"
-#: ../../extend/addon/hzaddons/hzfiles/hzfiles.php:79
-msgid "Hubzilla File Storage Import"
-msgstr "Импорт файлового хранилища Hubzilla"
+#: ../../addon/chords/Mod_Chords.php:57
+msgid "Tuning"
+msgstr "Настройка"
-#: ../../extend/addon/hzaddons/hzfiles/hzfiles.php:80
-msgid "This will import all your cloud files from another server."
-msgstr "Это позволит импортировать все ваши файлы с другого сервера."
+#: ../../addon/chords/Mod_Chords.php:58
+msgid "Chord name: example: Em7"
+msgstr "Наименование аккорда - example: Em7"
-#: ../../extend/addon/hzaddons/hzfiles/hzfiles.php:81
-msgid "Hubzilla Server base URL"
-msgstr "Базовый URL сервера Hubzilla"
+#: ../../addon/chords/Mod_Chords.php:59
+msgid "Show for left handed stringing"
+msgstr "Показывать струны для левшей"
-#: ../../extend/addon/hzaddons/hzfiles/hzfiles.php:82
-msgid "Since modified date yyyy-mm-dd"
-msgstr "Начиная с даты изменений yyyy-mm-dd"
+#: ../../addon/chords/chords.php:33
+msgid "Quick Reference"
+msgstr "Быстрая ссылка"
-#: ../../extend/addon/hzaddons/hzfiles/hzfiles.php:83
-msgid "Until modified date yyyy-mm-dd"
-msgstr "Заканчивая датой изменений yyyy-mm-dd"
+#: ../../addon/libertree/libertree.php:43
+msgid "Post to Libertree"
+msgstr "Опубликовать в Libertree"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:42
-msgid "Post to LiveJournal"
-msgstr "Опубликовать в LiveJournal"
+#: ../../addon/libertree/Mod_Libertree.php:25
+msgid "Libertree Crosspost Connector Settings saved."
+msgstr "Настройки пересылки публикаций Libertree сохранены."
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:70
-msgid "Enable LiveJournal Post Plugin"
-msgstr "Включить плагин публикаций LiveJournal"
+#: ../../addon/libertree/Mod_Libertree.php:35
+msgid "Libertree Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Libertree\""
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:74
-msgid "LiveJournal username"
-msgstr "Имя пользователя LiveJournal"
+#: ../../addon/libertree/Mod_Libertree.php:36
+msgid "Relay public posts to Libertree"
+msgstr "Пересылает общедоступные публикации в Libertree"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:78
-msgid "LiveJournal password"
-msgstr "Пароль LiveJournal"
+#: ../../addon/libertree/Mod_Libertree.php:51
+msgid "Libertree API token"
+msgstr "Токен Libertree API"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:82
-msgid "Post to LiveJournal by default"
-msgstr "Публиковать в LiveJournal по умолчанию"
+#: ../../addon/libertree/Mod_Libertree.php:55
+msgid "Libertree site URL"
+msgstr "URL сайта Libertree"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:86
-msgid "LiveJournal Post Settings"
-msgstr "Настройки публикаций в LiveJournal"
+#: ../../addon/libertree/Mod_Libertree.php:59
+msgid "Post to Libertree by default"
+msgstr "Публиковать в Libertree по умолчанию"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:101
-msgid "LiveJournal Settings saved."
-msgstr "Настройки LiveJournal сохранены."
+#: ../../addon/libertree/Mod_Libertree.php:67
+msgid "Libertree Crosspost Connector"
+msgstr "Пересылка публикаций Libertree"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:143
-msgid "Post to GNU social"
-msgstr "Опубликовать в GNU Social"
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:41
+msgid "Flattr widget settings updated."
+msgstr "Настройки виджета Flattr обновлены."
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:53
+msgid "Flattr Widget App"
+msgstr "Приложение \"Виджет Flattr\""
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:54
+msgid "Add a Flattr button to your channel page"
+msgstr "Добавить кнопку Flattr на страницу вашего канала"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:65
+msgid "Flattr user"
+msgstr "Пользователь Flattr"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:69
+msgid "URL of the Thing to flattr"
+msgstr "URL ccылки на Flattr"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:69
+msgid "If empty channel URL is used"
+msgstr "Если пусто, то используется URL канала"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:73
+msgid "Title of the Thing to flattr"
+msgstr "Заголовок вещи на Flattr"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:73
+msgid "If empty \"channel name on The Hubzilla\" will be used"
+msgstr "Если пусто, то будет использовано \"Название канала Hubzilla\""
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:195
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77
+msgid "Static or dynamic flattr button"
+msgstr "Статическая или динамическая кнопка Flattr"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77
+msgid "static"
+msgstr "статическая"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77
+msgid "dynamic"
+msgstr "динамическая"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81
+msgid "Alignment of the widget"
+msgstr "Выравнивание виджета"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81
+msgid "left"
+msgstr "слева"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81
+msgid "right"
+msgstr "справа"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:89
+msgid "Flattr Widget"
+msgstr "Виджет Flattr"
+
+#: ../../addon/flattrwidget/flattrwidget.php:50
+msgid "Flattr this!"
+msgstr "Flattr это!"
+
+#: ../../addon/statusnet/Mod_Statusnet.php:61
msgid ""
"Please contact your site administrator.<br />The provided API URL is not "
"valid."
msgstr "Пожалуйста свяжитесь с администратором сайта. <br />Предоставленный URL API недействителен."
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:232
+#: ../../addon/statusnet/Mod_Statusnet.php:98
msgid "We could not contact the GNU social API with the Path you entered."
msgstr "Нам не удалось установить контакт с GNU Social API по введённому вами пути"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:266
+#: ../../addon/statusnet/Mod_Statusnet.php:130
msgid "GNU social settings updated."
msgstr "Настройки GNU Social обновлены."
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:310
+#: ../../addon/statusnet/Mod_Statusnet.php:147
+msgid ""
+"Relay public postings to a connected GNU social account (formerly StatusNet)"
+msgstr "Пересылает общедоступные публикации на подключённую учётную запись GNU social (бывшая StatusNet)"
+
+#: ../../addon/statusnet/Mod_Statusnet.php:181
msgid "Globally Available GNU social OAuthKeys"
msgstr "Глобально доступные ключи OAuthKeys GNU Social"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:312
+#: ../../addon/statusnet/Mod_Statusnet.php:183
msgid ""
"There are preconfigured OAuth key pairs for some GNU social servers "
"available. If you are using one of them, please use these credentials.<br /"
">If not feel free to connect to any other GNU social instance (see below)."
msgstr "Существуют предварительно настроенные пары ключей OAuth для некоторых доступных серверов GNU social. Если вы используете один из них, используйте эти учетные данные. <br />Если вы не хотите подключаться к какому-либо другому серверу GNU social (см. ниже)."
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:327
+#: ../../addon/statusnet/Mod_Statusnet.php:198
msgid "Provide your own OAuth Credentials"
msgstr "Предоставьте ваши собственные регистрационные данные OAuth"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:329
+#: ../../addon/statusnet/Mod_Statusnet.php:200
msgid ""
"No consumer key pair for GNU social found. Register your Hubzilla Account as "
"an desktop client on your GNU social account, copy the consumer key pair "
@@ -13668,27 +11937,27 @@ msgid ""
"Hubzilla installation at your favourite GNU social installation."
msgstr "Не найдена пользовательская пара ключей для GNU social. Зарегистрируйте свою учетную запись Hubzilla в качестве настольного клиента в своей учетной записи GNU social, скопируйте cюда пару ключей пользователя и введите корневой каталог базы API. <br />Прежде чем регистрировать свою собственную пару ключей OAuth, спросите администратора, если ли уже пара ключей для этой установки Hubzilla в вашем GNU social."
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:333
+#: ../../addon/statusnet/Mod_Statusnet.php:204
msgid "OAuth Consumer Key"
msgstr "Ключ клиента OAuth"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:337
+#: ../../addon/statusnet/Mod_Statusnet.php:208
msgid "OAuth Consumer Secret"
msgstr "Пароль клиента OAuth"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:341
+#: ../../addon/statusnet/Mod_Statusnet.php:212
msgid "Base API Path"
msgstr "Основной путь к API"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:341
+#: ../../addon/statusnet/Mod_Statusnet.php:212
msgid "Remember the trailing /"
msgstr "Запомнить закрывающий /"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:345
+#: ../../addon/statusnet/Mod_Statusnet.php:216
msgid "GNU social application name"
msgstr "Имя приложения GNU social"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:368
+#: ../../addon/statusnet/Mod_Statusnet.php:239
msgid ""
"To connect to your GNU social account click the button below to get a "
"security code from GNU social which you have to copy into the input box "
@@ -13696,27 +11965,32 @@ msgid ""
"posted to GNU social."
msgstr "Чтобы подключиться к вашей учетной записи GNU social нажмите кнопку ниже для получения кода безопасности из GNU social, который вы должны скопировать в поле ввода ниже и отправить форму. Только ваши общедоступные сообщения будут опубликованы в GNU social."
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:370
+#: ../../addon/statusnet/Mod_Statusnet.php:241
msgid "Log in with GNU social"
msgstr "Войти с GNU social"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:373
+#: ../../addon/statusnet/Mod_Statusnet.php:244
msgid "Copy the security code from GNU social here"
msgstr "Скопируйте код безопасности GNU social здесь"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:383
+#: ../../addon/statusnet/Mod_Statusnet.php:254
msgid "Cancel Connection Process"
msgstr "Отменить процесс подключения"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:385
+#: ../../addon/statusnet/Mod_Statusnet.php:256
msgid "Current GNU social API is"
msgstr "Текущий GNU social API"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:389
+#: ../../addon/statusnet/Mod_Statusnet.php:260
msgid "Cancel GNU social Connection"
msgstr "Отменить подключение с GNU social"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:406
+#: ../../addon/statusnet/Mod_Statusnet.php:272
+#: ../../addon/twitter/Mod_Twitter.php:147
+msgid "Currently connected to: "
+msgstr "В настоящее время подключён к:"
+
+#: ../../addon/statusnet/Mod_Statusnet.php:277
msgid ""
"<strong>Note</strong>: Due your privacy settings (<em>Hide your profile "
"details from unknown viewers?</em>) the link potentially included in public "
@@ -13724,1408 +11998,3315 @@ msgid ""
"informing the visitor that the access to your profile has been restricted."
msgstr "<strong>Замечание</strong>: Из-за настроек конфиденциальности (<em>скрыть данные своего профиля от неизвестных зрителей?</em>) cсылка, потенциально включенная в общедоступные публикации, переданные в GNU social, приведет посетителя к пустой странице, информирующей его о том, что доступ к вашему профилю был ограничен."
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:411
-msgid "Allow posting to GNU social"
-msgstr "Разрешить публиковать в GNU social"
-
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:411
-msgid ""
-"If enabled your public postings can be posted to the associated GNU-social "
-"account"
-msgstr "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи GNU social"
-
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:415
+#: ../../addon/statusnet/Mod_Statusnet.php:282
msgid "Post to GNU social by default"
msgstr "Публиковать в GNU social по умолчанию"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:415
+#: ../../addon/statusnet/Mod_Statusnet.php:282
msgid ""
"If enabled your public postings will be posted to the associated GNU-social "
"account by default"
msgstr "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи GNU social по умолчанию"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:432
-msgid "GNU social Post Settings"
-msgstr "Настройки публикаций GNU social"
+#: ../../addon/statusnet/Mod_Statusnet.php:291
+#: ../../addon/twitter/Mod_Twitter.php:171
+msgid "Clear OAuth configuration"
+msgstr "Очистить конфигурацию OAuth"
+
+#: ../../addon/statusnet/Mod_Statusnet.php:303
+msgid "GNU-Social Crosspost Connector"
+msgstr "Подключение пересылки публикаций GNU Social"
+
+#: ../../addon/statusnet/statusnet.php:145
+msgid "Post to GNU social"
+msgstr "Опубликовать в GNU Social"
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:892
+#: ../../addon/statusnet/statusnet.php:594
msgid "API URL"
msgstr ""
-#: ../../extend/addon/hzaddons/statusnet/statusnet.php:895
+#: ../../addon/statusnet/statusnet.php:597
msgid "Application name"
msgstr "Название приложения"
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:101
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:102
-#: ../../extend/addon/hzaddons/cart/myshop.php:141
-#: ../../extend/addon/hzaddons/cart/myshop.php:177
-#: ../../extend/addon/hzaddons/cart/myshop.php:211
-#: ../../extend/addon/hzaddons/cart/myshop.php:259
-#: ../../extend/addon/hzaddons/cart/myshop.php:294
-#: ../../extend/addon/hzaddons/cart/myshop.php:317
-msgid "Access Denied"
-msgstr "Доступ запрещён"
+#: ../../addon/qrator/qrator.php:48
+msgid "QR code"
+msgstr "QR-код"
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:109
-msgid "Enable Community Moderation"
-msgstr "Включить модерацию сообщества"
+#: ../../addon/qrator/qrator.php:63
+msgid "QR Generator"
+msgstr "Генератор QR-кодов"
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:117
-msgid "Reputation automatically given to new members"
-msgstr "Репутация автоматически предоставляемая новым участникам"
+#: ../../addon/qrator/qrator.php:64
+msgid "Enter some text"
+msgstr "Введите любой текст"
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:118
-msgid "Reputation will never fall below this value"
-msgstr "Репутация никогда не упадёт ниже этого значения"
+#: ../../addon/chess/Mod_Chess.php:180 ../../addon/chess/Mod_Chess.php:377
+msgid "Invalid game."
+msgstr "Недействительная игра."
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:119
-msgid "Minimum reputation before posting is allowed"
-msgstr "Минимальная репутация для разрешения возможности размещать публикации"
+#: ../../addon/chess/Mod_Chess.php:186 ../../addon/chess/Mod_Chess.php:417
+msgid "You are not a player in this game."
+msgstr "Вы не играете в эту игру."
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:120
-msgid "Minimum reputation before commenting is allowed"
-msgstr "Минимальная репутация для разрешения комментирования"
+#: ../../addon/chess/Mod_Chess.php:242
+msgid "You must be a local channel to create a game."
+msgstr "Ваш канал должен быть локальным чтобы создать игру."
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:121
-msgid "Minimum reputation before a member is able to moderate other posts"
-msgstr "Минимальная репутация для возможности модерирования участником чужих публикаций"
+#: ../../addon/chess/Mod_Chess.php:260
+msgid "You must select one opponent that is not yourself."
+msgstr "Вы должны выбрать противника который не является вами."
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:122
-msgid ""
-"Max ratio of moderator's reputation that can be added to/deducted from "
-"reputation of person being moderated"
-msgstr "Максимальное соотношение репутации модератора, которое может быть добавлено / вычтено из репутации модерируемого участника"
+#: ../../addon/chess/Mod_Chess.php:271
+msgid "Random color chosen."
+msgstr "Выбран случайный цвет."
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:123
-msgid "Reputation \"cost\" to post"
-msgstr "\"Стоимость\" репутации для публикации"
+#: ../../addon/chess/Mod_Chess.php:279
+msgid "Error creating new game."
+msgstr "Ошибка создания новой игры."
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:124
-msgid "Reputation \"cost\" to comment"
-msgstr "\"Стоимость\" репутации для комментирования"
+#: ../../addon/chess/Mod_Chess.php:306 ../../include/channel.php:1207
+msgid "Requested channel is not available."
+msgstr "Запрошенный канал не доступен."
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:125
-msgid ""
-"Reputation automatically recovers at this rate per hour until it reaches "
-"minimum_to_post"
-msgstr "Репутация автоматически восстанавливается с этой скоростью в час пока не достигает значения minimum_to_post"
+#: ../../addon/chess/Mod_Chess.php:311 ../../addon/chess/Mod_Chess.php:333
+msgid "Chess not installed."
+msgstr "Шахматы не установлены."
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:126
-msgid ""
-"When minimum_to_moderate > reputation > minimum_to_post reputation recovers "
-"at this rate per hour"
-msgstr "При minimum_to_moderate > репутация > minimum_to_post репутация восстанавливается с этой скоростью в час"
+#: ../../addon/chess/Mod_Chess.php:326
+msgid "You must select a local channel /chess/channelname"
+msgstr "Вы должны выбрать локальный канал /chess/channelname"
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:138
-msgid "Community Moderation Settings"
-msgstr "Настройки модерирования сообщества"
+#: ../../addon/chess/chess.php:642
+msgid "Enable notifications"
+msgstr "Включить оповещения"
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:359
-msgid "Can moderate reputation on my channel."
-msgstr "Может модерировать репутацию на моём канале"
+#: ../../addon/twitter/Mod_Twitter.php:65
+msgid "Twitter settings updated."
+msgstr "Настройки Twitter обновлены"
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:544
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:547
-msgid "Channel Reputation"
-msgstr "Репутация канала"
+#: ../../addon/twitter/Mod_Twitter.php:78
+msgid "Twitter Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Twitter\""
-#: ../../extend/addon/hzaddons/adultphotoflag/adultphotoflag.php:24
-msgid "Flag Adult Photos"
-msgstr "Пометка фотографий для взрослых"
+#: ../../addon/twitter/Mod_Twitter.php:79
+msgid "Relay public posts to Twitter"
+msgstr "Пересылает общедоступные публикации в Twitter"
-#: ../../extend/addon/hzaddons/adultphotoflag/adultphotoflag.php:25
+#: ../../addon/twitter/Mod_Twitter.php:103
msgid ""
-"Provide photo edit option to hide inappropriate photos from default album "
-"view"
-msgstr "Предоставьте возможность редактирования фотографий, чтобы скрыть неприемлемые фотографии из альбома по умолчанию"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:52
-msgid "First Name"
-msgstr "Имя"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:53
-msgid "Last Name"
-msgstr "Фамилия"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:54
-#: ../../extend/addon/hzaddons/redred/redred.php:111
-msgid "Nickname"
-msgstr "Псевдоним"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:55
-msgid "Full Name"
-msgstr "Полное имя"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:61
-msgid "Profile Photo 16px"
-msgstr "Фотография профиля 16px"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:62
-msgid "Profile Photo 32px"
-msgstr "Фотография профиля 32px"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:63
-msgid "Profile Photo 48px"
-msgstr "Фотография профиля 48px"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:64
-msgid "Profile Photo 64px"
-msgstr "Фотография профиля 64px"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:65
-msgid "Profile Photo 80px"
-msgstr "Фотография профиля 80px"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:66
-msgid "Profile Photo 128px"
-msgstr "Фотография профиля 128px"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:67
-msgid "Timezone"
-msgstr "Часовой пояс"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:70
-msgid "Birth Year"
-msgstr "Год рождения"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:71
-msgid "Birth Month"
-msgstr "Месяц рождения"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:72
-msgid "Birth Day"
-msgstr "День рождения"
-
-#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:73
-msgid "Birthdate"
-msgstr "Дата рождения"
+"No consumer key pair for Twitter found. Please contact your site "
+"administrator."
+msgstr "Не найдено пары ключей для Twitter. Пожалуйста, свяжитесь с администратором сайта."
-#: ../../extend/addon/hzaddons/openid/openid.php:49
+#: ../../addon/twitter/Mod_Twitter.php:125
msgid ""
-"We encountered a problem while logging in with the OpenID you provided. "
-"Please check the correct spelling of the ID."
-msgstr "Мы столкнулись с проблемой входа с предоставленным вами OpenID. Пожалуйста, проверьте корректность его написания."
-
-#: ../../extend/addon/hzaddons/openid/openid.php:49
-msgid "The error message was:"
-msgstr "Сообщение об ошибке было:"
-
-#: ../../extend/addon/hzaddons/openid/Mod_Openid.php:30
-msgid "OpenID protocol error. No ID returned."
-msgstr "Ошибка протокола OpenID. Идентификатор не возвращён."
+"At this Hubzilla instance the Twitter plugin was enabled but you have not "
+"yet connected your account to your Twitter account. To do so click the "
+"button below to get a PIN from Twitter which you have to copy into the input "
+"box below and submit the form. Only your <strong>public</strong> posts will "
+"be posted to Twitter."
+msgstr "В этой установке Hubzilla плагин Twitter был включён, однако пока он не подключён к вашему аккаунту в Twitter. Для этого нажмите на кнопку ниже для получения PIN-кода от Twitter который нужно скопировать в поле ввода и отправить форму. Только ваши <strong>общедоступные</strong> публикации будут опубликованы в Twitter."
-#: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:51
-msgid "Set a preferred page to load on login from home page"
-msgstr "Установить предпочтительную страницу для загрузки при входе с домашней страницы"
+#: ../../addon/twitter/Mod_Twitter.php:127
+msgid "Log in with Twitter"
+msgstr "Войти в Twitter"
-#: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:62
-msgid "Page to load after login"
-msgstr "Страница для загрузки после входа"
+#: ../../addon/twitter/Mod_Twitter.php:130
+msgid "Copy the PIN from Twitter here"
+msgstr "Скопируйте PIN-код из Twitter здесь"
-#: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:62
+#: ../../addon/twitter/Mod_Twitter.php:152
msgid ""
-"Examples: &quot;apps&quot;, &quot;network?f=&gid=37&quot; (privacy "
-"collection), &quot;channel&quot; or &quot;notifications/system&quot; (leave "
-"blank for default network page (grid)."
-msgstr "Примеры: &quot;apps&quot;, &quot;network?f=&gid=37&quot; (privacy collection), &quot;channel&quot; or &quot;notifications/system&quot; (оставьте пустым для для страницы сети по умолчанию)."
-
-#: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:70
-msgid "Startpage"
-msgstr "Стартовая страница"
-
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:94
-msgid "Hubzilla Directory Stats"
-msgstr "Каталог статистики Hubzilla"
-
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:95
-msgid "Total Hubs"
-msgstr "Всего хабов"
-
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:97
-msgid "Hubzilla Hubs"
-msgstr "Хабы Hubzilla"
-
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:99
-msgid "Friendica Hubs"
-msgstr "Хабы Friendica"
+"<strong>Note:</strong> Due your privacy settings (<em>Hide your profile "
+"details from unknown viewers?</em>) the link potentially included in public "
+"postings relayed to Twitter will lead the visitor to a blank page informing "
+"the visitor that the access to your profile has been restricted."
+msgstr "<strong>Замечание</strong>: Из-за настроек конфиденциальности (<em>скрыть данные своего профиля от неизвестных зрителей?</em>) cсылка, потенциально включенная в общедоступные публикации, переданные в Twitter, приведет посетителя к пустой странице, информирующей его о том, что доступ к вашему профилю был ограничен."
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:101
-msgid "Diaspora Pods"
-msgstr "Стручки Diaspora"
+#: ../../addon/twitter/Mod_Twitter.php:157
+msgid "Twitter post length"
+msgstr "Длина публикации Twitter"
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:103
-msgid "Hubzilla Channels"
-msgstr "Каналы Hubzilla"
+#: ../../addon/twitter/Mod_Twitter.php:157
+msgid "Maximum tweet length"
+msgstr "Максимальная длина твита"
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:105
-msgid "Friendica Channels"
-msgstr "Каналы Friendica"
+#: ../../addon/twitter/Mod_Twitter.php:162
+msgid "Send public postings to Twitter by default"
+msgstr "Отправлять общедоступные публикации в Twitter по умолчанию"
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:107
-msgid "Diaspora Channels"
-msgstr "Каналы Diaspora"
+#: ../../addon/twitter/Mod_Twitter.php:162
+msgid ""
+"If enabled your public postings will be posted to the associated Twitter "
+"account by default"
+msgstr "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи Twitter по умолчанию"
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:109
-msgid "Aged 35 and above"
-msgstr "Возраст 35 и выше"
+#: ../../addon/twitter/Mod_Twitter.php:181
+msgid "Twitter Crosspost Connector"
+msgstr "Пересылка публикаций Twitter"
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:111
-msgid "Aged 34 and under"
-msgstr "Возраст 34 и ниже"
+#: ../../addon/twitter/twitter.php:107
+msgid "Post to Twitter"
+msgstr "Опубликовать в Twitter"
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:113
-msgid "Average Age"
-msgstr "Средний возраст"
+#: ../../addon/smileybutton/Mod_Smileybutton.php:35
+msgid "Smileybutton App"
+msgstr "Приложение \"Кнопка со смайликам\""
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:115
-msgid "Known Chatrooms"
-msgstr "Известные чаты"
+#: ../../addon/smileybutton/Mod_Smileybutton.php:36
+msgid "Adds a smileybutton to the jot editor"
+msgstr "Добавлять кнопку со смайликами в редактор Jot"
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:117
-msgid "Known Tags"
-msgstr "Известные теги"
+#: ../../addon/smileybutton/Mod_Smileybutton.php:44
+msgid "Hide the button and show the smilies directly."
+msgstr "Скрыть кнопку и сразу показывать смайлики."
-#: ../../extend/addon/hzaddons/dirstats/dirstats.php:119
-msgid ""
-"Please note Diaspora and Friendica statistics are merely those **this "
-"directory** is aware of, and not all those known in the network. This also "
-"applies to chatrooms,"
-msgstr "Обратите внимание, что статистика Diaspora и Friendica это только те, о которых ** этот каталог ** знает, а не все известные в сети. Это также относится и к чатам."
+#: ../../addon/smileybutton/Mod_Smileybutton.php:52
+msgid "Smileybutton Settings"
+msgstr "Настройки кнопки со смайликами"
-#: ../../extend/addon/hzaddons/cart/Settings/Cart.php:56
+#: ../../addon/cart/Settings/Cart.php:56
msgid "Enable Test Catalog"
msgstr "Включить тестовый каталог"
-#: ../../extend/addon/hzaddons/cart/Settings/Cart.php:68
+#: ../../addon/cart/Settings/Cart.php:68
msgid "Enable Manual Payments"
msgstr "Включить ручные платежи"
-#: ../../extend/addon/hzaddons/cart/Settings/Cart.php:88
+#: ../../addon/cart/Settings/Cart.php:88
msgid "Base Merchant Currency"
msgstr "Основная торговая валюта"
-#: ../../extend/addon/hzaddons/cart/Settings/Cart.php:111
-#: ../../extend/addon/hzaddons/cart/cart.php:1262
+#: ../../addon/cart/Settings/Cart.php:111 ../../addon/cart/cart.php:1263
msgid "Cart Settings"
msgstr "Настройки карточек"
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:151
-msgid "Enable Subscription Management Module"
-msgstr "Включить модуль управления подписками"
-
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:223
-msgid ""
-"Cannot include subscription items with different terms in the same order."
-msgstr "Нельзя включать элементы подписки с разными условиями в том же заказе."
-
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:372
-msgid "Select Subscription to Edit"
-msgstr "Выбрать подписку для редактирования"
-
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:380
-msgid "Edit Subscriptions"
-msgstr "Редактировать подписки"
-
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:414
-msgid "Subscription SKU"
-msgstr "Код подписки"
-
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:419
-msgid "Catalog Description"
-msgstr "Описание каталога"
-
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:423
-msgid "Subscription available for purchase."
-msgstr "Подписка доступна для покупки."
-
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:428
-msgid "Maximum active subscriptions to this item per account."
-msgstr "Максимальное количество подписок на аккаунт для этой позиции"
-
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:431
-msgid "Subscription price."
-msgstr "Цена подписки."
-
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:435
-msgid "Quantity"
-msgstr "Количество"
-
-#: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:439
-msgid "Term"
-msgstr "Условия"
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:62
-msgid "Enable Hubzilla Services Module"
-msgstr "Включить модуль сервиса Hubzilla"
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:160
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:173
-msgid "New Sku"
-msgstr "Новый код"
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:195
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:209
-msgid "Cannot save edits to locked item."
-msgstr "Невозможно сохранить изменения заблокированной позиции."
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:243
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:330
-msgid "SKU not found."
-msgstr "Код не найден."
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:296
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:300
-msgid "Invalid Activation Directive."
-msgstr "Недействительная директива активации."
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:371
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:375
-msgid "Invalid Deactivation Directive."
-msgstr "Недействительная директива деактивации"
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:561
-msgid "Add to this privacy group"
-msgstr "Добавить в эту группу безопасности"
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:577
-msgid "Set user service class"
-msgstr "Установить класс обслуживания пользователя"
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:604
-msgid "You must be using a local account to purchase this service."
-msgstr "Вы должны использовать локальную учётноую запись для покупки этого сервиса."
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:644
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:252
-msgid "Changes Locked"
-msgstr "Изменения заблокированы"
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:648
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:256
-msgid "Item available for purchase."
-msgstr "Позиция доступна для приобретения."
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:655
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:263
-msgid "Price"
-msgstr "Цена"
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:659
-msgid "Add buyer to privacy group"
-msgstr "Добавить покупателя в группу безопасности"
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:664
-msgid "Add buyer as connection"
-msgstr "Добавить покупателя как контакт"
-
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:672
-#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:714
-msgid "Set Service Class"
-msgstr "Установить класс обслуживания"
-
-#: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:85
-msgid "Enable Paypal Button Module"
-msgstr "Включить модуль кнопки Paypal"
-
-#: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:93
-msgid "Use Production Key"
-msgstr "Использовать ключ Production"
-
-#: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:100
-msgid "Paypal Sandbox Client Key"
-msgstr "Ключ клиента Paypal Sandbox"
-
-#: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:107
-msgid "Paypal Sandbox Secret Key"
-msgstr "Секретный ключ Paypal Sandbox"
-
-#: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:113
-msgid "Paypal Production Client Key"
-msgstr "Ключ клиента Paypal Production"
-
-#: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:120
-msgid "Paypal Production Secret Key"
-msgstr "Секретный ключ Paypal Production"
-
-#: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:252
-msgid "Paypal button payments are not enabled."
-msgstr "Кнопка Paypal для платежей не включена."
-
-#: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:270
-msgid ""
-"Paypal button payments are not properly configured. Please choose another "
-"payment option."
-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
-msgid "Order not found."
-msgstr "Заказ не найден."
-
-#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:61
-msgid "Enable Manual Cart Module"
-msgstr "Включить модуль ручного управления карточками"
-
-#: ../../extend/addon/hzaddons/cart/myshop.php:30
+#: ../../addon/cart/myshop.php:30
msgid "Access Denied."
msgstr "Доступ запрещён."
-#: ../../extend/addon/hzaddons/cart/myshop.php:111
-#: ../../extend/addon/hzaddons/cart/cart.php:1330
+#: ../../addon/cart/myshop.php:111 ../../addon/cart/cart.php:1334
msgid "Order Not Found"
msgstr "Заказ не найден"
-#: ../../extend/addon/hzaddons/cart/myshop.php:186
-#: ../../extend/addon/hzaddons/cart/myshop.php:220
-#: ../../extend/addon/hzaddons/cart/myshop.php:269
-#: ../../extend/addon/hzaddons/cart/myshop.php:327
+#: ../../addon/cart/myshop.php:186 ../../addon/cart/myshop.php:220
+#: ../../addon/cart/myshop.php:269 ../../addon/cart/myshop.php:327
msgid "Invalid Item"
msgstr "Недействительный элемент"
-#: ../../extend/addon/hzaddons/cart/manual_payments.php:7
-msgid "Error: order mismatch. Please try again."
-msgstr "Ошибка: несоответствие заказа. Пожалуйста, попробуйте ещё раз"
-
-#: ../../extend/addon/hzaddons/cart/manual_payments.php:61
-msgid "Manual payments are not enabled."
-msgstr "Ручные платежи не подключены."
-
-#: ../../extend/addon/hzaddons/cart/manual_payments.php:77
-msgid "Finished"
-msgstr "Завершено"
-
-#: ../../extend/addon/hzaddons/cart/cart.php:159
+#: ../../addon/cart/cart.php:159
msgid "DB Cleanup Failure"
msgstr "Сбой очистки базы данных"
-#: ../../extend/addon/hzaddons/cart/cart.php:564
+#: ../../addon/cart/cart.php:565
msgid "[cart] Item Added"
msgstr "[cart] Элемент добавлен"
-#: ../../extend/addon/hzaddons/cart/cart.php:952
+#: ../../addon/cart/cart.php:953
msgid "Order already checked out."
msgstr "Заказ уже проверен."
-#: ../../extend/addon/hzaddons/cart/cart.php:1255
+#: ../../addon/cart/cart.php:1256
msgid "Drop database tables when uninstalling."
msgstr "Сбросить таблицы базы данных при деинсталляции"
-#: ../../extend/addon/hzaddons/cart/cart.php:1274
-#: ../../extend/addon/hzaddons/cart/cart.php:1277
+#: ../../addon/cart/cart.php:1275 ../../addon/cart/cart.php:1278
msgid "Shop"
msgstr "Магазин"
-#: ../../extend/addon/hzaddons/cart/cart.php:1391
+#: ../../addon/cart/cart.php:1395
msgid "Cart utilities for orders and payments"
msgstr "Утилиты карточек для заказов и платежей"
-#: ../../extend/addon/hzaddons/cart/cart.php:1429
+#: ../../addon/cart/cart.php:1433
msgid "You must be logged into the Grid to shop."
msgstr "Вы должны быть в сети для доступа к магазину"
-#: ../../extend/addon/hzaddons/cart/cart.php:1470
+#: ../../addon/cart/cart.php:1466
+#: ../../addon/cart/submodules/paypalbutton.php:392
+#: ../../addon/cart/manual_payments.php:68
+msgid "Order not found."
+msgstr "Заказ не найден."
+
+#: ../../addon/cart/cart.php:1474
msgid "Access denied."
msgstr "Доступ запрещён."
-#: ../../extend/addon/hzaddons/cart/cart.php:1522
-#: ../../extend/addon/hzaddons/cart/cart.php:1665
+#: ../../addon/cart/cart.php:1526 ../../addon/cart/cart.php:1669
msgid "No Order Found"
msgstr "Нет найденных заказов"
-#: ../../extend/addon/hzaddons/cart/cart.php:1531
+#: ../../addon/cart/cart.php:1535
msgid "An unknown error has occurred Please start again."
msgstr "Произошла неизвестная ошибка. Пожалуйста, начните снова."
-#: ../../extend/addon/hzaddons/cart/cart.php:1698
+#: ../../addon/cart/cart.php:1702
msgid "Invalid Payment Type. Please start again."
msgstr "Недействительный тип платежа. Пожалуйста, начните снова."
-#: ../../extend/addon/hzaddons/cart/cart.php:1705
+#: ../../addon/cart/cart.php:1709
msgid "Order not found"
msgstr "Заказ не найден"
-#: ../../extend/addon/hzaddons/nofed/nofed.php:42
-msgid "Federate"
-msgstr ""
+#: ../../addon/cart/submodules/paypalbutton.php:85
+msgid "Enable Paypal Button Module"
+msgstr "Включить модуль кнопки Paypal"
-#: ../../extend/addon/hzaddons/nofed/nofed.php:56
-msgid "nofed Settings saved."
-msgstr "Настройки nofed сохранены."
+#: ../../addon/cart/submodules/paypalbutton.php:93
+msgid "Use Production Key"
+msgstr "Использовать ключ Production"
-#: ../../extend/addon/hzaddons/nofed/nofed.php:72
-msgid "Allow Federation Toggle"
-msgstr "Разрешить переключение федерации"
+#: ../../addon/cart/submodules/paypalbutton.php:100
+msgid "Paypal Sandbox Client Key"
+msgstr "Ключ клиента Paypal Sandbox"
-#: ../../extend/addon/hzaddons/nofed/nofed.php:76
-msgid "Federate posts by default"
-msgstr "Разрешить федерацию публикаций по умолчанию"
+#: ../../addon/cart/submodules/paypalbutton.php:107
+msgid "Paypal Sandbox Secret Key"
+msgstr "Секретный ключ Paypal Sandbox"
-#: ../../extend/addon/hzaddons/nofed/nofed.php:80
-msgid "NoFed Settings"
-msgstr "Настройки NoFed"
+#: ../../addon/cart/submodules/paypalbutton.php:113
+msgid "Paypal Production Client Key"
+msgstr "Ключ клиента Paypal Production"
-#: ../../extend/addon/hzaddons/upgrade_info/upgrade_info.php:43
-msgid "Your channel has been upgraded to the latest $Projectname version."
-msgstr "Ваш канал был обновлён на последнюю версию $Projectname."
+#: ../../addon/cart/submodules/paypalbutton.php:120
+msgid "Paypal Production Secret Key"
+msgstr "Секретный ключ Paypal Production"
-#: ../../extend/addon/hzaddons/upgrade_info/upgrade_info.php:44
+#: ../../addon/cart/submodules/paypalbutton.php:252
+msgid "Paypal button payments are not enabled."
+msgstr "Кнопка Paypal для платежей не включена."
+
+#: ../../addon/cart/submodules/paypalbutton.php:270
msgid ""
-"To improve usability, we have converted some features into installable stand-"
-"alone apps."
-msgstr "Чтобы улучшить удобство использования, некоторые функции теперь доступны в виде устанавливаемых автономных приложений."
+"Paypal button payments are not properly configured. Please choose another "
+"payment option."
+msgstr "Кнопка Paypal для платежей настроена неправильно. Пожалуйста, используйте другой вариант оплаты."
-#: ../../extend/addon/hzaddons/upgrade_info/upgrade_info.php:45
-msgid "Please visit the $Projectname"
-msgstr "Пожалуйста, посетите $Projectname"
+#: ../../addon/cart/submodules/manualcat.php:61
+msgid "Enable Manual Cart Module"
+msgstr "Включить модуль ручного управления карточками"
-#: ../../extend/addon/hzaddons/upgrade_info/upgrade_info.php:46
-msgid "app store"
-msgstr "раздел \"Приложения\""
+#: ../../addon/cart/submodules/manualcat.php:173
+#: ../../addon/cart/submodules/hzservices.php:160
+msgid "New Sku"
+msgstr "Новый код"
-#: ../../extend/addon/hzaddons/upgrade_info/upgrade_info.php:47
-msgid "and install possibly missing apps."
-msgstr "и установите необходимые вам."
+#: ../../addon/cart/submodules/manualcat.php:209
+#: ../../addon/cart/submodules/hzservices.php:195
+msgid "Cannot save edits to locked item."
+msgstr "Невозможно сохранить изменения заблокированной позиции."
-#: ../../extend/addon/hzaddons/upgrade_info/upgrade_info.php:52
-msgid "Upgrade Info"
-msgstr "Сведения об обновлении"
+#: ../../addon/cart/submodules/manualcat.php:252
+#: ../../addon/cart/submodules/hzservices.php:644
+msgid "Changes Locked"
+msgstr "Изменения заблокированы"
-#: ../../extend/addon/hzaddons/upgrade_info/upgrade_info.php:56
-msgid "Do not show this again"
-msgstr "Больше не показывать"
+#: ../../addon/cart/submodules/manualcat.php:256
+#: ../../addon/cart/submodules/hzservices.php:648
+msgid "Item available for purchase."
+msgstr "Позиция доступна для приобретения."
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:123
-msgid "generic profile image"
-msgstr "Стандартное изображение профиля"
+#: ../../addon/cart/submodules/manualcat.php:263
+#: ../../addon/cart/submodules/hzservices.php:655
+msgid "Price"
+msgstr "Цена"
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:124
-msgid "random geometric pattern"
-msgstr "Случайный геометрический рисунок"
+#: ../../addon/cart/submodules/hzservices.php:62
+msgid "Enable Hubzilla Services Module"
+msgstr "Включить модуль сервиса Hubzilla"
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:125
-msgid "monster face"
-msgstr "Лицо чудовища"
+#: ../../addon/cart/submodules/hzservices.php:243
+#: ../../addon/cart/submodules/hzservices.php:330
+msgid "SKU not found."
+msgstr "Код не найден."
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:126
-msgid "computer generated face"
-msgstr "Сгенерированное компьютером лицо"
+#: ../../addon/cart/submodules/hzservices.php:296
+#: ../../addon/cart/submodules/hzservices.php:300
+msgid "Invalid Activation Directive."
+msgstr "Недействительная директива активации."
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:127
-msgid "retro arcade style face"
-msgstr "Лицо в стиле старой аркадной игры"
+#: ../../addon/cart/submodules/hzservices.php:371
+#: ../../addon/cart/submodules/hzservices.php:375
+msgid "Invalid Deactivation Directive."
+msgstr "Недействительная директива деактивации"
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:128
-msgid "Hub default profile photo"
-msgstr "Фотография профиля по умолчанию"
+#: ../../addon/cart/submodules/hzservices.php:561
+msgid "Add to this privacy group"
+msgstr "Добавить в эту группу безопасности"
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:143
-msgid "Information"
-msgstr "Информация"
+#: ../../addon/cart/submodules/hzservices.php:577
+msgid "Set user service class"
+msgstr "Установить класс обслуживания пользователя"
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:143
-msgid ""
-"Libravatar addon is installed, too. Please disable Libravatar addon or this "
-"Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if "
-"nothing was found at Libravatar."
-msgstr "Плагин Libravatar также установлен. Пожалуйста, отключите плагин Libravatar или этот плагин Gravatar. Если Плагин Libravatar ничего не найдёт, он вернётся в Gravatar."
+#: ../../addon/cart/submodules/hzservices.php:604
+msgid "You must be using a local account to purchase this service."
+msgstr "Вы должны использовать локальную учётноую запись для покупки этого сервиса."
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:150
-#: ../../extend/addon/hzaddons/msgfooter/msgfooter.php:46
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:91
-msgid "Save Settings"
-msgstr "Сохранить настройки"
+#: ../../addon/cart/submodules/hzservices.php:659
+msgid "Add buyer to privacy group"
+msgstr "Добавить покупателя в группу безопасности"
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:151
-msgid "Default avatar image"
-msgstr "Изображение аватара по умолчанию"
+#: ../../addon/cart/submodules/hzservices.php:664
+msgid "Add buyer as connection"
+msgstr "Добавить покупателя как контакт"
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:151
-msgid "Select default avatar image if none was found at Gravatar. See README"
-msgstr "Выберите изображения аватар по умолчанию если ничего не было найдено в Gravatar (см. README)."
+#: ../../addon/cart/submodules/hzservices.php:672
+#: ../../addon/cart/submodules/hzservices.php:714
+msgid "Set Service Class"
+msgstr "Установить класс обслуживания"
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:152
-msgid "Rating of images"
-msgstr "Оценки изображений"
+#: ../../addon/cart/submodules/subscriptions.php:151
+msgid "Enable Subscription Management Module"
+msgstr "Включить модуль управления подписками"
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:152
-msgid "Select the appropriate avatar rating for your site. See README"
-msgstr "Выберите подходящую оценку аватара для вашего сайта (см. README)."
+#: ../../addon/cart/submodules/subscriptions.php:223
+msgid ""
+"Cannot include subscription items with different terms in the same order."
+msgstr "Нельзя включать элементы подписки с разными условиями в том же заказе."
-#: ../../extend/addon/hzaddons/gravatar/gravatar.php:165
-msgid "Gravatar settings updated."
-msgstr "Настройки Gravatar обновлены."
+#: ../../addon/cart/submodules/subscriptions.php:372
+msgid "Select Subscription to Edit"
+msgstr "Выбрать подписку для редактирования"
-#: ../../extend/addon/hzaddons/hsse/Mod_Hsse.php:15
-msgid "WYSIWYG status editor"
-msgstr "WYSIWYG редактор статуса "
+#: ../../addon/cart/submodules/subscriptions.php:380
+msgid "Edit Subscriptions"
+msgstr "Редактировать подписки"
-#: ../../extend/addon/hzaddons/hsse/Mod_Hsse.php:34
-msgid "WYSIWYG Status"
-msgstr "WYSIWYG статус"
+#: ../../addon/cart/submodules/subscriptions.php:414
+msgid "Subscription SKU"
+msgstr "Код подписки"
-#: ../../extend/addon/hzaddons/planets/planets.php:121
-msgid "Planets Settings updated."
-msgstr "Настройки Planets обновлены."
+#: ../../addon/cart/submodules/subscriptions.php:419
+msgid "Catalog Description"
+msgstr "Описание каталога"
-#: ../../extend/addon/hzaddons/planets/planets.php:149
-msgid "Enable Planets Plugin"
-msgstr "Включить плагин Planets"
+#: ../../addon/cart/submodules/subscriptions.php:423
+msgid "Subscription available for purchase."
+msgstr "Подписка доступна для покупки."
-#: ../../extend/addon/hzaddons/planets/planets.php:153
-msgid "Planets Settings"
-msgstr "Настройки Planets"
+#: ../../addon/cart/submodules/subscriptions.php:428
+msgid "Maximum active subscriptions to this item per account."
+msgstr "Максимальное количество подписок на аккаунт для этой позиции"
-#: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:15
-msgid "Add some colour to tag clouds"
-msgstr "Добавить немного цвета для облака тегов"
+#: ../../addon/cart/submodules/subscriptions.php:431
+msgid "Subscription price."
+msgstr "Цена подписки."
-#: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:34
-msgid "Rainbow Tag"
-msgstr "Радуга тегов"
+#: ../../addon/cart/submodules/subscriptions.php:435
+msgid "Quantity"
+msgstr "Количество"
-#: ../../extend/addon/hzaddons/chess/chess.php:353
-#: ../../extend/addon/hzaddons/chess/chess.php:542
-msgid "Invalid game."
-msgstr "Недействительная игра"
+#: ../../addon/cart/submodules/subscriptions.php:439
+msgid "Term"
+msgstr "Условия"
-#: ../../extend/addon/hzaddons/chess/chess.php:359
-#: ../../extend/addon/hzaddons/chess/chess.php:582
-msgid "You are not a player in this game."
-msgstr "Вы не играете в эту игру."
+#: ../../addon/cart/manual_payments.php:7
+msgid "Error: order mismatch. Please try again."
+msgstr "Ошибка: несоответствие заказа. Пожалуйста, попробуйте ещё раз"
-#: ../../extend/addon/hzaddons/chess/chess.php:415
-msgid "You must be a local channel to create a game."
-msgstr "Ваш канал должен быть локальным чтобы создать игру."
+#: ../../addon/cart/manual_payments.php:61
+msgid "Manual payments are not enabled."
+msgstr "Ручные платежи не подключены."
-#: ../../extend/addon/hzaddons/chess/chess.php:433
-msgid "You must select one opponent that is not yourself."
-msgstr "Вы должны выбрать противника который не является вами."
+#: ../../addon/cart/manual_payments.php:77
+msgid "Finished"
+msgstr "Завершено"
-#: ../../extend/addon/hzaddons/chess/chess.php:444
-msgid "Random color chosen."
-msgstr "Выбран случайный цвет."
+#: ../../addon/piwik/piwik.php:85
+msgid ""
+"This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
+"analytics tool."
+msgstr "Этот сайт отслеживается с помощью инструментов аналитики <a href='http://www.piwik.org'>Piwik</a>."
-#: ../../extend/addon/hzaddons/chess/chess.php:452
-msgid "Error creating new game."
-msgstr "Ошибка создания новой игры."
+#: ../../addon/piwik/piwik.php:88
+#, php-format
+msgid ""
+"If you do not want that your visits are logged this way you <a href='%s'>can "
+"set a cookie to prevent Piwik from tracking further visits of the site</a> "
+"(opt-out)."
+msgstr "Если вы не хотите, чтобы ваши визиты регистрировались таким образом, вы <a href='%s'>можете отключить cookie с тем, чтобы Piwik не отслеживал дальнейшие посещения сайта</a>."
-#: ../../extend/addon/hzaddons/chess/chess.php:500
-msgid "You must select a local channel /chess/channelname"
-msgstr "Вы должны выбрать локальный канал /chess/channelname"
+#: ../../addon/piwik/piwik.php:96
+msgid "Piwik Base URL"
+msgstr "Базовый URL Piwik"
-#: ../../extend/addon/hzaddons/chess/chess.php:1066
-msgid "Enable notifications"
-msgstr "Включить оповещения"
+#: ../../addon/piwik/piwik.php:96
+msgid ""
+"Absolute path to your Piwik installation. (without protocol (http/s), with "
+"trailing slash)"
+msgstr "Абсолютный путь к вашей установке Piwik (без типа протокола, с начальным слэшем)"
-#: ../../extend/addon/hzaddons/gnusoc/gnusoc.php:451
-msgid "Follow"
-msgstr "Отслеживать"
+#: ../../addon/piwik/piwik.php:97
+msgid "Site ID"
+msgstr "ID сайта"
-#: ../../extend/addon/hzaddons/gnusoc/gnusoc.php:454
-#, php-format
-msgid "%1$s is now following %2$s"
-msgstr "%1$s сейчас отслеживает %2$s"
+#: ../../addon/piwik/piwik.php:98
+msgid "Show opt-out cookie link?"
+msgstr "Показывать ссылку на отказ от использования cookies?"
-#: ../../extend/addon/hzaddons/gnusoc/Mod_Gnusoc.php:16
-msgid ""
-"The GNU-Social protocol does not support location independence. Connections "
-"you make within that network may be unreachable from alternate channel "
-"locations."
-msgstr "Протокол GNU-Social не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала."
+#: ../../addon/piwik/piwik.php:99
+msgid "Asynchronous tracking"
+msgstr "Асинхронное отслеживание"
-#: ../../extend/addon/hzaddons/gnusoc/Mod_Gnusoc.php:34
-msgid "GNU-Social Protocol"
-msgstr "Протокол GNU-Social"
+#: ../../addon/piwik/piwik.php:100
+msgid "Enable frontend JavaScript error tracking"
+msgstr "Включить отслеживание ошибок JavaScript на фронтенде."
-#: ../../extend/addon/hzaddons/pageheader/pageheader.php:43
-msgid "Message to display on every page on this server"
-msgstr "Отображаемое сообщение на каждой странице на этом сервере."
+#: ../../addon/piwik/piwik.php:100
+msgid "This feature requires Piwik >= 2.2.0"
+msgstr "Эта функция требует версию Piwik >= 2.2.0"
-#: ../../extend/addon/hzaddons/pageheader/pageheader.php:48
-msgid "Pageheader Settings"
-msgstr "Настройки шапки страницы"
+#: ../../addon/tour/tour.php:76
+msgid "Edit your profile and change settings."
+msgstr "Отредактировать ваш профиль и изменить настройки."
-#: ../../extend/addon/hzaddons/pageheader/pageheader.php:64
-msgid "pageheader Settings saved."
-msgstr "Настройки шапки страницы сохранены."
+#: ../../addon/tour/tour.php:77
+msgid "Click here to see activity from your connections."
+msgstr "Нажмите сюда для отображения активности ваши контактов."
-#: ../../extend/addon/hzaddons/msgfooter/msgfooter.php:47
-msgid "text to include in all outgoing posts from this site"
-msgstr "текст, который будет добавлен во все исходящие публикации с этого сайта"
+#: ../../addon/tour/tour.php:78
+msgid "Click here to see your channel home."
+msgstr "Нажмите сюда чтобы увидеть главную страницу вашего канала."
-#: ../../extend/addon/hzaddons/hubwall/hubwall.php:19
-msgid "Send email to all members"
-msgstr "Отправить email всем участникам"
+#: ../../addon/tour/tour.php:79
+msgid "You can access your private messages from here."
+msgstr "Вы можете получить доступ с личной переписке здесь."
-#: ../../extend/addon/hzaddons/hubwall/hubwall.php:73
-#, php-format
-msgid "%1$d of %2$d messages sent."
-msgstr "%1$d из %2$d сообщений отправлено."
+#: ../../addon/tour/tour.php:80
+msgid "Create new events here."
+msgstr "Создать новое событие здесь."
-#: ../../extend/addon/hzaddons/hubwall/hubwall.php:81
-msgid "Send email to all hub members."
-msgstr "Отправить email всем участникам узла."
+#: ../../addon/tour/tour.php:81
+msgid ""
+"You can accept new connections and change permissions for existing ones "
+"here. You can also e.g. create groups of contacts."
+msgstr "Вы можете подключать новые контакты и менять разрешения для существующих здесь. Также вы можете создавать их группы."
-#: ../../extend/addon/hzaddons/hubwall/hubwall.php:93
-msgid "Sender Email address"
-msgstr "Адрес электронной почты отправителя"
+#: ../../addon/tour/tour.php:82
+msgid "System notifications will arrive here"
+msgstr "Системные оповещения будут показываться здесь"
-#: ../../extend/addon/hzaddons/hubwall/hubwall.php:94
-msgid "Test mode (only send to hub administrator)"
-msgstr "Тестовый режим (отправка только администратору узла)"
+#: ../../addon/tour/tour.php:83
+msgid "Search for content and users"
+msgstr "Поиск пользователей и содержимого"
-#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:211
-msgid "Deactivate the feature"
-msgstr "Деактивировать функцию"
+#: ../../addon/tour/tour.php:84
+msgid "Browse for new contacts"
+msgstr "Поиск новых контактов"
-#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:215
-msgid "Hide the button and show the smilies directly."
-msgstr "Скрыть кнопку и сразу показывать смайлики."
+#: ../../addon/tour/tour.php:85
+msgid "Launch installed apps"
+msgstr "Запустить установленные приложения"
-#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:219
-msgid "Smileybutton Settings"
-msgstr "Настройки кнопки смайликов"
+#: ../../addon/tour/tour.php:86
+msgid "Looking for help? Click here."
+msgstr "Нужна помощь? Нажмите сюда."
-#: ../../extend/addon/hzaddons/frphotos/frphotos.php:92
-msgid "Friendica Photo Album Import"
-msgstr "Импортировать альбом фотографий Friendica"
+#: ../../addon/tour/tour.php:87
+msgid ""
+"New events have occurred in your network. Click here to see what has "
+"happened!"
+msgstr "Новые события произошли в вашей сети. Нажмите здесь для того, чтобы знать что случилось!"
-#: ../../extend/addon/hzaddons/frphotos/frphotos.php:93
-msgid "This will import all your Friendica photo albums to this Red channel."
-msgstr "Это позволит импортировать все ваши альбомы фотографий Friendica в этот канал."
+#: ../../addon/tour/tour.php:88
+msgid "You have received a new private message. Click here to see from who!"
+msgstr "Вы получили новое личное сообщение. Нажмите чтобы увидеть от кого!"
-#: ../../extend/addon/hzaddons/frphotos/frphotos.php:94
-msgid "Friendica Server base URL"
-msgstr "Базовый URL сервера Friendica"
+#: ../../addon/tour/tour.php:89
+msgid "There are events this week. Click here too see which!"
+msgstr "На этой неделе есть события. Нажмите здесь чтобы увидеть какие!"
-#: ../../extend/addon/hzaddons/frphotos/frphotos.php:95
-msgid "Friendica Login Username"
-msgstr "Имя пользователя для входа Friendica"
+#: ../../addon/tour/tour.php:90
+msgid "You have received a new introduction. Click here to see who!"
+msgstr "Вы были представлены. Нажмите чтобы увидеть кому!"
-#: ../../extend/addon/hzaddons/frphotos/frphotos.php:96
-msgid "Friendica Login Password"
-msgstr "Пароль для входа Firendica"
+#: ../../addon/tour/tour.php:91
+msgid ""
+"There is a new system notification. Click here to see what has happened!"
+msgstr "Это новое системное уведомление. Нажмите чтобы посмотреть что случилось!"
-#: ../../extend/addon/hzaddons/upload_limits/upload_limits.php:25
-msgid "Show Upload Limits"
-msgstr "Показать ограничения на загрузку"
+#: ../../addon/tour/tour.php:94
+msgid "Click here to share text, images, videos and sound."
+msgstr "Нажмите сюда чтобы поделиться текстом, изображениями, видео или треком."
-#: ../../extend/addon/hzaddons/upload_limits/upload_limits.php:27
-msgid "Hubzilla configured maximum size: "
-msgstr "Максимальный размер настроенный в Hubzilla:"
+#: ../../addon/tour/tour.php:95
+msgid "You can write an optional title for your update (good for long posts)."
+msgstr "Вы можете написать необязательный заголовок для вашей публикации (желательно для больших публикаций)."
-#: ../../extend/addon/hzaddons/upload_limits/upload_limits.php:28
-msgid "PHP upload_max_filesize: "
-msgstr ""
+#: ../../addon/tour/tour.php:96
+msgid "Entering some categories here makes it easier to find your post later."
+msgstr "Введите категории здесь чтобы было проще найти вашу публикацию позднее."
-#: ../../extend/addon/hzaddons/upload_limits/upload_limits.php:29
-msgid "PHP post_max_size (must be larger than upload_max_filesize): "
-msgstr "PHP post_max_size (должен быть больше чем upload_max_filesize): "
+#: ../../addon/tour/tour.php:97
+msgid "Share photos, links, location, etc."
+msgstr "Поделиться фотографией, ссылками, местоположение и т.п."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:45
-msgid "Flattr this!"
-msgstr "Flattr это!"
+#: ../../addon/tour/tour.php:98
+msgid ""
+"Only want to share content for a while? Make it expire at a certain date."
+msgstr "Хотите только поделиться временным содержимым? Установите срок его действия."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:83
-msgid "Flattr widget settings updated."
-msgstr "Настройки виджета Flattr обновлены."
+#: ../../addon/tour/tour.php:99
+msgid "You can password protect content."
+msgstr "Вы можете защитить содержимое паролем."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:100
-msgid "Flattr user"
-msgstr "Пользователь Flattr"
+#: ../../addon/tour/tour.php:100
+msgid "Choose who you share with."
+msgstr "Выбрать с кем поделиться."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:104
-msgid "URL of the Thing to flattr"
-msgstr "URL ccылки на Flattr"
+#: ../../addon/tour/tour.php:102
+msgid "Click here when you are done."
+msgstr "Нажмите здесь когда закончите."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:104
-msgid "If empty channel URL is used"
-msgstr "Если пусто, то используется URL канала"
+#: ../../addon/tour/tour.php:105
+msgid "Adjust from which channels posts should be displayed."
+msgstr "Настройте из каких каналов должны отображаться публикации."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:108
-msgid "Title of the Thing to flattr"
-msgstr "Заголовок вещи на Flattr"
+#: ../../addon/tour/tour.php:106
+msgid "Only show posts from channels in the specified privacy group."
+msgstr "Показывать только публикации из определённой группы безопасности."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:108
-msgid "If empty \"channel name on The Hubzilla\" will be used"
-msgstr "Если пусто, то будет использовано \"Название канала Hubzilla\""
+#: ../../addon/tour/tour.php:110
+msgid ""
+"Easily find posts containing tags (keywords preceded by the \"#\" symbol)."
+msgstr "Лёгкий поиск сообщения, содержащего теги (ключевые слова, которым предшествует символ #)."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:112
-msgid "Static or dynamic flattr button"
-msgstr "Статическая или динамическая кнопка Flattr"
+#: ../../addon/tour/tour.php:111
+msgid "Easily find posts in given category."
+msgstr "Лёгкий поиск публикаций в данной категории."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:112
-msgid "static"
-msgstr "статическая"
+#: ../../addon/tour/tour.php:112
+msgid "Easily find posts by date."
+msgstr "Лёгкий поиск публикаций по дате."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:112
-msgid "dynamic"
-msgstr "динамическая"
+#: ../../addon/tour/tour.php:113
+msgid ""
+"Suggested users who have volounteered to be shown as suggestions, and who we "
+"think you might find interesting."
+msgstr "Рекомендуемые пользователи, которые были представлены в качестве предложений, и которые, по нашему мнению, могут оказаться интересными."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:116
-msgid "Alignment of the widget"
-msgstr "Выравнивание виджета"
+#: ../../addon/tour/tour.php:114
+msgid "Here you see channels you have connected to."
+msgstr "Здесь вы видите каналы, к которым вы подключились."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:116
-msgid "left"
-msgstr "слева"
+#: ../../addon/tour/tour.php:115
+msgid "Save your search so you can repeat it at a later date."
+msgstr "Сохраните ваш поиск с тем, чтобы повторить его позже."
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:116
-msgid "right"
-msgstr "справа"
+#: ../../addon/tour/tour.php:118
+msgid ""
+"If you see this icon you can be sure that the sender is who it say it is. It "
+"is normal that it is not always possible to verify the sender, so the icon "
+"will be missing sometimes. There is usually no need to worry about that."
+msgstr "Если вы видите этот значок, вы можете быть уверены, что отправитель - это тот, кто это говорит. Это нормально, что не всегда можно проверить отправителя, поэтому значок иногда будет отсутствовать. Обычно об этом не нужно беспокоиться."
+
+#: ../../addon/tour/tour.php:119
+msgid ""
+"Danger! It seems someone tried to forge a message! This message is not "
+"necessarily from who it says it is from!"
+msgstr "Опасность! Кажется, кто-то пытался подделать сообщение! Это сообщение не обязательно от того, от кого оно значится!"
+
+#: ../../addon/tour/tour.php:126
+msgid ""
+"Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can "
+"pause it at any time and continue where you left off by reloading the page, "
+"or navigting to another page.</p><p>You can also advance by pressing the "
+"return key"
+msgstr "Добро пожаловать в Hubzilla! Желаете получить обзор пользовательского интерфейса?</p> <p>Вы можете его приостановаить и в любое время перезагрузив страницу или перейдя на другую.</p><p>Также вы можете нажать клавишу \"Назад\""
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:120
-msgid "Enable Flattr widget"
-msgstr "Включить виджет Flattr"
+#: ../../addon/sendzid/Mod_Sendzid.php:14
+msgid "Send your identity to all websites"
+msgstr "Отправить ваши данные на все веб-сайты"
-#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:124
-msgid "Flattr Widget Settings"
-msgstr "Настройки виджета Flattr"
+#: ../../addon/sendzid/Mod_Sendzid.php:20
+msgid "Sendzid App"
+msgstr "Приложение \"Отправить ZID\""
-#: ../../extend/addon/hzaddons/tictac/tictac.php:21
+#: ../../addon/sendzid/Mod_Sendzid.php:32
+msgid "Send ZID"
+msgstr "Отправить ZID"
+
+#: ../../addon/tictac/tictac.php:21
msgid "Three Dimensional Tic-Tac-Toe"
msgstr "Tic-Tac-Toe в трёх измерениях"
-#: ../../extend/addon/hzaddons/tictac/tictac.php:54
+#: ../../addon/tictac/tictac.php:54
msgid "3D Tic-Tac-Toe"
msgstr ""
-#: ../../extend/addon/hzaddons/tictac/tictac.php:59
+#: ../../addon/tictac/tictac.php:59
msgid "New game"
msgstr "Новая игра"
-#: ../../extend/addon/hzaddons/tictac/tictac.php:60
+#: ../../addon/tictac/tictac.php:60
msgid "New game with handicap"
msgstr "Новая игра с форой"
-#: ../../extend/addon/hzaddons/tictac/tictac.php:61
+#: ../../addon/tictac/tictac.php:61
msgid ""
"Three dimensional tic-tac-toe is just like the traditional game except that "
"it is played on multiple levels simultaneously. "
msgstr "Трехмерный Tic-Tac-Toe похож на традиционную игру, за исключением того, что игра идёт на нескольких уровнях одновременно."
-#: ../../extend/addon/hzaddons/tictac/tictac.php:62
+#: ../../addon/tictac/tictac.php:62
msgid ""
"In this case there are three levels. You win by getting three in a row on "
"any level, as well as up, down, and diagonally across the different levels."
msgstr "Имеется три уровня. Вы выигрываете, получая три подряд на любом уровне, а также вверх, вниз и по диагонали на разных уровнях."
-#: ../../extend/addon/hzaddons/tictac/tictac.php:64
+#: ../../addon/tictac/tictac.php:64
msgid ""
"The handicap game disables the center position on the middle level because "
"the player claiming this square often has an unfair advantage."
msgstr "Игра с форой отключает центральную позицию на среднем уровне, потому что игрок, претендующий на этот квадрат, часто имеет несправедливое преимущество."
-#: ../../extend/addon/hzaddons/tictac/tictac.php:183
+#: ../../addon/tictac/tictac.php:183
msgid "You go first..."
msgstr "Вы начинаете..."
-#: ../../extend/addon/hzaddons/tictac/tictac.php:188
+#: ../../addon/tictac/tictac.php:188
msgid "I'm going first this time..."
msgstr "На этот раз начинаю я..."
-#: ../../extend/addon/hzaddons/tictac/tictac.php:194
+#: ../../addon/tictac/tictac.php:194
msgid "You won!"
msgstr "Вы выиграли!"
-#: ../../extend/addon/hzaddons/tictac/tictac.php:200
-#: ../../extend/addon/hzaddons/tictac/tictac.php:225
+#: ../../addon/tictac/tictac.php:200 ../../addon/tictac/tictac.php:225
msgid "\"Cat\" game!"
msgstr "Ничья!"
-#: ../../extend/addon/hzaddons/tictac/tictac.php:223
+#: ../../addon/tictac/tictac.php:223
msgid "I won!"
msgstr "Я выиграл!"
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:31
-msgid "XMPP settings updated."
-msgstr "Настройки XMPP обновлены."
-
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:53
-msgid "Enable Chat"
-msgstr "Включить чат"
+#: ../../addon/pageheader/Mod_Pageheader.php:22
+msgid "pageheader Settings saved."
+msgstr "Настройки шапки страницы сохранены."
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:58
-msgid "Individual credentials"
-msgstr "Индивидуальные разрешения"
+#: ../../addon/pageheader/Mod_Pageheader.php:34
+msgid "Page Header App"
+msgstr "Приложение \"Заголовок страницы\""
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:64
-msgid "Jabber BOSH server"
-msgstr "Сервер Jabber BOSH"
+#: ../../addon/pageheader/Mod_Pageheader.php:35
+msgid "Inserts a page header"
+msgstr "Вставляет заголовок страницы"
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:69
-msgid "XMPP Settings"
-msgstr "Настройки XMPP"
-
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:92
-msgid "Jabber BOSH host"
-msgstr "Узел Jabber BOSH"
+#: ../../addon/pageheader/Mod_Pageheader.php:43
+msgid "Message to display on every page on this server"
+msgstr "Отображаемое сообщение на каждой странице на этом сервере."
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:93
-msgid "Use central userbase"
-msgstr "Использовать центральную базу данных"
+#: ../../addon/pageheader/Mod_Pageheader.php:51
+msgid "Page Header"
+msgstr "Заголовок страницы"
-#: ../../extend/addon/hzaddons/xmpp/xmpp.php:93
+#: ../../addon/authchoose/Mod_Authchoose.php:22
msgid ""
-"If enabled, members will automatically login to an ejabberd server that has "
-"to be installed on this machine with synchronized credentials via the "
-"\"auth_ejabberd.php\" script."
-msgstr "Если включено, участники автоматически войдут на сервер ejabberd, который должен быть установлен на этом компьютере с синхронизированными учетными данными через скрипт \"auth_ejabberd.php\"."
-
-#: ../../extend/addon/hzaddons/notifyadmin/notifyadmin.php:34
-msgid "New registration"
-msgstr "Новая регистрация"
-
-#: ../../extend/addon/hzaddons/notifyadmin/notifyadmin.php:42
-#, php-format
-msgid "Message sent to %s. New account registration: %s"
-msgstr "Сообщение отправлено в %s. Регистрация нового аккаунта: %s"
-
-#: ../../extend/addon/hzaddons/sendzid/Mod_Sendzid.php:14
-msgid "Send your identity to all websites"
-msgstr "Отправить ваши данные на все веб-сайты"
+"Allow magic authentication only to websites of your immediate connections"
+msgstr "Разрешить волшебную аутентификацию только на сайтах ваших непосредственных соединений"
-#: ../../extend/addon/hzaddons/sendzid/Mod_Sendzid.php:32
-msgid "Send ZID"
-msgstr "Отправить ZID"
+#: ../../addon/authchoose/Mod_Authchoose.php:28
+#: ../../addon/authchoose/Mod_Authchoose.php:33
+msgid "Authchoose App"
+msgstr "Приложение Authchoose"
-#: ../../extend/addon/hzaddons/wholikesme/wholikesme.php:29
-msgid "Who likes me?"
-msgstr "Кому я нравлюсь?"
+#: ../../addon/authchoose/Mod_Authchoose.php:39
+msgid "Authchoose"
+msgstr ""
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:19
+#: ../../addon/moremoods/moremoods.php:19
msgid "lonely"
msgstr "одинокий"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:20
+#: ../../addon/moremoods/moremoods.php:20
msgid "drunk"
msgstr "пьяный"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:21
+#: ../../addon/moremoods/moremoods.php:21
msgid "horny"
msgstr "возбуждённый"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:22
+#: ../../addon/moremoods/moremoods.php:22
msgid "stoned"
msgstr "под кайфом"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:23
+#: ../../addon/moremoods/moremoods.php:23
msgid "fucked up"
msgstr "облажался"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:24
+#: ../../addon/moremoods/moremoods.php:24
msgid "clusterfucked"
msgstr "в полной заднице"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:25
+#: ../../addon/moremoods/moremoods.php:25
msgid "crazy"
msgstr "сумасшедший"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:26
+#: ../../addon/moremoods/moremoods.php:26
msgid "hurt"
msgstr "обиженный"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:27
+#: ../../addon/moremoods/moremoods.php:27
msgid "sleepy"
msgstr "сонный"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:28
+#: ../../addon/moremoods/moremoods.php:28
msgid "grumpy"
msgstr "сердитый"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:29
+#: ../../addon/moremoods/moremoods.php:29
msgid "high"
msgstr "кайфует"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:30
+#: ../../addon/moremoods/moremoods.php:30
msgid "semi-conscious"
msgstr "в полубезсознании"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:31
+#: ../../addon/moremoods/moremoods.php:31
msgid "in love"
msgstr "влюблённый"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:32
+#: ../../addon/moremoods/moremoods.php:32
msgid "in lust"
msgstr "похотливый"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:33
+#: ../../addon/moremoods/moremoods.php:33
msgid "naked"
msgstr "обнажённый"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:34
+#: ../../addon/moremoods/moremoods.php:34
msgid "stinky"
msgstr "вонючий"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:35
+#: ../../addon/moremoods/moremoods.php:35
msgid "sweaty"
msgstr "потный"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:36
+#: ../../addon/moremoods/moremoods.php:36
msgid "bleeding out"
msgstr "истекающий кровью"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:37
+#: ../../addon/moremoods/moremoods.php:37
msgid "victorious"
msgstr "победивший"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:38
+#: ../../addon/moremoods/moremoods.php:38
msgid "defeated"
msgstr "проигравший"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:39
+#: ../../addon/moremoods/moremoods.php:39
msgid "envious"
msgstr "завидует"
-#: ../../extend/addon/hzaddons/moremoods/moremoods.php:40
+#: ../../addon/moremoods/moremoods.php:40
msgid "jealous"
msgstr "ревнует"
-#: ../../extend/addon/hzaddons/visage/visage.php:93
-msgid "Recent Channel/Profile Viewers"
-msgstr "Последние просмотры канала / профиля"
+#: ../../addon/xmpp/Mod_Xmpp.php:23
+msgid "XMPP settings updated."
+msgstr "Настройки XMPP обновлены."
+
+#: ../../addon/xmpp/Mod_Xmpp.php:35
+msgid "XMPP App"
+msgstr "Приложение XMPP"
+
+#: ../../addon/xmpp/Mod_Xmpp.php:36
+msgid "Embedded XMPP (Jabber) client"
+msgstr "Встренный клиент XMPP (Jabber)"
+
+#: ../../addon/xmpp/Mod_Xmpp.php:52
+msgid "Individual credentials"
+msgstr "Индивидуальные разрешения"
+
+#: ../../addon/xmpp/Mod_Xmpp.php:58
+msgid "Jabber BOSH server"
+msgstr "Сервер Jabber BOSH"
+
+#: ../../addon/xmpp/Mod_Xmpp.php:67
+msgid "XMPP Settings"
+msgstr "Настройки XMPP"
+
+#: ../../addon/xmpp/xmpp.php:44
+msgid "Jabber BOSH host"
+msgstr "Узел Jabber BOSH"
+
+#: ../../addon/xmpp/xmpp.php:45
+msgid "Use central userbase"
+msgstr "Использовать центральную базу данных"
+
+#: ../../addon/xmpp/xmpp.php:45
+msgid ""
+"If enabled, members will automatically login to an ejabberd server that has "
+"to be installed on this machine with synchronized credentials via the "
+"\"auth_ejabberd.php\" script."
+msgstr "Если включено, участники автоматически войдут на сервер ejabberd, который должен быть установлен на этом компьютере с синхронизированными учетными данными через скрипт \"auth_ejabberd.php\"."
+
+#: ../../addon/wholikesme/wholikesme.php:29
+msgid "Who likes me?"
+msgstr "Кому я нравлюсь?"
+
+#: ../../addon/pumpio/Mod_Pumpio.php:40
+msgid "Pump.io Settings saved."
+msgstr "Настройки Pump.io сохранены."
-#: ../../extend/addon/hzaddons/visage/visage.php:98
-msgid "This plugin/addon has not been configured."
-msgstr "Это расширение не было настроено."
+#: ../../addon/pumpio/Mod_Pumpio.php:53
+msgid "Pump.io Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Pump.io\""
-#: ../../extend/addon/hzaddons/visage/visage.php:99
+#: ../../addon/pumpio/Mod_Pumpio.php:54
+msgid "Relay public posts to pump.io"
+msgstr "Пересылает общедоступные публикации в Pump.io"
+
+#: ../../addon/pumpio/Mod_Pumpio.php:73
+msgid "Pump.io servername"
+msgstr "Имя сервера Pump.io"
+
+#: ../../addon/pumpio/Mod_Pumpio.php:73
+msgid "Without \"http://\" or \"https://\""
+msgstr "Без \"http://\" или \"https://\""
+
+#: ../../addon/pumpio/Mod_Pumpio.php:77
+msgid "Pump.io username"
+msgstr "Имя пользователя Pump.io"
+
+#: ../../addon/pumpio/Mod_Pumpio.php:77
+msgid "Without the servername"
+msgstr "без имени сервера"
+
+#: ../../addon/pumpio/Mod_Pumpio.php:88
+msgid "You are not authenticated to pumpio"
+msgstr "Вы не аутентифицированы на Pump.io"
+
+#: ../../addon/pumpio/Mod_Pumpio.php:90
+msgid "(Re-)Authenticate your pump.io connection"
+msgstr "Аутентифицировать (повторно) ваше соединение с Pump.io"
+
+#: ../../addon/pumpio/Mod_Pumpio.php:94
+msgid "Post to pump.io by default"
+msgstr "Публиковать в Pump.io по умолчанию"
+
+#: ../../addon/pumpio/Mod_Pumpio.php:98
+msgid "Should posts be public"
+msgstr "Публикации должны быть общедоступными"
+
+#: ../../addon/pumpio/Mod_Pumpio.php:102
+msgid "Mirror all public posts"
+msgstr "Отображать все общедоступные публикации"
+
+#: ../../addon/pumpio/Mod_Pumpio.php:112
+msgid "Pump.io Crosspost Connector"
+msgstr "Пересылка публикаций Pump.io"
+
+#: ../../addon/pumpio/pumpio.php:152
+msgid "You are now authenticated to pumpio."
+msgstr "Вы аутентифицированы в Pump.io"
+
+#: ../../addon/pumpio/pumpio.php:153
+msgid "return to the featured settings page"
+msgstr "Вернутся к странице настроек"
+
+#: ../../addon/pumpio/pumpio.php:168
+msgid "Post to Pump.io"
+msgstr "Опубликовать в Pump.io"
+
+#: ../../addon/ldapauth/ldapauth.php:70
+msgid "An account has been created for you."
+msgstr "Учётная запись, которая была для вас создана."
+
+#: ../../addon/ldapauth/ldapauth.php:77
+msgid "Authentication successful but rejected: account creation is disabled."
+msgstr "Аутентификация выполнена успешно, но отклонена: создание учетной записи отключено."
+
+#: ../../addon/opensearch/opensearch.php:26
#, php-format
-msgid "Please visit the Visage settings on %s"
-msgstr "Пожалуйста, посетите настройки Visage на %s"
+msgctxt "opensearch"
+msgid "Search %1$s (%2$s)"
+msgstr "Искать %1$s (%2$s)"
-#: ../../extend/addon/hzaddons/visage/visage.php:99
-msgid "your feature settings page"
-msgstr "страница ваших установочных параметров"
+#: ../../addon/opensearch/opensearch.php:28
+msgctxt "opensearch"
+msgid "$Projectname"
+msgstr ""
-#: ../../extend/addon/hzaddons/visage/visage.php:112
-msgid "No entries."
-msgstr "Нет записей."
+#: ../../addon/opensearch/opensearch.php:43
+msgid "Search $Projectname"
+msgstr "Поиск $Projectname"
-#: ../../extend/addon/hzaddons/visage/visage.php:166
-msgid "Enable Visage Visitor Logging"
-msgstr "Включить журналирование посетителей Visage"
+#: ../../addon/redfiles/redfiles.php:119
+msgid "Redmatrix File Storage Import"
+msgstr "Импорт файлового хранилища Redmatrix"
-#: ../../extend/addon/hzaddons/visage/visage.php:170
-msgid "Visage Settings"
-msgstr "Настройки Visage"
+#: ../../addon/redfiles/redfiles.php:120
+msgid "This will import all your Redmatrix cloud files to this channel."
+msgstr "Это позволит импортировать все ваши файлы в Redmatrix в этот канал."
-#: ../../extend/addon/hzaddons/irc/irc.php:45
-msgid "Channels to auto connect"
-msgstr "Каналы для автоматического подключения"
+#: ../../addon/redfiles/redfilehelper.php:64
+msgid "file"
+msgstr "файл"
-#: ../../extend/addon/hzaddons/irc/irc.php:45
-#: ../../extend/addon/hzaddons/irc/irc.php:49
-msgid "Comma separated list"
-msgstr "Список, разделённый запятыми"
+#: ../../addon/hubwall/hubwall.php:19
+msgid "Send email to all members"
+msgstr "Отправить email всем участникам"
-#: ../../extend/addon/hzaddons/irc/irc.php:49
-#: ../../extend/addon/hzaddons/irc/irc.php:96
-msgid "Popular Channels"
-msgstr "Популярные каналы"
+#: ../../addon/hubwall/hubwall.php:73
+#, php-format
+msgid "%1$d of %2$d messages sent."
+msgstr "%1$d из %2$d сообщений отправлено."
-#: ../../extend/addon/hzaddons/irc/irc.php:53
-msgid "IRC Settings"
-msgstr "Настройки IRC"
+#: ../../addon/hubwall/hubwall.php:81
+msgid "Send email to all hub members."
+msgstr "Отправить email всем участникам узла."
-#: ../../extend/addon/hzaddons/irc/irc.php:69
-msgid "IRC settings saved."
-msgstr "Настройки IRC сохранены"
+#: ../../addon/hubwall/hubwall.php:93
+msgid "Sender Email address"
+msgstr "Адрес электронной почты отправителя"
-#: ../../extend/addon/hzaddons/irc/irc.php:74
-msgid "IRC Chatroom"
-msgstr "Чат IRC"
+#: ../../addon/hubwall/hubwall.php:94
+msgid "Test mode (only send to hub administrator)"
+msgstr "Тестовый режим (отправка только администратору узла)"
+
+#: ../../include/selectors.php:18
+msgid "Profile to assign new connections"
+msgstr "Назначить профиль для новых контактов"
+
+#: ../../include/selectors.php:41
+msgid "Frequently"
+msgstr "Часто"
+
+#: ../../include/selectors.php:42
+msgid "Hourly"
+msgstr "Ежечасно"
+
+#: ../../include/selectors.php:43
+msgid "Twice daily"
+msgstr "Дважды в день"
+
+#: ../../include/selectors.php:44
+msgid "Daily"
+msgstr "Ежедневно"
+
+#: ../../include/selectors.php:45
+msgid "Weekly"
+msgstr "Еженедельно"
+
+#: ../../include/selectors.php:46
+msgid "Monthly"
+msgstr "Ежемесячно"
+
+#: ../../include/selectors.php:60
+msgid "Currently Male"
+msgstr "В настоящее время мужской"
+
+#: ../../include/selectors.php:60
+msgid "Currently Female"
+msgstr "В настоящее время женский"
+
+#: ../../include/selectors.php:60
+msgid "Mostly Male"
+msgstr "В основном мужской"
+
+#: ../../include/selectors.php:60
+msgid "Mostly Female"
+msgstr "В основном женский"
+
+#: ../../include/selectors.php:60
+msgid "Transgender"
+msgstr "Трансгендер"
+
+#: ../../include/selectors.php:60
+msgid "Intersex"
+msgstr "Интерсексуал"
+
+#: ../../include/selectors.php:60
+msgid "Transsexual"
+msgstr "Транссексуал"
+
+#: ../../include/selectors.php:60
+msgid "Hermaphrodite"
+msgstr "Гермафродит"
+
+#: ../../include/selectors.php:60 ../../include/channel.php:1540
+msgid "Neuter"
+msgstr "Среднего рода"
+
+#: ../../include/selectors.php:60 ../../include/channel.php:1542
+msgid "Non-specific"
+msgstr "Неспецифический"
+
+#: ../../include/selectors.php:60
+msgid "Undecided"
+msgstr "Не решил"
+
+#: ../../include/selectors.php:96 ../../include/selectors.php:115
+msgid "Males"
+msgstr "Мужчины"
+
+#: ../../include/selectors.php:96 ../../include/selectors.php:115
+msgid "Females"
+msgstr "Женщины"
+
+#: ../../include/selectors.php:96
+msgid "Gay"
+msgstr "Гей"
+
+#: ../../include/selectors.php:96
+msgid "Lesbian"
+msgstr "Лесбиянка"
+
+#: ../../include/selectors.php:96
+msgid "No Preference"
+msgstr "Без предпочтений"
+
+#: ../../include/selectors.php:96
+msgid "Bisexual"
+msgstr "Бисексуал"
+
+#: ../../include/selectors.php:96
+msgid "Autosexual"
+msgstr "Автосексуал"
+
+#: ../../include/selectors.php:96
+msgid "Abstinent"
+msgstr "Воздержание"
+
+#: ../../include/selectors.php:96
+msgid "Virgin"
+msgstr "Девственник"
+
+#: ../../include/selectors.php:96
+msgid "Deviant"
+msgstr "Отклоняющийся от нормы"
+
+#: ../../include/selectors.php:96
+msgid "Fetish"
+msgstr "Фетишист"
+
+#: ../../include/selectors.php:96
+msgid "Oodles"
+msgstr "Множественный"
+
+#: ../../include/selectors.php:96
+msgid "Nonsexual"
+msgstr "Асексуал"
+
+#: ../../include/selectors.php:134 ../../include/selectors.php:151
+msgid "Single"
+msgstr "Одиночка"
+
+#: ../../include/selectors.php:134
+msgid "Lonely"
+msgstr "Одинокий"
+
+#: ../../include/selectors.php:134
+msgid "Available"
+msgstr "Свободен"
+
+#: ../../include/selectors.php:134
+msgid "Unavailable"
+msgstr "Занят"
+
+#: ../../include/selectors.php:134
+msgid "Has crush"
+msgstr "Влюблён"
+
+#: ../../include/selectors.php:134
+msgid "Infatuated"
+msgstr "без ума"
+
+#: ../../include/selectors.php:134 ../../include/selectors.php:151
+msgid "Dating"
+msgstr "Встречаюсь"
+
+#: ../../include/selectors.php:134
+msgid "Unfaithful"
+msgstr "Неверный"
+
+#: ../../include/selectors.php:134
+msgid "Sex Addict"
+msgstr "Эротоман"
+
+#: ../../include/selectors.php:134
+msgid "Friends/Benefits"
+msgstr "Друзья / Выгоды"
+
+#: ../../include/selectors.php:134
+msgid "Casual"
+msgstr "Легкомысленный"
+
+#: ../../include/selectors.php:134
+msgid "Engaged"
+msgstr "Помолвлен"
+
+#: ../../include/selectors.php:134 ../../include/selectors.php:151
+msgid "Married"
+msgstr "В браке"
+
+#: ../../include/selectors.php:134
+msgid "Imaginarily married"
+msgstr "В воображаемом браке"
+
+#: ../../include/selectors.php:134
+msgid "Partners"
+msgstr "Партнёрство"
+
+#: ../../include/selectors.php:134 ../../include/selectors.php:151
+msgid "Cohabiting"
+msgstr "Сожительствующие"
+
+#: ../../include/selectors.php:134
+msgid "Common law"
+msgstr "Гражданский брак"
+
+#: ../../include/selectors.php:134
+msgid "Happy"
+msgstr "Счастлив"
+
+#: ../../include/selectors.php:134
+msgid "Not looking"
+msgstr "Не нуждаюсь"
+
+#: ../../include/selectors.php:134
+msgid "Swinger"
+msgstr "Свингер"
+
+#: ../../include/selectors.php:134
+msgid "Betrayed"
+msgstr "Предан"
+
+#: ../../include/selectors.php:134 ../../include/selectors.php:151
+msgid "Separated"
+msgstr "Разделён"
+
+#: ../../include/selectors.php:134
+msgid "Unstable"
+msgstr "Нестабильно"
+
+#: ../../include/selectors.php:134 ../../include/selectors.php:151
+msgid "Divorced"
+msgstr "В разводе"
+
+#: ../../include/selectors.php:134
+msgid "Imaginarily divorced"
+msgstr "В воображаемом разводе"
+
+#: ../../include/selectors.php:134 ../../include/selectors.php:151
+msgid "Widowed"
+msgstr "Вдовец / вдова"
+
+#: ../../include/selectors.php:134
+msgid "Uncertain"
+msgstr "Неопределенный"
+
+#: ../../include/selectors.php:134 ../../include/selectors.php:151
+msgid "It's complicated"
+msgstr "Это сложно"
+
+#: ../../include/selectors.php:134
+msgid "Don't care"
+msgstr "Всё равно"
+
+#: ../../include/selectors.php:134
+msgid "Ask me"
+msgstr "Спроси меня"
+
+#: ../../include/conversation.php:169
+#, php-format
+msgid "likes %1$s's %2$s"
+msgstr "Нравится %1$s %2$s"
+
+#: ../../include/conversation.php:172
+#, php-format
+msgid "doesn't like %1$s's %2$s"
+msgstr "Не нравится %1$s %2$s"
+
+#: ../../include/conversation.php:212
+#, php-format
+msgid "%1$s is now connected with %2$s"
+msgstr "%1$s теперь в контакте с %2$s"
+
+#: ../../include/conversation.php:247
+#, php-format
+msgid "%1$s poked %2$s"
+msgstr "%1$s ткнул %2$s"
+
+#: ../../include/conversation.php:251 ../../include/text.php:1176
+#: ../../include/text.php:1180
+msgid "poked"
+msgstr "ткнут"
+
+#: ../../include/conversation.php:739
+#, php-format
+msgid "View %s's profile @ %s"
+msgstr "Просмотреть профиль %s @ %s"
+
+#: ../../include/conversation.php:759
+msgid "Categories:"
+msgstr "Категории:"
+
+#: ../../include/conversation.php:760
+msgid "Filed under:"
+msgstr "Хранить под:"
+
+#: ../../include/conversation.php:785
+msgid "View in context"
+msgstr "Показать в контексте"
+
+#: ../../include/conversation.php:886
+msgid "remove"
+msgstr "удалить"
+
+#: ../../include/conversation.php:890
+msgid "Loading..."
+msgstr "Загрузка..."
+
+#: ../../include/conversation.php:892
+msgid "Delete Selected Items"
+msgstr "Удалить выбранные элементы"
+
+#: ../../include/conversation.php:935
+msgid "View Source"
+msgstr "Просмотреть источник"
+
+#: ../../include/conversation.php:945
+msgid "Follow Thread"
+msgstr "Следить за темой"
+
+#: ../../include/conversation.php:954
+msgid "Unfollow Thread"
+msgstr "Прекратить отслеживать тему"
+
+#: ../../include/conversation.php:1068
+msgid "Edit Connection"
+msgstr "Редактировать контакт"
+
+#: ../../include/conversation.php:1078
+msgid "Message"
+msgstr "Сообщение"
+
+#: ../../include/conversation.php:1212
+#, php-format
+msgid "%s likes this."
+msgstr "%s нравится это."
+
+#: ../../include/conversation.php:1212
+#, php-format
+msgid "%s doesn't like this."
+msgstr "%s не нравится это."
+
+#: ../../include/conversation.php:1216
+#, php-format
+msgid "<span %1$s>%2$d people</span> like this."
+msgid_plural "<span %1$s>%2$d people</span> like this."
+msgstr[0] "<span %1$s>%2$d человеку</span> это нравится."
+msgstr[1] "<span %1$s>%2$d человекам</span> это нравится."
+msgstr[2] "<span %1$s>%2$d человекам</span> это нравится."
+
+#: ../../include/conversation.php:1218
+#, php-format
+msgid "<span %1$s>%2$d people</span> don't like this."
+msgid_plural "<span %1$s>%2$d people</span> don't like this."
+msgstr[0] "<span %1$s>%2$d человеку</span> это не нравится."
+msgstr[1] "<span %1$s>%2$d человекам</span> это не нравится."
+msgstr[2] "<span %1$s>%2$d человекам</span> это не нравится."
+
+#: ../../include/conversation.php:1224
+msgid "and"
+msgstr "и"
+
+#: ../../include/conversation.php:1227
+#, php-format
+msgid ", and %d other people"
+msgid_plural ", and %d other people"
+msgstr[0] ", и ещё %d человеку"
+msgstr[1] ", и ещё %d человекам"
+msgstr[2] ", и ещё %d человекам"
+
+#: ../../include/conversation.php:1228
+#, php-format
+msgid "%s like this."
+msgstr "%s нравится это."
+
+#: ../../include/conversation.php:1228
+#, php-format
+msgid "%s don't like this."
+msgstr "%s не нравится это."
-#: ../../extend/addon/hzaddons/chords/Mod_Chords.php:44
+#: ../../include/conversation.php:1708
+msgctxt "noun"
+msgid "Attending"
+msgid_plural "Attending"
+msgstr[0] "Посетит"
+msgstr[1] "Посетят"
+msgstr[2] "Посетят"
+
+#: ../../include/conversation.php:1711
+msgctxt "noun"
+msgid "Not Attending"
+msgid_plural "Not Attending"
+msgstr[0] "Не посетит"
+msgstr[1] "Не посетят"
+msgstr[2] "Не посетят"
+
+#: ../../include/conversation.php:1714
+msgctxt "noun"
+msgid "Undecided"
+msgid_plural "Undecided"
+msgstr "Не решил"
+
+#: ../../include/conversation.php:1717
+msgctxt "noun"
+msgid "Agree"
+msgid_plural "Agrees"
+msgstr[0] "Согласен"
+msgstr[1] "Согласны"
+msgstr[2] "Согласны"
+
+#: ../../include/conversation.php:1720
+msgctxt "noun"
+msgid "Disagree"
+msgid_plural "Disagrees"
+msgstr[0] "Не согласен"
+msgstr[1] "Не согласны"
+msgstr[2] "Не согласны"
+
+#: ../../include/conversation.php:1723
+msgctxt "noun"
+msgid "Abstain"
+msgid_plural "Abstains"
+msgstr[0] "Воздержался"
+msgstr[1] "Воздержались"
+msgstr[2] "Воздержались"
+
+#: ../../include/bookmarks.php:34
+#, php-format
+msgid "%1$s's bookmarks"
+msgstr "Закладки пользователя %1$s"
+
+#: ../../include/import.php:26
+msgid "Unable to import a removed channel."
+msgstr "Невозможно импортировать удалённый канал."
+
+#: ../../include/import.php:52
msgid ""
-"This is a fairly comprehensive and complete guitar chord dictionary which "
-"will list most of the available ways to play a certain chord, starting from "
-"the base of the fingerboard up to a few frets beyond the twelfth fret "
-"(beyond which everything repeats). A couple of non-standard tunings are "
-"provided for the benefit of slide players, etc."
+"Cannot create a duplicate channel identifier on this system. Import failed."
+msgstr "Не удалось создать дублирующийся идентификатор канала. Импорт невозможен."
+
+#: ../../include/import.php:117
+msgid "Cloned channel not found. Import failed."
+msgstr "Клон канала не найден. Импорт невозможен."
+
+#: ../../include/text.php:501
+msgid "prev"
+msgstr "предыдущий"
+
+#: ../../include/text.php:503
+msgid "first"
+msgstr "первый"
+
+#: ../../include/text.php:532
+msgid "last"
+msgstr "последний"
+
+#: ../../include/text.php:535
+msgid "next"
+msgstr "следующий"
+
+#: ../../include/text.php:553
+msgid "older"
+msgstr "старше"
+
+#: ../../include/text.php:555
+msgid "newer"
+msgstr "новее"
+
+#: ../../include/text.php:979
+msgid "No connections"
+msgstr "Нет контактов"
+
+#: ../../include/text.php:1011
+#, php-format
+msgid "View all %s connections"
+msgstr "Просмотреть все %s контактов"
+
+#: ../../include/text.php:1073
+#, php-format
+msgid "Network: %s"
+msgstr "Сеть: %s"
+
+#: ../../include/text.php:1176 ../../include/text.php:1180
+msgid "poke"
+msgstr "Ткнуть"
+
+#: ../../include/text.php:1181
+msgid "ping"
+msgstr "Пингануть"
+
+#: ../../include/text.php:1181
+msgid "pinged"
+msgstr "Отпингован"
+
+#: ../../include/text.php:1182
+msgid "prod"
+msgstr "Подтолкнуть"
+
+#: ../../include/text.php:1182
+msgid "prodded"
+msgstr "Подтолкнут"
+
+#: ../../include/text.php:1183
+msgid "slap"
+msgstr "Шлёпнуть"
+
+#: ../../include/text.php:1183
+msgid "slapped"
+msgstr "Шлёпнут"
+
+#: ../../include/text.php:1184
+msgid "finger"
+msgstr "Указать"
+
+#: ../../include/text.php:1184
+msgid "fingered"
+msgstr "Указан"
+
+#: ../../include/text.php:1185
+msgid "rebuff"
+msgstr "Дать отпор"
+
+#: ../../include/text.php:1185
+msgid "rebuffed"
+msgstr "Дан отпор"
+
+#: ../../include/text.php:1208
+msgid "happy"
+msgstr "счастливый"
+
+#: ../../include/text.php:1209
+msgid "sad"
+msgstr "грустный"
+
+#: ../../include/text.php:1210
+msgid "mellow"
+msgstr "спокойный"
+
+#: ../../include/text.php:1211
+msgid "tired"
+msgstr "усталый"
+
+#: ../../include/text.php:1212
+msgid "perky"
+msgstr "весёлый"
+
+#: ../../include/text.php:1213
+msgid "angry"
+msgstr "сердитый"
+
+#: ../../include/text.php:1214
+msgid "stupefied"
+msgstr "отупевший"
+
+#: ../../include/text.php:1215
+msgid "puzzled"
+msgstr "недоумевающий"
+
+#: ../../include/text.php:1216
+msgid "interested"
+msgstr "заинтересованный"
+
+#: ../../include/text.php:1217
+msgid "bitter"
+msgstr "едкий"
+
+#: ../../include/text.php:1218
+msgid "cheerful"
+msgstr "бодрый"
+
+#: ../../include/text.php:1219
+msgid "alive"
+msgstr "энергичный"
+
+#: ../../include/text.php:1220
+msgid "annoyed"
+msgstr "раздражённый"
+
+#: ../../include/text.php:1221
+msgid "anxious"
+msgstr "обеспокоенный"
+
+#: ../../include/text.php:1222
+msgid "cranky"
+msgstr "капризный"
+
+#: ../../include/text.php:1223
+msgid "disturbed"
+msgstr "встревоженный"
+
+#: ../../include/text.php:1224
+msgid "frustrated"
+msgstr "разочарованный"
+
+#: ../../include/text.php:1225
+msgid "depressed"
+msgstr "подавленный"
+
+#: ../../include/text.php:1226
+msgid "motivated"
+msgstr "мотивированный"
+
+#: ../../include/text.php:1227
+msgid "relaxed"
+msgstr "расслабленный"
+
+#: ../../include/text.php:1228
+msgid "surprised"
+msgstr "удивленный"
+
+#: ../../include/text.php:1416 ../../include/js_strings.php:95
+msgid "Monday"
+msgstr "Понедельник"
+
+#: ../../include/text.php:1416 ../../include/js_strings.php:96
+msgid "Tuesday"
+msgstr "Вторник"
+
+#: ../../include/text.php:1416 ../../include/js_strings.php:97
+msgid "Wednesday"
+msgstr "Среда"
+
+#: ../../include/text.php:1416 ../../include/js_strings.php:98
+msgid "Thursday"
+msgstr "Четверг"
+
+#: ../../include/text.php:1416 ../../include/js_strings.php:99
+msgid "Friday"
+msgstr "Пятница"
+
+#: ../../include/text.php:1416 ../../include/js_strings.php:100
+msgid "Saturday"
+msgstr "Суббота"
+
+#: ../../include/text.php:1416 ../../include/js_strings.php:94
+msgid "Sunday"
+msgstr "Воскресенье"
+
+#: ../../include/text.php:1420 ../../include/js_strings.php:70
+msgid "January"
+msgstr "Январь"
+
+#: ../../include/text.php:1420 ../../include/js_strings.php:71
+msgid "February"
+msgstr "Февраль"
+
+#: ../../include/text.php:1420 ../../include/js_strings.php:72
+msgid "March"
+msgstr "Март"
+
+#: ../../include/text.php:1420 ../../include/js_strings.php:73
+msgid "April"
+msgstr "Апрель"
+
+#: ../../include/text.php:1420
+msgid "May"
+msgstr "Май"
+
+#: ../../include/text.php:1420 ../../include/js_strings.php:75
+msgid "June"
+msgstr "Июнь"
+
+#: ../../include/text.php:1420 ../../include/js_strings.php:76
+msgid "July"
+msgstr "Июль"
+
+#: ../../include/text.php:1420 ../../include/js_strings.php:77
+msgid "August"
+msgstr "Август"
+
+#: ../../include/text.php:1420 ../../include/js_strings.php:78
+msgid "September"
+msgstr "Сентябрь"
+
+#: ../../include/text.php:1420 ../../include/js_strings.php:79
+msgid "October"
+msgstr "Октябрь"
+
+#: ../../include/text.php:1420 ../../include/js_strings.php:80
+msgid "November"
+msgstr "Ноябрь"
+
+#: ../../include/text.php:1420 ../../include/js_strings.php:81
+msgid "December"
+msgstr "Декабрь"
+
+#: ../../include/text.php:1494
+msgid "Unknown Attachment"
+msgstr "Неизвестное вложение"
+
+#: ../../include/text.php:1496 ../../include/feedutils.php:858
+msgid "unknown"
+msgstr "неизвестный"
+
+#: ../../include/text.php:1532
+msgid "remove category"
+msgstr "удалить категорию"
+
+#: ../../include/text.php:1606
+msgid "remove from file"
+msgstr "удалить из файла"
+
+#: ../../include/text.php:1765 ../../include/message.php:13
+msgid "Download binary/encrypted content"
+msgstr "Загрузить двоичное / зашифрованное содержимое"
+
+#: ../../include/text.php:1935 ../../include/language.php:423
+msgid "default"
+msgstr "по умолчанию"
+
+#: ../../include/text.php:1943
+msgid "Page layout"
+msgstr "Шаблон страницы"
+
+#: ../../include/text.php:1943
+msgid "You can create your own with the layouts tool"
+msgstr "Вы можете создать свой собственный с помощью инструмента шаблонов"
+
+#: ../../include/text.php:1954
+msgid "HTML"
+msgstr ""
+
+#: ../../include/text.php:1957
+msgid "Comanche Layout"
+msgstr "Шаблон Comanche"
+
+#: ../../include/text.php:1962
+msgid "PHP"
+msgstr ""
+
+#: ../../include/text.php:1971
+msgid "Page content type"
+msgstr "Тип содержимого страницы"
+
+#: ../../include/text.php:2104
+msgid "activity"
+msgstr "активность"
+
+#: ../../include/text.php:2205
+msgid "a-z, 0-9, -, and _ only"
+msgstr "Только a-z, 0-9, -, и _"
+
+#: ../../include/text.php:2531
+msgid "Design Tools"
+msgstr "Инструменты дизайна"
+
+#: ../../include/text.php:2537
+msgid "Pages"
+msgstr "Страницы"
+
+#: ../../include/text.php:2559
+msgid "Import website..."
+msgstr "Импорт веб-сайта..."
+
+#: ../../include/text.php:2560
+msgid "Select folder to import"
+msgstr "Выбрать каталог для импорта"
+
+#: ../../include/text.php:2561
+msgid "Import from a zipped folder:"
+msgstr "Импортировать из каталога в zip-архиве:"
+
+#: ../../include/text.php:2562
+msgid "Import from cloud files:"
+msgstr "Импортировать из сетевых файлов:"
+
+#: ../../include/text.php:2563
+msgid "/cloud/channel/path/to/folder"
+msgstr ""
+
+#: ../../include/text.php:2564
+msgid "Enter path to website files"
+msgstr "Введите путь к файлам веб-сайта"
+
+#: ../../include/text.php:2565
+msgid "Select folder"
+msgstr "Выбрать каталог"
+
+#: ../../include/text.php:2566
+msgid "Export website..."
+msgstr "Экспорт веб-сайта..."
+
+#: ../../include/text.php:2567
+msgid "Export to a zip file"
+msgstr "Экспортировать в ZIP файл."
+
+#: ../../include/text.php:2568
+msgid "website.zip"
msgstr ""
-#: ../../extend/addon/hzaddons/chords/Mod_Chords.php:46
+#: ../../include/text.php:2569
+msgid "Enter a name for the zip file."
+msgstr "Введите имя для ZIP файла."
+
+#: ../../include/text.php:2570
+msgid "Export to cloud files"
+msgstr "Эскпортировать в сетевые файлы:"
+
+#: ../../include/text.php:2571
+msgid "/path/to/export/folder"
+msgstr ""
+
+#: ../../include/text.php:2572
+msgid "Enter a path to a cloud files destination."
+msgstr "Введите путь к расположению сетевых файлов."
+
+#: ../../include/text.php:2573
+msgid "Specify folder"
+msgstr "Указать каталог"
+
+#: ../../include/contact_widgets.php:11
+#, php-format
+msgid "%d invitation available"
+msgid_plural "%d invitations available"
+msgstr[0] "доступно %d приглашение"
+msgstr[1] "доступны %d приглашения"
+msgstr[2] "доступны %d приглашений"
+
+#: ../../include/contact_widgets.php:19
+msgid "Find Channels"
+msgstr "Поиск каналов"
+
+#: ../../include/contact_widgets.php:20
+msgid "Enter name or interest"
+msgstr "Впишите имя или интерес"
+
+#: ../../include/contact_widgets.php:21
+msgid "Connect/Follow"
+msgstr "Подключить / отслеживать"
+
+#: ../../include/contact_widgets.php:22
+msgid "Examples: Robert Morgenstein, Fishing"
+msgstr "Примеры: Владимир Ильич, Революционер"
+
+#: ../../include/contact_widgets.php:26
+msgid "Random Profile"
+msgstr "Случайный профиль"
+
+#: ../../include/contact_widgets.php:27
+msgid "Invite Friends"
+msgstr "Пригласить друзей"
+
+#: ../../include/contact_widgets.php:29
+msgid "Advanced example: name=fred and country=iceland"
+msgstr "Расширенный пример: name=ivan and country=russia"
+
+#: ../../include/contact_widgets.php:218
+msgid "Common Connections"
+msgstr "Общие контакты"
+
+#: ../../include/contact_widgets.php:222
+#, php-format
+msgid "View all %d common connections"
+msgstr "Просмотреть все %d общих контактов"
+
+#: ../../include/markdown.php:198 ../../include/bbcode.php:347
+#, php-format
+msgid "%1$s wrote the following %2$s %3$s"
+msgstr "%1$s была создана %2$s %3$s"
+
+#: ../../include/follow.php:37
+msgid "Channel is blocked on this site."
+msgstr "Канал блокируется на этом сайте."
+
+#: ../../include/follow.php:42
+msgid "Channel location missing."
+msgstr "Местоположение канала отсутствует."
+
+#: ../../include/follow.php:84
+msgid "Response from remote channel was incomplete."
+msgstr "Ответ удаленного канала неполный."
+
+#: ../../include/follow.php:96
+msgid "Premium channel - please visit:"
+msgstr "Премимум-канал - пожалуйста посетите:"
+
+#: ../../include/follow.php:110
+msgid "Channel was deleted and no longer exists."
+msgstr "Канал удален и больше не существует."
+
+#: ../../include/follow.php:165
+msgid "Remote channel or protocol unavailable."
+msgstr "Удалённый канал или протокол недоступен."
+
+#: ../../include/follow.php:188
+msgid "Channel discovery failed."
+msgstr "Не удалось обнаружить канал."
+
+#: ../../include/follow.php:200
+msgid "Protocol disabled."
+msgstr "Протокол отключен."
+
+#: ../../include/follow.php:211
+msgid "Cannot connect to yourself."
+msgstr "Нельзя подключиться к самому себе."
+
+#: ../../include/js_strings.php:5
+msgid "Delete this item?"
+msgstr "Удалить этот элемент?"
+
+#: ../../include/js_strings.php:8
+#, php-format
+msgid "%s show less"
+msgstr "%s показать меньше"
+
+#: ../../include/js_strings.php:9
+#, php-format
+msgid "%s expand"
+msgstr "%s развернуть"
+
+#: ../../include/js_strings.php:10
+#, php-format
+msgid "%s collapse"
+msgstr "%s свернуть"
+
+#: ../../include/js_strings.php:11
+msgid "Password too short"
+msgstr "Пароль слишком короткий"
+
+#: ../../include/js_strings.php:12
+msgid "Passwords do not match"
+msgstr "Пароли не совпадают"
+
+#: ../../include/js_strings.php:13
+msgid "everybody"
+msgstr "все"
+
+#: ../../include/js_strings.php:14
+msgid "Secret Passphrase"
+msgstr "Тайный пароль"
+
+#: ../../include/js_strings.php:15
+msgid "Passphrase hint"
+msgstr "Подсказка для пароля"
+
+#: ../../include/js_strings.php:16
+msgid "Notice: Permissions have changed but have not yet been submitted."
+msgstr "Уведомление: Права доступа изменились, но до сих пор не сохранены."
+
+#: ../../include/js_strings.php:17
+msgid "close all"
+msgstr "закрыть все"
+
+#: ../../include/js_strings.php:18
+msgid "Nothing new here"
+msgstr "Здесь нет ничего нового"
+
+#: ../../include/js_strings.php:19
+msgid "Rate This Channel (this is public)"
+msgstr "Оценкa этoго канала (общедоступно)"
+
+#: ../../include/js_strings.php:21
+msgid "Describe (optional)"
+msgstr "Охарактеризовать (необязательно)"
+
+#: ../../include/js_strings.php:23
+msgid "Please enter a link URL"
+msgstr "Пожалуйста, введите URL ссылки"
+
+#: ../../include/js_strings.php:24
+msgid "Unsaved changes. Are you sure you wish to leave this page?"
+msgstr "Есть несохраненные изменения. Вы уверены, что хотите покинуть эту страницу?"
+
+#: ../../include/js_strings.php:26
+msgid "lovely"
+msgstr "прекрасно"
+
+#: ../../include/js_strings.php:27
+msgid "wonderful"
+msgstr "замечательно"
+
+#: ../../include/js_strings.php:28
+msgid "fantastic"
+msgstr "фантастично"
+
+#: ../../include/js_strings.php:29
+msgid "great"
+msgstr "отлично"
+
+#: ../../include/js_strings.php:30
msgid ""
-"Chord names start with a root note (A-G) and may include sharps (#) and "
-"flats (b). This software will parse most of the standard naming conventions "
-"such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements."
+"Your chosen nickname was either already taken or not valid. Please use our "
+"suggestion ("
+msgstr "Выбранный вами псевдоним уже используется или недействителен. Попробуйте использовать наше предложение ("
+
+#: ../../include/js_strings.php:31
+msgid ") or enter a new one."
+msgstr ") или введите новый."
+
+#: ../../include/js_strings.php:32
+msgid "Thank you, this nickname is valid."
+msgstr "Спасибо, этот псевдоним может быть использован."
+
+#: ../../include/js_strings.php:33
+msgid "A channel name is required."
+msgstr "Требуется название канала."
+
+#: ../../include/js_strings.php:34
+msgid "This is a "
+msgstr "Это "
+
+#: ../../include/js_strings.php:35
+msgid " channel name"
+msgstr " название канала"
+
+#: ../../include/js_strings.php:41
+#, php-format
+msgid "%d minutes"
+msgid_plural "%d minutes"
+msgstr[0] "%d минуту"
+msgstr[1] "%d минуты"
+msgstr[2] "%d минут"
+
+#: ../../include/js_strings.php:42
+#, php-format
+msgid "about %d hours"
+msgid_plural "about %d hours"
+msgstr[0] "около %d часa"
+msgstr[1] "около %d часов"
+msgstr[2] "около %d часов"
+
+#: ../../include/js_strings.php:43
+#, php-format
+msgid "%d days"
+msgid_plural "%d days"
+msgstr[0] "%d день"
+msgstr[1] "%d дня"
+msgstr[2] "%d дней"
+
+#: ../../include/js_strings.php:44
+#, php-format
+msgid "%d months"
+msgid_plural "%d months"
+msgstr[0] "%d месяц"
+msgstr[1] "%d месяца"
+msgstr[2] "%d месяцев"
+
+#: ../../include/js_strings.php:45
+#, php-format
+msgid "%d years"
+msgid_plural "%d years"
+msgstr[0] "%d год"
+msgstr[1] "%d года"
+msgstr[2] "%d лет"
+
+#: ../../include/js_strings.php:50
+msgid "timeago.prefixAgo"
+msgstr ""
+
+#: ../../include/js_strings.php:51
+msgid "timeago.prefixFromNow"
+msgstr "через"
+
+#: ../../include/js_strings.php:52
+msgid "timeago.suffixAgo"
+msgstr "назад"
+
+#: ../../include/js_strings.php:53
+msgid "timeago.suffixFromNow"
+msgstr ""
+
+#: ../../include/js_strings.php:56
+msgid "less than a minute"
+msgstr "менее чем одну минуту"
+
+#: ../../include/js_strings.php:57
+msgid "about a minute"
+msgstr "около минуты"
+
+#: ../../include/js_strings.php:59
+msgid "about an hour"
+msgstr "около часа"
+
+#: ../../include/js_strings.php:61
+msgid "a day"
+msgstr "день"
+
+#: ../../include/js_strings.php:63
+msgid "about a month"
+msgstr "около месяца"
+
+#: ../../include/js_strings.php:65
+msgid "about a year"
+msgstr "около года"
+
+#: ../../include/js_strings.php:67
+msgid " "
+msgstr " "
+
+#: ../../include/js_strings.php:68
+msgid "timeago.numbers"
+msgstr ""
+
+#: ../../include/js_strings.php:74
+msgctxt "long"
+msgid "May"
+msgstr "Май"
+
+#: ../../include/js_strings.php:82
+msgid "Jan"
+msgstr "Янв"
+
+#: ../../include/js_strings.php:83
+msgid "Feb"
+msgstr "Фев"
+
+#: ../../include/js_strings.php:84
+msgid "Mar"
+msgstr "Мар"
+
+#: ../../include/js_strings.php:85
+msgid "Apr"
+msgstr "Апр"
+
+#: ../../include/js_strings.php:86
+msgctxt "short"
+msgid "May"
+msgstr "Май"
+
+#: ../../include/js_strings.php:87
+msgid "Jun"
+msgstr "Июн"
+
+#: ../../include/js_strings.php:88
+msgid "Jul"
+msgstr "Июл"
+
+#: ../../include/js_strings.php:89
+msgid "Aug"
+msgstr "Авг"
+
+#: ../../include/js_strings.php:90
+msgid "Sep"
+msgstr "Сен"
+
+#: ../../include/js_strings.php:91
+msgid "Oct"
+msgstr "Окт"
+
+#: ../../include/js_strings.php:92
+msgid "Nov"
+msgstr "Ноя"
+
+#: ../../include/js_strings.php:93
+msgid "Dec"
+msgstr "Дек"
+
+#: ../../include/js_strings.php:101
+msgid "Sun"
+msgstr "Вск"
+
+#: ../../include/js_strings.php:102
+msgid "Mon"
+msgstr "Пон"
+
+#: ../../include/js_strings.php:103
+msgid "Tue"
+msgstr "Вт"
+
+#: ../../include/js_strings.php:104
+msgid "Wed"
+msgstr "Ср"
+
+#: ../../include/js_strings.php:105
+msgid "Thu"
+msgstr "Чет"
+
+#: ../../include/js_strings.php:106
+msgid "Fri"
+msgstr "Пят"
+
+#: ../../include/js_strings.php:107
+msgid "Sat"
+msgstr "Суб"
+
+#: ../../include/js_strings.php:108
+msgctxt "calendar"
+msgid "today"
+msgstr "сегодня"
+
+#: ../../include/js_strings.php:109
+msgctxt "calendar"
+msgid "month"
+msgstr "месяц"
+
+#: ../../include/js_strings.php:110
+msgctxt "calendar"
+msgid "week"
+msgstr "неделя"
+
+#: ../../include/js_strings.php:111
+msgctxt "calendar"
+msgid "day"
+msgstr "день"
+
+#: ../../include/js_strings.php:112
+msgctxt "calendar"
+msgid "All day"
+msgstr "Весь день"
+
+#: ../../include/message.php:41
+msgid "Unable to determine sender."
+msgstr "Невозможно определить отправителя."
+
+#: ../../include/message.php:80
+msgid "No recipient provided."
+msgstr "Получатель не предоставлен."
+
+#: ../../include/message.php:85
+msgid "[no subject]"
+msgstr "[без темы]"
+
+#: ../../include/message.php:215
+msgid "Stored post could not be verified."
+msgstr "Сохранённая публикация не может быть проверена."
+
+#: ../../include/activities.php:42
+msgid " and "
+msgstr " и "
+
+#: ../../include/activities.php:50
+msgid "public profile"
+msgstr "общедоступный профиль"
+
+#: ../../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:60
+#, php-format
+msgid "Visit %1$s's %2$s"
+msgstr "Посетить %1$s %2$s"
+
+#: ../../include/activities.php:63
+#, php-format
+msgid "%1$s has an updated %2$s, changing %3$s."
+msgstr "%1$s обновлено %2$s, изменено %3$s."
+
+#: ../../include/attach.php:267 ../../include/attach.php:376
+msgid "Item was not found."
+msgstr "Элемент не найден."
+
+#: ../../include/attach.php:284
+msgid "Unknown error."
+msgstr "Неизвестная ошибка."
+
+#: ../../include/attach.php:569
+msgid "No source file."
+msgstr "Нет исходного файла."
+
+#: ../../include/attach.php:591
+msgid "Cannot locate file to replace"
+msgstr "Не удается найти файл для замены"
+
+#: ../../include/attach.php:610
+msgid "Cannot locate file to revise/update"
+msgstr "Не удается найти файл для пересмотра / обновления"
+
+#: ../../include/attach.php:752
+#, php-format
+msgid "File exceeds size limit of %d"
+msgstr "Файл превышает предельный размер %d"
+
+#: ../../include/attach.php:773
+#, php-format
+msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
+msgstr "Вы достигли предела %1$.0f Мбайт для хранения вложений."
+
+#: ../../include/attach.php:955
+msgid "File upload failed. Possible system limit or action terminated."
+msgstr "Загрузка файла не удалась. Возможно система перегружена или попытка прекращена."
+
+#: ../../include/attach.php:984
+msgid "Stored file could not be verified. Upload failed."
+msgstr "Файл для сохранения не может быть проверен. Загрузка не удалась."
+
+#: ../../include/attach.php:1058 ../../include/attach.php:1074
+msgid "Path not available."
+msgstr "Путь недоступен."
+
+#: ../../include/attach.php:1123 ../../include/attach.php:1288
+msgid "Empty pathname"
+msgstr "Пустое имя пути"
+
+#: ../../include/attach.php:1149
+msgid "duplicate filename or path"
+msgstr "дублирующееся имя файла или пути"
+
+#: ../../include/attach.php:1174
+msgid "Path not found."
+msgstr "Путь не найден."
+
+#: ../../include/attach.php:1242
+msgid "mkdir failed."
+msgstr "mkdir не удался"
+
+#: ../../include/attach.php:1246
+msgid "database storage failed."
+msgstr "ошибка при записи базы данных."
+
+#: ../../include/attach.php:1294
+msgid "Empty path"
+msgstr "Пустое имя пути"
+
+#: ../../include/security.php:541
+msgid ""
+"The form security token was not correct. This probably happened because the "
+"form has been opened for too long (>3 hours) before submitting it."
+msgstr "Не верный токен безопасности для формы. Вероятно, это произошло потому, что форма была открыта слишком долго (> 3-х часов) перед его отправкой."
+
+#: ../../include/items.php:955 ../../include/items.php:1015
+msgid "(Unknown)"
+msgstr "(Неизвестный)"
+
+#: ../../include/items.php:1203
+msgid "Visible to anybody on the internet."
+msgstr "Виден всем в интернете."
+
+#: ../../include/items.php:1205
+msgid "Visible to you only."
+msgstr "Видно только вам."
+
+#: ../../include/items.php:1207
+msgid "Visible to anybody in this network."
+msgstr "Видно всем в этой сети."
+
+#: ../../include/items.php:1209
+msgid "Visible to anybody authenticated."
+msgstr "Видно всем аутентифицированным."
+
+#: ../../include/items.php:1211
+#, php-format
+msgid "Visible to anybody on %s."
+msgstr "Видно всем в %s."
+
+#: ../../include/items.php:1213
+msgid "Visible to all connections."
+msgstr "Видно всем контактам."
+
+#: ../../include/items.php:1215
+msgid "Visible to approved connections."
+msgstr "Видно только одобренным контактам."
+
+#: ../../include/items.php:1217
+msgid "Visible to specific connections."
+msgstr "Видно указанным контактам."
+
+#: ../../include/items.php:4291
+msgid "Privacy group is empty."
+msgstr "Группа безопасности пуста"
+
+#: ../../include/items.php:4298
+#, php-format
+msgid "Privacy group: %s"
+msgstr "Группа безопасности: %s"
+
+#: ../../include/items.php:4310
+msgid "Connection not found."
+msgstr "Контакт не найден."
+
+#: ../../include/items.php:4659
+msgid "profile photo"
+msgstr "Фотография профиля"
+
+#: ../../include/items.php:4851
+#, php-format
+msgid "[Edited %s]"
+msgstr "[Отредактировано %s]"
+
+#: ../../include/items.php:4851
+msgctxt "edit_activity"
+msgid "Post"
+msgstr "Публикация"
+
+#: ../../include/items.php:4851
+msgctxt "edit_activity"
+msgid "Comment"
+msgstr "Комментарий"
+
+#: ../../include/channel.php:43
+msgid "Unable to obtain identity information from database"
+msgstr "Невозможно получить идентификационную информацию из базы данных"
+
+#: ../../include/channel.php:76
+msgid "Empty name"
+msgstr "Пустое имя"
+
+#: ../../include/channel.php:79
+msgid "Name too long"
+msgstr "Слишком длинное имя"
+
+#: ../../include/channel.php:196
+msgid "No account identifier"
+msgstr "Идентификатор аккаунта отсутствует"
+
+#: ../../include/channel.php:208
+msgid "Nickname is required."
+msgstr "Требуется псевдоним."
+
+#: ../../include/channel.php:287
+msgid "Unable to retrieve created identity"
+msgstr "Не удается получить созданный идентификатор"
+
+#: ../../include/channel.php:429
+msgid "Default Profile"
+msgstr "Профиль по умолчанию"
+
+#: ../../include/channel.php:588 ../../include/channel.php:677
+msgid "Unable to retrieve modified identity"
+msgstr "Не удается найти изменённый идентификатор"
+
+#: ../../include/channel.php:1353
+msgid "Create New Profile"
+msgstr "Создать новый профиль"
+
+#: ../../include/channel.php:1374
+msgid "Visible to everybody"
+msgstr "Видно всем"
+
+#: ../../include/channel.php:1451 ../../include/channel.php:1579
+msgid "Gender:"
+msgstr "Пол:"
+
+#: ../../include/channel.php:1453 ../../include/channel.php:1647
+msgid "Homepage:"
+msgstr "Домашняя страница:"
+
+#: ../../include/channel.php:1454
+msgid "Online Now"
+msgstr "Сейчас в сети"
+
+#: ../../include/channel.php:1507
+msgid "Change your profile photo"
+msgstr "Изменить фотографию вашего профиля"
+
+#: ../../include/channel.php:1538
+msgid "Trans"
+msgstr "Трансексуал"
+
+#: ../../include/channel.php:1584
+msgid "Like this channel"
+msgstr "нравится этот канал"
+
+#: ../../include/channel.php:1608
+msgid "j F, Y"
+msgstr ""
+
+#: ../../include/channel.php:1609
+msgid "j F"
+msgstr ""
+
+#: ../../include/channel.php:1616
+msgid "Birthday:"
+msgstr "День рождения:"
+
+#: ../../include/channel.php:1629
+#, php-format
+msgid "for %1$d %2$s"
+msgstr "для %1$d %2$s"
+
+#: ../../include/channel.php:1641
+msgid "Tags:"
+msgstr "Теги:"
+
+#: ../../include/channel.php:1645
+msgid "Sexual Preference:"
+msgstr "Сексуальные предпочтения:"
+
+#: ../../include/channel.php:1651
+msgid "Political Views:"
+msgstr "Политические взгляды:"
+
+#: ../../include/channel.php:1653
+msgid "Religion:"
+msgstr "Религия:"
+
+#: ../../include/channel.php:1657
+msgid "Hobbies/Interests:"
+msgstr "Хобби / интересы:"
+
+#: ../../include/channel.php:1659
+msgid "Likes:"
+msgstr "Что вам нравится:"
+
+#: ../../include/channel.php:1661
+msgid "Dislikes:"
+msgstr "Что вам не нравится:"
+
+#: ../../include/channel.php:1663
+msgid "Contact information and Social Networks:"
+msgstr "Контактная информация и социальные сети:"
+
+#: ../../include/channel.php:1665
+msgid "My other channels:"
+msgstr "Мои другие каналы:"
+
+#: ../../include/channel.php:1667
+msgid "Musical interests:"
+msgstr "Музыкальные интересы:"
+
+#: ../../include/channel.php:1669
+msgid "Books, literature:"
+msgstr "Книги, литература:"
+
+#: ../../include/channel.php:1671
+msgid "Television:"
+msgstr "Телевидение:"
+
+#: ../../include/channel.php:1673
+msgid "Film/dance/culture/entertainment:"
+msgstr "Кино / танцы / культура / развлечения:"
+
+#: ../../include/channel.php:1675
+msgid "Love/Romance:"
+msgstr "Любовь / романтика:"
+
+#: ../../include/channel.php:1677
+msgid "Work/employment:"
+msgstr "Работа / занятость:"
+
+#: ../../include/channel.php:1679
+msgid "School/education:"
+msgstr "Школа / образование:"
+
+#: ../../include/channel.php:1702
+msgid "Like this thing"
+msgstr "нравится этo"
+
+#: ../../include/event.php:28 ../../include/event.php:75
+msgid "l F d, Y \\@ g:i A"
+msgstr ""
+
+#: ../../include/event.php:36 ../../include/event.php:79
+msgid "Starts:"
+msgstr "Начало:"
+
+#: ../../include/event.php:46 ../../include/event.php:83
+msgid "Finishes:"
+msgstr "Окончание:"
+
+#: ../../include/event.php:1020
+msgid "This event has been added to your calendar."
+msgstr "Это событие было добавлено в ваш календарь."
+
+#: ../../include/event.php:1239
+msgid "Not specified"
+msgstr "Не указано"
+
+#: ../../include/event.php:1240
+msgid "Needs Action"
+msgstr "Требует действия"
+
+#: ../../include/event.php:1241
+msgid "Completed"
+msgstr "Завершено"
+
+#: ../../include/event.php:1242
+msgid "In Process"
+msgstr "В процессе"
+
+#: ../../include/event.php:1243
+msgid "Cancelled"
+msgstr "Отменено"
+
+#: ../../include/event.php:1322 ../../include/connections.php:698
+msgid "Home, Voice"
+msgstr "Дом, голос"
+
+#: ../../include/event.php:1323 ../../include/connections.php:699
+msgid "Home, Fax"
+msgstr "Дом, факс"
+
+#: ../../include/event.php:1325 ../../include/connections.php:701
+msgid "Work, Voice"
+msgstr "Работа, голос"
+
+#: ../../include/event.php:1326 ../../include/connections.php:702
+msgid "Work, Fax"
+msgstr "Работа, факс"
+
+#: ../../include/network.php:1718
+msgid "GNU-Social"
+msgstr ""
+
+#: ../../include/network.php:1719
+msgid "RSS/Atom"
+msgstr ""
+
+#: ../../include/network.php:1723
+msgid "Facebook"
+msgstr ""
+
+#: ../../include/network.php:1725
+msgid "LinkedIn"
+msgstr ""
+
+#: ../../include/network.php:1726
+msgid "XMPP/IM"
+msgstr ""
+
+#: ../../include/network.php:1727
+msgid "MySpace"
msgstr ""
-#: ../../extend/addon/hzaddons/chords/Mod_Chords.php:48
+#: ../../include/language.php:436
+msgid "Select an alternate language"
+msgstr "Выбор дополнительного языка"
+
+#: ../../include/acl_selectors.php:113
+msgid "Who can see this?"
+msgstr "Кто может это видеть?"
+
+#: ../../include/acl_selectors.php:114
+msgid "Custom selection"
+msgstr "Настраиваемый выбор"
+
+#: ../../include/acl_selectors.php:115
msgid ""
-"Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, "
-"E7b13b11 ..."
-msgstr "Примеры действительных включают A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..."
+"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit "
+"the scope of \"Show\"."
+msgstr "Нажмите \"Показать\" чтобы разрешить просмотр. \"Не показывать\" позволит вам переопределить и ограничить область показа."
-#: ../../extend/addon/hzaddons/chords/Mod_Chords.php:51
-msgid "Guitar Chords"
-msgstr "Гитарные аккорды"
+#: ../../include/acl_selectors.php:116
+msgid "Show"
+msgstr "Показать"
-#: ../../extend/addon/hzaddons/chords/Mod_Chords.php:52
-msgid "The complete online chord dictionary"
-msgstr "Полный онлайн словарь аккордов"
+#: ../../include/acl_selectors.php:117
+msgid "Don't show"
+msgstr "Не показывать"
-#: ../../extend/addon/hzaddons/chords/Mod_Chords.php:57
-msgid "Tuning"
-msgstr "Настройка"
+#: ../../include/acl_selectors.php:150
+#, php-format
+msgid ""
+"Post permissions %s cannot be changed %s after a post is shared.</br />These "
+"permissions set who is allowed to view the post."
+msgstr "Разрешения публикации %s не могут быть изменены %s после того, как ею поделились. Эти разрешения устанавливают кому разрешено просматривать эту публикацию."
-#: ../../extend/addon/hzaddons/chords/Mod_Chords.php:58
-msgid "Chord name: example: Em7"
-msgstr "Наименование аккорда - example: Em7"
+#: ../../include/bbcode.php:200 ../../include/bbcode.php:1190
+#: ../../include/bbcode.php:1193 ../../include/bbcode.php:1198
+#: ../../include/bbcode.php:1201 ../../include/bbcode.php:1204
+#: ../../include/bbcode.php:1207 ../../include/bbcode.php:1212
+#: ../../include/bbcode.php:1215 ../../include/bbcode.php:1220
+#: ../../include/bbcode.php:1223 ../../include/bbcode.php:1226
+#: ../../include/bbcode.php:1229
+msgid "Image/photo"
+msgstr "Изображение / фотография"
-#: ../../extend/addon/hzaddons/chords/Mod_Chords.php:59
-msgid "Show for left handed stringing"
-msgstr "Показывать струны для левшей"
+#: ../../include/bbcode.php:239 ../../include/bbcode.php:1240
+msgid "Encrypted content"
+msgstr "Зашифрованное содержание"
-#: ../../extend/addon/hzaddons/chords/chords.php:33
-msgid "Quick Reference"
-msgstr "Быстрая ссылка"
+#: ../../include/bbcode.php:255
+#, php-format
+msgid "Install %1$s element %2$s"
+msgstr "Установить %1$s элемент %2$s"
-#: ../../extend/addon/hzaddons/libertree/libertree.php:38
-msgid "Post to Libertree"
-msgstr "Опубликовать в Libertree"
+#: ../../include/bbcode.php:259
+#, php-format
+msgid ""
+"This post contains an installable %s element, however you lack permissions "
+"to install it on this site."
+msgstr "Эта публикация содержит устанавливаемый %s элемент, однако у вас нет разрешений для его установки на этом сайте."
-#: ../../extend/addon/hzaddons/libertree/libertree.php:69
-msgid "Enable Libertree Post Plugin"
-msgstr "Включить плагин публикаций Libertree"
+#: ../../include/bbcode.php:339
+msgid "card"
+msgstr "карточка"
-#: ../../extend/addon/hzaddons/libertree/libertree.php:73
-msgid "Libertree API token"
-msgstr "Токен Libertree API"
+#: ../../include/bbcode.php:341
+msgid "article"
+msgstr "статья"
-#: ../../extend/addon/hzaddons/libertree/libertree.php:77
-msgid "Libertree site URL"
-msgstr "URL сайта Libertree"
+#: ../../include/bbcode.php:424 ../../include/bbcode.php:432
+msgid "Click to open/close"
+msgstr "Нажмите, чтобы открыть/закрыть"
-#: ../../extend/addon/hzaddons/libertree/libertree.php:81
-msgid "Post to Libertree by default"
-msgstr "Публиковать в Libertree по умолчанию"
+#: ../../include/bbcode.php:432
+msgid "spoiler"
+msgstr "спойлер"
-#: ../../extend/addon/hzaddons/libertree/libertree.php:85
-msgid "Libertree Post Settings"
-msgstr "Настройки публикаций в Libertree"
+#: ../../include/bbcode.php:445
+msgid "View article"
+msgstr "Просмотр статьи"
-#: ../../extend/addon/hzaddons/libertree/libertree.php:99
-msgid "Libertree Settings saved."
-msgstr "Настройки Libertree сохранены."
+#: ../../include/bbcode.php:445
+msgid "View summary"
+msgstr "Просмотр резюме"
-#: ../../extend/addon/hzaddons/redred/redred.php:45
-msgid "Post to Red"
-msgstr "Опубликовать в Red"
+#: ../../include/bbcode.php:1178
+msgid "$1 wrote:"
+msgstr "$1 писал:"
-#: ../../extend/addon/hzaddons/redred/redred.php:60
-msgid "Channel is required."
-msgstr "Необходим канал."
+#: ../../include/oembed.php:226
+msgid "View PDF"
+msgstr "Просмотреть PDF"
-#: ../../extend/addon/hzaddons/redred/redred.php:76
-msgid "redred Settings saved."
-msgstr "Настройки RedRed сохранены."
+#: ../../include/oembed.php:356
+msgid " by "
+msgstr " по "
-#: ../../extend/addon/hzaddons/redred/redred.php:95
-msgid "Allow posting to another Hubzilla Channel"
-msgstr "Разрешить публиковать в другой канал Hubzilla"
+#: ../../include/oembed.php:357
+msgid " on "
+msgstr " на "
-#: ../../extend/addon/hzaddons/redred/redred.php:99
-msgid "Send public postings to Hubzilla channel by default"
-msgstr "Отправлять общедоступные публикации в канал Hubzilla по умолчанию"
+#: ../../include/oembed.php:386
+msgid "Embedded content"
+msgstr "Встроенное содержимое"
-#: ../../extend/addon/hzaddons/redred/redred.php:103
-msgid "Hubzilla API Path"
-msgstr "Путь к Hubzilla API"
+#: ../../include/oembed.php:395
+msgid "Embedding disabled"
+msgstr "Встраивание отключено"
-#: ../../extend/addon/hzaddons/redred/redred.php:107
-msgid "Hubzilla login name"
-msgstr "Имя входа Hubzilla"
+#: ../../include/zid.php:351
+#, php-format
+msgid "OpenWebAuth: %1$s welcomes %2$s"
+msgstr "OpenWebAuth: %1$s приветствует %2$s"
-#: ../../extend/addon/hzaddons/redred/redred.php:111
-msgid "Hubzilla channel name"
-msgstr "Название канала Hubzilla"
+#: ../../include/features.php:86 ../../include/features.php:273
+msgid "Start calendar week on Monday"
+msgstr "Начинать календарную неделю с понедельника"
-#: ../../extend/addon/hzaddons/redred/redred.php:119
-msgid "Hubzilla Crosspost Settings"
-msgstr "Настройки перекрёстных публикаций Hubzilla"
+#: ../../include/features.php:87 ../../include/features.php:274
+msgid "Default is Sunday"
+msgstr "По умолчанию - воскресенье"
-#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:25
-msgid "ActivityPub Protocol Settings updated."
-msgstr "Настройки протокола ActivityPub обновлены."
+#: ../../include/features.php:100
+msgid "Search by Date"
+msgstr "Поиск по дате"
+
+#: ../../include/features.php:101
+msgid "Ability to select posts by date ranges"
+msgstr "Возможность выбора сообщений по диапазонам дат"
+
+#: ../../include/features.php:108
+msgid "Tag Cloud"
+msgstr "Облако тегов"
+
+#: ../../include/features.php:109
+msgid "Provide a personal tag cloud on your channel page"
+msgstr "Показывает личное облако тегов на странице канала"
+
+#: ../../include/features.php:116 ../../include/features.php:373
+msgid "Use blog/list mode"
+msgstr "Использовать режим блога / списка"
+
+#: ../../include/features.php:117 ../../include/features.php:374
+msgid "Comments will be displayed separately"
+msgstr "Комментарии будут отображаться отдельно"
+
+#: ../../include/features.php:129
+msgid "Connection Filtering"
+msgstr "Фильтрация контактов"
+
+#: ../../include/features.php:130
+msgid "Filter incoming posts from connections based on keywords/content"
+msgstr "Фильтр входящих сообщений от контактов на основе ключевых слов / контента"
+
+#: ../../include/features.php:138
+msgid "Conversation"
+msgstr "Диалоги"
+
+#: ../../include/features.php:142
+msgid "Community Tagging"
+msgstr "Отметки сообщества"
+
+#: ../../include/features.php:143
+msgid "Ability to tag existing posts"
+msgstr "Возможность помечать тегами существующие публикации"
+
+#: ../../include/features.php:150
+msgid "Emoji Reactions"
+msgstr "Реакции Emoji"
+
+#: ../../include/features.php:151
+msgid "Add emoji reaction ability to posts"
+msgstr "Возможность добавлять реакции Emoji к публикациям"
+
+#: ../../include/features.php:158
+msgid "Dislike Posts"
+msgstr "Не нравящиеся публикации"
+
+#: ../../include/features.php:159
+msgid "Ability to dislike posts/comments"
+msgstr "Возможность отмечать не нравящиеся публикации / комментарии"
+
+#: ../../include/features.php:166
+msgid "Star Posts"
+msgstr "Помечать сообщения"
+
+#: ../../include/features.php:167
+msgid "Ability to mark special posts with a star indicator"
+msgstr "Возможность отметить специальные сообщения индикатором-звёздочкой"
+
+#: ../../include/features.php:180
+msgid "Advanced Directory Search"
+msgstr "Расширенный поиск в каталоге"
+
+#: ../../include/features.php:181
+msgid "Allows creation of complex directory search queries"
+msgstr "Позволяет создание сложных поисковых запросов в каталоге"
+
+#: ../../include/features.php:190
+msgid "Editor"
+msgstr "Редактор"
+
+#: ../../include/features.php:194
+msgid "Post Categories"
+msgstr "Категории публикаций"
-#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:34
+#: ../../include/features.php:195
+msgid "Add categories to your posts"
+msgstr "Добавить категории для ваших публикаций"
+
+#: ../../include/features.php:203
+msgid "Large Photos"
+msgstr "Большие фотографии"
+
+#: ../../include/features.php:204
msgid ""
-"The activitypub protocol does not support location independence. Connections "
-"you make within that network may be unreachable from alternate channel "
-"locations."
-msgstr "Протокол ActivityPub не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала."
+"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
+"(640px) photo thumbnails"
+msgstr "Включить большие (1024px) миниатюры изображений в публикациях. Если не включено, использовать маленькие (640px) миниатюры."
-#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:48
-msgid "Deliver to ActivityPub recipients in privacy groups"
-msgstr "Доставить получателям ActivityPub в группах безопасности"
+#: ../../include/features.php:211
+msgid "Even More Encryption"
+msgstr "Еще больше шифрования"
-#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:48
+#: ../../include/features.php:212
msgid ""
-"May result in a large number of mentions and expose all the members of your "
-"privacy group"
-msgstr "Может привести к большому количеству упоминаний и раскрытию участников группы безопасности"
+"Allow optional encryption of content end-to-end with a shared secret key"
+msgstr "Разрешить дополнительное end-to-end шифрование содержимого с общим секретным ключом"
-#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:52
-msgid "Send multi-media HTML articles"
-msgstr "Отправить HTML статьи с мультимедиа"
+#: ../../include/features.php:219
+msgid "Enable Voting Tools"
+msgstr "Включить инструменты голосования"
-#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:52
-msgid "Not supported by some microblog services such as Mastodon"
-msgstr "Не поддерживается некоторыми микроблогами, например Mastodon"
+#: ../../include/features.php:220
+msgid "Provide a class of post which others can vote on"
+msgstr "Предоставь класс публикаций с возможностью голосования"
-#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:60
-msgid "Activitypub Protocol"
-msgstr "Протокол ActivityPub"
+#: ../../include/features.php:227
+msgid "Disable Comments"
+msgstr "Отключить комментарии"
-#: ../../extend/addon/hzaddons/diaspora/import_diaspora.php:18
-msgid "No username found in import file."
-msgstr "Имя пользователя не найдено в файле для импорта."
+#: ../../include/features.php:228
+msgid "Provide the option to disable comments for a post"
+msgstr "Предоставить возможность отключать комментарии для публикаций"
-#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:40
-msgid "Diaspora Protocol Settings updated."
-msgstr "Настройки протокола Diaspora обновлены."
+#: ../../include/features.php:235
+msgid "Delayed Posting"
+msgstr "Задержанная публикация"
-#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:49
+#: ../../include/features.php:236
+msgid "Allow posts to be published at a later date"
+msgstr "Разрешить размешать публикации следующими датами"
+
+#: ../../include/features.php:243
+msgid "Content Expiration"
+msgstr "Истечение срока действия содержимого"
+
+#: ../../include/features.php:244
+msgid "Remove posts/comments and/or private messages at a future time"
+msgstr "Удалять публикации / комментарии и / или личные сообщения"
+
+#: ../../include/features.php:251
+msgid "Suppress Duplicate Posts/Comments"
+msgstr "Подавлять дублирующие публикации / комментарии"
+
+#: ../../include/features.php:252
msgid ""
-"The diaspora protocol does not support location independence. Connections "
-"you make within that network may be unreachable from alternate channel "
-"locations."
-msgstr "Протокол Diaspora не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала."
+"Prevent posts with identical content to be published with less than two "
+"minutes in between submissions."
+msgstr "Предотвращает появление публикаций с одинаковым содержимым если интервал между ними менее 2 минут"
-#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:74
-msgid "Allow any Diaspora member to comment on your public posts"
-msgstr "Разрешить любому участнику Diaspora комментировать ваши общедоступные публикации"
+#: ../../include/features.php:259
+msgid "Auto-save drafts of posts and comments"
+msgstr "Автоматически сохранять черновики публикаций и комментариев"
-#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:78
-msgid "Prevent your hashtags from being redirected to other sites"
-msgstr "Предотвратить перенаправление тегов на другие сайты"
+#: ../../include/features.php:260
+msgid ""
+"Automatically saves post and comment drafts in local browser storage to help "
+"prevent accidental loss of compositions"
+msgstr "Автоматически сохраняет черновики публикаций и комментариев в локальном хранилище браузера для предотвращения их случайной утраты"
-#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:82
-msgid "Sign and forward posts and comments with no existing Diaspora signature"
-msgstr "Подписывать и отправлять публикации и комментарии с несуществующей подписью Diaspora"
+#: ../../include/features.php:281
+msgid "Smart Birthdays"
+msgstr "\"Умные\" Дни рождений"
-#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:87
-msgid "Followed hashtags (comma separated, do not include the #)"
-msgstr "Отслеживаемые теги (через запятую, исключая #)"
+#: ../../include/features.php:282
+msgid ""
+"Make birthday events timezone aware in case your friends are scattered "
+"across the planet."
+msgstr "Сделать уведомления о днях рождения зависимыми от часового пояса в том случае, если ваши друзья разбросаны по планете."
-#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:96
-msgid "Diaspora Protocol"
-msgstr "Протокол Diaspora"
+#: ../../include/features.php:289
+msgid "Event Timezone Selection"
+msgstr "Выбор часового пояса события"
-#: ../../extend/addon/hzaddons/wppost/wppost.php:46
-msgid "Post to WordPress"
-msgstr "Опубликовать в WordPress"
+#: ../../include/features.php:290
+msgid "Allow event creation in timezones other than your own."
+msgstr "Разрешить создание события в часовой зоне отличной от вашей"
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:28
-msgid "Wordpress Settings saved."
-msgstr "Настройки WordPress сохранены."
+#: ../../include/features.php:299
+msgid "Manage"
+msgstr "Управление"
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:42
-msgid "Post to WordPress or anything else which uses the wordpress XMLRPC API"
-msgstr "Опубликовать в WordPress или в чём-то ещё, поддерживающем wordpress XMLRPC API"
+#: ../../include/features.php:303
+msgid "Navigation Channel Select"
+msgstr "Выбор канала навигации"
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:65
-msgid "WordPress username"
-msgstr "Имя пользователя WordPress"
+#: ../../include/features.php:304
+msgid "Change channels directly from within the navigation dropdown menu"
+msgstr "Изменить канал напрямую из выпадающего меню"
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:69
-msgid "WordPress password"
-msgstr "Пароль WordPress"
+#: ../../include/features.php:318
+msgid "Save search terms for re-use"
+msgstr "Сохранять результаты поиска для повторного использования"
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:73
-msgid "WordPress API URL"
-msgstr "URL API WordPress"
+#: ../../include/features.php:326
+msgid "Ability to file posts under folders"
+msgstr "Возможность размещать публикации в каталогах"
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:74
-msgid "Typically https://your-blog.tld/xmlrpc.php"
-msgstr "Обычно https://your-blog.tld/xmlrpc.php"
+#: ../../include/features.php:333
+msgid "Alternate Stream Order"
+msgstr "Отображение потока"
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:77
-msgid "WordPress blogid"
-msgstr ""
+#: ../../include/features.php:334
+msgid ""
+"Ability to order the stream by last post date, last comment date or "
+"unthreaded activities"
+msgstr "Возможность показывать поток по дате последнего сообщения, последнего комментария или в порядке поступления"
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:78
-msgid "For multi-user sites such as wordpress.com, otherwise leave blank"
-msgstr "Для многопользовательских сайтов, таких, как wordpress.com. В противном случае оставьте пустым"
+#: ../../include/features.php:341
+msgid "Contact Filter"
+msgstr "Фильтр контактов"
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:82
-msgid "Post to WordPress by default"
-msgstr "Публиковать в WordPress по умолчанию"
+#: ../../include/features.php:342
+msgid "Ability to display only posts of a selected contact"
+msgstr "Возможность показа публикаций только от выбранных контактов"
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:86
-msgid "Forward comments (requires hubzilla_wp plugin)"
-msgstr "Пересылать комментарии (требуется плагин hubzilla_wp)"
+#: ../../include/features.php:349
+msgid "Forum Filter"
+msgstr "Фильтр по форумам"
-#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:94
-msgid "Wordpress Post"
-msgstr "Публикация в WordPress"
+#: ../../include/features.php:350
+msgid "Ability to display only posts of a specific forum"
+msgstr "Возможность показа публикаций только определённого форума"
-#: ../../extend/addon/hzaddons/nsfw/nsfw.php:152
-msgid "Possible adult content"
-msgstr "Возможно содержимое для взрослых"
+#: ../../include/features.php:357
+msgid "Personal Posts Filter"
+msgstr "Персональный фильтр публикаций"
+
+#: ../../include/features.php:358
+msgid "Ability to display only posts that you've interacted on"
+msgstr "Возможность показа только тех публикаций с которыми вы взаимодействовали"
+
+#: ../../include/features.php:366
+msgid "Show friend and connection suggestions"
+msgstr "Показать предложения в друзья"
+
+#: ../../include/features.php:387
+msgid "Photo Location"
+msgstr "Местоположение фотографии"
+
+#: ../../include/features.php:388
+msgid "If location data is available on uploaded photos, link this to a map."
+msgstr "Если данные о местоположении доступны на загруженных фотографий, связать их с картой."
+
+#: ../../include/features.php:401
+msgid "Advanced Profiles"
+msgstr "Расширенные профили"
+
+#: ../../include/features.php:402
+msgid "Additional profile sections and selections"
+msgstr "Дополнительные секции и выборы профиля"
+
+#: ../../include/features.php:409
+msgid "Profile Import/Export"
+msgstr "Импорт / экспорт профиля"
+
+#: ../../include/features.php:410
+msgid "Save and load profile details across sites/channels"
+msgstr "Сохранение и загрузка настроек профиля на всех сайтах / каналах"
+
+#: ../../include/features.php:417
+msgid "Multiple Profiles"
+msgstr "Несколько профилей"
+
+#: ../../include/features.php:418
+msgid "Ability to create multiple profiles"
+msgstr "Возможность создания нескольких профилей"
+
+#: ../../include/taxonomy.php:320
+msgid "Trending"
+msgstr "В тренде"
+
+#: ../../include/taxonomy.php:552
+msgid "Keywords"
+msgstr "Ключевые слова"
+
+#: ../../include/taxonomy.php:573
+msgid "have"
+msgstr "иметь"
+
+#: ../../include/taxonomy.php:573
+msgid "has"
+msgstr "есть"
+
+#: ../../include/taxonomy.php:574
+msgid "want"
+msgstr "хотеть"
+
+#: ../../include/taxonomy.php:574
+msgid "wants"
+msgstr "хотеть"
+
+#: ../../include/taxonomy.php:575
+msgid "likes"
+msgstr "нравится"
+
+#: ../../include/taxonomy.php:576
+msgid "dislikes"
+msgstr "не нравится"
+
+#: ../../include/account.php:36
+msgid "Not a valid email address"
+msgstr "Недействительный адрес электронной почты"
+
+#: ../../include/account.php:38
+msgid "Your email domain is not among those allowed on this site"
+msgstr "Домен электронной почты не входит в число тех, которые разрешены на этом сайте"
+
+#: ../../include/account.php:44
+msgid "Your email address is already registered at this site."
+msgstr "Ваш адрес электронной почты уже зарегистрирован на этом сайте."
+
+#: ../../include/account.php:76
+msgid "An invitation is required."
+msgstr "Требуется приглашение."
+
+#: ../../include/account.php:80
+msgid "Invitation could not be verified."
+msgstr "Не удалось проверить приглашение."
+
+#: ../../include/account.php:158
+msgid "Please enter the required information."
+msgstr "Пожалуйста, введите необходимую информацию."
-#: ../../extend/addon/hzaddons/nsfw/nsfw.php:167
+#: ../../include/account.php:225
+msgid "Failed to store account information."
+msgstr "Не удалось сохранить информацию аккаунта."
+
+#: ../../include/account.php:314
#, php-format
-msgid "%s - view"
-msgstr "%s - просмотр"
+msgid "Registration confirmation for %s"
+msgstr "Подтверждение регистрации на %s"
-#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:22
-msgid "NSFW Settings saved."
-msgstr "Настройки NSFW сохранены."
+#: ../../include/account.php:385
+#, php-format
+msgid "Registration request at %s"
+msgstr "Запрос регистрации на %s"
-#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:34
-msgid "Collapse content that contains predefined words"
-msgstr "Свернуть содержимое, содержащее предопределенные слова"
+#: ../../include/account.php:407
+msgid "your registration password"
+msgstr "ваш пароль регистрации"
-#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:44
-msgid ""
-"This app looks in posts for the words/text you specify below, and collapses "
-"any content containing those keywords so it is not displayed at "
-"inappropriate times, such as sexual innuendo that may be improper in a work "
-"setting. It is polite and recommended to tag any content containing nudity "
-"with #NSFW. This filter can also match any other word/text you specify, and "
-"can thereby be used as a general purpose content filter."
-msgstr "Это приложение просматривает публикации для слов / текста, которые вы указываете ниже, и сворачивает любой контент, содержащий эти ключевые слова, поэтому он не отображается в неподходящее время, например, сексуальные инсинуации, которые могут быть неправильными в настройке работы. Например, мы рекомендуем отмечать любой контент, содержащий наготу, тегом #NSFW. Этот фильтр также способен реагировать на любое другое указанное вами слово / текст и может использоваться в качестве фильтра содержимого общего назначения."
+#: ../../include/account.php:413 ../../include/account.php:475
+#, php-format
+msgid "Registration details for %s"
+msgstr "Регистрационные данные для %s"
-#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:49
-msgid "Comma separated list of keywords to hide"
-msgstr "Список ключевых слов для скрытия, через запятую"
+#: ../../include/account.php:486
+msgid "Account approved."
+msgstr "Аккаунт утвержден."
-#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:49
-msgid "Word, /regular-expression/, lang=xx, lang!=xx"
-msgstr "слово, /регулярное_выражение/, lang=xx, lang!=xx"
+#: ../../include/account.php:526
+#, php-format
+msgid "Registration revoked for %s"
+msgstr "Регистрация отозвана для %s"
-#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:58
-msgid "NSFW"
-msgstr ""
+#: ../../include/account.php:805 ../../include/account.php:807
+msgid "Click here to upgrade."
+msgstr "Нажмите здесь для обновления."
-#: ../../extend/addon/hzaddons/skeleton/skeleton.php:59
-msgid "Some setting"
-msgstr "Некоторые настройки"
+#: ../../include/account.php:813
+msgid "This action exceeds the limits set by your subscription plan."
+msgstr "Это действие превышает ограничения, установленные в вашем плане."
-#: ../../extend/addon/hzaddons/skeleton/skeleton.php:61
-msgid "A setting"
-msgstr "Настройка"
+#: ../../include/account.php:818
+msgid "This action is not available under your subscription plan."
+msgstr "Это действие невозможно из-за ограничений в вашем плане."
-#: ../../extend/addon/hzaddons/skeleton/skeleton.php:64
-msgid "Skeleton Settings"
-msgstr "Настройки скелета"
+#: ../../include/datetime.php:140
+msgid "Birthday"
+msgstr "День рождения"
+
+#: ../../include/datetime.php:140
+msgid "Age: "
+msgstr "Возраст:"
+
+#: ../../include/datetime.php:140
+msgid "YYYY-MM-DD or MM-DD"
+msgstr "YYYY-MM-DD или MM-DD"
-#: ../../extend/addon/hzaddons/opensearch/opensearch.php:26
+#: ../../include/datetime.php:244
+msgid "less than a second ago"
+msgstr "менее чем одну секунду"
+
+#: ../../include/datetime.php:262
#, php-format
-msgctxt "opensearch"
-msgid "Search %1$s (%2$s)"
-msgstr "Искать %1$s (%2$s)"
+msgctxt "e.g. 22 hours ago, 1 minute ago"
+msgid "%1$d %2$s ago"
+msgstr "%1$d %2$s назад"
-#: ../../extend/addon/hzaddons/opensearch/opensearch.php:28
-msgctxt "opensearch"
-msgid "$Projectname"
-msgstr ""
+#: ../../include/datetime.php:273
+msgctxt "relative_date"
+msgid "year"
+msgid_plural "years"
+msgstr[0] "год"
+msgstr[1] "года"
+msgstr[2] "лет"
-#: ../../extend/addon/hzaddons/opensearch/opensearch.php:43
-msgid "Search $Projectname"
-msgstr "Поиск $Projectname"
+#: ../../include/datetime.php:276
+msgctxt "relative_date"
+msgid "month"
+msgid_plural "months"
+msgstr[0] "месяц"
+msgstr[1] "месяца"
+msgstr[2] "месяцев"
+
+#: ../../include/datetime.php:279
+msgctxt "relative_date"
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "неделю"
+msgstr[1] "недели"
+msgstr[2] "недель"
+
+#: ../../include/datetime.php:282
+msgctxt "relative_date"
+msgid "day"
+msgid_plural "days"
+msgstr[0] "день"
+msgstr[1] "дня"
+msgstr[2] "дней"
+
+#: ../../include/datetime.php:285
+msgctxt "relative_date"
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "час"
+msgstr[1] "часа"
+msgstr[2] "часов"
+
+#: ../../include/datetime.php:288
+msgctxt "relative_date"
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "минуту"
+msgstr[1] "минуты"
+msgstr[2] "минут"
+
+#: ../../include/datetime.php:291
+msgctxt "relative_date"
+msgid "second"
+msgid_plural "seconds"
+msgstr[0] "секунду"
+msgstr[1] "секунды"
+msgstr[2] "секунд"
+
+#: ../../include/datetime.php:520
+#, php-format
+msgid "%1$s's birthday"
+msgstr "У %1$s День рождения"
+
+#: ../../include/datetime.php:521
+#, php-format
+msgid "Happy Birthday %1$s"
+msgstr "С Днем рождения %1$s !"
+
+#: ../../include/nav.php:86
+msgid "Remote authentication"
+msgstr "Удаленная аутентификация"
+
+#: ../../include/nav.php:86
+msgid "Click to authenticate to your home hub"
+msgstr "Нажмите, чтобы аутентифицировать себя на домашнем узле"
+
+#: ../../include/nav.php:92
+msgid "Manage your channels"
+msgstr "Управление вашими каналами"
+
+#: ../../include/nav.php:95
+msgid "Manage your privacy groups"
+msgstr "Управление вашим группами безопасности"
+
+#: ../../include/nav.php:97
+msgid "Account/Channel Settings"
+msgstr "Настройки аккаунта / канала"
+
+#: ../../include/nav.php:103 ../../include/nav.php:132
+msgid "End this session"
+msgstr "Закончить эту сессию"
+
+#: ../../include/nav.php:106
+msgid "Your profile page"
+msgstr "Страницa вашего профиля"
+
+#: ../../include/nav.php:109
+msgid "Manage/Edit profiles"
+msgstr "Управление / редактирование профилей"
+
+#: ../../include/nav.php:118 ../../include/nav.php:122
+msgid "Sign in"
+msgstr "Войти"
+
+#: ../../include/nav.php:149
+msgid "Take me home"
+msgstr "Домой"
+
+#: ../../include/nav.php:151
+msgid "Log me out of this site"
+msgstr "Выйти с этого сайта"
+
+#: ../../include/nav.php:156
+msgid "Create an account"
+msgstr "Создать аккаунт"
+
+#: ../../include/nav.php:168
+msgid "Help and documentation"
+msgstr "Справочная информация и документация"
+
+#: ../../include/nav.php:183
+msgid "Search site @name, !forum, #tag, ?docs, content"
+msgstr "Искать на сайте @имя, !форум, #тег, ?документ, содержимое"
+
+#: ../../include/nav.php:189
+msgid "Site Setup and Configuration"
+msgstr "Установка и конфигурация сайта"
+
+#: ../../include/nav.php:329
+msgid "@name, !forum, #tag, ?doc, content"
+msgstr "@имя, !форум, #тег, ?документ, содержимое"
+
+#: ../../include/nav.php:330
+msgid "Please wait..."
+msgstr "Подождите пожалуйста ..."
+
+#: ../../include/nav.php:336
+msgid "Add Apps"
+msgstr "Добавить приложения"
+
+#: ../../include/nav.php:337
+msgid "Arrange Apps"
+msgstr "Упорядочить приложения"
+
+#: ../../include/nav.php:338
+msgid "Toggle System Apps"
+msgstr "Показать системные приложения"
+
+#: ../../include/nav.php:424
+msgid "Status Messages and Posts"
+msgstr "Статусы и публикации"
+
+#: ../../include/nav.php:437
+msgid "Profile Details"
+msgstr "Информация о профиле"
+
+#: ../../include/nav.php:447 ../../include/photos.php:669
+msgid "Photo Albums"
+msgstr "Фотоальбомы"
+
+#: ../../include/nav.php:455
+msgid "Files and Storage"
+msgstr "Файлы и хранилище"
+
+#: ../../include/nav.php:493
+msgid "Saved Bookmarks"
+msgstr "Сохранённые закладки"
+
+#: ../../include/nav.php:504
+msgid "View Cards"
+msgstr "Просмотреть карточки"
+
+#: ../../include/nav.php:515
+msgid "View Articles"
+msgstr "Просмотр статей"
+
+#: ../../include/nav.php:527
+msgid "View Webpages"
+msgstr "Просмотр веб-страниц"
+
+#: ../../include/photos.php:151
+#, php-format
+msgid "Image exceeds website size limit of %lu bytes"
+msgstr "Файл превышает предельный размер для сайта в %lu байт"
+
+#: ../../include/photos.php:162
+msgid "Image file is empty."
+msgstr "Файл изображения пуст."
+
+#: ../../include/photos.php:327
+msgid "Photo storage failed."
+msgstr "Ошибка хранилища фотографий."
+
+#: ../../include/photos.php:376
+msgid "a new photo"
+msgstr "новая фотография"
+
+#: ../../include/photos.php:380
+#, php-format
+msgctxt "photo_upload"
+msgid "%1$s posted %2$s to %3$s"
+msgstr "%1$s опубликовал %2$s в %3$s"
+
+#: ../../include/photos.php:674
+msgid "Upload New Photos"
+msgstr "Загрузить новые фотографии"
+
+#: ../../include/zot.php:775
+msgid "Invalid data packet"
+msgstr "Неверный пакет данных"
+
+#: ../../include/zot.php:4288
+msgid "invalid target signature"
+msgstr "недопустимая целевая подпись"
+
+#: ../../include/connections.php:133
+msgid "New window"
+msgstr "Новое окно"
+
+#: ../../include/connections.php:134
+msgid "Open the selected location in a different window or browser tab"
+msgstr "Открыть выбранное местоположение в другом окне или вкладке браузера"
+
+#: ../../include/auth.php:192
+msgid "Delegation session ended."
+msgstr "Делегированная сессия завершена."
+
+#: ../../include/auth.php:196
+msgid "Logged out."
+msgstr "Вышел из системы."
+
+#: ../../include/auth.php:291
+msgid "Email validation is incomplete. Please check your email."
+msgstr "Проверка email не завершена. Пожалуйста, проверьте вашу почту."
+
+#: ../../include/auth.php:307
+msgid "Failed authentication"
+msgstr "Ошибка аутентификации"
+
+#: ../../include/help.php:80
+msgid "Help:"
+msgstr "Помощь:"
+
+#: ../../include/help.php:129
+msgid "Not Found"
+msgstr "Не найдено"
diff --git a/view/ru/hstrings.php b/view/ru/hstrings.php
index 598d02718..79e5e9000 100644
--- a/view/ru/hstrings.php
+++ b/view/ru/hstrings.php
@@ -6,1068 +6,96 @@ function string_plural_select_ru($n){
}}
App::$rtl = 0;
App::$strings["plural_function_code"] = "(n%10==1 && n%100!=11 ? 0 : (n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2))";
-App::$strings["Source channel not found."] = "Канал-источник не найден.";
-App::$strings["Default"] = "По умолчанию";
-App::$strings["Focus (Hubzilla default)"] = "Фокус (по умолчанию Hubzilla)";
-App::$strings["Submit"] = "Отправить";
-App::$strings["Theme settings"] = "Настройки темы";
-App::$strings["Narrow navbar"] = "Узкая панель навигации";
-App::$strings["No"] = "Нет";
-App::$strings["Yes"] = "Да";
-App::$strings["Navigation bar background color"] = "Панель навигации, цвет фона";
-App::$strings["Navigation bar icon color "] = "Панель навигации, цвет значков";
-App::$strings["Navigation bar active icon color "] = "Панель навигации, цвет активного значка";
-App::$strings["Link color"] = "Цвет ссылок";
-App::$strings["Set font-color for banner"] = "Цвет текста в шапке";
-App::$strings["Set the background color"] = "Цвет фона";
-App::$strings["Set the background image"] = "Фоновое изображение";
-App::$strings["Set the background color of items"] = "Цвет фона элементов";
-App::$strings["Set the background color of comments"] = "Цвет фона комментариев";
-App::$strings["Set font-size for the entire application"] = "Установить системный размер шрифта";
-App::$strings["Examples: 1rem, 100%, 16px"] = "Например: 1rem, 100%, 16px";
-App::$strings["Set font-color for posts and comments"] = "Цвет шрифта для постов и комментариев";
-App::$strings["Set radius of corners"] = "Радиус скруглений";
-App::$strings["Example: 4px"] = "Например: 4px";
-App::$strings["Set shadow depth of photos"] = "Глубина теней фотографий";
-App::$strings["Set maximum width of content region in pixel"] = "Максимальная ширина содержания региона (в пикселях)";
-App::$strings["Leave empty for default width"] = "Оставьте пустым для ширины по умолчанию";
-App::$strings["Set size of conversation author photo"] = "Размер фотографии автора беседы";
-App::$strings["Set size of followup author photos"] = "Размер фотографий подписчиков";
-App::$strings["Show advanced settings"] = "Показать расширенные настройки";
-App::$strings["Profile to assign new connections"] = "Назначить профиль для новых контактов";
-App::$strings["Frequently"] = "Часто";
-App::$strings["Hourly"] = "Ежечасно";
-App::$strings["Twice daily"] = "Дважды в день";
-App::$strings["Daily"] = "Ежедневно";
-App::$strings["Weekly"] = "Еженедельно";
-App::$strings["Monthly"] = "Ежемесячно";
-App::$strings["Male"] = "Мужчина";
-App::$strings["Female"] = "Женщина";
-App::$strings["Currently Male"] = "В настоящее время мужской";
-App::$strings["Currently Female"] = "В настоящее время женский";
-App::$strings["Mostly Male"] = "В основном мужской";
-App::$strings["Mostly Female"] = "В основном женский";
-App::$strings["Transgender"] = "Трансгендер";
-App::$strings["Intersex"] = "Интерсексуал";
-App::$strings["Transsexual"] = "Транссексуал";
-App::$strings["Hermaphrodite"] = "Гермафродит";
-App::$strings["Neuter"] = "Среднего рода";
-App::$strings["Non-specific"] = "Неспецифический";
+App::$strings["Can view my channel stream and posts"] = "Может просматривать мой поток и сообщения";
+App::$strings["Can send me their channel stream and posts"] = "Может присылать мне свои потоки и сообщения";
+App::$strings["Can view my default channel profile"] = "Может просматривать мой стандартный профиль канала";
+App::$strings["Can view my connections"] = "Может просматривать мои контакты";
+App::$strings["Can view my file storage and photos"] = "Может просматривать мое хранилище файлов";
+App::$strings["Can upload/modify my file storage and photos"] = "Может загружать/изменять мои файлы и фотографии в хранилище";
+App::$strings["Can view my channel webpages"] = "Может просматривать мои веб-страницы";
+App::$strings["Can view my wiki pages"] = "Может просматривать мои вики-страницы";
+App::$strings["Can create/edit my channel webpages"] = "Может редактировать мои веб-страницы";
+App::$strings["Can write to my wiki pages"] = "Может редактировать мои вики-страницы";
+App::$strings["Can post on my channel (wall) page"] = "Может публиковать на моей странице канала";
+App::$strings["Can comment on or like my posts"] = "Может прокомментировать или отмечать как понравившиеся мои публикации";
+App::$strings["Can send me private mail messages"] = "Может отправлять мне личные сообщения по эл. почте";
+App::$strings["Can like/dislike profiles and profile things"] = "Может комментировать или отмечать как нравится/ненравится мой профиль";
+App::$strings["Can forward to all my channel connections via ! mentions in posts"] = "Может пересылать всем подписчикам моего канала используя ! в публикациях";
+App::$strings["Can chat with me"] = "Может общаться со мной в чате";
+App::$strings["Can source my public posts in derived channels"] = "Может использовать мои публичные сообщения в клонированных лентах сообщений";
+App::$strings["Can administer my channel"] = "Может администрировать мой канал";
+App::$strings["Social Networking"] = "Социальная Сеть";
+App::$strings["Social - Federation"] = "Социальная - Федерация";
+App::$strings["Social - Mostly Public"] = "Социальная - В основном общественный";
+App::$strings["Social - Restricted"] = "Социальная - Ограниченный";
+App::$strings["Social - Private"] = "Социальная - Частный";
+App::$strings["Community Forum"] = "Форум сообщества";
+App::$strings["Forum - Mostly Public"] = "Форум - В основном общественный";
+App::$strings["Forum - Restricted"] = "Форум - Ограниченный";
+App::$strings["Forum - Private"] = "Форум - Частный";
+App::$strings["Feed Republish"] = "Публиковать ленты новостей";
+App::$strings["Feed - Mostly Public"] = "Ленты новостей - В основном общественный";
+App::$strings["Feed - Restricted"] = "Ленты новостей - Ограниченный";
+App::$strings["Special Purpose"] = "Спец. назначение";
+App::$strings["Special - Celebrity/Soapbox"] = "Спец. назначение - Знаменитость/Soapbox";
+App::$strings["Special - Group Repository"] = "Спец. назначение - Групповой репозиторий";
App::$strings["Other"] = "Другой";
-App::$strings["Undecided"] = "Не решил";
-App::$strings["Males"] = "Мужчины";
-App::$strings["Females"] = "Женщины";
-App::$strings["Gay"] = "Гей";
-App::$strings["Lesbian"] = "Лесбиянка";
-App::$strings["No Preference"] = "Без предпочтений";
-App::$strings["Bisexual"] = "Бисексуал";
-App::$strings["Autosexual"] = "Автосексуал";
-App::$strings["Abstinent"] = "Воздержание";
-App::$strings["Virgin"] = "Девственник";
-App::$strings["Deviant"] = "Отклоняющийся от нормы";
-App::$strings["Fetish"] = "Фетишист";
-App::$strings["Oodles"] = "Множественный";
-App::$strings["Nonsexual"] = "Асексуал";
-App::$strings["Single"] = "Одиночка";
-App::$strings["Lonely"] = "Одинокий";
-App::$strings["Available"] = "Свободен";
-App::$strings["Unavailable"] = "Занят";
-App::$strings["Has crush"] = "Влюблён";
-App::$strings["Infatuated"] = "без ума";
-App::$strings["Dating"] = "Встречаюсь";
-App::$strings["Unfaithful"] = "Неверный";
-App::$strings["Sex Addict"] = "Эротоман";
-App::$strings["Friends"] = "Друзья";
-App::$strings["Friends/Benefits"] = "Друзья / Выгоды";
-App::$strings["Casual"] = "Легкомысленный";
-App::$strings["Engaged"] = "Помолвлен";
-App::$strings["Married"] = "В браке";
-App::$strings["Imaginarily married"] = "В воображаемом браке";
-App::$strings["Partners"] = "Партнёрство";
-App::$strings["Cohabiting"] = "Сожительствующие";
-App::$strings["Common law"] = "Гражданский брак";
-App::$strings["Happy"] = "Счастлив";
-App::$strings["Not looking"] = "Не нуждаюсь";
-App::$strings["Swinger"] = "Свингер";
-App::$strings["Betrayed"] = "Предан";
-App::$strings["Separated"] = "Разделён";
-App::$strings["Unstable"] = "Нестабильно";
-App::$strings["Divorced"] = "В разводе";
-App::$strings["Imaginarily divorced"] = "В воображаемом разводе";
-App::$strings["Widowed"] = "Вдовец / вдова";
-App::$strings["Uncertain"] = "Неопределенный";
-App::$strings["It's complicated"] = "Это сложно";
-App::$strings["Don't care"] = "Всё равно";
-App::$strings["Ask me"] = "Спроси меня";
-App::$strings["Permission denied."] = "Доступ запрещен.";
-App::$strings["Image exceeds website size limit of %lu bytes"] = "Файл превышает предельный размер для сайта в %lu байт";
-App::$strings["Image file is empty."] = "Файл изображения пуст.";
-App::$strings["Unable to process image"] = "Не удается обработать изображение";
-App::$strings["Photo storage failed."] = "Ошибка хранилища фотографий.";
-App::$strings["a new photo"] = "новая фотография";
-App::$strings["__ctx:photo_upload__ %1\$s posted %2\$s to %3\$s"] = "%1\$s опубликовал %2\$s в %3\$s";
-App::$strings["Photo Albums"] = "Фотоальбомы";
-App::$strings["Recent Photos"] = "Последние фотографии";
-App::$strings["Upload New Photos"] = "Загрузить новые фотографии";
-App::$strings["View PDF"] = "Просмотреть PDF";
-App::$strings[" by "] = " по ";
-App::$strings[" on "] = " на ";
-App::$strings["Embedded content"] = "Встроенное содержимое";
-App::$strings["Embedding disabled"] = "Встраивание отключено";
-App::$strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Не верный токен безопасности для формы. Вероятно, это произошло потому, что форма была открыта слишком долго (> 3-х часов) перед его отправкой.";
-App::$strings["%d invitation available"] = array(
- 0 => "доступно %d приглашение",
- 1 => "доступны %d приглашения",
- 2 => "доступны %d приглашений",
-);
-App::$strings["Advanced"] = "Дополнительно";
-App::$strings["Find Channels"] = "Поиск каналов";
-App::$strings["Enter name or interest"] = "Впишите имя или интерес";
-App::$strings["Connect/Follow"] = "Подключить / отслеживать";
-App::$strings["Examples: Robert Morgenstein, Fishing"] = "Примеры: Владимир Ильич, Революционер";
-App::$strings["Find"] = "Поиск";
-App::$strings["Channel Suggestions"] = "Рекомендации каналов";
-App::$strings["Random Profile"] = "Случайный профиль";
-App::$strings["Invite Friends"] = "Пригласить друзей";
-App::$strings["Advanced example: name=fred and country=iceland"] = "Расширенный пример: name=ivan and country=russia";
-App::$strings["Saved Folders"] = "Сохранённые каталоги";
-App::$strings["Everything"] = "Всё";
-App::$strings["Categories"] = "Категории";
-App::$strings["Common Connections"] = "Общие контакты";
-App::$strings["View all %d common connections"] = "Просмотреть все %d общих контактов";
-App::$strings["Edit"] = "Изменить";
-App::$strings["Unable to obtain identity information from database"] = "Невозможно получить идентификационную информацию из базы данных";
-App::$strings["Empty name"] = "Пустое имя";
-App::$strings["Name too long"] = "Слишком длинное имя";
-App::$strings["No account identifier"] = "Идентификатор аккаунта отсутствует";
-App::$strings["Nickname is required."] = "Требуется псевдоним.";
-App::$strings["Reserved nickname. Please choose another."] = "Зарезервированый псевдоним. Пожалуйста, выберите другой.";
-App::$strings["Nickname has unsupported characters or is already being used on this site."] = "Псевдоним имеет недопустимые символы или уже используется на этом сайте.";
-App::$strings["Unable to retrieve created identity"] = "Не удается получить созданный идентификатор";
-App::$strings["Default Profile"] = "Профиль по умолчанию";
-App::$strings["Unable to retrieve modified identity"] = "Не удается найти изменённый идентификатор";
-App::$strings["Requested channel is not available."] = "Запрошенный канал не доступен.";
+App::$strings["Custom/Expert Mode"] = "Экспертный режим";
App::$strings["Requested profile is not available."] = "Запрашиваемый профиль не доступен.";
-App::$strings["Change profile photo"] = "Изменить фотографию профиля";
-App::$strings["Edit Profiles"] = "Редактирование профилей";
-App::$strings["Create New Profile"] = "Создать новый профиль";
-App::$strings["Edit Profile"] = "Редактировать профиль";
-App::$strings["Profile Image"] = "Изображение профиля";
-App::$strings["Visible to everybody"] = "Видно всем";
-App::$strings["Edit visibility"] = "Редактировать видимость";
-App::$strings["Connect"] = "Подключить";
-App::$strings["Location:"] = "Местоположение:";
-App::$strings["Gender:"] = "Пол:";
-App::$strings["Status:"] = "Статус:";
-App::$strings["Homepage:"] = "Домашняя страница:";
-App::$strings["Online Now"] = "Сейчас в сети";
-App::$strings["Change your profile photo"] = "Изменить фотографию вашего профиля";
-App::$strings["Trans"] = "Трансексуал";
-App::$strings["Full Name:"] = "Полное имя:";
-App::$strings["Like this channel"] = "нравится этот канал";
-App::$strings["__ctx:noun__ Like"] = array(
- 0 => "Нравится",
- 1 => "Нравится",
- 2 => "Нравится",
-);
-App::$strings["j F, Y"] = "";
-App::$strings["j F"] = "";
-App::$strings["Birthday:"] = "День рождения:";
-App::$strings["Age:"] = "Возраст:";
-App::$strings["for %1\$d %2\$s"] = "для %1\$d %2\$s";
-App::$strings["Tags:"] = "Теги:";
-App::$strings["Sexual Preference:"] = "Сексуальные предпочтения:";
-App::$strings["Hometown:"] = "Родной город:";
-App::$strings["Political Views:"] = "Политические взгляды:";
-App::$strings["Religion:"] = "Религия:";
-App::$strings["About:"] = "О себе:";
-App::$strings["Hobbies/Interests:"] = "Хобби / интересы:";
-App::$strings["Likes:"] = "Что вам нравится:";
-App::$strings["Dislikes:"] = "Что вам не нравится:";
-App::$strings["Contact information and Social Networks:"] = "Контактная информация и социальные сети:";
-App::$strings["My other channels:"] = "Мои другие каналы:";
-App::$strings["Musical interests:"] = "Музыкальные интересы:";
-App::$strings["Books, literature:"] = "Книги, литература:";
-App::$strings["Television:"] = "Телевидение:";
-App::$strings["Film/dance/culture/entertainment:"] = "Кино / танцы / культура / развлечения:";
-App::$strings["Love/Romance:"] = "Любовь / романтика:";
-App::$strings["Work/employment:"] = "Работа / занятость:";
-App::$strings["School/education:"] = "Школа / образование:";
-App::$strings["Profile"] = "Профиль";
-App::$strings["Like this thing"] = "нравится этo";
-App::$strings["Export"] = "Экспорт";
-App::$strings["cover photo"] = "фотография обложки";
-App::$strings["Remote Authentication"] = "Удаленная аутентификация";
-App::$strings["Enter your channel address (e.g. channel@example.com)"] = "Введите адрес вашего канала (например: channel@example.com)";
-App::$strings["Authenticate"] = "Проверка подлинности";
-App::$strings["Account '%s' deleted"] = "Аккаунт '%s' удален";
-App::$strings["Download binary/encrypted content"] = "Загрузить двоичное / зашифрованное содержимое";
-App::$strings["Unable to determine sender."] = "Невозможно определить отправителя.";
-App::$strings["No recipient provided."] = "Получатель не предоставлен.";
-App::$strings["[no subject]"] = "[без темы]";
-App::$strings["Stored post could not be verified."] = "Сохранённая публикация не может быть проверена.";
-App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s была создана %2\$s %3\$s";
-App::$strings["post"] = "публикация";
-App::$strings["Permission denied"] = "Доступ запрещен";
-App::$strings["(Unknown)"] = "(Неизвестный)";
-App::$strings["Visible to anybody on the internet."] = "Виден всем в интернете.";
-App::$strings["Visible to you only."] = "Видно только вам.";
-App::$strings["Visible to anybody in this network."] = "Видно всем в этой сети.";
-App::$strings["Visible to anybody authenticated."] = "Видно всем аутентифицированным.";
-App::$strings["Visible to anybody on %s."] = "Видно всем в %s.";
-App::$strings["Visible to all connections."] = "Видно всем контактам.";
-App::$strings["Visible to approved connections."] = "Видно только одобренным контактам.";
-App::$strings["Visible to specific connections."] = "Видно указанным контактам.";
-App::$strings["Item not found."] = "Элемент не найден.";
-App::$strings["Privacy group not found."] = "Группа безопасности не найдена.";
-App::$strings["Privacy group is empty."] = "Группа безопасности пуста";
-App::$strings["Privacy group: %s"] = "Группа безопасности: %s";
-App::$strings["Connection: %s"] = "Контакт: %s";
-App::$strings["Connection not found."] = "Контакт не найден.";
-App::$strings["female"] = "женщина";
-App::$strings["%1\$s updated her %2\$s"] = "%1\$s обновила её %2\$s";
-App::$strings["male"] = "мужчина";
-App::$strings["%1\$s updated his %2\$s"] = "%1\$s обновил его %2\$s";
-App::$strings["%1\$s updated their %2\$s"] = "%1\$s обновили их %2\$s";
-App::$strings["profile photo"] = "Фотография профиля";
-App::$strings["[Edited %s]"] = "[Отредактировано %s]";
-App::$strings["__ctx:edit_activity__ Post"] = "Публикация";
-App::$strings["__ctx:edit_activity__ Comment"] = "Комментарий";
-App::$strings[" and "] = " и ";
-App::$strings["public profile"] = "общедоступный профиль";
-App::$strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s изменил %2\$s на &ldquo;%3\$s&rdquo;";
-App::$strings["Visit %1\$s's %2\$s"] = "Посетить %1\$s %2\$s";
-App::$strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s обновлено %2\$s, изменено %3\$s.";
-App::$strings["Off"] = "Выкл.";
-App::$strings["On"] = "Вкл.";
-App::$strings["CalDAV"] = "";
-App::$strings["Start calendar week on Monday"] = "Начинать календарную неделю с понедельника";
-App::$strings["Default is Sunday"] = "По умолчанию - воскресенье";
-App::$strings["Channel Home"] = "Главная канала";
-App::$strings["Search by Date"] = "Поиск по дате";
-App::$strings["Ability to select posts by date ranges"] = "Возможность выбора сообщений по диапазонам дат";
-App::$strings["Tag Cloud"] = "Облако тегов";
-App::$strings["Provide a personal tag cloud on your channel page"] = "Показывает личное облако тегов на странице канала";
-App::$strings["Use blog/list mode"] = "Использовать режим блога / списка";
-App::$strings["Comments will be displayed separately"] = "Комментарии будут отображаться отдельно";
-App::$strings["Connections"] = "Контакты";
-App::$strings["Connection Filtering"] = "Фильтрация контактов";
-App::$strings["Filter incoming posts from connections based on keywords/content"] = "Фильтр входящих сообщений от контактов на основе ключевых слов / контента";
-App::$strings["Conversation"] = "Диалоги";
-App::$strings["Community Tagging"] = "Отметки сообщества";
-App::$strings["Ability to tag existing posts"] = "Возможность помечать тегами существующие публикации";
-App::$strings["Emoji Reactions"] = "Реакции Emoji";
-App::$strings["Add emoji reaction ability to posts"] = "Возможность добавлять реакции Emoji к публикациям";
-App::$strings["Dislike Posts"] = "Не нравящиеся публикации";
-App::$strings["Ability to dislike posts/comments"] = "Возможность отмечать не нравящиеся публикации / комментарии";
-App::$strings["Star Posts"] = "Помечать сообщения";
-App::$strings["Ability to mark special posts with a star indicator"] = "Возможность отметить специальные сообщения индикатором-звёздочкой";
-App::$strings["Directory"] = "Каталог";
-App::$strings["Advanced Directory Search"] = "Расширенный поиск в каталоге";
-App::$strings["Allows creation of complex directory search queries"] = "Позволяет создание сложных поисковых запросов в каталоге";
-App::$strings["Editor"] = "Редактор";
-App::$strings["Post Categories"] = "Категории публикаций";
-App::$strings["Add categories to your posts"] = "Добавить категории для ваших публикаций";
-App::$strings["Large Photos"] = "Большие фотографии";
-App::$strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Включить большие (1024px) миниатюры изображений в публикациях. Если не включено, использовать маленькие (640px) миниатюры.";
-App::$strings["Even More Encryption"] = "Еще больше шифрования";
-App::$strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Разрешить дополнительное end-to-end шифрование содержимого с общим секретным ключом";
-App::$strings["Enable Voting Tools"] = "Включить инструменты голосования";
-App::$strings["Provide a class of post which others can vote on"] = "Предоставь класс публикаций с возможностью голосования";
-App::$strings["Disable Comments"] = "Отключить комментарии";
-App::$strings["Provide the option to disable comments for a post"] = "Предоставить возможность отключать комментарии для публикаций";
-App::$strings["Delayed Posting"] = "Задержанная публикация";
-App::$strings["Allow posts to be published at a later date"] = "Разрешить размешать публикации следующими датами";
-App::$strings["Content Expiration"] = "Истечение срока действия содержимого";
-App::$strings["Remove posts/comments and/or private messages at a future time"] = "Удалять публикации / комментарии и / или личные сообщения";
-App::$strings["Suppress Duplicate Posts/Comments"] = "Подавлять дублирующие публикации / комментарии";
-App::$strings["Prevent posts with identical content to be published with less than two minutes in between submissions."] = "Предотвращает появление публикаций с одинаковым содержимым если интервал между ними менее 2 минут";
-App::$strings["Auto-save drafts of posts and comments"] = "Автоматически сохранять черновики публикаций и комментариев";
-App::$strings["Automatically saves post and comment drafts in local browser storage to help prevent accidental loss of compositions"] = "Автоматически сохраняет черновики публикаций и комментариев в локальном хранилище браузера для предотвращения их случайной утраты";
-App::$strings["Events"] = "События";
-App::$strings["Smart Birthdays"] = "\"Умные\" Дни рождений";
-App::$strings["Make birthday events timezone aware in case your friends are scattered across the planet."] = "Сделать уведомления о днях рождения зависимыми от часового пояса в том случае, если ваши друзья разбросаны по планете.";
-App::$strings["Event Timezone Selection"] = "Выбор часового пояса события";
-App::$strings["Allow event creation in timezones other than your own."] = "Разрешить создание события в часовой зоне отличной от вашей";
-App::$strings["Manage"] = "Управление";
-App::$strings["Navigation Channel Select"] = "Выбор канала навигации";
-App::$strings["Change channels directly from within the navigation dropdown menu"] = "Изменить канал напрямую из выпадающего меню";
-App::$strings["Network"] = "Сеть";
-App::$strings["Saved Searches"] = "Сохранённые поиски";
-App::$strings["Save search terms for re-use"] = "Сохранять результаты поиска для повторного использования";
-App::$strings["Ability to file posts under folders"] = "Возможность размещать публикации в каталогах";
-App::$strings["Alternate Stream Order"] = "Отображение потока";
-App::$strings["Ability to order the stream by last post date, last comment date or unthreaded activities"] = "Возможность показывать поток по дате последнего сообщения, последнего комментария или в порядке поступления";
-App::$strings["Contact Filter"] = "Фильтр контактов";
-App::$strings["Ability to display only posts of a selected contact"] = "Возможность показа публикаций только от выбранных контактов";
-App::$strings["Forum Filter"] = "Фильтр по форумам";
-App::$strings["Ability to display only posts of a specific forum"] = "Возможность показа публикаций только определённого форума";
-App::$strings["Personal Posts Filter"] = "Персональный фильтр публикаций";
-App::$strings["Ability to display only posts that you've interacted on"] = "Возможность показа только тех публикаций с которыми вы взаимодействовали";
-App::$strings["Affinity Tool"] = "Инструмент сходства / соответствия";
-App::$strings["Filter stream activity by depth of relationships"] = "Фильтровать потоки активности по глубине отношений";
-App::$strings["Suggest Channels"] = "Предлагаемые каналы";
-App::$strings["Show friend and connection suggestions"] = "Показать предложения в друзья";
-App::$strings["Photos"] = "Фотографии";
-App::$strings["Photo Location"] = "Местоположение фотографии";
-App::$strings["If location data is available on uploaded photos, link this to a map."] = "Если данные о местоположении доступны на загруженных фотографий, связать их с картой.";
-App::$strings["Profiles"] = "Редактировать профиль";
-App::$strings["Advanced Profiles"] = "Расширенные профили";
-App::$strings["Additional profile sections and selections"] = "Дополнительные секции и выборы профиля";
-App::$strings["Profile Import/Export"] = "Импорт / экспорт профиля";
-App::$strings["Save and load profile details across sites/channels"] = "Сохранение и загрузка настроек профиля на всех сайтах / каналах";
-App::$strings["Multiple Profiles"] = "Несколько профилей";
-App::$strings["Ability to create multiple profiles"] = "Возможность создания нескольких профилей";
-App::$strings["prev"] = "предыдущий";
-App::$strings["first"] = "первый";
-App::$strings["last"] = "последний";
-App::$strings["next"] = "следующий";
-App::$strings["older"] = "старше";
-App::$strings["newer"] = "новее";
-App::$strings["No connections"] = "Нет контактов";
-App::$strings["View all %s connections"] = "Просмотреть все %s контактов";
-App::$strings["Network: %s"] = "Сеть: %s";
-App::$strings["Search"] = "Поиск";
-App::$strings["Save"] = "Запомнить";
-App::$strings["poke"] = "Ткнуть";
-App::$strings["poked"] = "ткнут";
-App::$strings["ping"] = "Пингануть";
-App::$strings["pinged"] = "Отпингован";
-App::$strings["prod"] = "Подтолкнуть";
-App::$strings["prodded"] = "Подтолкнут";
-App::$strings["slap"] = "Шлёпнуть";
-App::$strings["slapped"] = "Шлёпнут";
-App::$strings["finger"] = "Указать";
-App::$strings["fingered"] = "Указан";
-App::$strings["rebuff"] = "Дать отпор";
-App::$strings["rebuffed"] = "Дан отпор";
-App::$strings["happy"] = "счастливый";
-App::$strings["sad"] = "грустный";
-App::$strings["mellow"] = "спокойный";
-App::$strings["tired"] = "усталый";
-App::$strings["perky"] = "весёлый";
-App::$strings["angry"] = "сердитый";
-App::$strings["stupefied"] = "отупевший";
-App::$strings["puzzled"] = "недоумевающий";
-App::$strings["interested"] = "заинтересованный";
-App::$strings["bitter"] = "едкий";
-App::$strings["cheerful"] = "бодрый";
-App::$strings["alive"] = "энергичный";
-App::$strings["annoyed"] = "раздражённый";
-App::$strings["anxious"] = "обеспокоенный";
-App::$strings["cranky"] = "капризный";
-App::$strings["disturbed"] = "встревоженный";
-App::$strings["frustrated"] = "разочарованный";
-App::$strings["depressed"] = "подавленный";
-App::$strings["motivated"] = "мотивированный";
-App::$strings["relaxed"] = "расслабленный";
-App::$strings["surprised"] = "удивленный";
-App::$strings["Monday"] = "Понедельник";
-App::$strings["Tuesday"] = "Вторник";
-App::$strings["Wednesday"] = "Среда";
-App::$strings["Thursday"] = "Четверг";
-App::$strings["Friday"] = "Пятница";
-App::$strings["Saturday"] = "Суббота";
-App::$strings["Sunday"] = "Воскресенье";
-App::$strings["January"] = "Январь";
-App::$strings["February"] = "Февраль";
-App::$strings["March"] = "Март";
-App::$strings["April"] = "Апрель";
-App::$strings["May"] = "Май";
-App::$strings["June"] = "Июнь";
-App::$strings["July"] = "Июль";
-App::$strings["August"] = "Август";
-App::$strings["September"] = "Сентябрь";
-App::$strings["October"] = "Октябрь";
-App::$strings["November"] = "Ноябрь";
-App::$strings["December"] = "Декабрь";
-App::$strings["Unknown Attachment"] = "Неизвестное вложение";
-App::$strings["Size"] = "Размер";
-App::$strings["unknown"] = "неизвестный";
-App::$strings["remove category"] = "удалить категорию";
-App::$strings["remove from file"] = "удалить из файла";
-App::$strings["Link to Source"] = "Ссылка на источник";
-App::$strings["default"] = "по умолчанию";
-App::$strings["Page layout"] = "Шаблон страницы";
-App::$strings["You can create your own with the layouts tool"] = "Вы можете создать свой собственный с помощью инструмента шаблонов";
-App::$strings["BBcode"] = "";
-App::$strings["HTML"] = "";
-App::$strings["Markdown"] = "Разметка Markdown";
-App::$strings["Text"] = "Текст";
-App::$strings["Comanche Layout"] = "Шаблон Comanche";
-App::$strings["PHP"] = "";
-App::$strings["Page content type"] = "Тип содержимого страницы";
-App::$strings["photo"] = "фото";
-App::$strings["event"] = "событие";
-App::$strings["status"] = "статус";
-App::$strings["comment"] = "комментарий";
-App::$strings["activity"] = "активность";
-App::$strings["a-z, 0-9, -, and _ only"] = "Только a-z, 0-9, -, и _";
-App::$strings["Design Tools"] = "Инструменты дизайна";
+App::$strings["Permission denied."] = "Доступ запрещен.";
+App::$strings["Block Name"] = "Название блока";
App::$strings["Blocks"] = "Блокировки";
-App::$strings["Menus"] = "Меню";
-App::$strings["Layouts"] = "Шаблоны";
-App::$strings["Pages"] = "Страницы";
-App::$strings["Import"] = "Импортировать";
-App::$strings["Import website..."] = "Импорт веб-сайта...";
-App::$strings["Select folder to import"] = "Выбрать каталог для импорта";
-App::$strings["Import from a zipped folder:"] = "Импортировать из каталога в zip-архиве:";
-App::$strings["Import from cloud files:"] = "Импортировать из сетевых файлов:";
-App::$strings["/cloud/channel/path/to/folder"] = "";
-App::$strings["Enter path to website files"] = "Введите путь к файлам веб-сайта";
-App::$strings["Select folder"] = "Выбрать каталог";
-App::$strings["Export website..."] = "Экспорт веб-сайта...";
-App::$strings["Export to a zip file"] = "Экспортировать в ZIP файл.";
-App::$strings["website.zip"] = "";
-App::$strings["Enter a name for the zip file."] = "Введите имя для ZIP файла.";
-App::$strings["Export to cloud files"] = "Эскпортировать в сетевые файлы:";
-App::$strings["/path/to/export/folder"] = "";
-App::$strings["Enter a path to a cloud files destination."] = "Введите путь к расположению сетевых файлов.";
-App::$strings["Specify folder"] = "Указать каталог";
-App::$strings["Collection"] = "Коллекция";
-App::$strings["Unable to import a removed channel."] = "Невозможно импортировать удалённый канал.";
-App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Не удалось создать дублирующийся идентификатор канала. Импорт невозможен.";
-App::$strings["Unable to create a unique channel address. Import failed."] = "Не удалось создать уникальный адрес канала. Импорт не завершен.";
-App::$strings["Cloned channel not found. Import failed."] = "Клон канала не найден. Импорт невозможен.";
-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."] = "Удаленная группа с этим названием была восстановлена. Существующие разрешения пункт <strong>могут</strong> применяться к этой группе и к её будущих участников. Если это не то, чего вы хотели, пожалуйста, создайте другую группу с другим именем.";
-App::$strings["Add new connections to this privacy group"] = "Добавить новые контакты в группу безопасности";
-App::$strings["edit"] = "редактировать";
-App::$strings["Privacy Groups"] = "Группы безопасности";
-App::$strings["Edit group"] = "Редактировать группу";
-App::$strings["Add privacy group"] = "Добавить группу безопасности";
-App::$strings["Channels not in any privacy group"] = "Каналы не включены ни в одну группу безопасности";
-App::$strings["add"] = "добавить";
-App::$strings["Not a valid email address"] = "Недействительный адрес электронной почты";
-App::$strings["Your email domain is not among those allowed on this site"] = "Домен электронной почты не входит в число тех, которые разрешены на этом сайте";
-App::$strings["Your email address is already registered at this site."] = "Ваш адрес электронной почты уже зарегистрирован на этом сайте.";
-App::$strings["An invitation is required."] = "Требуется приглашение.";
-App::$strings["Invitation could not be verified."] = "Не удалось проверить приглашение.";
-App::$strings["Please enter the required information."] = "Пожалуйста, введите необходимую информацию.";
-App::$strings["Failed to store account information."] = "Не удалось сохранить информацию аккаунта.";
-App::$strings["Registration confirmation for %s"] = "Подтверждение регистрации для %s";
-App::$strings["Registration request at %s"] = "Запрос регистрации на %s";
-App::$strings["your registration password"] = "ваш пароль регистрации";
-App::$strings["Registration details for %s"] = "Регистрационные данные для %s";
-App::$strings["Account approved."] = "Аккаунт утвержден.";
-App::$strings["Registration revoked for %s"] = "Регистрация отозвана для %s";
-App::$strings["Click here to upgrade."] = "Нажмите здесь для обновления.";
-App::$strings["This action exceeds the limits set by your subscription plan."] = "Это действие превышает ограничения, установленные в вашем плане.";
-App::$strings["This action is not available under your subscription plan."] = "Это действие невозможно из-за ограничений в вашем плане.";
-App::$strings["Invalid data packet"] = "Неверный пакет данных";
-App::$strings["Unable to verify channel signature"] = "Невозможно проверить подпись канала";
-App::$strings["Unable to verify site signature for %s"] = "Невозможно проверить подпись сайта %s";
-App::$strings["invalid target signature"] = "недопустимая целевая подпись";
-App::$strings["Channel is blocked on this site."] = "Канал блокируется на этом сайте.";
-App::$strings["Channel location missing."] = "Местоположение канала отсутствует.";
-App::$strings["Response from remote channel was incomplete."] = "Ответ удаленного канала неполный.";
-App::$strings["Premium channel - please visit:"] = "Премимум-канал - пожалуйста посетите:";
-App::$strings["Channel was deleted and no longer exists."] = "Канал удален и больше не существует.";
-App::$strings["Remote channel or protocol unavailable."] = "Удалённый канал или протокол недоступен.";
-App::$strings["Channel discovery failed."] = "Не удалось обнаружить канал.";
-App::$strings["Protocol disabled."] = "Протокол отключен.";
-App::$strings["Cannot connect to yourself."] = "Нельзя подключиться к самому себе.";
-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";
-App::$strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Эта публикация содержит устанавливаемый %s элемент, однако у вас нет разрешений для его установки на этом сайте.";
-App::$strings["webpage"] = "веб-страница";
-App::$strings["layout"] = "шаблон";
-App::$strings["block"] = "заблокировать";
-App::$strings["menu"] = "меню";
-App::$strings["card"] = "карточка";
-App::$strings["article"] = "статья";
-App::$strings["Click to open/close"] = "Нажмите, чтобы открыть/закрыть";
-App::$strings["spoiler"] = "спойлер";
-App::$strings["View article"] = "Просмотр статьи";
-App::$strings["View summary"] = "Просмотр резюме";
-App::$strings["Different viewers will see this text differently"] = "Различные зрители увидят этот текст по-разному";
-App::$strings["$1 wrote:"] = "$1 писал:";
-App::$strings["channel"] = "канал";
-App::$strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s нравится %3\$s %2\$s";
-App::$strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s не нравится %2\$s %3\$s";
-App::$strings["likes %1\$s's %2\$s"] = "Нравится %1\$s %2\$s";
-App::$strings["doesn't like %1\$s's %2\$s"] = "Не нравится %1\$s %2\$s";
-App::$strings["%1\$s is now connected with %2\$s"] = "%1\$s теперь в контакте с %2\$s";
-App::$strings["%1\$s poked %2\$s"] = "%1\$s ткнул %2\$s";
-App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s в %2\$s";
-App::$strings["This is an unsaved preview"] = "Это несохранённый просмотр";
-App::$strings["__ctx:title__ Likes"] = "Нравится";
-App::$strings["__ctx:title__ Dislikes"] = "Не нравится";
-App::$strings["__ctx:title__ Agree"] = "Согласен";
-App::$strings["__ctx:title__ Disagree"] = "Не согласен";
-App::$strings["__ctx:title__ Abstain"] = "Воздержался";
-App::$strings["__ctx:title__ Attending"] = "Посещаю";
-App::$strings["__ctx:title__ Not attending"] = "Не посещаю";
-App::$strings["__ctx:title__ Might attend"] = "Возможно посещу";
-App::$strings["Select"] = "Выбрать";
-App::$strings["Delete"] = "Удалить";
-App::$strings["Toggle Star Status"] = "Переключить статус пометки";
-App::$strings["Private Message"] = "Личное сообщение";
-App::$strings["Message signature validated"] = "Подпись сообщения проверена";
-App::$strings["Message signature incorrect"] = "Подпись сообщения неверная";
-App::$strings["Approve"] = "Утвердить";
-App::$strings["View %s's profile @ %s"] = "Просмотреть профиль %s @ %s";
-App::$strings["Categories:"] = "Категории:";
-App::$strings["Filed under:"] = "Хранить под:";
-App::$strings["from %s"] = "от %s";
-App::$strings["last edited: %s"] = "последнее редактирование: %s";
-App::$strings["Expires: %s"] = "Срок действия: %s";
-App::$strings["View in context"] = "Показать в контексте";
-App::$strings["Please wait"] = "Подождите пожалуйста";
-App::$strings["remove"] = "удалить";
-App::$strings["Loading..."] = "Загрузка...";
-App::$strings["Conversation Tools"] = "Инструменты общения";
-App::$strings["Delete Selected Items"] = "Удалить выбранные элементы";
-App::$strings["View Source"] = "Просмотреть источник";
-App::$strings["Follow Thread"] = "Следить за темой";
-App::$strings["Unfollow Thread"] = "Прекратить отслеживать тему";
-App::$strings["View Profile"] = "Просмотреть профиль";
-App::$strings["Recent Activity"] = "Последние действия";
-App::$strings["Edit Connection"] = "Редактировать контакт";
-App::$strings["Message"] = "Сообщение";
-App::$strings["Ratings"] = "Оценки";
-App::$strings["Poke"] = "Ткнуть";
-App::$strings["Unknown"] = "Неизвестный";
-App::$strings["%s likes this."] = "%s нравится это.";
-App::$strings["%s doesn't like this."] = "%s не нравится это.";
-App::$strings["<span %1\$s>%2\$d people</span> like this."] = array(
- 0 => "<span %1\$s>%2\$d человеку</span> это нравится.",
- 1 => "<span %1\$s>%2\$d человекам</span> это нравится.",
- 2 => "<span %1\$s>%2\$d человекам</span> это нравится.",
-);
-App::$strings["<span %1\$s>%2\$d people</span> don't like this."] = array(
- 0 => "<span %1\$s>%2\$d человеку</span> это не нравится.",
- 1 => "<span %1\$s>%2\$d человекам</span> это не нравится.",
- 2 => "<span %1\$s>%2\$d человекам</span> это не нравится.",
-);
-App::$strings["and"] = "и";
-App::$strings[", and %d other people"] = array(
- 0 => ", и ещё %d человеку",
- 1 => ", и ещё %d человекам",
- 2 => ", и ещё %d человекам",
-);
-App::$strings["%s like this."] = "%s нравится это.";
-App::$strings["%s don't like this."] = "%s не нравится это.";
-App::$strings["Set your location"] = "Задать своё местоположение";
-App::$strings["Clear browser location"] = "Очистить местоположение из браузера";
-App::$strings["Insert web link"] = "Вставить веб-ссылку";
-App::$strings["Embed (existing) photo from your photo albums"] = "Встроить (существующее) фото из вашего фотоальбома";
-App::$strings["Please enter a link URL:"] = "Пожалуйста введите URL ссылки:";
-App::$strings["Tag term:"] = "Теги:";
-App::$strings["Where are you right now?"] = "Где вы сейчас?";
-App::$strings["Choose images to embed"] = "Выбрать изображения для встраивания";
-App::$strings["Choose an album"] = "Выбрать альбом";
-App::$strings["Choose a different album..."] = "Выбрать другой альбом...";
-App::$strings["Error getting album list"] = "Ошибка получения списка альбомов";
-App::$strings["Error getting photo link"] = "Ошибка получения ссылки на фотографию";
-App::$strings["Error getting album"] = "Ошибка получения альбома";
-App::$strings["Comments enabled"] = "Комментарии включены";
-App::$strings["Comments disabled"] = "Комментарии отключены";
-App::$strings["Preview"] = "Предварительный просмотр";
+App::$strings["Block Title"] = "Заблокировать заголовок";
+App::$strings["Created"] = "Создано";
+App::$strings["Edited"] = "Отредактировано";
+App::$strings["Create"] = "Создать";
+App::$strings["Edit"] = "Изменить";
App::$strings["Share"] = "Поделиться";
-App::$strings["Page link name"] = "Название ссылки на страницу ";
-App::$strings["Post as"] = "Опубликовать как";
-App::$strings["Bold"] = "Жирный";
-App::$strings["Italic"] = "Курсив";
-App::$strings["Underline"] = "Подчеркнутый";
-App::$strings["Quote"] = "Цитата";
-App::$strings["Code"] = "Код";
-App::$strings["Attach/Upload file"] = "Прикрепить/загрузить файл";
-App::$strings["Embed an image from your albums"] = "Встроить изображение из ваших альбомов";
-App::$strings["Cancel"] = "Отменить";
-App::$strings["OK"] = "";
-App::$strings["Toggle voting"] = "Подключить голосование";
-App::$strings["Disable comments"] = "Отключить комментарии";
-App::$strings["Toggle comments"] = "Переключить комментарии";
-App::$strings["Title (optional)"] = "Заголовок (необязательно)";
-App::$strings["Categories (optional, comma-separated list)"] = "Категории (необязательно, список через запятую)";
-App::$strings["Permission settings"] = "Настройки разрешений";
-App::$strings["Other networks and post services"] = "Другие сети и службы публикаций";
-App::$strings["Set expiration date"] = "Установить срок действия";
-App::$strings["Set publish date"] = "Установить дату публикации";
-App::$strings["Encrypt text"] = "Зашифровать текст";
-App::$strings["__ctx:noun__ Dislike"] = array(
- 0 => "Не нравится",
- 1 => "Не нравится",
- 2 => "Не нравится",
-);
-App::$strings["__ctx:noun__ Attending"] = array(
- 0 => "Посетит",
- 1 => "Посетят",
- 2 => "Посетят",
-);
-App::$strings["__ctx:noun__ Not Attending"] = array(
- 0 => "Не посетит",
- 1 => "Не посетят",
- 2 => "Не посетят",
-);
-App::$strings["__ctx:noun__ Undecided"] = "Не решил";
-App::$strings["__ctx:noun__ Agree"] = array(
- 0 => "Согласен",
- 1 => "Согласны",
- 2 => "Согласны",
-);
-App::$strings["__ctx:noun__ Disagree"] = array(
- 0 => "Не согласен",
- 1 => "Не согласны",
- 2 => "Не согласны",
-);
-App::$strings["__ctx:noun__ Abstain"] = array(
- 0 => "Воздержался",
- 1 => "Воздержались",
- 2 => "Воздержались",
-);
-App::$strings["Trending"] = "В тренде";
-App::$strings["Tags"] = "Теги";
-App::$strings["Keywords"] = "Ключевые слова";
-App::$strings["have"] = "иметь";
-App::$strings["has"] = "есть";
-App::$strings["want"] = "хотеть";
-App::$strings["wants"] = "хотеть";
-App::$strings["like"] = "нравится";
-App::$strings["likes"] = "нравится";
-App::$strings["dislike"] = "не нравится";
-App::$strings["dislikes"] = "не нравится";
-App::$strings["Select an alternate language"] = "Выбор дополнительного языка";
-App::$strings["Delete this item?"] = "Удалить этот элемент?";
-App::$strings["Comment"] = "Комментарий";
-App::$strings["%s show all"] = "%s показать всё";
-App::$strings["%s show less"] = "%s показать меньше";
-App::$strings["%s expand"] = "%s развернуть";
-App::$strings["%s collapse"] = "%s свернуть";
-App::$strings["Password too short"] = "Пароль слишком короткий";
-App::$strings["Passwords do not match"] = "Пароли не совпадают";
-App::$strings["everybody"] = "все";
-App::$strings["Secret Passphrase"] = "Тайный пароль";
-App::$strings["Passphrase hint"] = "Подсказка для пароля";
-App::$strings["Notice: Permissions have changed but have not yet been submitted."] = "Уведомление: Права доступа изменились, но до сих пор не сохранены.";
-App::$strings["close all"] = "закрыть все";
-App::$strings["Nothing new here"] = "Здесь нет ничего нового";
-App::$strings["Rate This Channel (this is public)"] = "Оценкa этoго канала (общедоступно)";
-App::$strings["Rating"] = "Оценка";
-App::$strings["Describe (optional)"] = "Охарактеризовать (необязательно)";
-App::$strings["Please enter a link URL"] = "Пожалуйста, введите URL ссылки";
-App::$strings["Unsaved changes. Are you sure you wish to leave this page?"] = "Есть несохраненные изменения. Вы уверены, что хотите покинуть эту страницу?";
-App::$strings["Location"] = "Место";
-App::$strings["lovely"] = "прекрасно";
-App::$strings["wonderful"] = "замечательно";
-App::$strings["fantastic"] = "фантастично";
-App::$strings["great"] = "отлично";
-App::$strings["Your chosen nickname was either already taken or not valid. Please use our suggestion ("] = "Выбранный вами псевдоним уже используется или недействителен. Попробуйте использовать наше предложение (";
-App::$strings[") or enter a new one."] = ") или введите новый.";
-App::$strings["Thank you, this nickname is valid."] = "Спасибо, этот псевдоним может быть использован.";
-App::$strings["A channel name is required."] = "Требуется название канала.";
-App::$strings["This is a "] = "Это ";
-App::$strings[" channel name"] = " название канала";
-App::$strings["%d minutes"] = array(
- 0 => "%d минуту",
- 1 => "%d минуты",
- 2 => "%d минут",
-);
-App::$strings["about %d hours"] = array(
- 0 => "около %d часa",
- 1 => "около %d часов",
- 2 => "около %d часов",
-);
-App::$strings["%d days"] = array(
- 0 => "%d день",
- 1 => "%d дня",
- 2 => "%d дней",
-);
-App::$strings["%d months"] = array(
- 0 => "%d месяц",
- 1 => "%d месяца",
- 2 => "%d месяцев",
-);
-App::$strings["%d years"] = array(
- 0 => "%d год",
- 1 => "%d года",
- 2 => "%d лет",
-);
-App::$strings["timeago.prefixAgo"] = "";
-App::$strings["timeago.prefixFromNow"] = "через";
-App::$strings["timeago.suffixAgo"] = "назад";
-App::$strings["timeago.suffixFromNow"] = "";
-App::$strings["less than a minute"] = "менее чем одну минуту";
-App::$strings["about a minute"] = "около минуты";
-App::$strings["about an hour"] = "около часа";
-App::$strings["a day"] = "день";
-App::$strings["about a month"] = "около месяца";
-App::$strings["about a year"] = "около года";
-App::$strings[" "] = " ";
-App::$strings["timeago.numbers"] = "";
-App::$strings["__ctx:long__ May"] = "Май";
-App::$strings["Jan"] = "Янв";
-App::$strings["Feb"] = "Фев";
-App::$strings["Mar"] = "Мар";
-App::$strings["Apr"] = "Апр";
-App::$strings["__ctx:short__ May"] = "Май";
-App::$strings["Jun"] = "Июн";
-App::$strings["Jul"] = "Июл";
-App::$strings["Aug"] = "Авг";
-App::$strings["Sep"] = "Сен";
-App::$strings["Oct"] = "Окт";
-App::$strings["Nov"] = "Ноя";
-App::$strings["Dec"] = "Дек";
-App::$strings["Sun"] = "Вск";
-App::$strings["Mon"] = "Пон";
-App::$strings["Tue"] = "Вт";
-App::$strings["Wed"] = "Ср";
-App::$strings["Thu"] = "Чет";
-App::$strings["Fri"] = "Пят";
-App::$strings["Sat"] = "Суб";
-App::$strings["__ctx:calendar__ today"] = "сегодня";
-App::$strings["__ctx:calendar__ month"] = "месяц";
-App::$strings["__ctx:calendar__ week"] = "неделя";
-App::$strings["__ctx:calendar__ day"] = "день";
-App::$strings["__ctx:calendar__ All day"] = "Весь день";
-App::$strings["Directory Options"] = "Параметры каталога";
-App::$strings["Safe Mode"] = "Безопасный режим";
-App::$strings["Public Forums Only"] = "Только публичные форумы";
-App::$strings["This Website Only"] = "Только этот веб-сайт";
-App::$strings["view full size"] = "посмотреть в полный размер";
-App::$strings["Friendica"] = "";
-App::$strings["OStatus"] = "";
-App::$strings["GNU-Social"] = "";
-App::$strings["RSS/Atom"] = "";
-App::$strings["ActivityPub"] = "";
-App::$strings["Email"] = "Электронная почта";
-App::$strings["Diaspora"] = "";
-App::$strings["Facebook"] = "";
-App::$strings["Zot"] = "";
-App::$strings["LinkedIn"] = "";
-App::$strings["XMPP/IM"] = "";
-App::$strings["MySpace"] = "";
-App::$strings["Miscellaneous"] = "Прочее";
-App::$strings["Birthday"] = "День рождения";
-App::$strings["Age: "] = "Возраст:";
-App::$strings["YYYY-MM-DD or MM-DD"] = "YYYY-MM-DD или MM-DD";
-App::$strings["Required"] = "Требуется";
-App::$strings["never"] = "никогда";
-App::$strings["less than a second ago"] = "менее чем одну секунду";
-App::$strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "%1\$d %2\$s назад";
-App::$strings["__ctx:relative_date__ year"] = array(
- 0 => "год",
- 1 => "года",
- 2 => "лет",
-);
-App::$strings["__ctx:relative_date__ month"] = array(
- 0 => "месяц",
- 1 => "месяца",
- 2 => "месяцев",
-);
-App::$strings["__ctx:relative_date__ week"] = array(
- 0 => "неделю",
- 1 => "недели",
- 2 => "недель",
-);
-App::$strings["__ctx:relative_date__ day"] = array(
- 0 => "день",
- 1 => "дня",
- 2 => "дней",
-);
-App::$strings["__ctx:relative_date__ hour"] = array(
- 0 => "час",
- 1 => "часа",
- 2 => "часов",
-);
-App::$strings["__ctx:relative_date__ minute"] = array(
- 0 => "минуту",
- 1 => "минуты",
- 2 => "минут",
-);
-App::$strings["__ctx:relative_date__ second"] = array(
- 0 => "секунду",
- 1 => "секунды",
- 2 => "секунд",
+App::$strings["Delete"] = "Удалить";
+App::$strings["View"] = "Просмотр";
+App::$strings["Total invitation limit exceeded."] = "Превышено общее количество приглашений.";
+App::$strings["%s : Not a valid email address."] = "%s : Недействительный адрес электронной почты.";
+App::$strings["Please join us on \$Projectname"] = "Присоединятесь к \$Projectname !";
+App::$strings["Invitation limit exceeded. Please contact your site administrator."] = "Превышен лимит приглашений. Пожалуйста, свяжитесь с администрацией сайта.";
+App::$strings["%s : Message delivery failed."] = "%s : Доставка сообщения не удалась.";
+App::$strings["%d message sent."] = array(
+ 0 => "%d сообщение отправлено.",
+ 1 => "%d сообщения отправлено.",
+ 2 => "%d сообщений отправлено.",
);
-App::$strings["%1\$s's birthday"] = "У %1\$s День рождения";
-App::$strings["Happy Birthday %1\$s"] = "С Днем рождения %1\$s !";
-App::$strings["Visible to your default audience"] = "Видно вашей аудитории по умолчанию.";
-App::$strings["__ctx:acl__ Profile"] = "Профиль";
-App::$strings["Only me"] = "Только мне";
-App::$strings["Who can see this?"] = "Кто может это видеть?";
-App::$strings["Custom selection"] = "Настраиваемый выбор";
-App::$strings["Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit the scope of \"Show\"."] = "Нажмите \"Показать\" чтобы разрешить просмотр. \"Не показывать\" позволит вам переопределить и ограничить область показа.";
-App::$strings["Show"] = "Показать";
-App::$strings["Don't show"] = "Не показывать";
-App::$strings["Permissions"] = "Разрешения";
-App::$strings["Close"] = "Закрыть";
-App::$strings["Post permissions %s cannot be changed %s after a post is shared.</br />These permissions set who is allowed to view the post."] = "Разрешения публикации %s не могут быть изменены %s после того, как ею поделились. Эти разрешения устанавливают кому разрешено просматривать эту публикацию.";
-App::$strings["OpenWebAuth: %1\$s welcomes %2\$s"] = "OpenWebAuth: %1\$s приветствует %2\$s";
-App::$strings["New window"] = "Новое окно";
-App::$strings["Open the selected location in a different window or browser tab"] = "Открыть выбранное местоположение в другом окне или вкладке браузера";
-App::$strings["Mobile"] = "Мобильный";
-App::$strings["Home"] = "Домашний";
-App::$strings["Home, Voice"] = "Дом, голос";
-App::$strings["Home, Fax"] = "Дом, факс";
-App::$strings["Work"] = "Рабочий";
-App::$strings["Work, Voice"] = "Работа, голос";
-App::$strings["Work, Fax"] = "Работа, факс";
-App::$strings["l F d, Y \\@ g:i A"] = "";
-App::$strings["Starts:"] = "Начало:";
-App::$strings["Finishes:"] = "Окончание:";
-App::$strings["This event has been added to your calendar."] = "Это событие было добавлено в ваш календарь.";
-App::$strings["Not specified"] = "Не указано";
-App::$strings["Needs Action"] = "Требует действия";
-App::$strings["Completed"] = "Завершено";
-App::$strings["In Process"] = "В процессе";
-App::$strings["Cancelled"] = "Отменено";
-App::$strings["Delegation session ended."] = "Делегированная сессия завершена.";
-App::$strings["Logged out."] = "Вышел из системы.";
-App::$strings["Email validation is incomplete. Please check your email."] = "Проверка email не завершена. Пожалуйста, проверьте вашу почту.";
-App::$strings["Failed authentication"] = "Ошибка аутентификации";
-App::$strings["Login failed."] = "Не удалось войти.";
-App::$strings["Remote authentication"] = "Удаленная аутентификация";
-App::$strings["Click to authenticate to your home hub"] = "Нажмите, чтобы аутентифицировать себя на домашнем узле";
-App::$strings["Channel Manager"] = "Менеджер каналов";
-App::$strings["Manage your channels"] = "Управление вашими каналами";
-App::$strings["Manage your privacy groups"] = "Управление вашим группами безопасности";
-App::$strings["Settings"] = "Настройки";
-App::$strings["Account/Channel Settings"] = "Настройки аккаунта / канала";
-App::$strings["Logout"] = "Выход";
-App::$strings["End this session"] = "Закончить эту сессию";
-App::$strings["Your profile page"] = "Страницa вашего профиля";
-App::$strings["Manage/Edit profiles"] = "Управление / редактирование профилей";
-App::$strings["Edit your profile"] = "Редактировать профиль";
-App::$strings["Login"] = "Войти";
-App::$strings["Sign in"] = "Войти";
-App::$strings["Take me home"] = "Домой";
-App::$strings["Log me out of this site"] = "Выйти с этого сайта";
-App::$strings["Register"] = "Регистрация";
-App::$strings["Create an account"] = "Создать аккаунт";
-App::$strings["Help and documentation"] = "Справочная информация и документация";
-App::$strings["Search site @name, !forum, #tag, ?docs, content"] = "Искать на сайте @имя, !форум, #тег, ?документ, содержимое";
-App::$strings["Admin"] = "Администрирование";
-App::$strings["Site Setup and Configuration"] = "Установка и конфигурация сайта";
-App::$strings["Loading"] = "Загрузка";
-App::$strings["@name, !forum, #tag, ?doc, content"] = "@имя, !форум, #тег, ?документ, содержимое";
-App::$strings["Please wait..."] = "Подождите пожалуйста ...";
-App::$strings["Add Apps"] = "Добавить приложения";
-App::$strings["Arrange Apps"] = "Упорядочить приложения";
-App::$strings["Toggle System Apps"] = "Показать системные приложения";
-App::$strings["Channel"] = "Канал";
-App::$strings["Status Messages and Posts"] = "Статусы и публикации";
-App::$strings["About"] = "О себе";
-App::$strings["Profile Details"] = "Информация о профиле";
-App::$strings["Files"] = "Файлы";
-App::$strings["Files and Storage"] = "Файлы и хранилище";
-App::$strings["Calendar"] = "Календарь";
-App::$strings["Chatrooms"] = "Чаты";
-App::$strings["Bookmarks"] = "Закладки";
-App::$strings["Saved Bookmarks"] = "Сохранённые закладки";
-App::$strings["Cards"] = "Карточки";
-App::$strings["View Cards"] = "Просмотреть карточки";
-App::$strings["Articles"] = "Статьи";
-App::$strings["View Articles"] = "Просмотр статей";
-App::$strings["Webpages"] = "Веб-страницы";
-App::$strings["View Webpages"] = "Просмотр веб-страниц";
-App::$strings["Wikis"] = "";
-App::$strings["Wiki"] = "";
-App::$strings["%1\$s's bookmarks"] = "Закладки пользователя %1\$s";
-App::$strings["Item was not found."] = "Элемент не найден.";
-App::$strings["Unknown error."] = "Неизвестная ошибка.";
-App::$strings["No source file."] = "Нет исходного файла.";
-App::$strings["Cannot locate file to replace"] = "Не удается найти файл для замены";
-App::$strings["Cannot locate file to revise/update"] = "Не удается найти файл для пересмотра / обновления";
-App::$strings["File exceeds size limit of %d"] = "Файл превышает предельный размер %d";
-App::$strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Вы достигли предела %1$.0f Мбайт для хранения вложений.";
-App::$strings["File upload failed. Possible system limit or action terminated."] = "Загрузка файла не удалась. Возможно система перегружена или попытка прекращена.";
-App::$strings["Stored file could not be verified. Upload failed."] = "Файл для сохранения не может быть проверен. Загрузка не удалась.";
-App::$strings["Path not available."] = "Путь недоступен.";
-App::$strings["Empty pathname"] = "Пустое имя пути";
-App::$strings["duplicate filename or path"] = "дублирующееся имя файла или пути";
-App::$strings["Path not found."] = "Путь не найден.";
-App::$strings["mkdir failed."] = "mkdir не удался";
-App::$strings["database storage failed."] = "ошибка при записи базы данных.";
-App::$strings["Empty path"] = "Пустое имя пути";
-App::$strings["Profile Photos"] = "Фотографии профиля";
-App::$strings["Create an account to access services and applications"] = "Создайте аккаунт для доступа к службам и приложениям";
-App::$strings["Login/Email"] = "Пользователь / email";
-App::$strings["Password"] = "Пароль";
-App::$strings["Remember me"] = "Запомнить меня";
-App::$strings["Forgot your password?"] = "Забыли пароль или логин?";
-App::$strings["Password Reset"] = "Сбросить пароль";
-App::$strings["[\$Projectname] Website SSL error for %s"] = "[\$Projectname] Ошибка SSL/TLS веб-сайта для %s";
-App::$strings["Website SSL certificate is not valid. Please correct."] = "SSL/TLS сертификат веб-сайт недействителен. Исправьте это.";
-App::$strings["[\$Projectname] Cron tasks not running on %s"] = "[\$Projectname] Задания Cron не запущены на %s";
-App::$strings["Cron/Scheduled tasks not running."] = "Задания Cron / планировщика не запущены.";
-App::$strings["parent"] = "источник";
-App::$strings["Principal"] = "Субъект";
-App::$strings["Addressbook"] = "Адресная книга";
-App::$strings["Schedule Inbox"] = "План занятий входящий";
-App::$strings["Schedule Outbox"] = "План занятий исходящий";
-App::$strings["Total"] = "Всего";
-App::$strings["Shared"] = "Общие";
-App::$strings["Create"] = "Создать";
-App::$strings["Add Files"] = "Добавить файлы";
-App::$strings["Admin Delete"] = "Удалено администратором";
-App::$strings["Name"] = "Имя";
-App::$strings["Type"] = "Тип";
-App::$strings["Last Modified"] = "Последнее изменение";
-App::$strings["You are using %1\$s of your available file storage."] = "Вы используете %1\$s из доступного вам хранилища файлов.";
-App::$strings["You are using %1\$s of %2\$s available file storage. (%3\$s&#37;)"] = "Вы используете %1\$s из %2\$s доступного хранилища файлов (%3\$s&#37;).";
-App::$strings["WARNING:"] = "Предупреждение:";
-App::$strings["Create new folder"] = "Создать новую папку";
-App::$strings["Upload file"] = "Загрузить файл";
-App::$strings["Upload"] = "Загрузка";
-App::$strings["Drop files here to immediately upload"] = "Поместите файлы сюда для немедленной загрузки";
-App::$strings["Show in your contacts shared folder"] = "Показать общий каталог в ваших контактах";
-App::$strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Удалённая аутентификация заблокирована. Вы вошли на этот сайт локально. Пожалуйста, выйдите и попробуйте ещё раз.";
-App::$strings["Welcome %s. Remote authentication successful."] = "Добро пожаловать %s. Удаленная аутентификация успешно завершена.";
-App::$strings["This site is not a directory server"] = "Этот сайт не является сервером каталога";
-App::$strings["Unable to lookup recipient."] = "Не удалось найти получателя.";
-App::$strings["Unable to communicate with requested channel."] = "Не удалось установить связь с запрашиваемым каналом.";
-App::$strings["Cannot verify requested channel."] = "Не удалось установить подлинность требуемого канала.";
-App::$strings["Selected channel has private message restrictions. Send failed."] = "Выбранный канал ограничивает частные сообщения. Отправка не удалась.";
-App::$strings["Messages"] = "Сообщения";
-App::$strings["message"] = "сообщение";
-App::$strings["Message recalled."] = "Сообщение отозванно.";
-App::$strings["Conversation removed."] = "Беседа удалена.";
-App::$strings["Expires YYYY-MM-DD HH:MM"] = "Истекает YYYY-MM-DD HH:MM";
-App::$strings["Requested channel is not in this network"] = "Запрашиваемый канал не доступен.";
-App::$strings["Send Private Message"] = "Отправить личное сообщение";
-App::$strings["To:"] = "Кому:";
-App::$strings["Subject:"] = "Тема:";
-App::$strings["Your message:"] = "Сообщение:";
-App::$strings["Attach file"] = "Прикрепить файл";
-App::$strings["Send"] = "Отправить";
-App::$strings["Delete message"] = "Удалить сообщение";
-App::$strings["Delivery report"] = "Отчёт о доставке";
-App::$strings["Recall message"] = "Отозвать сообщение";
-App::$strings["Message has been recalled."] = "Сообщение отозванно";
-App::$strings["Delete Conversation"] = "Удалить беседу";
-App::$strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Безопасная связь недоступна. Вы <strong>можете</strong> попытаться ответить со страницы профиля отправителя.";
-App::$strings["Send Reply"] = "Отправить ответ";
-App::$strings["Your message for %s (%s):"] = "Ваше сообщение для %s (%s):";
-App::$strings["This setting requires special processing and editing has been blocked."] = "Этот параметр требует специальной обработки и редактирования и был заблокирован.";
-App::$strings["Configuration Editor"] = "Редактор конфигурации";
-App::$strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Предупреждение. Изменение некоторых настроек может привести к неработоспособности вашего канала. Пожалуйста, покиньте эту страницу, если вы точно не значете, как правильно использовать эту функцию.";
-App::$strings["Could not access contact record."] = "Не удалось получить доступ к записи контакта.";
-App::$strings["Settings updated."] = "Настройки обновлены.";
-App::$strings["Default Permissions App"] = "Приложение \"Разрешения по умолчанию\"";
+App::$strings["Invite App"] = "Приложение \"Пригласить\"";
App::$strings["Not Installed"] = "не установлено";
-App::$strings["Set custom default permissions for new connections"] = "Настройка пользовательских разрешений по умолчанию для новых подключений ";
-App::$strings["Connection Default Permissions"] = "Разрешения по умолчанию для контакта";
-App::$strings["Apply these permissions automatically"] = "Применить эти разрешения автоматически";
-App::$strings["If enabled, connection requests will be approved without your interaction"] = "Если включено, запросы контактов будут одобрены без вашего участия";
-App::$strings["Permission role"] = "Роль разрешения";
-App::$strings["Add permission role"] = "Добавить роль разрешения";
-App::$strings["The permissions indicated on this page will be applied to all new connections."] = "Разрешения, указанные на этой странице, будут применяться ко всем новым соединениям.";
-App::$strings["Automatic approval settings"] = "Настройки автоматического одобрения";
-App::$strings["inherited"] = "наследуется";
-App::$strings["My Settings"] = "Мои настройки";
-App::$strings["Individual Permissions"] = "Индивидуальные разрешения";
-App::$strings["Some individual permissions may have been preset or locked based on your channel type and privacy settings."] = "Некоторые индивидуальные разрешения могут быть предустановлены или заблокированы на основании типа вашего канала и настроек приватности.";
-App::$strings["Permission category name is required."] = "Требуется категория разрешений.";
-App::$strings["Permission category saved."] = "Категория разрешения сохранена.";
-App::$strings["Permission Categories App"] = "Приложение \"Категории разрешений\"";
-App::$strings["Create custom connection permission limits"] = "Создать пользовательские ограничения на доступ к подключению";
-App::$strings["Use this form to create permission rules for various classes of people or connections."] = "Используйте эту форму для создания правил разрешений для различных групп людей и контактов.";
-App::$strings["Permission Categories"] = "Категории разрешений";
-App::$strings["Permission category name"] = "Наименование категории разрешений";
-App::$strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can <strong>not</strong> change those settings here."] = "Некоторые разрешения могут наследовать из <a href=\"settings\"><strong>настроек приватности</strong></a> ваших каналов которые могут иметь более высокий приоритет чем индивидуальные. Вы <strong>не можете</strong> менять эти настройки здесь.";
-App::$strings["Xchan Lookup"] = "Поиск Xchan";
-App::$strings["Lookup xchan beginning with (or webbie): "] = "Запрос Xchan начинается с (или webbie):";
-App::$strings["Not found."] = "Не найдено.";
-App::$strings["Invalid message"] = "Неверное сообщение";
-App::$strings["no results"] = "Ничего не найдено.";
-App::$strings["channel sync processed"] = "синхронизация канала завершена";
-App::$strings["queued"] = "в очереди";
-App::$strings["posted"] = "опубликовано";
-App::$strings["accepted for delivery"] = "принято к доставке";
-App::$strings["updated"] = "обновлено";
-App::$strings["update ignored"] = "обновление игнорируется";
-App::$strings["permission denied"] = "доступ запрещен";
-App::$strings["recipient not found"] = "получатель не найден";
-App::$strings["mail recalled"] = "почта отозвана";
-App::$strings["duplicate mail received"] = "получено дублирующее сообщение";
-App::$strings["mail delivered"] = "почта доставлен";
-App::$strings["Delivery report for %1\$s"] = "Отчёт о доставке для %1\$s";
-App::$strings["Options"] = "Параметры";
-App::$strings["Redeliver"] = "Доставить повторно";
-App::$strings["No such group"] = "Нет такой группы";
-App::$strings["No such channel"] = "Нет такого канала";
-App::$strings["Search Results For:"] = "Результаты поиска для:";
-App::$strings["Reset form"] = "Очистить форму";
-App::$strings["Privacy group is empty"] = "Группа безопасности пуста";
-App::$strings["Privacy group: "] = "Группа безопасности: ";
-App::$strings["Invalid channel."] = "Недействительный канал.";
-App::$strings["Token verification failed."] = "Не удалось выполнить проверку токена.";
-App::$strings["Email Verification Required"] = "Требуется проверка адреса email";
-App::$strings["A verification token was sent to your email address [%s]. Enter that token here to complete the account verification step. Please allow a few minutes for delivery, and check your spam folder if you do not see the message."] = "Проверочный токен был выслн на ваш адрес электронной почты [%s]. Введите этот токен здесь для завершения этапа проверки учётной записи. Пожалуйста, подождите несколько минут для завершения доставки и проверьте вашу папку \"Спам\" если вы не видите письма.";
-App::$strings["Resend Email"] = "Выслать повторно";
-App::$strings["Validation token"] = "Проверочный токен";
-App::$strings["No channel."] = "Канала нет.";
-App::$strings["No connections in common."] = "Общих контактов нет.";
-App::$strings["View Common Connections"] = "Просмотр общий контактов";
-App::$strings["network"] = "сеть";
-App::$strings["Unable to locate original post."] = "Не удалось найти оригинальную публикацию.";
-App::$strings["Empty post discarded."] = "Пустая публикация отклонена.";
-App::$strings["Duplicate post suppressed."] = "Подавлена дублирующаяся публикация.";
-App::$strings["System error. Post not saved."] = "Системная ошибка. Публикация не сохранена.";
-App::$strings["Your comment is awaiting approval."] = "Ваш комментарий ожидает одобрения.";
-App::$strings["Unable to obtain post information from database."] = "Невозможно получить информацию о публикации из базы данных";
-App::$strings["You have reached your limit of %1$.0f top level posts."] = "Вы достигли вашего ограничения в %1$.0f публикаций высокого уровня.";
-App::$strings["You have reached your limit of %1$.0f webpages."] = "Вы достигли вашего ограничения в %1$.0f страниц.";
-App::$strings["Some blurb about what to do when you're new here"] = "Некоторые предложения о том, что делать, если вы здесь новичок ";
-App::$strings["Public access denied."] = "Публичный доступ запрещен.";
-App::$strings["You must enable javascript for your browser to be able to view this content."] = "Для просмотра этого содержимого в вашем браузере должен быть включён JavaScript";
-App::$strings["Article"] = "Статья";
-App::$strings["Item has been removed."] = "Элемент был удалён.";
-App::$strings["sent you a private message"] = "отправил вам личное сообщение";
-App::$strings["added your channel"] = "добавил ваш канал";
-App::$strings["requires approval"] = "Требуется подтверждение";
-App::$strings["g A l F d"] = "g A l F d";
-App::$strings["[today]"] = "[сегодня]";
-App::$strings["posted an event"] = "событие опубликовано";
-App::$strings["shared a file with you"] = "с вами поделились файлом";
-App::$strings["Private forum"] = "Частный форум";
-App::$strings["Public forum"] = "Публичный форум";
-App::$strings["Poke App"] = "Приложение \"Ткнуть\"";
-App::$strings["Poke somebody in your addressbook"] = "Ткнуть кого-нибудь в вашей адресной книге";
-App::$strings["Poke somebody"] = "Ткнуть кого-нибудь";
-App::$strings["Poke/Prod"] = "Толкнуть / подтолкнуть";
-App::$strings["Poke, prod or do other things to somebody"] = "Толкнуть, подтолкнуть или сделать что-то ещё с кем-то";
-App::$strings["Recipient"] = "Получатель";
-App::$strings["Choose what you wish to do to recipient"] = "Выбрать что вы хотите сделать с получателем";
-App::$strings["Make this post private"] = "Сделать эту публикацию приватной";
-App::$strings["Remote privacy information not available."] = "Удаленная информация о конфиденциальности недоступна.";
-App::$strings["Visible to:"] = "Видимо для:";
-App::$strings["Post not found."] = "Публикация не найдена";
-App::$strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s отметил тегом %2\$s %3\$s с %4\$s";
-App::$strings["No default suggestions were found."] = "Предложений по умолчанию не найдено.";
-App::$strings["%d rating"] = array(
- 0 => "%d оценка",
- 1 => "%d оценки",
- 2 => "%d оценок",
-);
-App::$strings["Gender: "] = "Пол:";
-App::$strings["Status: "] = "Статус:";
-App::$strings["Homepage: "] = "Домашняя страница:";
-App::$strings["Description:"] = "Описание:";
-App::$strings["Public Forum:"] = "Публичный форум:";
-App::$strings["Keywords: "] = "Ключевые слова:";
-App::$strings["Don't suggest"] = "Не предлагать";
-App::$strings["Common connections (estimated):"] = "Общие контакты (оценочно):";
-App::$strings["Global Directory"] = "Глобальный каталог";
-App::$strings["Local Directory"] = "Локальный каталог";
-App::$strings["Finding:"] = "Поиск:";
-App::$strings["next page"] = "следующая страница";
-App::$strings["previous page"] = "предыдущая страница";
-App::$strings["Sort options"] = "Параметры сортировки";
-App::$strings["Alphabetic"] = "По алфавиту";
-App::$strings["Reverse Alphabetic"] = "Против алфавита";
-App::$strings["Newest to Oldest"] = "От новых к старым";
-App::$strings["Oldest to Newest"] = "От старых к новым";
-App::$strings["No entries (some entries may be hidden)."] = "Нет записей (некоторые записи могут быть скрыты).";
+App::$strings["Send email invitations to join this network"] = "Отправить приглашение присоединиться к этой сети по электронной почте";
+App::$strings["You have no more invitations available"] = "У вас больше нет приглашений";
+App::$strings["Send invitations"] = "Отправить приглашение";
+App::$strings["Enter email addresses, one per line:"] = "Введите адреса электронной почты, по одному в строке:";
+App::$strings["Your message:"] = "Сообщение:";
+App::$strings["Please join my community on \$Projectname."] = "Присоединятесь к нашему сообществу \$Projectname !";
+App::$strings["You will need to supply this invitation code:"] = "Вам нужно предоставит этот код приглашения:";
+App::$strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Зарегистрируйтесь на любом из серверов \$Projectname";
+App::$strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Введите сетевой адрес \$Projectname в поисковой строке сайта";
+App::$strings["or visit"] = "или посетите";
+App::$strings["3. Click [Connect]"] = "Нажать [Подключиться]";
+App::$strings["Submit"] = "Отправить";
+App::$strings["Articles App"] = "Приложение \"Статьи\"";
+App::$strings["Create interactive articles"] = "Создать интерактивные статьи";
+App::$strings["Add Article"] = "Добавить статью";
+App::$strings["Articles"] = "Статьи";
+App::$strings["Item not found"] = "Элемент не найден";
+App::$strings["Layout Name"] = "Название шаблона";
+App::$strings["Layout Description (Optional)"] = "Описание шаблона (необязательно)";
+App::$strings["Edit Layout"] = "Редактировать шаблон";
+App::$strings["Cancel"] = "Отменить";
+App::$strings["Permission denied"] = "Доступ запрещен";
+App::$strings["Invalid profile identifier."] = "Неверный идентификатор профиля";
+App::$strings["Profile Visibility Editor"] = "Редактор видимости профиля";
+App::$strings["Profile"] = "Профиль";
+App::$strings["Click on a contact to add or remove."] = "Нажмите на контакт, чтобы добавить или удалить.";
+App::$strings["Visible To"] = "Видно";
+App::$strings["All Connections"] = "Все контакты";
App::$strings["INVALID EVENT DISMISSED!"] = "НЕДЕЙСТВИТЕЛЬНОЕ СОБЫТИЕ ОТКЛОНЕНО!";
App::$strings["Summary: "] = "Резюме: ";
+App::$strings["Unknown"] = "Неизвестный";
App::$strings["Date: "] = "Дата: ";
App::$strings["Reason: "] = "Причина: ";
App::$strings["INVALID CARD DISMISSED!"] = "НЕДЕЙСТВИТЕЛЬНАЯ КАРТОЧКА ОТКЛОНЕНА!";
@@ -1081,6 +109,7 @@ App::$strings["Start date and time"] = "Дата и время начала";
App::$strings["Example: YYYY-MM-DD HH:mm"] = "Пример: YYYY-MM-DD HH:mm";
App::$strings["End date and time"] = "Дата и время окончания";
App::$strings["Description"] = "Описание";
+App::$strings["Location"] = "Место";
App::$strings["Previous"] = "Предыдущая";
App::$strings["Next"] = "Следующая";
App::$strings["Today"] = "Сегодня";
@@ -1095,13 +124,18 @@ App::$strings["Less"] = "Меньше";
App::$strings["Select calendar"] = "Выбрать календарь";
App::$strings["Delete all"] = "Удалить всё";
App::$strings["Sorry! Editing of recurrent events is not yet implemented."] = "Простите, но редактирование повторяющихся событий пока не реализовано.";
+App::$strings["Name"] = "Имя";
App::$strings["Organisation"] = "Организация";
App::$strings["Title"] = "Наименование";
App::$strings["Phone"] = "Телефон";
+App::$strings["Email"] = "Электронная почта";
App::$strings["Instant messenger"] = "Мессенджер";
App::$strings["Website"] = "Веб-сайт";
App::$strings["Address"] = "Адрес";
App::$strings["Note"] = "Заметка";
+App::$strings["Mobile"] = "Мобильный";
+App::$strings["Home"] = "Домашний";
+App::$strings["Work"] = "Рабочий";
App::$strings["Add Contact"] = "Добавить контакт";
App::$strings["Add Field"] = "Добавить поле";
App::$strings["Update"] = "Обновить";
@@ -1114,215 +148,105 @@ App::$strings["ZIP Code"] = "Индекс";
App::$strings["Country"] = "Страна";
App::$strings["Default Calendar"] = "Календарь по умолчанию";
App::$strings["Default Addressbook"] = "Адресная книга по умолчанию";
+App::$strings["This site is not a directory server"] = "Этот сайт не является сервером каталога";
+App::$strings["Permission category name is required."] = "Требуется категория разрешений.";
+App::$strings["Permission category saved."] = "Категория разрешения сохранена.";
+App::$strings["Permission Categories App"] = "Приложение \"Категории разрешений\"";
+App::$strings["Create custom connection permission limits"] = "Создать пользовательские ограничения на доступ к подключению";
+App::$strings["Use this form to create permission rules for various classes of people or connections."] = "Используйте эту форму для создания правил разрешений для различных групп людей и контактов.";
+App::$strings["Permission Categories"] = "Категории разрешений";
+App::$strings["Permission category name"] = "Наименование категории разрешений";
+App::$strings["My Settings"] = "Мои настройки";
+App::$strings["inherited"] = "наследуется";
+App::$strings["Individual Permissions"] = "Индивидуальные разрешения";
+App::$strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can <strong>not</strong> change those settings here."] = "Некоторые разрешения могут наследовать из <a href=\"settings\"><strong>настроек приватности</strong></a> ваших каналов которые могут иметь более высокий приоритет чем индивидуальные. Вы <strong>не можете</strong> менять эти настройки здесь.";
+App::$strings["You must be logged in to see this page."] = "Вы должны авторизоваться, чтобы увидеть эту страницу.";
App::$strings["Posts and comments"] = "Публикации и комментарии";
App::$strings["Only posts"] = "Только публикации";
-App::$strings["vcard"] = "vCard";
-App::$strings["You must be logged in to see this page."] = "Вы должны авторизоваться, чтобы увидеть эту страницу.";
-App::$strings["No more system notifications."] = "Нет новых оповещений системы.";
-App::$strings["System Notifications"] = "Системные оповещения ";
-App::$strings["%s element installed"] = "%s элемент установлен";
-App::$strings["%s element installation failed"] = "%sустановка элемента неудачна.";
-App::$strings["App installed."] = "Приложение установлено.";
-App::$strings["Malformed app."] = "Неработающее приложение.";
-App::$strings["Embed code"] = "Встроить код";
-App::$strings["Edit App"] = "Редактировать приложение";
-App::$strings["Create App"] = "Создать приложение";
-App::$strings["Name of app"] = "Наименование приложения";
-App::$strings["Location (URL) of app"] = "Местоположение (URL) приложения";
-App::$strings["Photo icon URL"] = "URL пиктограммы";
-App::$strings["80 x 80 pixels - optional"] = "80 x 80 пикселей - необязательно";
-App::$strings["Categories (optional, comma separated list)"] = "Категории (необязательно, список через запятую)";
-App::$strings["Version ID"] = "ID версии";
-App::$strings["Price of app"] = "Цена приложения";
-App::$strings["Location (URL) to purchase app"] = "Ссылка (URL) для покупки приложения";
-App::$strings["Invalid profile identifier."] = "Неверный идентификатор профиля";
-App::$strings["Profile Visibility Editor"] = "Редактор видимости профиля";
-App::$strings["Click on a contact to add or remove."] = "Нажмите на контакт, чтобы добавить или удалить.";
-App::$strings["Visible To"] = "Видно";
-App::$strings["All Connections"] = "Все контакты";
-App::$strings["Channel name changes are not allowed within 48 hours of changing the account password."] = "Изменение названия канала не разрешается в течении 48 часов после смены пароля у аккаунта.";
-App::$strings["Change channel nickname/address"] = "Изменить псевдоним / адрес канала";
-App::$strings["WARNING: "] = "ПРЕДУПРЕЖДЕНИЕ: ";
-App::$strings["Any/all connections on other networks will be lost!"] = "Любые / все контакты в других сетях будут утеряны!";
-App::$strings["Please enter your password for verification:"] = "Пожалуйста, введите ваш пароль для проверки:";
-App::$strings["New channel address"] = "Новый адрес канала";
-App::$strings["Rename Channel"] = "Переименовать канал";
-App::$strings["Accounts"] = "Учётные записи";
-App::$strings["Blocked accounts"] = "Заблокированные аккаунты";
-App::$strings["Expired accounts"] = "Просроченные аккаунты";
-App::$strings["Expiring accounts"] = "Близкие к просрочке аккаунты";
-App::$strings["Channels"] = "Каналы";
+App::$strings["Insufficient permissions. Request redirected to profile page."] = "Недостаточно прав. Запрос перенаправлен на страницу профиля.";
+App::$strings["Search Results For:"] = "Результаты поиска для:";
+App::$strings["Reset form"] = "Очистить форму";
+App::$strings["You must enable javascript for your browser to be able to view this content."] = "Для просмотра этого содержимого в вашем браузере должен быть включён JavaScript";
+App::$strings["Language App"] = "Приложение \"Язык\"";
+App::$strings["Change UI language"] = "Изменить язык интерфейса";
+App::$strings["Channel Export App"] = "Приложение \"Экспорт канала\"";
+App::$strings["Export your channel"] = "Экспортировать ваш канал";
+App::$strings["Export Channel"] = "Экспорт канала";
+App::$strings["Export your basic channel information to a file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new server hub, but does not contain your content."] = "Экспортировать основную информацию из канала в файл. Служит в качестве резервной копии ваших контактов, основных данных и профиля, однако не включает содержимое. Может быть использовано для импорта ваши данных на новый сервер.";
+App::$strings["Export Content"] = "Экспортировать содержимое";
+App::$strings["Export your channel information and recent content to a JSON backup that can be restored or imported to another server hub. This backs up all of your connections, permissions, profile data and several months of posts. This file may be VERY large. Please be patient - it may take several minutes for this download to begin."] = "Экспортировать информацию из вашего канала и его содержимое в резервную копию в формате JSON которая может быть использована для восстановления или импорта на другом сервере. Сохраняет все ваши контакты, разрешения, данные профиля и публикации за несколько месяцев. Файл может иметь очень большой размер. Пожалуйста, будьте терпеливы и подождите несколько минут пока не начнётся загрузка.";
+App::$strings["Export your posts from a given year."] = "Экспортировать ваши публикации за данный год.";
+App::$strings["You may also export your posts and conversations for a particular year or month. Adjust the date in your browser location bar to select other dates. If the export fails (possibly due to memory exhaustion on your server hub), please try again selecting a more limited date range."] = "Вы также можете экспортировать ваши публикации и беседы за определённый месяц или год. Выберите дату в панели местоположения в браузере. Если экспорт будет неудачным (это возможно, например, из-за исчерпания памяти на сервере), повторите попытку, выбрав меньший диапазон дат.";
+App::$strings["To select all posts for a given year, such as this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Для выбора всех публикаций заданного года, например текущего, посетите <a href=\"%1\$s\">%2\$s</a>";
+App::$strings["To select all posts for a given month, such as January of this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Для выбора всех публикаций заданного месяца, например за январь сего года, посетите <a href=\"%1\$s\">%2\$s</a>";
+App::$strings["These content files may be imported or restored by visiting <a href=\"%1\$s\">%2\$s</a> on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Данные файлы с содержимым могут быть импортированы и восстановлены на любом содержащем ваш канал сайте. Посетите <a href=\"%1\$s\">%2\$s</a>. Для лучших результатов пожалуйста производите импорт и восстановление в порядке датировки (старые сначала).";
+App::$strings["Welcome to Hubzilla!"] = "Добро пожаловать в Hubzilla!";
+App::$strings["You have got no unseen posts..."] = "У вас нет видимых публикаций...";
+App::$strings["Public access denied."] = "Публичный доступ запрещен.";
+App::$strings["Search"] = "Поиск";
+App::$strings["Items tagged with: %s"] = "Объекты помечены как: %s";
+App::$strings["Search results for: %s"] = "Результаты поиска для: %s";
+App::$strings["Public Stream App"] = "Приложение \"Публичный поток\"";
+App::$strings["The unmoderated public stream of this hub"] = "Немодерируемый публичный поток с этого хаба";
+App::$strings["Public Stream"] = "Публичный поток";
+App::$strings["Location not found."] = "Местоположение не найдено";
+App::$strings["Location lookup failed."] = "Поиск местоположения не удался";
+App::$strings["Please select another location to become primary before removing the primary location."] = "Пожалуйста, выберите другое местоположение в качестве основного прежде чем удалить предыдущее";
+App::$strings["Syncing locations"] = "Синхронизировать местоположение";
+App::$strings["No locations found."] = "Местоположений не найдено";
+App::$strings["Manage Channel Locations"] = "Управление местоположением канала";
App::$strings["Primary"] = "Основной";
-App::$strings["Clones"] = "Клоны";
-App::$strings["Message queues"] = "Очередь сообщений";
-App::$strings["Your software should be updated"] = "Ваше программное обеспечение должно быть обновлено";
-App::$strings["Administration"] = "Администрирование";
-App::$strings["Summary"] = "Резюме";
-App::$strings["Registered accounts"] = "Зарегистрированные аккаунты";
-App::$strings["Pending registrations"] = "Ждут утверждения";
-App::$strings["Registered channels"] = "Зарегистрированные каналы";
-App::$strings["Active addons"] = "Активные расширения";
-App::$strings["Version"] = "Версия системы";
-App::$strings["Repository version (master)"] = "Версия репозитория (master)";
-App::$strings["Repository version (dev)"] = "Версия репозитория (dev)";
-App::$strings["Profile not found."] = "Профиль не найден.";
-App::$strings["Profile deleted."] = "Профиль удален.";
-App::$strings["Profile-"] = "Профиль -";
-App::$strings["New profile created."] = "Новый профиль создан.";
-App::$strings["Profile unavailable to clone."] = "Профиль недоступен для клонирования.";
-App::$strings["Profile unavailable to export."] = "Профиль недоступен для экспорта.";
-App::$strings["Profile Name is required."] = "Требуется имя профиля.";
-App::$strings["Marital Status"] = "Семейное положение";
-App::$strings["Romantic Partner"] = "Романтический партнер";
-App::$strings["Likes"] = "Нравится";
-App::$strings["Dislikes"] = "Не нравится";
-App::$strings["Work/Employment"] = "Работа / Занятость";
-App::$strings["Religion"] = "Религия";
-App::$strings["Political Views"] = "Политические взгляды";
-App::$strings["Gender"] = "Гендер";
-App::$strings["Sexual Preference"] = "Сексуальная ориентация";
-App::$strings["Homepage"] = "Домашняя страница";
-App::$strings["Interests"] = "Интересы";
-App::$strings["Profile updated."] = "Профиль обновлен.";
-App::$strings["Hide your connections list from viewers of this profile"] = "Скрывать от просмотра ваш список контактов в этом профиле";
-App::$strings["Edit Profile Details"] = "Редактирование профиля";
-App::$strings["View this profile"] = "Посмотреть этот профиль";
-App::$strings["Profile Tools"] = "Инструменты профиля";
-App::$strings["Change cover photo"] = "Изменить фотографию обложки";
-App::$strings["Create a new profile using these settings"] = "Создать новый профиль с теми же настройками";
-App::$strings["Clone this profile"] = "Клонировать этот профиль";
-App::$strings["Delete this profile"] = "Удалить этот профиль";
-App::$strings["Add profile things"] = "Добавить в профиль";
-App::$strings["Personal"] = "Личное";
-App::$strings["Relationship"] = "Отношения";
-App::$strings["Import profile from file"] = "Импортировать профиль из файла";
-App::$strings["Export profile to file"] = "Экспортировать профиль в файл";
-App::$strings["Your gender"] = "Ваш пол";
-App::$strings["Marital status"] = "Семейное положение";
-App::$strings["Sexual preference"] = "Сексуальная ориентация";
-App::$strings["Profile name"] = "Имя профиля";
-App::$strings["This is your default profile."] = "Это ваш профиль по умолчанию.";
-App::$strings["Your full name"] = "Ваше полное имя";
-App::$strings["Title/Description"] = "Заголовок / описание";
-App::$strings["Street address"] = "Улица, дом, квартира";
-App::$strings["Locality/City"] = "Населенный пункт / город";
-App::$strings["Region/State"] = "Регион / Область";
-App::$strings["Postal/Zip code"] = "Почтовый индекс";
-App::$strings["Who (if applicable)"] = "Кто (если применимо)";
-App::$strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Примеры: ivan1990, Ivan Petrov, ivan@example.com";
-App::$strings["Since (date)"] = "С (дата)";
-App::$strings["Tell us about yourself"] = "Расскажите нам о себе";
-App::$strings["Homepage URL"] = "URL домашней страницы";
-App::$strings["Hometown"] = "Родной город";
-App::$strings["Political views"] = "Политические взгляды";
-App::$strings["Religious views"] = "Религиозные взгляды";
-App::$strings["Keywords used in directory listings"] = "Ключевые слова для участия в каталоге";
-App::$strings["Example: fishing photography software"] = "Например: fishing photography software";
-App::$strings["Musical interests"] = "Музыкальные интересы";
-App::$strings["Books, literature"] = "Книги, литература";
-App::$strings["Television"] = "Телевидение";
-App::$strings["Film/Dance/Culture/Entertainment"] = "Кино / танцы / культура / развлечения";
-App::$strings["Hobbies/Interests"] = "Хобби / интересы";
-App::$strings["Love/Romance"] = "Любовь / романтические отношения";
-App::$strings["School/Education"] = "Школа / образование";
-App::$strings["Contact information and social networks"] = "Информация и социальные сети для связи";
-App::$strings["My other channels"] = "Мои другие контакты";
-App::$strings["Communications"] = "Связи";
-App::$strings["Create New"] = "Создать новый";
-App::$strings["Page owner information could not be retrieved."] = "Информация о владельце страницы не может быть получена.";
-App::$strings["Album not found."] = "Альбом не найден.";
-App::$strings["Delete Album"] = "Удалить альбом";
-App::$strings["Delete Photo"] = "Удалить фотографию";
-App::$strings["No photos selected"] = "Никакие фотографии не выбраны";
-App::$strings["Access to this item is restricted."] = "Доступ к этому элементу ограничен.";
-App::$strings["%1$.2f MB of %2$.2f MB photo storage used."] = "Вы использовали %1$.2f мегабайт из %2$.2f для хранения фото.";
-App::$strings["%1$.2f MB photo storage used."] = "Вы использовали %1$.2f мегабайт для хранения фото.";
-App::$strings["Upload Photos"] = "Загрузить фотографии";
-App::$strings["Enter an album name"] = "Введите название альбома";
-App::$strings["or select an existing album (doubleclick)"] = "или выберите существующий альбом (двойной щелчок)";
-App::$strings["Create a status post for this upload"] = "Сделать публикацию о статусе для этой загрузки";
-App::$strings["Description (optional)"] = "Описание (необязательно)";
-App::$strings["Show Newest First"] = "Показать новые первыми";
-App::$strings["Show Oldest First"] = "Показать старые первыми";
-App::$strings["View Photo"] = "Посмотреть фотографию";
-App::$strings["Edit Album"] = "Редактировать Фотоальбом";
-App::$strings["Add Photos"] = "Добавить фотографии";
-App::$strings["Permission denied. Access to this item may be restricted."] = "Доступ запрещен. Доступ к этому элементу может быть ограничен.";
-App::$strings["Photo not available"] = "Фотография не доступна";
-App::$strings["Use as profile photo"] = "Использовать в качестве фотографии профиля";
-App::$strings["Use as cover photo"] = "Использовать в качестве фотографии обложки";
-App::$strings["Private Photo"] = "Личная фотография";
-App::$strings["View Full Size"] = "Посмотреть в полный размер";
-App::$strings["Remove"] = "Удалить";
-App::$strings["Edit photo"] = "Редактировать фотографию";
-App::$strings["Rotate CW (right)"] = "Повернуть CW (направо)";
-App::$strings["Rotate CCW (left)"] = "Повернуть CCW (налево)";
-App::$strings["Move photo to album"] = "Переместить фотографию в альбом";
-App::$strings["Enter a new album name"] = "Введите новое название альбома";
-App::$strings["or select an existing one (doubleclick)"] = "или выбрать существующую (двойной щелчок)";
-App::$strings["Add a Tag"] = "Добавить тег";
-App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Пример: @bob, @Barbara_Jensen, @jim@example.com";
-App::$strings["Flag as adult in album view"] = "Пометить как альбом \"для взрослых\"";
-App::$strings["I like this (toggle)"] = "мне это нравится (переключение)";
-App::$strings["I don't like this (toggle)"] = "мне это не нравится (переключение)";
-App::$strings["This is you"] = "Это вы";
-App::$strings["View all"] = "Просмотреть все";
-App::$strings["Photo Tools"] = "Фото-Инструменты";
-App::$strings["In This Photo:"] = "На этой фотографии:";
-App::$strings["Map"] = "Карта";
-App::$strings["__ctx:noun__ Likes"] = "Нравится";
-App::$strings["__ctx:noun__ Dislikes"] = "Не нравится";
-App::$strings["Tag removed"] = "Тег удалён";
-App::$strings["Remove Item Tag"] = "Удалить тег элемента";
-App::$strings["Select a tag to remove: "] = "Выбрать тег для удаления:";
-App::$strings["Channel not found."] = "Канал не найден.";
-App::$strings["toggle full screen mode"] = "переключение полноэкранного режима";
-App::$strings["Invalid item."] = "Недействительный элемент.";
-App::$strings["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."] = "";
-App::$strings["Authorize application connection"] = "Авторизовать подключение приложения";
-App::$strings["Return to your app and insert this Security Code:"] = "Вернитесь к своему приложению и вставьте этот код безопасности:";
-App::$strings["Please login to continue."] = "Пожалуйста, войдите, чтобы продолжить.";
-App::$strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Вы хотите авторизовать это приложение для доступа к вашим публикациям и контактам и / или созданию новых публикаций?";
-App::$strings["No valid account found."] = "Действительный аккаунт не найден.";
-App::$strings["Password reset request issued. Check your email."] = "Запрос на сброс пароля отправлен. Проверьте вашу электронную почту.";
-App::$strings["Site Member (%s)"] = "Участник сайта (%s)";
-App::$strings["Password reset requested at %s"] = "Запрошен сброс пароля на %s";
-App::$strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Запрос не может быть проверен. (Вы могли отправить его раньше). Сброс пароля не возможен.";
-App::$strings["Your password has been reset as requested."] = "Ваш пароль в соответствии с просьбой сброшен.";
-App::$strings["Your new password is"] = "Ваш новый пароль";
-App::$strings["Save or copy your new password - and then"] = "Сохраните ваш новый пароль и затем";
-App::$strings["click here to login"] = "нажмите здесь чтобы войти";
-App::$strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Ваш пароль может быть изменён на странице <em>Настройки</em> после успешного входа.";
-App::$strings["Your password has changed at %s"] = "Пароль был изменен на %s";
-App::$strings["Forgot your Password?"] = "Забыли ваш пароль?";
-App::$strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Введите ваш адрес электронной почты и нажмите отправить чтобы сбросить пароль. Затем проверьте ваш почтовый ящик для дальнейших инструкций. ";
-App::$strings["Email Address"] = "Адрес электронной почты";
-App::$strings["Reset"] = "Сбросить";
-App::$strings["Name is required"] = "Необходимо имя";
-App::$strings["Key and Secret are required"] = "Требуются ключ и код";
-App::$strings["OAuth Apps Manager App"] = "Приложение \"Менеджер Oauth\"";
-App::$strings["OAuth authentication tokens for mobile and remote apps"] = "Токены аутентификации OAuth для мобильный и удалённых приложений";
-App::$strings["Add application"] = "Добавить приложение";
-App::$strings["Name of application"] = "Название приложения";
-App::$strings["Consumer Key"] = "Ключ клиента";
-App::$strings["Automatically generated - change if desired. Max length 20"] = "Сгенерирован автоматические - измените если требуется. Макс. длина 20";
-App::$strings["Consumer Secret"] = "Код клиента";
-App::$strings["Redirect"] = "Перенаправление";
-App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI перенаправления - оставьте пустыми до тех пока ваше приложение не требует этого";
-App::$strings["Icon url"] = "URL значка";
-App::$strings["Optional"] = "Необязательно";
-App::$strings["Application not found."] = "Приложение не найдено.";
-App::$strings["Connected OAuth Apps"] = "Подключенные приложения OAuth";
-App::$strings["Client key starts with"] = "Ключ клиента начинается с";
-App::$strings["No name"] = "Без названия";
-App::$strings["Remove authorization"] = "Удалить разрешение";
+App::$strings["Drop"] = "Удалить";
+App::$strings["Sync Now"] = "Синхронизировать";
+App::$strings["Please wait several minutes between consecutive operations."] = "Пожалуйста, подождите несколько минут между последовательными операциями.";
+App::$strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "По возможности, очистите местоположение, войдя на этот веб-сайт / хаб и удалив свой канал.";
+App::$strings["Use this form to drop the location if the hub is no longer operating."] = "Используйте эту форму, чтобы удалить местоположение, если хаб больше не функционирует.";
+App::$strings["Change Order of Pinned Navbar Apps"] = "Изменить порядок приложений на панели навигации";
+App::$strings["Change Order of App Tray Apps"] = "Изменить порядок приложений в лотке";
+App::$strings["Use arrows to move the corresponding app left (top) or right (bottom) in the navbar"] = "Используйте стрелки для перемещения приложения влево (вверх) или вправо (вниз) в панели навигации";
+App::$strings["Use arrows to move the corresponding app up or down in the app tray"] = "Используйте стрелки для перемещения приложения вверх или вниз в лотке";
+App::$strings["Menu not found."] = "Меню не найдено";
+App::$strings["Unable to create element."] = "Невозможно создать элемент.";
+App::$strings["Unable to update menu element."] = "Невозможно обновить элемент меню.";
+App::$strings["Unable to add menu element."] = "Невозможно добавить элемент меню.";
+App::$strings["Not found."] = "Не найдено.";
+App::$strings["Menu Item Permissions"] = "Разрешения на пункт меню";
+App::$strings["(click to open/close)"] = "(нажмите чтобы открыть/закрыть)";
+App::$strings["Link Name"] = "Имя ссылки";
+App::$strings["Link or Submenu Target"] = "Ссылка или цель подменю";
+App::$strings["Enter URL of the link or select a menu name to create a submenu"] = "Введите URL ссылки или выберите имя меню для создания подменю";
+App::$strings["Use magic-auth if available"] = "Использовать magic-auth если возможно";
+App::$strings["No"] = "Нет";
+App::$strings["Yes"] = "Да";
+App::$strings["Open link in new window"] = "Открыть ссылку в новом окне";
+App::$strings["Order in list"] = "Порядок в списке";
+App::$strings["Higher numbers will sink to bottom of listing"] = "Большие значения в конце списка";
+App::$strings["Submit and finish"] = "Отправить и завершить";
+App::$strings["Submit and continue"] = "Отправить и продолжить";
+App::$strings["Menu:"] = "Меню:";
+App::$strings["Link Target"] = "Цель ссылки";
+App::$strings["Edit menu"] = "Редактировать меню";
+App::$strings["Edit element"] = "Редактировать элемент";
+App::$strings["Drop element"] = "Удалить элемент";
+App::$strings["New element"] = "Новый элемент";
+App::$strings["Edit this menu container"] = "Редактировать контейнер меню";
+App::$strings["Add menu element"] = "Добавить элемент меню";
+App::$strings["Delete this menu item"] = "Удалить этот элемент меню";
+App::$strings["Edit this menu item"] = "Редактировать этот элемент меню";
+App::$strings["Menu item not found."] = "Элемент меню не найден.";
+App::$strings["Menu item deleted."] = "Элемент меню удалён.";
+App::$strings["Menu item could not be deleted."] = "Невозможно удалить элемент меню.";
+App::$strings["Edit Menu Element"] = "Редактировать элемент меню";
+App::$strings["Link text"] = "Текст ссылки";
App::$strings["Calendar entries imported."] = "События календаря импортированы.";
App::$strings["No calendar entries found."] = "Не найдено событий в календаре.";
App::$strings["Event can not end before it has started."] = "Событие не может завершиться до его начала.";
App::$strings["Unable to generate preview."] = "Невозможно создать предварительный просмотр.";
App::$strings["Event title and start time are required."] = "Требуются наименование события и время начала.";
App::$strings["Event not found."] = "Событие не найдено.";
+App::$strings["event"] = "событие";
App::$strings["Edit event title"] = "Редактировать наименование события";
+App::$strings["Required"] = "Требуется";
App::$strings["Categories (comma-separated list)"] = "Категории (список через запятую)";
App::$strings["Edit Category"] = "Редактировать категорию";
App::$strings["Category"] = "Категория";
@@ -1334,26 +258,53 @@ App::$strings["Adjust for viewer timezone"] = "Настройте просмот
App::$strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Важно для событий, которые происходят в определённом месте. Не подходит для всеобщих праздников.";
App::$strings["Edit Description"] = "Редактировать описание";
App::$strings["Edit Location"] = "Редактировать местоположение";
+App::$strings["Preview"] = "Предварительный просмотр";
+App::$strings["Permission settings"] = "Настройки разрешений";
App::$strings["Timezone:"] = "Часовой пояс:";
App::$strings["Advanced Options"] = "Дополнительные настройки";
App::$strings["l, F j"] = "";
App::$strings["Edit event"] = "Редактировать событие";
App::$strings["Delete event"] = "Удалить событие";
+App::$strings["Link to Source"] = "Ссылка на источник";
App::$strings["calendar"] = "календарь";
App::$strings["Edit Event"] = "Редактировать событие";
App::$strings["Create Event"] = "Создать событие";
-App::$strings["View"] = "Просмотр";
+App::$strings["Export"] = "Экспорт";
App::$strings["Event removed"] = "Событие удалено";
App::$strings["Failed to remove event"] = "Не удалось удалить событие";
-App::$strings["Unknown App"] = "Неизвестное приложение";
-App::$strings["Authorize"] = "Авторизовать";
-App::$strings["Do you authorize the app %s to access your channel data?"] = "Авторизуете ли вы приложение %s для доступа к данным вашего канала?";
-App::$strings["Allow"] = "Разрешить";
-App::$strings["Deny"] = "Запретить";
-App::$strings["Public Stream App"] = "Приложение \"Публичный поток\"";
-App::$strings["The unmoderated public stream of this hub"] = "Немодерируемый публичный поток с этого хаба";
-App::$strings["Public Stream"] = "Публичный поток";
+App::$strings["App installed."] = "Приложение установлено.";
+App::$strings["Malformed app."] = "Неработающее приложение.";
+App::$strings["Embed code"] = "Встроить код";
+App::$strings["Edit App"] = "Редактировать приложение";
+App::$strings["Create App"] = "Создать приложение";
+App::$strings["Name of app"] = "Наименование приложения";
+App::$strings["Location (URL) of app"] = "Местоположение (URL) приложения";
+App::$strings["Photo icon URL"] = "URL пиктограммы";
+App::$strings["80 x 80 pixels - optional"] = "80 x 80 пикселей - необязательно";
+App::$strings["Categories (optional, comma separated list)"] = "Категории (необязательно, список через запятую)";
+App::$strings["Version ID"] = "ID версии";
+App::$strings["Price of app"] = "Цена приложения";
+App::$strings["Location (URL) to purchase app"] = "Ссылка (URL) для покупки приложения";
+App::$strings["Please login."] = "Пожалуйста, войдите.";
+App::$strings["Hub not found."] = "Узел не найден.";
+App::$strings["photo"] = "фото";
+App::$strings["status"] = "статус";
+App::$strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s отслеживает %2\$s's %3\$s";
+App::$strings["%1\$s stopped following %2\$s's %3\$s"] = "%1\$s прекратил отслеживать %2\$s's %3\$s";
+App::$strings["Channel not found."] = "Канал не найден.";
+App::$strings["Insert web link"] = "Вставить веб-ссылку";
+App::$strings["Title (optional)"] = "Заголовок (необязательно)";
+App::$strings["Edit Article"] = "Редактировать статью";
+App::$strings["Nothing to import."] = "Ничего импортировать.";
+App::$strings["Unable to download data from old server"] = "Невозможно загрузить данные со старого сервера";
+App::$strings["Imported file is empty."] = "Импортированный файл пуст.";
+App::$strings["Warning: Database versions differ by %1\$d updates."] = "Предупреждение: Версия базы данных отличается от %1\$d обновления.";
+App::$strings["Import completed"] = "Импорт завершён.";
+App::$strings["Import Items"] = "Импортировать объекты";
+App::$strings["Use this form to import existing posts and content from an export file."] = "Используйте эту форму для импорта существующих публикаций и содержимого из файла.";
+App::$strings["File to Upload"] = "Файл для загрузки";
App::$strings["You have created %1$.0f of %2$.0f allowed channels."] = "Вы создали %1$.0f из %2$.0f возможных каналов.";
+App::$strings["Loading"] = "Загрузка";
App::$strings["Your real name is recommended."] = "Рекомендуется использовать ваше настоящее имя.";
App::$strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""] = "Примеры: \"Иван Иванов\", \"Оксана и кони\", \"Футбол\", \"Тимур и его команда\"";
App::$strings["This will be used to create a unique network address (like an email address)."] = "Это будет использовано для создания уникального сетевого адреса (наподобие email).";
@@ -1367,391 +318,21 @@ App::$strings["Create a Channel"] = "Создать канал";
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."] = "Канал это уникальная сетевая идентичность. Он может представлять человека (профиль в социальной сети), форум или группу, бизнес или страницу знаменитости, новостную ленту и многие другие вещи.";
App::$strings["or <a href=\"import\">import an existing channel</a> from another location."] = "или <a href=\"import\">импортировать существующий канал</a> из другого места.";
App::$strings["Validate"] = "Проверить";
-App::$strings["Image uploaded but image cropping failed."] = "Изображение загружено но обрезка не удалась.";
-App::$strings["Cover Photos"] = "Фотографии обложки";
-App::$strings["Image resize failed."] = "Не удалось изменить размер изображения.";
-App::$strings["Image upload failed."] = "Загрузка изображения не удалась.";
-App::$strings["Unable to process image."] = "Невозможно обработать изображение.";
-App::$strings["Photo not available."] = "Фотография недоступна.";
-App::$strings["Your cover photo may be visible to anybody on the internet"] = "Фотография вашей обложки может быть видна всем в Интернете";
-App::$strings["Upload File:"] = "Загрузить файл:";
-App::$strings["Select a profile:"] = "Выбрать профиль:";
-App::$strings["Change Cover Photo"] = "Изменить фотографию обложки";
-App::$strings["Use a photo from your albums"] = "Использовать фотографию из ваших альбомов";
-App::$strings["Choose a different album"] = "Выбрать другой альбом";
-App::$strings["Select existing photo"] = "Выбрать существующую фотографию";
-App::$strings["Crop Image"] = "Обрезать изображение";
-App::$strings["Please adjust the image cropping for optimum viewing."] = "Пожалуйста настройте обрезку изображения для оптимального просмотра.";
-App::$strings["Done Editing"] = "Закончить редактирование";
-App::$strings["Files: shared with me"] = "Файлы: поделились со мной";
-App::$strings["NEW"] = "НОВОЕ";
-App::$strings["Remove all files"] = "Удалить все файлы";
-App::$strings["Remove this file"] = "Удалить этот файл";
-App::$strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Превышено максимальное количество регистраций на сегодня. Пожалуйста, попробуйте снова завтра.";
-App::$strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Пожалуйста, подтвердите согласие с \"Условиями обслуживания\". Регистрация не удалась.";
-App::$strings["Passwords do not match."] = "Пароли не совпадают.";
-App::$strings["Registration successful. Continue to create your first channel..."] = "Регистрация завершена успешно. Для продолжения создайте свой первый канал...";
-App::$strings["Registration successful. Please check your email for validation instructions."] = "Регистрация завершена успешно. Пожалуйста проверьте вашу электронную почту для подтверждения.";
-App::$strings["Your registration is pending approval by the site owner."] = "Ваша регистрация ожидает одобрения администрации сайта.";
-App::$strings["Your registration can not be processed."] = "Ваша регистрация не может быть обработана.";
-App::$strings["Registration on this hub is disabled."] = "Регистрация на этом хабе отключена.";
-App::$strings["Registration on this hub is by approval only."] = "Регистрация на этом хабе только по утверждению.";
-App::$strings["<a href=\"pubsites\">Register at another affiliated hub.</a>"] = "<a href=\"pubsites\">Зарегистрироваться на другом хабе.</a>";
-App::$strings["Registration on this hub is by invitation only."] = "Регистрация на этом хабе доступна только по приглашениям.";
-App::$strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Этот сайт превысил максимальное количество регистраций на сегодня. Пожалуйста, попробуйте снова завтра. ";
-App::$strings["Terms of Service"] = "Условия предоставления услуг";
-App::$strings["I accept the %s for this website"] = "Я принимаю %s для этого веб-сайта.";
-App::$strings["I am over %s years of age and accept the %s for this website"] = "Мой возраст превышает %s лет и я принимаю %s для этого веб-сайта.";
-App::$strings["Your email address"] = "Ваш адрес электронной почты";
-App::$strings["Choose a password"] = "Выберите пароль";
-App::$strings["Please re-enter your password"] = "Пожалуйста, введите пароль еще раз";
-App::$strings["Please enter your invitation code"] = "Пожалуйста, введите Ваш код приглашения";
-App::$strings["Your Name"] = "Ваше имя";
-App::$strings["Real names are preferred."] = "Предпочтительны реальные имена.";
-App::$strings["Your nickname will be used to create an easy to remember channel address e.g. nickname%s"] = "Ваш псевдоним будет использован для создания легко запоминаемого адреса канала, напр. nickname %s";
-App::$strings["Select a channel permission role for your usage needs and privacy requirements."] = "Выберите разрешения для канала в зависимости от ваших потребностей и требований приватности.";
-App::$strings["no"] = "нет";
-App::$strings["yes"] = "да";
-App::$strings["Registration"] = "Регистрация";
-App::$strings["This site requires email verification. After completing this form, please check your email for further instructions."] = "Этот сайт требует проверку адреса электронной почты. После заполнения этой формы, пожалуйста, проверьте ваш почтовый ящик для дальнейших инструкций.";
-App::$strings["Change Order of Pinned Navbar Apps"] = "Изменить порядок приложений на панели навигации";
-App::$strings["Change Order of App Tray Apps"] = "Изменить порядок приложений в лотке";
-App::$strings["Use arrows to move the corresponding app left (top) or right (bottom) in the navbar"] = "Используйте стрелки для перемещения приложения влево (вверх) или вправо (вниз) в панели навигации";
-App::$strings["Use arrows to move the corresponding app up or down in the app tray"] = "Используйте стрелки для перемещения приложения вверх или вниз в лотке";
-App::$strings["Documentation Search"] = "Поиск документации";
-App::$strings["Members"] = "Участники";
-App::$strings["Administrators"] = "Администраторы";
-App::$strings["Developers"] = "Разработчики";
-App::$strings["Tutorials"] = "Руководства";
-App::$strings["\$Projectname Documentation"] = "\$Projectname Документация";
-App::$strings["Contents"] = "Содержимое";
-App::$strings["No connections."] = "Контактов нет.";
-App::$strings["Visit %s's profile [%s]"] = "Посетить %s ​​профиль [%s]";
-App::$strings["View Connections"] = "Просмотр контактов";
-App::$strings["Website:"] = "Веб-сайт:";
-App::$strings["Remote Channel [%s] (not yet known on this site)"] = "Удалённый канал [%s] (пока неизвестен на этом сайте)";
-App::$strings["Rating (this information is public)"] = "Оценка (эта информация общедоступна)";
-App::$strings["Optionally explain your rating (this information is public)"] = "Объясните свою оценку (необязательно; эта информация общедоступна)";
-App::$strings["Please login."] = "Пожалуйста, войдите.";
-App::$strings["Location not found."] = "Местоположение не найдено";
-App::$strings["Location lookup failed."] = "Поиск местоположения не удался";
-App::$strings["Please select another location to become primary before removing the primary location."] = "Пожалуйста, выберите другое местоположение в качестве основного прежде чем удалить предыдущее";
-App::$strings["Syncing locations"] = "Синхронизировать местоположение";
-App::$strings["No locations found."] = "Местоположений не найдено";
-App::$strings["Manage Channel Locations"] = "Управление местоположением канала";
-App::$strings["Drop"] = "Удалить";
-App::$strings["Sync Now"] = "Синхронизировать";
-App::$strings["Please wait several minutes between consecutive operations."] = "Пожалуйста, подождите несколько минут между последовательными операциями.";
-App::$strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "По возможности, очистите местоположение, войдя на этот веб-сайт / хаб и удалив свой канал.";
-App::$strings["Use this form to drop the location if the hub is no longer operating."] = "Используйте эту форму, чтобы удалить местоположение, если хаб больше не функционирует.";
-App::$strings["Failed to create source. No channel selected."] = "Не удалось создать источник. Канал не выбран.";
-App::$strings["Source created."] = "Источник создан.";
-App::$strings["Source updated."] = "Источник обновлен.";
-App::$strings["Sources App"] = "Приложение \"Источники канала\"";
-App::$strings["Automatically import channel content from other channels or feeds"] = "Автоматический импорт контента из других каналов или лент";
-App::$strings["*"] = "";
-App::$strings["Channel Sources"] = "Источники канала";
-App::$strings["Manage remote sources of content for your channel."] = "Управление удалённым источниками содержимого для вашего канала";
-App::$strings["New Source"] = "Новый источник";
-App::$strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Импортировать всё или выбранное содержимое из следующего канала в этот канал и распределить его в соответствии с вашими настройками.";
-App::$strings["Only import content with these words (one per line)"] = "Импортировать содержимое только с этим текстом (построчно)";
-App::$strings["Leave blank to import all public content"] = "Оставьте пустым для импорта всего общедоступного содержимого";
-App::$strings["Channel Name"] = "Название канала";
-App::$strings["Add the following categories to posts imported from this source (comma separated)"] = "Добавить следующие категории к импортированным публикациям из этого источника (через запятые)";
-App::$strings["Resend posts with this channel as author"] = "Отправить публикации в этот канал повторно как автор";
-App::$strings["Copyrights may apply"] = "Могут применяться авторские права";
-App::$strings["Source not found."] = "Источник не найден.";
-App::$strings["Edit Source"] = "Редактировать источник";
-App::$strings["Delete Source"] = "Удалить источник";
-App::$strings["Source removed"] = "Источник удален";
-App::$strings["Unable to remove source."] = "Невозможно удалить источник.";
-App::$strings["Chatrooms App"] = "Приложение \"Мои чаты\"";
-App::$strings["Access Controlled Chatrooms"] = "Получить доступ к контролируемым чатам";
-App::$strings["Room not found"] = "Комната не найдена";
-App::$strings["Leave Room"] = "Покинуть комнату";
-App::$strings["Delete Room"] = "Удалить комнату";
-App::$strings["I am away right now"] = "Я сейчас отошёл";
-App::$strings["I am online"] = "Я на связи";
-App::$strings["Bookmark this room"] = "Запомнить эту комнату";
-App::$strings["New Chatroom"] = "Новый чат";
-App::$strings["Chatroom name"] = "Название чата";
-App::$strings["Expiration of chats (minutes)"] = "Завершение чатов (минут)";
-App::$strings["%1\$s's Chatrooms"] = "Чаты пользователя %1\$s";
-App::$strings["No chatrooms available"] = "Нет доступных чатов";
-App::$strings["Expiration"] = "Срок действия";
-App::$strings["min"] = "мин.";
-App::$strings["Name and Secret are required"] = "Требуются имя и код";
-App::$strings["OAuth2 Apps Manager App"] = "Приложение \"Менеджер Oauth2\"";
-App::$strings["OAuth2 authenticatication tokens for mobile and remote apps"] = "Аутентификация OAuth2 для мобильных и удаленных приложений";
-App::$strings["Add OAuth2 application"] = "Добавить приложение OAuth2";
-App::$strings["Grant Types"] = "Разрешить типы";
-App::$strings["leave blank unless your application sepcifically requires this"] = "оставьте пустыми до тех пока ваше приложение не требует этого";
-App::$strings["Authorization scope"] = "Область полномочий";
-App::$strings["OAuth2 Application not found."] = "Приложение OAuth2 не найдено.";
-App::$strings["leave blank unless your application specifically requires this"] = "оставьте поле пустым, если ваше приложение не требует этого";
-App::$strings["Connected OAuth2 Apps"] = "Подключённые приложения OAuth2";
-App::$strings["Channel Manager Settings"] = "Настройки менеджера канала";
-App::$strings["CalDAV Settings"] = "Настройки CalDAV";
-App::$strings["Not valid email."] = "Не действительный адрес email.";
-App::$strings["Protected email address. Cannot change to that email."] = "Защищенный адрес электронной почты. Нельзя изменить.";
-App::$strings["System failure storing new email. Please try again."] = "Системная ошибка сохранения email. Пожалуйста попробуйте ещё раз.";
-App::$strings["Password verification failed."] = "Не удалось выполнить проверку пароля.";
-App::$strings["Passwords do not match. Password unchanged."] = "Пароли не совпадают. Пароль не изменён.";
-App::$strings["Empty passwords are not allowed. Password unchanged."] = "Пустые пароли не допускаются. Пароль не изменён.";
-App::$strings["Password changed."] = "Пароль изменен.";
-App::$strings["Password update failed. Please try again."] = "Изменение пароля не удалось. Пожалуйста, попробуйте ещё раз.";
-App::$strings["Account Settings"] = "Настройки аккаунта";
-App::$strings["Current Password"] = "Текущий пароль";
-App::$strings["Enter New Password"] = "Введите новый пароль:";
-App::$strings["Confirm New Password"] = "Подтвердите новый пароль:";
-App::$strings["Leave password fields blank unless changing"] = "Оставьте поля пустыми до измнения";
-App::$strings["Email Address:"] = "Адрес email:";
-App::$strings["Remove Account"] = "Удалить аккаунт";
-App::$strings["Remove this account including all its channels"] = "Удалить этот аккаунт включая все каналы";
-App::$strings["Settings saved."] = "Настройки сохранены.";
-App::$strings["Settings saved. Reload page please."] = "Настройки сохранены. Пожалуйста, перезагрузите страницу.";
-App::$strings["Conversation Settings"] = "Настройки бесед";
-App::$strings["Editor Settings"] = "Настройки редактора";
-App::$strings["%s - (Incompatible)"] = "%s - (несовместимо)";
-App::$strings["%s - (Experimental)"] = "%s - (экспериментальный)";
-App::$strings["Display Settings"] = "Настройки отображения";
-App::$strings["Theme Settings"] = "Настройки темы";
-App::$strings["Custom Theme Settings"] = "Дополнительные настройки темы";
-App::$strings["Content Settings"] = "Настройки содержимого";
-App::$strings["Display Theme:"] = "Тема отображения:";
-App::$strings["Select scheme"] = "Выбрать схему";
-App::$strings["Preload images before rendering the page"] = "Предзагрузка изображений перед обработкой страницы";
-App::$strings["The subjective page load time will be longer but the page will be ready when displayed"] = "Субъективное время загрузки страницы будет длиннее, но страница будет готова при отображении";
-App::$strings["Enable user zoom on mobile devices"] = "Включить масштабирование на мобильных устройствах";
-App::$strings["Update browser every xx seconds"] = "Обновление браузера каждые N секунд";
-App::$strings["Minimum of 10 seconds, no maximum"] = "Минимум 10 секунд, без максимума";
-App::$strings["Maximum number of conversations to load at any time:"] = "Максимальное количество бесед для загрузки одновременно:";
-App::$strings["Maximum of 100 items"] = "Максимум 100 элементов";
-App::$strings["Show emoticons (smilies) as images"] = "Показывать эмотиконы (смайлики) как изображения";
-App::$strings["Provide channel menu in navigation bar"] = "Показывать меню канала в панели навигации";
-App::$strings["Default: channel menu located in app menu"] = "По умолчанию каналы расположены в меню приложения";
-App::$strings["Manual conversation updates"] = "Обновление бесед вручную";
-App::$strings["Default is on, turning this off may increase screen jumping"] = "Включено по умолчанию, выключение может привести к рывкам в отображении";
-App::$strings["Link post titles to source"] = "Ссылки на источник заголовков публикаций";
-App::$strings["New Member Links"] = "Ссылки для новичков";
-App::$strings["Display new member quick links menu"] = "Показать меню быстрых ссылок для новых участников";
-App::$strings["Additional Features"] = "Дополнительные функции";
-App::$strings["Max height of content (in pixels)"] = "Максимальная высота содержимого (в пикселях)";
-App::$strings["Click to expand content exceeding this height"] = "Нажмите чтобы развернуть содержимое превышающее эту высоту";
-App::$strings["Stream Settings"] = "Настройки потока";
-App::$strings["Events Settings"] = "Настройки событий";
-App::$strings["Personal menu to display in your channel pages"] = "Персональное меню для отображения на странице вашего канала";
-App::$strings["Channel Home Settings"] = "Настройки главной страницы канала";
-App::$strings["Directory Settings"] = "Настройки каталога";
-App::$strings["Photos Settings"] = "Настройки фотографий";
-App::$strings["Profiles Settings"] = "Настройки профилей";
-App::$strings["Affinity Slider settings updated."] = "Обновлены настройки слайдера cходства.";
-App::$strings["No feature settings configured"] = "Параметры функций не настроены";
-App::$strings["Default maximum affinity level"] = "Максимальный уровень сходства по умолчанию.";
-App::$strings["0-99 default 99"] = "0-99 (по умолчанию 99)";
-App::$strings["Default minimum affinity level"] = "Минимальный уровень сходства по умолчанию.";
-App::$strings["0-99 - default 0"] = "0-99 (по умолчанию 0)";
-App::$strings["Affinity Slider Settings"] = "Настройки слайдера сходства";
-App::$strings["Addon Settings"] = "Настройки расширений";
-App::$strings["Please save/submit changes to any panel before opening another."] = "Пожалуйста сохраните / отправьте изменения на панели прежде чем открывать другую.";
-App::$strings["Connections Settings"] = "Настройки контактов";
-App::$strings["Nobody except yourself"] = "Никто кроме вас";
-App::$strings["Only those you specifically allow"] = "Только персонально разрешённые";
-App::$strings["Approved connections"] = "Одобренные контакты";
-App::$strings["Any connections"] = "Любые контакты";
-App::$strings["Anybody on this website"] = "Любой на этом сайте";
-App::$strings["Anybody in this network"] = "Любой в этой сети";
-App::$strings["Anybody authenticated"] = "Любой аутентифицированный";
-App::$strings["Anybody on the internet"] = "Любой в интернете";
-App::$strings["Publish your default profile in the network directory"] = "Публиковать ваш профиль по умолчанию в сетевом каталоге";
-App::$strings["Allow us to suggest you as a potential friend to new members?"] = "Разрешить предлагать вас как потенциального друга для новых пользователей?";
-App::$strings["or"] = "или";
-App::$strings["Your channel address is"] = "Адрес вашего канала";
-App::$strings["Your files/photos are accessible via WebDAV at"] = "Ваши файлы / фотографии доступны через WebDAV по";
-App::$strings["Automatic membership approval"] = "Членство одобрено автоматически";
-App::$strings["Channel Settings"] = "Настройки канала";
-App::$strings["Basic Settings"] = "Основные настройки";
-App::$strings["Your Timezone:"] = "Часовой пояс:";
-App::$strings["Default Post Location:"] = "Расположение по умолчанию:";
-App::$strings["Geographical location to display on your posts"] = "Показывать географическое положение в ваших публикациях";
-App::$strings["Use Browser Location:"] = "Определять расположение из браузера";
-App::$strings["Adult Content"] = "Содержимое для взрослых";
-App::$strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Этот канал часто или регулярно публикует содержимое для взрослых. Пожалуйста, помечайте любой такой материал тегом #NSFW";
-App::$strings["Security and Privacy Settings"] = "Безопасность и настройки приватности";
-App::$strings["Your permissions are already configured. Click to view/adjust"] = "Ваши разрешения уже настроены. Нажмите чтобы просмотреть или изменить";
-App::$strings["Hide my online presence"] = "Скрывать моё присутствие онлайн";
-App::$strings["Prevents displaying in your profile that you are online"] = "Предотвращает отображения статуса \"в сети\" в вашем профиле";
-App::$strings["Simple Privacy Settings:"] = "Простые настройки безопасности:";
-App::$strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Полностью открытый - <em>сверхлиберальный (должен использоваться с осторожностью)</em>";
-App::$strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Обычный - <em>открытый по умолчанию, приватность по желанию (как в социальных сетях, но с улучшенными настройками)</em>";
-App::$strings["Private - <em>default private, never open or public</em>"] = "Частный - <em>частный по умочанию, не открытый и не публичный</em>";
-App::$strings["Blocked - <em>default blocked to/from everybody</em>"] = "Закрытый - <em>заблокированный по умолчанию от / для всех</em>";
-App::$strings["Allow others to tag your posts"] = "Разрешить другим отмечать ваши публикации";
-App::$strings["Often used by the community to retro-actively flag inappropriate content"] = "Часто используется сообществом для маркировки неподобающего содержания";
-App::$strings["Channel Permission Limits"] = "Ограничения разрешений канала";
-App::$strings["Expire other channel content after this many days"] = "Храненить содержимое других каналов, дней";
-App::$strings["0 or blank to use the website limit."] = "0 или пусто - использовать настройки сайта.";
-App::$strings["This website expires after %d days."] = "Срок хранения содержимого этого сайта истекает через %d дней";
-App::$strings["This website does not expire imported content."] = "Срок хранения импортированного содержимого этого сайта не ограничен.";
-App::$strings["The website limit takes precedence if lower than your limit."] = "Ограничение сайта имеет приоритет если ниже вашего значения.";
-App::$strings["Maximum Friend Requests/Day:"] = "Запросов в друзья в день:";
-App::$strings["May reduce spam activity"] = "Может ограничить спам активность";
-App::$strings["Default Privacy Group"] = "Группа конфиденциальности по умолчанию";
-App::$strings["(click to open/close)"] = "(нажмите чтобы открыть/закрыть)";
-App::$strings["Use my default audience setting for the type of object published"] = "Использовать настройки аудитории по умолчанию для типа опубликованного объекта";
-App::$strings["Default permissions category"] = "Категория разрешений по умолчанию";
-App::$strings["Maximum private messages per day from unknown people:"] = "Максимально количество сообщений от незнакомых людей, в день:";
-App::$strings["Useful to reduce spamming"] = "Полезно для сокращения количества спама";
-App::$strings["Notification Settings"] = "Настройки уведомлений";
-App::$strings["By default post a status message when:"] = "По умолчанию публиковать новый статус при:";
-App::$strings["accepting a friend request"] = "одобрении запроса в друзья";
-App::$strings["joining a forum/community"] = "вступлении в сообщество / форум";
-App::$strings["making an <em>interesting</em> profile change"] = "<em>интересном</em> изменении профиля";
-App::$strings["Send a notification email when:"] = "Отправить уведомление по email когда:";
-App::$strings["You receive a connection request"] = "вы получили новый запрос контакта";
-App::$strings["Your connections are confirmed"] = "Ваш запрос контакта был одобрен";
-App::$strings["Someone writes on your profile wall"] = "Кто-то написал на стене вашего профиля";
-App::$strings["Someone writes a followup comment"] = "Кто-то пишет комментарий";
-App::$strings["You receive a private message"] = "Вы получили личное сообщение";
-App::$strings["You receive a friend suggestion"] = "Вы получили предложение друзей";
-App::$strings["You are tagged in a post"] = "Вы были отмечены в публикации";
-App::$strings["You are poked/prodded/etc. in a post"] = "Вас толкнули, подтолкнули и т.п. в публикации";
-App::$strings["Someone likes your post/comment"] = "Кому-то нравится ваша публикация / комментарий";
-App::$strings["Show visual notifications including:"] = "Показывать визуальные оповещения включая:";
-App::$strings["Unseen stream activity"] = "Невидимая активность в потоке";
-App::$strings["Unseen channel activity"] = "Невидимая активность в канале";
-App::$strings["Unseen private messages"] = "Невидимые личные сообщения";
-App::$strings["Recommended"] = "Рекомендовано";
-App::$strings["Upcoming events"] = "Грядущие события";
-App::$strings["Events today"] = "События сегодня";
-App::$strings["Upcoming birthdays"] = "Грядущие дни рождения";
-App::$strings["Not available in all themes"] = "Не доступно во всех темах";
-App::$strings["System (personal) notifications"] = "Системные (личные) уведомления";
-App::$strings["System info messages"] = "Сообщения с системной информацией";
-App::$strings["System critical alerts"] = "Критические уведомления системы";
-App::$strings["New connections"] = "Новые контакты";
-App::$strings["System Registrations"] = "Системные регистрации";
-App::$strings["Unseen shared files"] = "Невидимые общие файлы";
-App::$strings["Unseen public stream activity"] = "Невидимая активность в публичном потоке";
-App::$strings["Unseen likes and dislikes"] = "Невидимые лайки и дислайки";
-App::$strings["Unseen forum posts"] = "Невидимые публикации на форуме";
-App::$strings["Email notification hub (hostname)"] = "Центр уведомлений по email (имя хоста)";
-App::$strings["If your channel is mirrored to multiple hubs, set this to your preferred location. This will prevent duplicate email notifications. Example: %s"] = "Если ваш канал зеркалируется в нескольких местах, это ваше предпочтительное местоположение. Это должно предотвратить дублировать уведомлений по email. Например: %s";
-App::$strings["Show new wall posts, private messages and connections under Notices"] = "Показать новые сообщения на стене, личные сообщения и контакты в \"Уведомлениях\"";
-App::$strings["Notify me of events this many days in advance"] = "Уведомлять меня о событиях заранее, дней";
-App::$strings["Must be greater than 0"] = "Должно быть больше 0";
-App::$strings["Advanced Account/Page Type Settings"] = "Дополнительные настройки учётной записи / страницы";
-App::$strings["Change the behaviour of this account for special situations"] = "Изменить поведение этого аккаунта в особых ситуациях";
-App::$strings["Miscellaneous Settings"] = "Дополнительные настройки";
-App::$strings["Default photo upload folder"] = "Каталог загрузки фотографий по умолчанию";
-App::$strings["%Y - current year, %m - current month"] = "%Y - текущий год, %y - текущий месяц";
-App::$strings["Default file upload folder"] = "Каталог загрузки файлов по умолчанию";
-App::$strings["Remove Channel"] = "Удаление канала";
-App::$strings["Remove this channel."] = "Удалить этот канал.";
-App::$strings["This directory server requires an access token"] = "Для доступа к этому серверу каталогов требуется токен";
-App::$strings["Item not found"] = "Элемент не найден";
-App::$strings["Layout Name"] = "Название шаблона";
-App::$strings["Layout Description (Optional)"] = "Описание шаблона (необязательно)";
-App::$strings["Edit Layout"] = "Редактировать шаблон";
-App::$strings["Available Apps"] = "Доступные приложения";
-App::$strings["Installed Apps"] = "Установленные приложения";
-App::$strings["Manage Apps"] = "Управление приложениями";
-App::$strings["Create Custom App"] = "Создать пользовательское приложение";
-App::$strings["Permission Denied."] = "Доступ запрещен.";
-App::$strings["File not found."] = "Файл не найден.";
-App::$strings["Edit file permissions"] = "Редактировать разрешения файла";
-App::$strings["Set/edit permissions"] = "Редактировать разрешения";
-App::$strings["Include all files and sub folders"] = "Включить все файлы и подкаталоги";
-App::$strings["Return to file list"] = "Вернутся к списку файлов";
-App::$strings["Copy/paste this code to attach file to a post"] = "Копировать / вставить этот код для прикрепления файла к публикации";
-App::$strings["Copy/paste this URL to link file from a web page"] = "Копировать / вставить эту URL для ссылки на файл со страницы";
-App::$strings["Share this file"] = "Поделиться этим файлом";
-App::$strings["Show URL to this file"] = "Показать URL этого файла";
-App::$strings["Block Name"] = "Название блока";
-App::$strings["Edit Block"] = "Редактировать блок";
-App::$strings["No service class restrictions found."] = "Ограничений класса обслуживание не найдено.";
-App::$strings["Insufficient permissions. Request redirected to profile page."] = "Недостаточно прав. Запрос перенаправлен на страницу профиля.";
-App::$strings["Channel Export App"] = "Приложение \"Экспорт канала\"";
-App::$strings["Export your channel"] = "Экспортировать ваш канал";
-App::$strings["Export Channel"] = "Экспорт канала";
-App::$strings["Export your basic channel information to a file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new server hub, but does not contain your content."] = "Экспортировать основную информацию из канала в файл. Служит в качестве резервной копии ваших контактов, основных данных и профиля, однако не включает содержимое. Может быть использовано для импорта ваши данных на новый сервер.";
-App::$strings["Export Content"] = "Экспортировать содержимое";
-App::$strings["Export your channel information and recent content to a JSON backup that can be restored or imported to another server hub. This backs up all of your connections, permissions, profile data and several months of posts. This file may be VERY large. Please be patient - it may take several minutes for this download to begin."] = "Экспортировать информацию из вашего канала и его содержимое в резервную копию в формате JSON которая может быть использована для восстановления или импорта на другом сервере. Сохраняет все ваши контакты, разрешения, данные профиля и публикации за несколько месяцев. Файл может иметь очень большой размер. Пожалуйста, будьте терпеливы и подождите несколько минут пока не начнётся загрузка.";
-App::$strings["Export your posts from a given year."] = "Экспортировать ваши публикации за данный год.";
-App::$strings["You may also export your posts and conversations for a particular year or month. Adjust the date in your browser location bar to select other dates. If the export fails (possibly due to memory exhaustion on your server hub), please try again selecting a more limited date range."] = "Вы также можете экспортировать ваши публикации и беседы за определённый месяц или год. Выберите дату в панели местоположения в браузере. Если экспорт будет неудачным (это возможно, например, из-за исчерпания памяти на сервере), повторите попытку, выбрав меньший диапазон дат.";
-App::$strings["To select all posts for a given year, such as this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Для выбора всех публикаций заданного года, например текущего, посетите <a href=\"%1\$s\">%2\$s</a>";
-App::$strings["To select all posts for a given month, such as January of this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Для выбора всех публикаций заданного месяца, например за январь сего года, посетите <a href=\"%1\$s\">%2\$s</a>";
-App::$strings["These content files may be imported or restored by visiting <a href=\"%1\$s\">%2\$s</a> on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Данные файлы с содержимым могут быть импортированы и восстановлены на любом содержащем ваш канал сайте. Посетите <a href=\"%1\$s\">%2\$s</a>. Для лучших результатов пожалуйста производите импорт и восстановление в порядке датировки (старые сначала).";
-App::$strings["Away"] = "Нет на месте";
-App::$strings["Online"] = "В сети";
-App::$strings["Like/Dislike"] = "Нравится / не нравится";
-App::$strings["This action is restricted to members."] = "Это действие доступно только участникам.";
-App::$strings["Please <a href=\"rmagic\">login with your \$Projectname ID</a> or <a href=\"register\">register as a new \$Projectname member</a> to continue."] = "Пожалуйста, для продолжения <a href=\"rmagic\"> войдите с вашим \$Projectname ID</a> или <a href=\"register\">зарегистрируйтесь как новый участник \$Projectname</a>.";
-App::$strings["Invalid request."] = "Неверный запрос.";
-App::$strings["thing"] = "предмет";
-App::$strings["Channel unavailable."] = "Канал недоступен.";
-App::$strings["Previous action reversed."] = "Предыдущее действие отменено.";
-App::$strings["%1\$s agrees with %2\$s's %3\$s"] = "%1\$s согласен с %2\$s %3\$s";
-App::$strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%1\$s не согласен с %2\$s %3\$s";
-App::$strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%1\$s воздерживается от решения по %2\$s%3\$s";
-App::$strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s посещает %2\$s%3\$s";
-App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s не посещает %2\$s%3\$s";
-App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s может посетить %2\$s%3\$s";
-App::$strings["Action completed."] = "Действие завершено.";
-App::$strings["Thank you."] = "Спасибо.";
-App::$strings["Bookmark added"] = "Закладка добавлена";
-App::$strings["Bookmarks App"] = "Приложение \"Закладки\"";
-App::$strings["Bookmark links from posts and manage them"] = "Поместить ссылки из публикации в закладки и управлять ими";
-App::$strings["My Bookmarks"] = "Мои закладки";
-App::$strings["My Connections Bookmarks"] = "Закладки моих контактов";
-App::$strings["Item not available."] = "Элемент недоступен.";
-App::$strings["Remote Diagnostics App"] = "Приложение \"Удалённая диагностика\"";
-App::$strings["Perform diagnostics on remote channels"] = "Производит диагностику удалённых каналов";
-App::$strings["item"] = "пункт";
-App::$strings["Permissions denied."] = "Доступ запрещен.";
App::$strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Удаление канала не разрешается в течении 48 часов после смены пароля у аккаунта.";
App::$strings["Remove This Channel"] = "Удалить этот канал";
+App::$strings["WARNING: "] = "ПРЕДУПРЕЖДЕНИЕ: ";
App::$strings["This channel will be completely removed from the network. "] = "Этот канал будет полностью удалён из сети. ";
App::$strings["This action is permanent and can not be undone!"] = "Это действие необратимо и не может быть отменено!";
+App::$strings["Please enter your password for verification:"] = "Пожалуйста, введите ваш пароль для проверки:";
App::$strings["Remove this channel and all its clones from the network"] = "Удалить этот канал и все его клоны из сети";
App::$strings["By default only the instance of the channel located on this hub will be removed from the network"] = "По умолчанию только представление канала расположенное на данном хабе будет удалено из сети";
-App::$strings["Unable to update menu."] = "Невозможно обновить меню.";
-App::$strings["Unable to create menu."] = "Невозможно создать меню.";
-App::$strings["Menu Name"] = "Название меню";
-App::$strings["Unique name (not visible on webpage) - required"] = "Уникальное название (не видимо на странице) - требуется";
-App::$strings["Menu Title"] = "Заголовок меню";
-App::$strings["Visible on webpage - leave empty for no title"] = "Видимость на странице - оставьте пустым если не хотите иметь заголовок";
-App::$strings["Allow Bookmarks"] = "Разрешить закладки";
-App::$strings["Menu may be used to store saved bookmarks"] = "Меню может использоваться, чтобы сохранить закладки";
-App::$strings["Submit and proceed"] = "Отправить и обработать";
-App::$strings["Created"] = "Создано";
-App::$strings["Edited"] = "Отредактировано";
-App::$strings["New"] = "Новые";
-App::$strings["Bookmarks allowed"] = "Закладки разрешены";
-App::$strings["Delete this menu"] = "Удалить это меню";
-App::$strings["Edit menu contents"] = "Редактировать содержание меню";
-App::$strings["Edit this menu"] = "Редактировать это меню";
-App::$strings["Menu could not be deleted."] = "Меню не может быть удалено.";
-App::$strings["Menu not found."] = "Меню не найдено";
-App::$strings["Edit Menu"] = "Редактировать меню";
-App::$strings["Add or remove entries to this menu"] = "Добавить или удалить пункты этого меню";
-App::$strings["Menu name"] = "Название меню";
-App::$strings["Must be unique, only seen by you"] = "Должно быть уникальным (видно только вам)";
-App::$strings["Menu title"] = "Заголовок меню";
-App::$strings["Menu title as seen by others"] = "Видимый другими заголовок меню";
-App::$strings["Allow bookmarks"] = "Разрешить закладки";
-App::$strings["No ratings"] = "Оценок нет";
-App::$strings["Rating: "] = "Оценкa:";
-App::$strings["Website: "] = "Веб-сайт:";
-App::$strings["Description: "] = "Описание:";
-App::$strings["Public Hubs"] = "Публичные хабы";
-App::$strings["The listed hubs allow public registration for the \$Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself <strong>may</strong> provide additional details."] = "Указанные хабы разрешают публичную регистрацию для сети \$Projectname. Все хабы в сети взаимосвязаны, поэтому членство в любом из них передает членство во всю сеть. Некоторым хабам может потребоваться подписка или предоставление многоуровневых планов обслуживания. Сам хаб <strong>может</strong> предоставить дополнительные сведения.";
-App::$strings["Hub URL"] = "URL сервера";
-App::$strings["Access Type"] = "Тип доступа";
-App::$strings["Registration Policy"] = "Политика регистрации";
-App::$strings["Stats"] = "Статистика";
-App::$strings["Software"] = "Программное обеспечение";
-App::$strings["Rate"] = "Оценка";
+App::$strings["Remove Channel"] = "Удаление канала";
+App::$strings["Files: shared with me"] = "Файлы: поделились со мной";
+App::$strings["NEW"] = "НОВОЕ";
+App::$strings["Size"] = "Размер";
+App::$strings["Last Modified"] = "Последнее изменение";
+App::$strings["Remove all files"] = "Удалить все файлы";
+App::$strings["Remove this file"] = "Удалить этот файл";
App::$strings["\$Projectname Server - Setup"] = "\$Projectname сервер - Установка";
App::$strings["Could not connect to database."] = "Не удалось подключиться к серверу баз данных.";
App::$strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Не удалось подключиться к указанному URL. Вероятно проблема с SSL сертификатом или DNS.";
@@ -1790,6 +371,7 @@ App::$strings["Unable to check command line PHP, as shell_exec() is disabled. Th
App::$strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "В консольной версии PHP в вашей системе отключена опция \"register_argc_argv\".";
App::$strings["This is required for message delivery to work."] = "Это необходимо для функционирования доставки сообщений.";
App::$strings["PHP register_argc_argv"] = "";
+App::$strings["This is not sufficient to upload larger images or files. You should be able to upload at least 4 MB at once."] = "Этого недостаточно для загрузки больших изображений или файлов. Вы должны иметь возможность загрузить как минимум 4 Мб за раз.";
App::$strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "Максимально разрешённый общий размер загрузок установлен в %s. Максимальный размер одной загрузки установлен в %s. Вам разрешено загружать до %d файлов за один приём.";
App::$strings["You can adjust these settings in the server php.ini file."] = "Вы можете изменить эти настройки в файле php.ini на сервере.";
App::$strings["PHP upload limits"] = "Максимальный размер загрузки в PHP";
@@ -1828,50 +410,83 @@ 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."] = "Вам понадобится [вручную] настроить запланированную задачу для опрашивателя.";
-App::$strings["Unable to create element."] = "Невозможно создать элемент.";
-App::$strings["Unable to update menu element."] = "Невозможно обновить элемент меню.";
-App::$strings["Unable to add menu element."] = "Невозможно добавить элемент меню.";
-App::$strings["Menu Item Permissions"] = "Разрешения на пункт меню";
-App::$strings["Link Name"] = "Имя ссылки";
-App::$strings["Link or Submenu Target"] = "Ссылка или цель подменю";
-App::$strings["Enter URL of the link or select a menu name to create a submenu"] = "Введите URL ссылки или выберите имя меню для создания подменю";
-App::$strings["Use magic-auth if available"] = "Использовать magic-auth если возможно";
-App::$strings["Open link in new window"] = "Открыть ссылку в новом окне";
-App::$strings["Order in list"] = "Порядок в списке";
-App::$strings["Higher numbers will sink to bottom of listing"] = "Большие значения в конце списка";
-App::$strings["Submit and finish"] = "Отправить и завершить";
-App::$strings["Submit and continue"] = "Отправить и продолжить";
-App::$strings["Menu:"] = "Меню:";
-App::$strings["Link Target"] = "Цель ссылки";
-App::$strings["Edit menu"] = "Редактировать меню";
-App::$strings["Edit element"] = "Редактировать элемент";
-App::$strings["Drop element"] = "Удалить элемент";
-App::$strings["New element"] = "Новый элемент";
-App::$strings["Edit this menu container"] = "Редактировать контейнер меню";
-App::$strings["Add menu element"] = "Добавить элемент меню";
-App::$strings["Delete this menu item"] = "Удалить этот элемент меню";
-App::$strings["Edit this menu item"] = "Редактировать этот элемент меню";
-App::$strings["Menu item not found."] = "Элемент меню не найден.";
-App::$strings["Menu item deleted."] = "Элемент меню удалён.";
-App::$strings["Menu item could not be deleted."] = "Невозможно удалить элемент меню.";
-App::$strings["Edit Menu Element"] = "Редактировать элемент меню";
-App::$strings["Link text"] = "Текст ссылки";
+App::$strings["Continue"] = "Продолжить";
+App::$strings["Premium Channel App"] = "Приложение \"Премиальный канал\"";
+App::$strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Позволяет установить ограничения и условия для подключающихся к вашему каналу";
+App::$strings["Premium Channel Setup"] = "Установка премиального канала";
+App::$strings["Enable premium channel connection restrictions"] = "Включить ограничения для премиального канала";
+App::$strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Пожалуйста введите ваши ограничения или условия, такие, как оплата PayPal, правила использования и т.п.";
+App::$strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Этот канал до подключения может требовать дополнительных шагов или подтверждений следующих условий:";
+App::$strings["Potential connections will then see the following text before proceeding:"] = "Потенциальные соединения будут видеть следующий предварительный текст:";
+App::$strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Продолжая, я подтверждаю что я выполнил все условия представленные на данной странице.";
+App::$strings["(No specific instructions have been provided by the channel owner.)"] = "(Владельцем канала не было представлено никаких специальных инструкций.)";
+App::$strings["Restricted or Premium Channel"] = "Ограниченный или премиальный канал";
+App::$strings["Queue Statistics"] = "Статистика очереди";
+App::$strings["Total Entries"] = "Всего записей";
+App::$strings["Priority"] = "Приоритет";
+App::$strings["Destination URL"] = "Конечный URL-адрес";
+App::$strings["Mark hub permanently offline"] = "Пометить хаб как постоянно отключенный";
+App::$strings["Empty queue for this hub"] = "Освободить очередь для этого хаба";
+App::$strings["Last known contact"] = "Последний известный контакт";
+App::$strings["Off"] = "Выкл.";
+App::$strings["On"] = "Вкл.";
App::$strings["Lock feature %s"] = "Заблокировать функцию \"%s\"";
App::$strings["Manage Additional Features"] = "Управление дополнительными функциями";
+App::$strings["Update has been marked successful"] = "Обновление было помечено как успешное";
+App::$strings["Executing %s failed. Check system logs."] = "Выполнение %s неудачно. Проверьте системный журнал.";
+App::$strings["Update %s was successfully applied."] = "Обновление %sбыло успешно применено.";
+App::$strings["Update %s did not return a status. Unknown if it succeeded."] = "Обновление %s не вернуло статус. Неизвестно было ли оно успешным.";
+App::$strings["Update function %s could not be found."] = "Функция обновления %sне может быть найдена.";
+App::$strings["Failed Updates"] = "Обновления с ошибками";
+App::$strings["Mark success (if update was manually applied)"] = "Пометить успешным (если обновление было применено вручную)";
+App::$strings["Attempt to execute this update step automatically"] = "Попытаться применить это обновление автоматически";
+App::$strings["No failed updates."] = "Ошибок обновлений нет.";
+App::$strings["%s account blocked/unblocked"] = array(
+ 0 => "%s аккаунт блокирован/разблокирован",
+ 1 => "%s аккаунта блокированы/разблокированы",
+ 2 => "%s аккаунтов блокированы/разблокированы",
+);
+App::$strings["%s account deleted"] = array(
+ 0 => "%s аккаунт удалён",
+ 1 => "%s аккаунта удалёны",
+ 2 => "%s аккаунтов удалёны",
+);
+App::$strings["Account not found"] = "Аккаунт не найден";
+App::$strings["Account '%s' deleted"] = "Аккаунт '%s' удален";
+App::$strings["Account '%s' blocked"] = "Аккаунт '%s' заблокирован";
+App::$strings["Account '%s' unblocked"] = "Аккаунт '%s' разблокирован";
+App::$strings["Administration"] = "Администрирование";
+App::$strings["Accounts"] = "Учётные записи";
+App::$strings["select all"] = "выбрать все";
+App::$strings["Registrations waiting for confirm"] = "Регистрации ждут подтверждения";
+App::$strings["Request date"] = "Дата запроса";
+App::$strings["No registrations."] = "Нет новых регистраций.";
+App::$strings["Approve"] = "Утвердить";
+App::$strings["Deny"] = "Запретить";
+App::$strings["Block"] = "Блокировать";
+App::$strings["Unblock"] = "Разблокировать";
+App::$strings["ID"] = "";
+App::$strings["All Channels"] = "Все каналы";
+App::$strings["Register date"] = "Дата регистрации";
+App::$strings["Last login"] = "Последний вход";
+App::$strings["Expires"] = "Срок действия";
+App::$strings["Service Class"] = "Класс обслуживания";
+App::$strings["Selected accounts will be deleted!\\n\\nEverything these accounts had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Выбранные учётные записи будут удалены!\n\nВсё что было ими опубликовано на этом сайте будет удалено навсегда!\n\nВы уверены?";
+App::$strings["The account {0} will be deleted!\\n\\nEverything this account has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Этот аккаунт {0} будет удалён!\n\nВсё что им было опубликовано на этом сайте будет удалено навсегда!\n\nВы уверены?";
App::$strings["Log settings updated."] = "Настройки журнала обновлены.";
App::$strings["Logs"] = "Журналы";
App::$strings["Clear"] = "Очистить";
@@ -1900,66 +515,31 @@ App::$strings["Channel '%s' censored"] = "Канал '%s' цензурирует
App::$strings["Channel '%s' uncensored"] = "Канал '%s' нецензурируется";
App::$strings["Channel '%s' code allowed"] = "Код в канале '%s' разрешён";
App::$strings["Channel '%s' code disallowed"] = "Код в канале '%s' запрещён";
-App::$strings["select all"] = "выбрать все";
+App::$strings["Channels"] = "Каналы";
App::$strings["Censor"] = "Цензурировать";
App::$strings["Uncensor"] = "Нецензурировать";
App::$strings["Allow Code"] = "Разрешить код";
App::$strings["Disallow Code"] = "Запретить код";
+App::$strings["Channel"] = "Канал";
App::$strings["UID"] = "";
App::$strings["Selected channels will be deleted!\\n\\nEverything that was posted in these channels on this site will be permanently deleted!\\n\\nAre you sure?"] = "Этот аккаунт {0} будет удалён!\n\nВсё что им было опубликовано на этом сайте будет удалено навсегда!\n\nВы уверены?";
App::$strings["The channel {0} will be deleted!\\n\\nEverything that was posted in this channel on this site will be permanently deleted!\\n\\nAre you sure?"] = "Канал {0} будет удалён!\n\nВсё что было опубликовано в этом канале на этом сайте будет удалено навсегда!\n\nВы уверены?";
-App::$strings["By default, unfiltered HTML is allowed in embedded media. This is inherently insecure."] = "По умолчанию, HTML без фильтрации доступен во встраиваемых медиа. Это небезопасно.";
-App::$strings["The recommended setting is to only allow unfiltered HTML from the following sites:"] = "Рекомендуется настроить разрешения использовать HTML без фильтрации только для следующих сайтов:";
-App::$strings["https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/<br />https://vimeo.com/<br />https://soundcloud.com/<br />"] = "";
-App::$strings["All other embedded content will be filtered, <strong>unless</strong> embedded content from that site is explicitly blocked."] = "се остальные встроенные материалы будут отфильтрованы, <strong>если </strong> встроенное содержимое с этого сайта явно заблокировано.";
-App::$strings["Security"] = "Безопасность";
-App::$strings["Block public"] = "Блокировать публичный доступ";
-App::$strings["Check to block public access to all otherwise public personal pages on this site unless you are currently authenticated."] = "Установите флажок для блокировки публичного доступа ко всем другим общедоступным страницам на этом сайте, если вы в настоящее время не аутентифицированы.";
-App::$strings["Provide a cloud root directory"] = "Предоставить корневой каталог в облаке";
-App::$strings["The cloud root directory lists all channel names which provide public files"] = "В корневом каталоге облака показываются все имена каналов, которые предоставляют общедоступные файлы";
-App::$strings["Show total disk space available to cloud uploads"] = "Показывать общее доступное для загрузок место в хранилище";
-App::$strings["Set \"Transport Security\" HTTP header"] = "Установить HTTP-заголовок \"Transport Security\"";
-App::$strings["Set \"Content Security Policy\" HTTP header"] = "Установить HTTP-заголовок \"Content Security Policy\"";
-App::$strings["Allowed email domains"] = "Разрешённые домены email";
-App::$strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Список разделённых запятыми доменов для которых разрешена регистрация на этом сайте. Wildcards разрешены. Если пусто то разрешены любые домены.";
-App::$strings["Not allowed email domains"] = "Запрещённые домены email";
-App::$strings["Comma separated list of domains which are not allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains, unless allowed domains have been defined."] = "Список разделённых запятыми доменов для которых запрещена регистрация на этом сайте. Wildcards разрешены. Если пусто то разрешены любые домены до тех пор, пока разрешённые домены не будут указаны.";
-App::$strings["Allow communications only from these sites"] = "Разрешить связь только с этими сайтами";
-App::$strings["One site per line. Leave empty to allow communication from anywhere by default"] = "Один сайт на строку. Оставьте пустым для разрешения взаимодействия без ограничений (по умочанию).";
-App::$strings["Block communications from these sites"] = "Блокировать связь с этими сайтами";
-App::$strings["Allow communications only from these channels"] = "Разрешить связь только для этих каналов";
-App::$strings["One channel (hash) per line. Leave empty to allow from any channel by default"] = "Один канал (или его хэш) на строку. Оставьте пустым для разрешения взаимодействия с любым каналом (по умолчанию).";
-App::$strings["Block communications from these channels"] = "Блокировать связь с этими каналами";
-App::$strings["Only allow embeds from secure (SSL) websites and links."] = "Разрешать встраивание только для безопасных (SSL/TLS) сайтов и ссылок.";
-App::$strings["Allow unfiltered embedded HTML content only from these domains"] = "Разрешить встраивать нефильтруемое HTML-содержимое только для этих доменов";
-App::$strings["One site per line. By default embedded content is filtered."] = "Один сайт на строку. По умолчанию встраиваемое содержимое фильтруется.";
-App::$strings["Block embedded HTML from these domains"] = "Блокировать встраивание HTML-содержимого для этих доменов";
-App::$strings["Plugin %s disabled."] = "Плагин %s отключен.";
-App::$strings["Plugin %s enabled."] = "Плагин %s включен.";
+App::$strings["Theme settings updated."] = "Настройки темы обновленны.";
+App::$strings["No themes found."] = "Темы не найдены.";
+App::$strings["Item not found."] = "Элемент не найден.";
App::$strings["Disable"] = "Запретить";
App::$strings["Enable"] = "Разрешить";
-App::$strings["Addons"] = "Расширения";
+App::$strings["Screenshot"] = "Снимок экрана";
+App::$strings["Themes"] = "Темы";
App::$strings["Toggle"] = "Переключить";
+App::$strings["Settings"] = "Настройки";
App::$strings["Author: "] = "Автор: ";
App::$strings["Maintainer: "] = "Сопровождающий:";
-App::$strings["Minimum project version: "] = "Минимальная версия проекта: ";
-App::$strings["Maximum project version: "] = "Максимальная версия проекта: ";
-App::$strings["Minimum PHP version: "] = "Минимальная версия PHP: ";
-App::$strings["Compatible Server Roles: "] = "Совместимые роли сервера: ";
-App::$strings["Requires: "] = "Необходимо:";
-App::$strings["Disabled - version incompatibility"] = "Отключено - несовместимость версий";
-App::$strings["Enter the public git repository URL of the addon repo."] = "Введите URL публичного репозитория расширений git";
-App::$strings["Addon repo git URL"] = "URL репозитория расширений git";
-App::$strings["Custom repo name"] = "Пользовательское имя репозитория";
-App::$strings["(optional)"] = "(необязательно)";
-App::$strings["Download Addon Repo"] = "Загрузить репозиторий расширений";
-App::$strings["Install new repo"] = "Установить новый репозиторий";
-App::$strings["Install"] = "Установить";
-App::$strings["Manage Repos"] = "Управление репозиториями";
-App::$strings["Installed Addon Repositories"] = "Установленные репозитории расширений";
-App::$strings["Install a New Addon Repository"] = "Установить новый репозиторий расширений";
-App::$strings["Switch branch"] = "Переключить ветку";
+App::$strings["[Experimental]"] = "[экспериментальный]";
+App::$strings["[Unsupported]"] = "[неподдерживаемый]";
App::$strings["Site settings updated."] = "Настройки сайта обновлены.";
+App::$strings["Default"] = "По умолчанию";
+App::$strings["%s - (Incompatible)"] = "%s - (несовместимо)";
App::$strings["mobile"] = "мобильный";
App::$strings["experimental"] = "экспериментальный";
App::$strings["unsupported"] = "неподдерживаемый";
@@ -1971,8 +551,10 @@ App::$strings["My site offers free accounts with optional paid upgrades"] = "Н
App::$strings["Default permission role for new accounts"] = "Разрешения по умолчанию для новых аккаунтов";
App::$strings["This role will be used for the first channel created after registration."] = "Эта роль будет использоваться для первого канала, созданного после регистрации.";
App::$strings["Site"] = "Сайт";
+App::$strings["Registration"] = "Регистрация";
App::$strings["File upload"] = "Загрузка файла";
App::$strings["Policies"] = "Правила";
+App::$strings["Advanced"] = "Дополнительно";
App::$strings["Site name"] = "Название сайта";
App::$strings["Banner/Logo"] = "Баннер / логотип";
App::$strings["Unfiltered HTML/CSS/JS is allowed"] = "Разрешён нефильтруемый HTML/CSS/JS";
@@ -2053,6 +635,27 @@ App::$strings["Page to display after creating a new channel"] = "Страниц
App::$strings["Default: profiles"] = "По умолчанию: profiles";
App::$strings["Optional: site location"] = "Необязательно: место размещения сайта";
App::$strings["Region or country"] = "Регион или страна";
+App::$strings["Plugin %s disabled."] = "Плагин %s отключен.";
+App::$strings["Plugin %s enabled."] = "Плагин %s включен.";
+App::$strings["Addons"] = "Расширения";
+App::$strings["Minimum project version: "] = "Минимальная версия проекта: ";
+App::$strings["Maximum project version: "] = "Максимальная версия проекта: ";
+App::$strings["Minimum PHP version: "] = "Минимальная версия PHP: ";
+App::$strings["Compatible Server Roles: "] = "Совместимые роли сервера: ";
+App::$strings["Requires: "] = "Необходимо:";
+App::$strings["Disabled - version incompatibility"] = "Отключено - несовместимость версий";
+App::$strings["Enter the public git repository URL of the addon repo."] = "Введите URL публичного репозитория расширений git";
+App::$strings["Addon repo git URL"] = "URL репозитория расширений git";
+App::$strings["Custom repo name"] = "Пользовательское имя репозитория";
+App::$strings["(optional)"] = "(необязательно)";
+App::$strings["Download Addon Repo"] = "Загрузить репозиторий расширений";
+App::$strings["Install new repo"] = "Установить новый репозиторий";
+App::$strings["Install"] = "Установить";
+App::$strings["Manage Repos"] = "Управление репозиториями";
+App::$strings["Installed Addon Repositories"] = "Установленные репозитории расширений";
+App::$strings["Install a New Addon Repository"] = "Установить новый репозиторий расширений";
+App::$strings["Switch branch"] = "Переключить ветку";
+App::$strings["Remove"] = "Удалить";
App::$strings["New Profile Field"] = "Поле нового профиля";
App::$strings["Field nickname"] = "Псевдоним поля";
App::$strings["System name of field"] = "Системное имя поля";
@@ -2061,6 +664,7 @@ App::$strings["Field Name"] = "Имя поля";
App::$strings["Label on profile pages"] = "Метка на странице профиля";
App::$strings["Help text"] = "Текст подсказки";
App::$strings["Additional info (optional)"] = "Дополнительная информация (необязательно)";
+App::$strings["Save"] = "Запомнить";
App::$strings["Field definition not found"] = "Определения поля не найдено";
App::$strings["Edit Profile Field"] = "Редактировать поле профиля";
App::$strings["Profile Fields"] = "Поля профиля";
@@ -2070,54 +674,6 @@ App::$strings["(In addition to basic fields)"] = "(к основым полям)
App::$strings["All available fields"] = "Все доступные поля";
App::$strings["Custom Fields"] = "Настраиваемые поля";
App::$strings["Create Custom Field"] = "Создать настраиваемое поле";
-App::$strings["Queue Statistics"] = "Статистика очереди";
-App::$strings["Total Entries"] = "Всего записей";
-App::$strings["Priority"] = "Приоритет";
-App::$strings["Destination URL"] = "Конечный URL-адрес";
-App::$strings["Mark hub permanently offline"] = "Пометить хаб как постоянно отключенный";
-App::$strings["Empty queue for this hub"] = "Освободить очередь для этого хаба";
-App::$strings["Last known contact"] = "Последний известный контакт";
-App::$strings["Theme settings updated."] = "Настройки темы обновленны.";
-App::$strings["No themes found."] = "Темы не найдены.";
-App::$strings["Screenshot"] = "Снимок экрана";
-App::$strings["Themes"] = "Темы";
-App::$strings["[Experimental]"] = "[экспериментальный]";
-App::$strings["[Unsupported]"] = "[неподдерживаемый]";
-App::$strings["%s account blocked/unblocked"] = array(
- 0 => "%s аккаунт блокирован/разблокирован",
- 1 => "%s аккаунта блокированы/разблокированы",
- 2 => "%s аккаунтов блокированы/разблокированы",
-);
-App::$strings["%s account deleted"] = array(
- 0 => "%s аккаунт удалён",
- 1 => "%s аккаунта удалёны",
- 2 => "%s аккаунтов удалёны",
-);
-App::$strings["Account not found"] = "Аккаунт не найден";
-App::$strings["Account '%s' blocked"] = "Аккаунт '%s' заблокирован";
-App::$strings["Account '%s' unblocked"] = "Аккаунт '%s' разблокирован";
-App::$strings["Registrations waiting for confirm"] = "Регистрации ждут подтверждения";
-App::$strings["Request date"] = "Дата запроса";
-App::$strings["No registrations."] = "Нет новых регистраций.";
-App::$strings["Block"] = "Блокировать";
-App::$strings["Unblock"] = "Разблокировать";
-App::$strings["ID"] = "";
-App::$strings["All Channels"] = "Все каналы";
-App::$strings["Register date"] = "Дата регистрации";
-App::$strings["Last login"] = "Последний вход";
-App::$strings["Expires"] = "Срок действия";
-App::$strings["Service Class"] = "Класс обслуживания";
-App::$strings["Selected accounts will be deleted!\\n\\nEverything these accounts had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Выбранные учётные записи будут удалены!\n\nВсё что было ими опубликовано на этом сайте будет удалено навсегда!\n\nВы уверены?";
-App::$strings["The account {0} will be deleted!\\n\\nEverything this account has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Этот аккаунт {0} будет удалён!\n\nВсё что им было опубликовано на этом сайте будет удалено навсегда!\n\nВы уверены?";
-App::$strings["Update has been marked successful"] = "Обновление было помечено как успешное";
-App::$strings["Executing %s failed. Check system logs."] = "Выполнение %s неудачно. Проверьте системный журнал.";
-App::$strings["Update %s was successfully applied."] = "Обновление %sбыло успешно применено.";
-App::$strings["Update %s did not return a status. Unknown if it succeeded."] = "Обновление %s не вернуло статус. Неизвестно было ли оно успешным.";
-App::$strings["Update function %s could not be found."] = "Функция обновления %sне может быть найдена.";
-App::$strings["Failed Updates"] = "Обновления с ошибками";
-App::$strings["Mark success (if update was manually applied)"] = "Пометить успешным (если обновление было применено вручную)";
-App::$strings["Attempt to execute this update step automatically"] = "Попытаться применить это обновление автоматически";
-App::$strings["No failed updates."] = "Ошибок обновлений нет.";
App::$strings["Password changed for account %d."] = "Пароль для аккаунта %d изменён.";
App::$strings["Account settings updated."] = "Настройки аккаунта обновлены.";
App::$strings["Account not found."] = "Учётная запись не найдена.";
@@ -2126,6 +682,193 @@ App::$strings["New Password"] = "Новый пароль";
App::$strings["New Password again"] = "Повторите новый пароль";
App::$strings["Account language (for emails)"] = "Язык сообщения для email";
App::$strings["Service class"] = "Класс обслуживания";
+App::$strings["By default, unfiltered HTML is allowed in embedded media. This is inherently insecure."] = "По умолчанию, HTML без фильтрации доступен во встраиваемых медиа. Это небезопасно.";
+App::$strings["The recommended setting is to only allow unfiltered HTML from the following sites:"] = "Рекомендуется настроить разрешения использовать HTML без фильтрации только для следующих сайтов:";
+App::$strings["https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/<br />https://vimeo.com/<br />https://soundcloud.com/<br />"] = "";
+App::$strings["All other embedded content will be filtered, <strong>unless</strong> embedded content from that site is explicitly blocked."] = "се остальные встроенные материалы будут отфильтрованы, <strong>если </strong> встроенное содержимое с этого сайта явно заблокировано.";
+App::$strings["Security"] = "Безопасность";
+App::$strings["Block public"] = "Блокировать публичный доступ";
+App::$strings["Check to block public access to all otherwise public personal pages on this site unless you are currently authenticated."] = "Установите флажок для блокировки публичного доступа ко всем другим общедоступным страницам на этом сайте, если вы в настоящее время не аутентифицированы.";
+App::$strings["Provide a cloud root directory"] = "Предоставить корневой каталог в облаке";
+App::$strings["The cloud root directory lists all channel names which provide public files"] = "В корневом каталоге облака показываются все имена каналов, которые предоставляют общедоступные файлы";
+App::$strings["Show total disk space available to cloud uploads"] = "Показывать общее доступное для загрузок место в хранилище";
+App::$strings["Set \"Transport Security\" HTTP header"] = "Установить HTTP-заголовок \"Transport Security\"";
+App::$strings["Set \"Content Security Policy\" HTTP header"] = "Установить HTTP-заголовок \"Content Security Policy\"";
+App::$strings["Allowed email domains"] = "Разрешённые домены email";
+App::$strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Список разделённых запятыми доменов для которых разрешена регистрация на этом сайте. Wildcards разрешены. Если пусто то разрешены любые домены.";
+App::$strings["Not allowed email domains"] = "Запрещённые домены email";
+App::$strings["Comma separated list of domains which are not allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains, unless allowed domains have been defined."] = "Список разделённых запятыми доменов для которых запрещена регистрация на этом сайте. Wildcards разрешены. Если пусто то разрешены любые домены до тех пор, пока разрешённые домены не будут указаны.";
+App::$strings["Allow communications only from these sites"] = "Разрешить связь только с этими сайтами";
+App::$strings["One site per line. Leave empty to allow communication from anywhere by default"] = "Один сайт на строку. Оставьте пустым для разрешения взаимодействия без ограничений (по умочанию).";
+App::$strings["Block communications from these sites"] = "Блокировать связь с этими сайтами";
+App::$strings["Allow communications only from these channels"] = "Разрешить связь только для этих каналов";
+App::$strings["One channel (hash) per line. Leave empty to allow from any channel by default"] = "Один канал (или его хэш) на строку. Оставьте пустым для разрешения взаимодействия с любым каналом (по умолчанию).";
+App::$strings["Block communications from these channels"] = "Блокировать связь с этими каналами";
+App::$strings["Only allow embeds from secure (SSL) websites and links."] = "Разрешать встраивание только для безопасных (SSL/TLS) сайтов и ссылок.";
+App::$strings["Allow unfiltered embedded HTML content only from these domains"] = "Разрешить встраивать нефильтруемое HTML-содержимое только для этих доменов";
+App::$strings["One site per line. By default embedded content is filtered."] = "Один сайт на строку. По умолчанию встраиваемое содержимое фильтруется.";
+App::$strings["Block embedded HTML from these domains"] = "Блокировать встраивание HTML-содержимого для этих доменов";
+App::$strings["Remote privacy information not available."] = "Удаленная информация о конфиденциальности недоступна.";
+App::$strings["Visible to:"] = "Видимо для:";
+App::$strings["__ctx:acl__ Profile"] = "Профиль";
+App::$strings["Comment approved"] = "Комментарий одобрен";
+App::$strings["Comment deleted"] = "Комментарий удалён";
+App::$strings["Friends"] = "Друзья";
+App::$strings["Settings updated."] = "Настройки обновлены.";
+App::$strings["Nobody except yourself"] = "Никто кроме вас";
+App::$strings["Only those you specifically allow"] = "Только персонально разрешённые";
+App::$strings["Approved connections"] = "Одобренные контакты";
+App::$strings["Any connections"] = "Любые контакты";
+App::$strings["Anybody on this website"] = "Любой на этом сайте";
+App::$strings["Anybody in this network"] = "Любой в этой сети";
+App::$strings["Anybody authenticated"] = "Любой аутентифицированный";
+App::$strings["Anybody on the internet"] = "Любой в интернете";
+App::$strings["Publish your default profile in the network directory"] = "Публиковать ваш профиль по умолчанию в сетевом каталоге";
+App::$strings["Allow us to suggest you as a potential friend to new members?"] = "Разрешить предлагать вас как потенциального друга для новых пользователей?";
+App::$strings["or"] = "или";
+App::$strings["Your channel address is"] = "Адрес вашего канала";
+App::$strings["Your files/photos are accessible via WebDAV at"] = "Ваши файлы / фотографии доступны через WebDAV по";
+App::$strings["Automatic membership approval"] = "Членство одобрено автоматически";
+App::$strings["If enabled, connection requests will be approved without your interaction"] = "Если включено, запросы контактов будут одобрены без вашего участия";
+App::$strings["Channel Settings"] = "Настройки канала";
+App::$strings["Basic Settings"] = "Основные настройки";
+App::$strings["Full Name:"] = "Полное имя:";
+App::$strings["Email Address:"] = "Адрес email:";
+App::$strings["Your Timezone:"] = "Часовой пояс:";
+App::$strings["Default Post Location:"] = "Расположение по умолчанию:";
+App::$strings["Geographical location to display on your posts"] = "Показывать географическое положение в ваших публикациях";
+App::$strings["Use Browser Location:"] = "Определять расположение из браузера";
+App::$strings["Adult Content"] = "Содержимое для взрослых";
+App::$strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Этот канал часто или регулярно публикует содержимое для взрослых. Пожалуйста, помечайте любой такой материал тегом #NSFW";
+App::$strings["Security and Privacy Settings"] = "Безопасность и настройки приватности";
+App::$strings["Your permissions are already configured. Click to view/adjust"] = "Ваши разрешения уже настроены. Нажмите чтобы просмотреть или изменить";
+App::$strings["Hide my online presence"] = "Скрывать моё присутствие онлайн";
+App::$strings["Prevents displaying in your profile that you are online"] = "Предотвращает отображения статуса \"в сети\" в вашем профиле";
+App::$strings["Simple Privacy Settings:"] = "Простые настройки безопасности:";
+App::$strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Полностью открытый - <em>сверхлиберальный (должен использоваться с осторожностью)</em>";
+App::$strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Обычный - <em>открытый по умолчанию, приватность по желанию (как в социальных сетях, но с улучшенными настройками)</em>";
+App::$strings["Private - <em>default private, never open or public</em>"] = "Частный - <em>частный по умочанию, не открытый и не публичный</em>";
+App::$strings["Blocked - <em>default blocked to/from everybody</em>"] = "Закрытый - <em>заблокированный по умолчанию от / для всех</em>";
+App::$strings["Allow others to tag your posts"] = "Разрешить другим отмечать ваши публикации";
+App::$strings["Often used by the community to retro-actively flag inappropriate content"] = "Часто используется сообществом для маркировки неподобающего содержания";
+App::$strings["Channel Permission Limits"] = "Ограничения разрешений канала";
+App::$strings["Expire other channel content after this many days"] = "Храненить содержимое других каналов, дней";
+App::$strings["0 or blank to use the website limit."] = "0 или пусто - использовать настройки сайта.";
+App::$strings["This website expires after %d days."] = "Срок хранения содержимого этого сайта истекает через %d дней";
+App::$strings["This website does not expire imported content."] = "Срок хранения импортированного содержимого этого сайта не ограничен.";
+App::$strings["The website limit takes precedence if lower than your limit."] = "Ограничение сайта имеет приоритет если ниже вашего значения.";
+App::$strings["Maximum Friend Requests/Day:"] = "Запросов в друзья в день:";
+App::$strings["May reduce spam activity"] = "Может ограничить спам активность";
+App::$strings["Default Privacy Group"] = "Группа конфиденциальности по умолчанию";
+App::$strings["Use my default audience setting for the type of object published"] = "Использовать настройки аудитории по умолчанию для типа опубликованного объекта";
+App::$strings["Default permissions category"] = "Категория разрешений по умолчанию";
+App::$strings["Maximum private messages per day from unknown people:"] = "Максимально количество сообщений от незнакомых людей, в день:";
+App::$strings["Useful to reduce spamming"] = "Полезно для сокращения количества спама";
+App::$strings["Notification Settings"] = "Настройки уведомлений";
+App::$strings["By default post a status message when:"] = "По умолчанию публиковать новый статус при:";
+App::$strings["accepting a friend request"] = "одобрении запроса в друзья";
+App::$strings["joining a forum/community"] = "вступлении в сообщество / форум";
+App::$strings["making an <em>interesting</em> profile change"] = "<em>интересном</em> изменении профиля";
+App::$strings["Send a notification email when:"] = "Отправить уведомление по email когда:";
+App::$strings["You receive a connection request"] = "вы получили новый запрос контакта";
+App::$strings["Your connections are confirmed"] = "Ваш запрос контакта был одобрен";
+App::$strings["Someone writes on your profile wall"] = "Кто-то написал на стене вашего профиля";
+App::$strings["Someone writes a followup comment"] = "Кто-то пишет комментарий";
+App::$strings["You receive a private message"] = "Вы получили личное сообщение";
+App::$strings["You receive a friend suggestion"] = "Вы получили предложение друзей";
+App::$strings["You are tagged in a post"] = "Вы были отмечены в публикации";
+App::$strings["You are poked/prodded/etc. in a post"] = "Вас толкнули, подтолкнули и т.п. в публикации";
+App::$strings["Someone likes your post/comment"] = "Кому-то нравится ваша публикация / комментарий";
+App::$strings["Show visual notifications including:"] = "Показывать визуальные оповещения включая:";
+App::$strings["Unseen stream activity"] = "Невидимая активность в потоке";
+App::$strings["Unseen channel activity"] = "Невидимая активность в канале";
+App::$strings["Unseen private messages"] = "Невидимые личные сообщения";
+App::$strings["Recommended"] = "Рекомендовано";
+App::$strings["Upcoming events"] = "Грядущие события";
+App::$strings["Events today"] = "События сегодня";
+App::$strings["Upcoming birthdays"] = "Грядущие дни рождения";
+App::$strings["Not available in all themes"] = "Не доступно во всех темах";
+App::$strings["System (personal) notifications"] = "Системные (личные) уведомления";
+App::$strings["System info messages"] = "Сообщения с системной информацией";
+App::$strings["System critical alerts"] = "Критические уведомления системы";
+App::$strings["New connections"] = "Новые контакты";
+App::$strings["System Registrations"] = "Системные регистрации";
+App::$strings["Unseen shared files"] = "Невидимые общие файлы";
+App::$strings["Unseen public stream activity"] = "Невидимая активность в публичном потоке";
+App::$strings["Unseen likes and dislikes"] = "Невидимые лайки и дислайки";
+App::$strings["Unseen forum posts"] = "Невидимые публикации на форуме";
+App::$strings["Email notification hub (hostname)"] = "Центр уведомлений по email (имя хоста)";
+App::$strings["If your channel is mirrored to multiple hubs, set this to your preferred location. This will prevent duplicate email notifications. Example: %s"] = "Если ваш канал зеркалируется в нескольких местах, это ваше предпочтительное местоположение. Это должно предотвратить дублировать уведомлений по email. Например: %s";
+App::$strings["Show new wall posts, private messages and connections under Notices"] = "Показать новые сообщения на стене, личные сообщения и контакты в \"Уведомлениях\"";
+App::$strings["Notify me of events this many days in advance"] = "Уведомлять меня о событиях заранее, дней";
+App::$strings["Must be greater than 0"] = "Должно быть больше 0";
+App::$strings["Advanced Account/Page Type Settings"] = "Дополнительные настройки учётной записи / страницы";
+App::$strings["Change the behaviour of this account for special situations"] = "Изменить поведение этого аккаунта в особых ситуациях";
+App::$strings["Miscellaneous Settings"] = "Дополнительные настройки";
+App::$strings["Default photo upload folder"] = "Каталог загрузки фотографий по умолчанию";
+App::$strings["%Y - current year, %m - current month"] = "%Y - текущий год, %y - текущий месяц";
+App::$strings["Default file upload folder"] = "Каталог загрузки файлов по умолчанию";
+App::$strings["Remove this channel."] = "Удалить этот канал.";
+App::$strings["Additional Features"] = "Дополнительные функции";
+App::$strings["Events Settings"] = "Настройки событий";
+App::$strings["CalDAV Settings"] = "Настройки CalDAV";
+App::$strings["Settings saved."] = "Настройки сохранены.";
+App::$strings["Settings saved. Reload page please."] = "Настройки сохранены. Пожалуйста, перезагрузите страницу.";
+App::$strings["Conversation Settings"] = "Настройки бесед";
+App::$strings["Connections Settings"] = "Настройки контактов";
+App::$strings["Photos Settings"] = "Настройки фотографий";
+App::$strings["Not valid email."] = "Не действительный адрес email.";
+App::$strings["Protected email address. Cannot change to that email."] = "Защищенный адрес электронной почты. Нельзя изменить.";
+App::$strings["System failure storing new email. Please try again."] = "Системная ошибка сохранения email. Пожалуйста попробуйте ещё раз.";
+App::$strings["Password verification failed."] = "Не удалось выполнить проверку пароля.";
+App::$strings["Passwords do not match. Password unchanged."] = "Пароли не совпадают. Пароль не изменён.";
+App::$strings["Empty passwords are not allowed. Password unchanged."] = "Пустые пароли не допускаются. Пароль не изменён.";
+App::$strings["Password changed."] = "Пароль изменен.";
+App::$strings["Password update failed. Please try again."] = "Изменение пароля не удалось. Пожалуйста, попробуйте ещё раз.";
+App::$strings["Account Settings"] = "Настройки аккаунта";
+App::$strings["Current Password"] = "Текущий пароль";
+App::$strings["Enter New Password"] = "Введите новый пароль:";
+App::$strings["Confirm New Password"] = "Подтвердите новый пароль:";
+App::$strings["Leave password fields blank unless changing"] = "Оставьте поля пустыми до измнения";
+App::$strings["Remove Account"] = "Удалить аккаунт";
+App::$strings["Remove this account including all its channels"] = "Удалить этот аккаунт включая все каналы";
+App::$strings["Profiles Settings"] = "Настройки профилей";
+App::$strings["Channel Manager Settings"] = "Настройки менеджера канала";
+App::$strings["No feature settings configured"] = "Параметры функций не настроены";
+App::$strings["Addon Settings"] = "Настройки расширений";
+App::$strings["Please save/submit changes to any panel before opening another."] = "Пожалуйста сохраните / отправьте изменения на панели прежде чем открывать другую.";
+App::$strings["Max height of content (in pixels)"] = "Максимальная высота содержимого (в пикселях)";
+App::$strings["Click to expand content exceeding this height"] = "Нажмите чтобы развернуть содержимое превышающее эту высоту";
+App::$strings["Personal menu to display in your channel pages"] = "Персональное меню для отображения на странице вашего канала";
+App::$strings["Channel Home Settings"] = "Настройки главной страницы канала";
+App::$strings["Directory Settings"] = "Настройки каталога";
+App::$strings["Editor Settings"] = "Настройки редактора";
+App::$strings["%s - (Experimental)"] = "%s - (экспериментальный)";
+App::$strings["Display Settings"] = "Настройки отображения";
+App::$strings["Theme Settings"] = "Настройки темы";
+App::$strings["Custom Theme Settings"] = "Дополнительные настройки темы";
+App::$strings["Content Settings"] = "Настройки содержимого";
+App::$strings["Display Theme:"] = "Тема отображения:";
+App::$strings["Select scheme"] = "Выбрать схему";
+App::$strings["Preload images before rendering the page"] = "Предзагрузка изображений перед обработкой страницы";
+App::$strings["The subjective page load time will be longer but the page will be ready when displayed"] = "Субъективное время загрузки страницы будет длиннее, но страница будет готова при отображении";
+App::$strings["Enable user zoom on mobile devices"] = "Включить масштабирование на мобильных устройствах";
+App::$strings["Update browser every xx seconds"] = "Обновление браузера каждые N секунд";
+App::$strings["Minimum of 10 seconds, no maximum"] = "Минимум 10 секунд, без максимума";
+App::$strings["Maximum number of conversations to load at any time:"] = "Максимальное количество бесед для загрузки одновременно:";
+App::$strings["Maximum of 100 items"] = "Максимум 100 элементов";
+App::$strings["Show emoticons (smilies) as images"] = "Показывать эмотиконы (смайлики) как изображения";
+App::$strings["Provide channel menu in navigation bar"] = "Показывать меню канала в панели навигации";
+App::$strings["Default: channel menu located in app menu"] = "По умолчанию каналы расположены в меню приложения";
+App::$strings["Manual conversation updates"] = "Обновление бесед вручную";
+App::$strings["Default is on, turning this off may increase screen jumping"] = "Включено по умолчанию, выключение может привести к рывкам в отображении";
+App::$strings["Link post titles to source"] = "Ссылки на источник заголовков публикаций";
+App::$strings["New Member Links"] = "Ссылки для новичков";
+App::$strings["Display new member quick links menu"] = "Показать меню быстрых ссылок для новых участников";
+App::$strings["Stream Settings"] = "Настройки потока";
+App::$strings["View Photo"] = "Посмотреть фотографию";
+App::$strings["Edit Album"] = "Редактировать Фотоальбом";
+App::$strings["Upload"] = "Загрузка";
App::$strings["This channel is limited to %d tokens"] = "Этот канал ограничен %d токенами";
App::$strings["Name and Password are required."] = "Требуются имя и пароль.";
App::$strings["Token saved."] = "Токен сохранён.";
@@ -2138,12 +881,7 @@ App::$strings["Login Name"] = "Имя";
App::$strings["Login Password"] = "Пароль";
App::$strings["Expires (yyyy-mm-dd)"] = "Срок действия (yyyy-mm-dd)";
App::$strings["Their Settings"] = "Их настройки";
-App::$strings["Mark all seen"] = "Отметить как просмотренное";
-App::$strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s отслеживает %2\$s's %3\$s";
-App::$strings["%1\$s stopped following %2\$s's %3\$s"] = "%1\$s прекратил отслеживать %2\$s's %3\$s";
-App::$strings["Edit post"] = "Редактировать сообщение";
-App::$strings["Page link"] = "Ссылка страницы";
-App::$strings["Edit Webpage"] = "Редактировать веб-страницу";
+App::$strings["Some blurb about what to do when you're new here"] = "Некоторые предложения о том, что делать, если вы здесь новичок ";
App::$strings["Thing updated"] = "Обновлено";
App::$strings["Object store: failed"] = "Хранлищие объектов: неудача";
App::$strings["Thing added"] = "Добавлено";
@@ -2157,43 +895,296 @@ App::$strings["Only sends to viewers of the applicable profile"] = "Отправ
App::$strings["Name of thing e.g. something"] = "Наименование, например \"нечто\"";
App::$strings["URL of thing (optional)"] = "URL (необязательно)";
App::$strings["URL for photo of thing (optional)"] = "URL для фотографии (необязательно)";
+App::$strings["Permissions"] = "Разрешения";
App::$strings["Add Thing to your Profile"] = "Добавить к вашему профилю";
-App::$strings["Welcome to Hubzilla!"] = "Добро пожаловать в Hubzilla!";
-App::$strings["You have got no unseen posts..."] = "У вас нет видимых публикаций...";
-App::$strings["Items tagged with: %s"] = "Объекты помечены как: %s";
-App::$strings["Search results for: %s"] = "Результаты поиска для: %s";
-App::$strings["Notes App"] = "Приложение \"Заметки\"";
-App::$strings["A simple notes app with a widget (note: notes are not encrypted)"] = "Простое приложение для заметок с виджетом (примечание: заметки не зашифрованы)";
-App::$strings["Comment approved"] = "Комментарий одобрен";
-App::$strings["Comment deleted"] = "Комментарий удалён";
-App::$strings["Webpages App"] = "Приложение \"Веб-страницы\"";
-App::$strings["Provide managed web pages on your channel"] = "Предоставлять управляемые веб-страницы на Вашем канале";
-App::$strings["Import Webpage Elements"] = "Импортировать части веб-страницы";
-App::$strings["Import selected"] = "Импортировать выбранное";
-App::$strings["Export Webpage Elements"] = "Экспортировать часть веб-страницы";
-App::$strings["Export selected"] = "Экспортировать выбранное";
-App::$strings["Actions"] = "Действия";
-App::$strings["Page Link"] = "Ссылка страницы";
-App::$strings["Page Title"] = "Заголовок страницы";
-App::$strings["Invalid file type."] = "Неверный тип файла.";
-App::$strings["Error opening zip file"] = "Ошибка открытия ZIP файла";
-App::$strings["Invalid folder path."] = "Неверный путь к каталогу.";
-App::$strings["No webpage elements detected."] = "Не обнаружено частей веб-страницы.";
-App::$strings["Import complete."] = "Импорт завершен.";
-App::$strings["\$Projectname"] = "";
-App::$strings["Welcome to %s"] = "Добро пожаловать в %s";
+App::$strings["No more system notifications."] = "Нет новых оповещений системы.";
+App::$strings["System Notifications"] = "Системные оповещения ";
+App::$strings["Connection added."] = "Контакт добавлен.";
+App::$strings["Your service plan only allows %d channels."] = "Ваш класс обслуживания разрешает только %d каналов.";
+App::$strings["No channel. Import failed."] = "Канала нет. Импорт невозможен.";
+App::$strings["Import completed."] = "Импорт завершен.";
+App::$strings["You must be logged in to use this feature."] = "Вы должны войти в систему, чтобы использовать эту функцию.";
+App::$strings["Import Channel"] = "Импортировать канал";
+App::$strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file."] = "Используйте эту форм для импорта существующего канала с другого сервера / хаба. Вы можете получить идентификационные данные канала со старого сервера / хаба через сеть или предоставить файл экспорта.";
+App::$strings["Or provide the old server/hub details"] = "или предоставьте данные старого сервера";
+App::$strings["Your old identity address (xyz@example.com)"] = "Ваш старый адрес идентичности (xyz@example.com)";
+App::$strings["Your old login email address"] = "Ваш старый адрес электронной почты";
+App::$strings["Your old login password"] = "Ваш старый пароль";
+App::$strings["Import a few months of posts if possible (limited by available memory"] = "Импортировать несколько месяцев публикаций если возможно (ограничено доступной памятью)";
+App::$strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Для любого варианта, пожалуйста, выберите, следует ли сделать этот хаб вашим новым основным адресом, или ваше прежнее местоположение должно продолжить выполнять эту роль. Вы сможете отправлять сообщения из любого местоположения, но только одно может быть помечено как основное место для файлов, фотографий и мультимедиа.";
+App::$strings["Make this hub my primary location"] = "Сделать этот хаб главным";
+App::$strings["Move this channel (disable all previous locations)"] = "Переместить это канал (отключить все предыдущие месторасположения)";
+App::$strings["Use this channel nickname instead of the one provided"] = "Использовать псевдоним этого канала вместо предоставленного";
+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."] = "Оставьте пустым для сохранения существующего псевдонима канала. Вам будет случайным образом назначен похожий псевдоним если такое имя уже выделено на этом сайте.";
+App::$strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Процесс может занять несколько минут. Пожалуйста, отправьте форму только один раз и оставьте эту страницу открытой до завершения.";
+App::$strings["Authentication failed."] = "Ошибка аутентификации.";
+App::$strings["Remote Authentication"] = "Удаленная аутентификация";
+App::$strings["Enter your channel address (e.g. channel@example.com)"] = "Введите адрес вашего канала (например: channel@example.com)";
+App::$strings["Authenticate"] = "Проверка подлинности";
+App::$strings["Name and Secret are required"] = "Требуются имя и код";
+App::$strings["OAuth2 Apps Manager App"] = "Приложение \"Менеджер Oauth2\"";
+App::$strings["OAuth2 authenticatication tokens for mobile and remote apps"] = "Аутентификация OAuth2 для мобильных и удаленных приложений";
+App::$strings["Add OAuth2 application"] = "Добавить приложение OAuth2";
+App::$strings["Name of application"] = "Название приложения";
+App::$strings["Consumer Secret"] = "Код клиента";
+App::$strings["Automatically generated - change if desired. Max length 20"] = "Сгенерирован автоматические - измените если требуется. Макс. длина 20";
+App::$strings["Redirect"] = "Перенаправление";
+App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI перенаправления - оставьте пустыми до тех пока ваше приложение не требует этого";
+App::$strings["Grant Types"] = "Разрешить типы";
+App::$strings["leave blank unless your application sepcifically requires this"] = "оставьте пустыми до тех пока ваше приложение не требует этого";
+App::$strings["Authorization scope"] = "Область полномочий";
+App::$strings["OAuth2 Application not found."] = "Приложение OAuth2 не найдено.";
+App::$strings["Add application"] = "Добавить приложение";
+App::$strings["leave blank unless your application specifically requires this"] = "оставьте поле пустым, если ваше приложение не требует этого";
+App::$strings["Connected OAuth2 Apps"] = "Подключённые приложения OAuth2";
+App::$strings["Client key starts with"] = "Ключ клиента начинается с";
+App::$strings["No name"] = "Без названия";
+App::$strings["Remove authorization"] = "Удалить разрешение";
+App::$strings["Permissions denied."] = "Доступ запрещен.";
+App::$strings["Import"] = "Импортировать";
+App::$strings["Authorize application connection"] = "Авторизовать подключение приложения";
+App::$strings["Return to your app and insert this Security Code:"] = "Вернитесь к своему приложению и вставьте этот код безопасности:";
+App::$strings["Please login to continue."] = "Пожалуйста, войдите, чтобы продолжить.";
+App::$strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Вы хотите авторизовать это приложение для доступа к вашим публикациям и контактам и / или созданию новых публикаций?";
+App::$strings["Item not available."] = "Элемент недоступен.";
+App::$strings["Random Channel App"] = "Приложение \"Случайный канал\"";
+App::$strings["Visit a random channel in the \$Projectname network"] = "Посещение случайного канала в сети \$Projectname";
+App::$strings["Edit Block"] = "Редактировать блок";
+App::$strings["vcard"] = "vCard";
+App::$strings["Available Apps"] = "Доступные приложения";
+App::$strings["Installed Apps"] = "Установленные приложения";
+App::$strings["Manage Apps"] = "Управление приложениями";
+App::$strings["Create Custom App"] = "Создать пользовательское приложение";
+App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s в %2\$s";
+App::$strings["Mood App"] = "Приложение \"Настроение\"";
+App::$strings["Set your current mood and tell your friends"] = "Установить текущее настроение и рассказать друзьям";
+App::$strings["Mood"] = "Настроение";
+App::$strings["Active"] = "Активен";
+App::$strings["Blocked"] = "Заблокирован";
+App::$strings["Ignored"] = "Игнорируется";
+App::$strings["Hidden"] = "Скрыт";
+App::$strings["Archived/Unreachable"] = "Заархивировано / недоступно";
+App::$strings["New"] = "Новые";
+App::$strings["All"] = "Все";
+App::$strings["Active Connections"] = "Активные контакты";
+App::$strings["Show active connections"] = "Показать активные контакты";
+App::$strings["New Connections"] = "Новые контакты";
+App::$strings["Show pending (new) connections"] = "Просмотр (новых) ожидающих контактов";
+App::$strings["Only show blocked connections"] = "Показать только заблокированные контакты";
+App::$strings["Only show ignored connections"] = "Показать только проигнорированные контакты";
+App::$strings["Only show archived/unreachable connections"] = "Показать только заархивированные / недоступные контакты";
+App::$strings["Only show hidden connections"] = "Показать только скрытые контакты";
+App::$strings["Show all connections"] = "Просмотр всех контактов";
+App::$strings["Pending approval"] = "Ожидающие подтверждения";
+App::$strings["Archived"] = "Зархивирован";
+App::$strings["Not connected at this location"] = "Не подключено в этом месте";
+App::$strings["%1\$s [%2\$s]"] = "";
+App::$strings["Edit connection"] = "Редактировать контакт";
+App::$strings["Delete connection"] = "Удалить контакт";
+App::$strings["Channel address"] = "Адрес канала";
+App::$strings["Network"] = "Сеть";
+App::$strings["Call"] = "Вызов";
+App::$strings["Status"] = "Статус";
+App::$strings["Connected"] = "Подключено";
+App::$strings["Approve connection"] = "Утвердить контакт";
+App::$strings["Ignore connection"] = "Игнорировать контакт";
+App::$strings["Ignore"] = "Игнорировать";
+App::$strings["Recent activity"] = "Последние действия";
+App::$strings["Connections"] = "Контакты";
+App::$strings["Search your connections"] = "Поиск ваших контактов";
+App::$strings["Connections search"] = "Поиск контаков";
+App::$strings["Find"] = "Поиск";
+App::$strings["item"] = "пункт";
+App::$strings["Bookmark added"] = "Закладка добавлена";
+App::$strings["Bookmarks App"] = "Приложение \"Закладки\"";
+App::$strings["Bookmark links from posts and manage them"] = "Поместить ссылки из публикации в закладки и управлять ими";
+App::$strings["My Bookmarks"] = "Мои закладки";
+App::$strings["My Connections Bookmarks"] = "Закладки моих контактов";
+App::$strings["Account removals are not allowed within 48 hours of changing the account password."] = "Удаление канала не разрешается в течении 48 часов после смены пароля у аккаунта.";
+App::$strings["Remove This Account"] = "Удалить этот аккаунт";
+App::$strings["This account and all its channels will be completely removed from the network. "] = "Этот аккаунт и все его каналы будут полностью удалены из сети.";
+App::$strings["Remove this account, all its channels and all its channel clones from the network"] = "Удалить этот аккаунт, все его каналы и их клоны из сети.";
+App::$strings["By default only the instances of the channels located on this hub will be removed from the network"] = "По умолчанию только представление канала расположенное на данном хабе будет удалено из сети";
+App::$strings["Page owner information could not be retrieved."] = "Информация о владельце страницы не может быть получена.";
+App::$strings["Album not found."] = "Альбом не найден.";
+App::$strings["Delete Album"] = "Удалить альбом";
+App::$strings["Delete Photo"] = "Удалить фотографию";
+App::$strings["No photos selected"] = "Никакие фотографии не выбраны";
+App::$strings["Access to this item is restricted."] = "Доступ к этому элементу ограничен.";
+App::$strings["%1$.2f MB of %2$.2f MB photo storage used."] = "Вы использовали %1$.2f мегабайт из %2$.2f для хранения фото.";
+App::$strings["%1$.2f MB photo storage used."] = "Вы использовали %1$.2f мегабайт для хранения фото.";
+App::$strings["Upload Photos"] = "Загрузить фотографии";
+App::$strings["Enter an album name"] = "Введите название альбома";
+App::$strings["or select an existing album (doubleclick)"] = "или выберите существующий альбом (двойной щелчок)";
+App::$strings["Create a status post for this upload"] = "Сделать публикацию о статусе для этой загрузки";
+App::$strings["Description (optional)"] = "Описание (необязательно)";
+App::$strings["Show Newest First"] = "Показать новые первыми";
+App::$strings["Show Oldest First"] = "Показать старые первыми";
+App::$strings["Add Photos"] = "Добавить фотографии";
+App::$strings["Permission denied. Access to this item may be restricted."] = "Доступ запрещен. Доступ к этому элементу может быть ограничен.";
+App::$strings["Photo not available"] = "Фотография не доступна";
+App::$strings["Use as profile photo"] = "Использовать в качестве фотографии профиля";
+App::$strings["Use as cover photo"] = "Использовать в качестве фотографии обложки";
+App::$strings["Private Photo"] = "Личная фотография";
+App::$strings["View Full Size"] = "Посмотреть в полный размер";
+App::$strings["Edit photo"] = "Редактировать фотографию";
+App::$strings["Rotate CW (right)"] = "Повернуть CW (направо)";
+App::$strings["Rotate CCW (left)"] = "Повернуть CCW (налево)";
+App::$strings["Move photo to album"] = "Переместить фотографию в альбом";
+App::$strings["Enter a new album name"] = "Введите новое название альбома";
+App::$strings["or select an existing one (doubleclick)"] = "или выбрать существующую (двойной щелчок)";
+App::$strings["Add a Tag"] = "Добавить тег";
+App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Пример: @bob, @Barbara_Jensen, @jim@example.com";
+App::$strings["Flag as adult in album view"] = "Пометить как альбом \"для взрослых\"";
+App::$strings["I like this (toggle)"] = "мне это нравится (переключение)";
+App::$strings["I don't like this (toggle)"] = "мне это не нравится (переключение)";
+App::$strings["Please wait"] = "Подождите пожалуйста";
+App::$strings["This is you"] = "Это вы";
+App::$strings["Comment"] = "Комментарий";
+App::$strings["__ctx:title__ Likes"] = "Нравится";
+App::$strings["__ctx:title__ Dislikes"] = "Не нравится";
+App::$strings["__ctx:title__ Agree"] = "Согласен";
+App::$strings["__ctx:title__ Disagree"] = "Не согласен";
+App::$strings["__ctx:title__ Abstain"] = "Воздержался";
+App::$strings["__ctx:title__ Attending"] = "Посещаю";
+App::$strings["__ctx:title__ Not attending"] = "Не посещаю";
+App::$strings["__ctx:title__ Might attend"] = "Возможно посещу";
+App::$strings["View all"] = "Просмотреть все";
+App::$strings["__ctx:noun__ Like"] = array(
+ 0 => "Нравится",
+ 1 => "Нравится",
+ 2 => "Нравится",
+);
+App::$strings["__ctx:noun__ Dislike"] = array(
+ 0 => "Не нравится",
+ 1 => "Не нравится",
+ 2 => "Не нравится",
+);
+App::$strings["Photo Tools"] = "Фото-Инструменты";
+App::$strings["In This Photo:"] = "На этой фотографии:";
+App::$strings["Map"] = "Карта";
+App::$strings["__ctx:noun__ Likes"] = "Нравится";
+App::$strings["__ctx:noun__ Dislikes"] = "Не нравится";
+App::$strings["Close"] = "Закрыть";
+App::$strings["Recent Photos"] = "Последние фотографии";
+App::$strings["Profile Unavailable."] = "Профиль недоступен.";
+App::$strings["Wiki App"] = "Приложение \"Wiki\"";
+App::$strings["Provide a wiki for your channel"] = "Предоставьте Wiki для вашего канала";
+App::$strings["Invalid channel"] = "Недействительный канал";
+App::$strings["Error retrieving wiki"] = "Ошибка при получении Wiki";
+App::$strings["Error creating zip file export folder"] = "Ошибка при создании zip-файла при экспорте каталога";
+App::$strings["Error downloading wiki: "] = "Ошибка загрузки Wiki:";
+App::$strings["Wikis"] = "";
+App::$strings["Download"] = "Загрузить";
+App::$strings["Create New"] = "Создать новый";
+App::$strings["Wiki name"] = "Название Wiki";
+App::$strings["Content type"] = "Тип содержимого";
+App::$strings["Markdown"] = "Разметка Markdown";
+App::$strings["BBcode"] = "";
+App::$strings["Text"] = "Текст";
+App::$strings["Type"] = "Тип";
+App::$strings["Any&nbsp;type"] = "Любой&nbsp;тип";
+App::$strings["Lock content type"] = "Зафиксировать тип содержимого";
+App::$strings["Create a status post for this wiki"] = "Создать публикацию о статусе этой Wiki";
+App::$strings["Edit Wiki Name"] = "Редактировать наименование Wiki";
+App::$strings["Wiki not found"] = "Wiki не найдена";
+App::$strings["Rename page"] = "Переименовать страницу";
+App::$strings["Error retrieving page content"] = "Ошибка при получении содержимого страницы";
+App::$strings["New page"] = "Новая страница";
+App::$strings["Revision Comparison"] = "Сравнение ревизий";
+App::$strings["Revert"] = "Отменить";
+App::$strings["Short description of your changes (optional)"] = "Краткое описание ваших изменений (необязательно)";
+App::$strings["Source"] = "Источник";
+App::$strings["New page name"] = "Новое имя страницы";
+App::$strings["Embed image from photo albums"] = "Встроить изображение из фотоальбома";
+App::$strings["Embed an image from your albums"] = "Встроить изображение из ваших альбомов";
+App::$strings["OK"] = "";
+App::$strings["Choose images to embed"] = "Выбрать изображения для встраивания";
+App::$strings["Choose an album"] = "Выбрать альбом";
+App::$strings["Choose a different album"] = "Выбрать другой альбом";
+App::$strings["Error getting album list"] = "Ошибка получения списка альбомов";
+App::$strings["Error getting photo link"] = "Ошибка получения ссылки на фотографию";
+App::$strings["Error getting album"] = "Ошибка получения альбома";
+App::$strings["History"] = "История";
+App::$strings["Error creating wiki. Invalid name."] = "Ошибка создания Wiki. Неверное имя.";
+App::$strings["A wiki with this name already exists."] = "Wiki с таким именем уже существует.";
+App::$strings["Wiki created, but error creating Home page."] = "Wiki создана, но возникла ошибка при создании домашней страницы";
+App::$strings["Error creating wiki"] = "Ошибка при создании Wiki";
+App::$strings["Error updating wiki. Invalid name."] = "Ошибка при обновлении Wiki. Неверное имя.";
+App::$strings["Error updating wiki"] = "Ошибка при обновлении Wiki";
+App::$strings["Wiki delete permission denied."] = "Нет прав на удаление Wiki.";
+App::$strings["Error deleting wiki"] = "Ошибка удаления Wiki";
+App::$strings["New page created"] = "Создана новая страница";
+App::$strings["Cannot delete Home"] = "Невозможно удалить домашнюю страницу";
+App::$strings["Current Revision"] = "Текущая ревизия";
+App::$strings["Selected Revision"] = "Выбранная ревизия";
+App::$strings["You must be authenticated."] = "Вы должны быть аутентифицированы.";
+App::$strings["&#x1f501; Repeated %1\$s's %2\$s"] = "&#x1f501; Повторил %1\$s %2\$s";
+App::$strings["Post repeated"] = "Публикация повторяется";
+App::$strings["toggle full screen mode"] = "переключение полноэкранного режима";
+App::$strings["Layout updated."] = "Шаблон обновлен.";
+App::$strings["PDL Editor App"] = "Приложение \"Редактор PDL\"";
+App::$strings["Provides the ability to edit system page layouts"] = "Предоставляет возможность редактировать макеты системных страниц";
+App::$strings["Edit System Page Description"] = "Редактировать описание системной страницы";
+App::$strings["(modified)"] = "(изменено)";
+App::$strings["Reset"] = "Сбросить";
+App::$strings["Layout not found."] = "Шаблон не найден.";
+App::$strings["Module Name:"] = "Имя модуля:";
+App::$strings["Layout Help"] = "Помощь к шаблону";
+App::$strings["Edit another layout"] = "Редактировать другой шаблон";
+App::$strings["System layout"] = "Системный шаблон";
+App::$strings["Poke App"] = "Приложение \"Ткнуть\"";
+App::$strings["Poke somebody in your addressbook"] = "Ткнуть кого-нибудь в вашей адресной книге";
+App::$strings["Poke"] = "Ткнуть";
+App::$strings["Poke somebody"] = "Ткнуть кого-нибудь";
+App::$strings["Poke/Prod"] = "Толкнуть / подтолкнуть";
+App::$strings["Poke, prod or do other things to somebody"] = "Толкнуть, подтолкнуть или сделать что-то ещё с кем-то";
+App::$strings["Recipient"] = "Получатель";
+App::$strings["Choose what you wish to do to recipient"] = "Выбрать что вы хотите сделать с получателем";
+App::$strings["Make this post private"] = "Сделать эту публикацию приватной";
+App::$strings["Image uploaded but image cropping failed."] = "Изображение загружено но обрезка не удалась.";
+App::$strings["Profile Photos"] = "Фотографии профиля";
+App::$strings["Image resize failed."] = "Не удалось изменить размер изображения.";
App::$strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Если новая фотография не отображается немедленно то нажмите Shift + \"Обновить\" для очистки кэша браузера";
+App::$strings["Unable to process image"] = "Не удается обработать изображение";
+App::$strings["Image upload failed."] = "Загрузка изображения не удалась.";
+App::$strings["Unable to process image."] = "Невозможно обработать изображение.";
+App::$strings["Photo not available."] = "Фотография недоступна.";
App::$strings["Your default profile photo is visible to anybody on the internet. Profile photos for alternate profiles will inherit the permissions of the profile"] = "Фотография вашего профиля по умолчанию видна всем в Интернете. Фотографияпрофиля для альтернативных профилей наследуют разрешения текущего профиля";
App::$strings["Your profile photo is visible to anybody on the internet and may be distributed to other websites."] = "Фотография вашего профиля видна всем в Интернете и может быть отправлена на другие сайты.";
+App::$strings["Upload File:"] = "Загрузить файл:";
+App::$strings["Select a profile:"] = "Выбрать профиль:";
App::$strings["Use Photo for Profile"] = "Использовать фотографию для профиля";
App::$strings["Change Profile Photo"] = "Изменить фотографию профиля";
App::$strings["Use"] = "Использовать";
-App::$strings["Select a bookmark folder"] = "Выбрать каталог для закладок";
-App::$strings["Save Bookmark"] = "Сохранить закладку";
-App::$strings["URL of bookmark"] = "URL закладки";
-App::$strings["Or enter new bookmark folder name"] = "или введите новое имя каталога закладок";
-App::$strings["Connection added."] = "Контакт добавлен.";
-App::$strings["Item is not editable"] = "Элемент нельзя редактировать";
+App::$strings["Use a photo from your albums"] = "Использовать фотографию из ваших альбомов";
+App::$strings["Select existing photo"] = "Выбрать существующую фотографию";
+App::$strings["Crop Image"] = "Обрезать изображение";
+App::$strings["Please adjust the image cropping for optimum viewing."] = "Пожалуйста настройте обрезку изображения для оптимального просмотра.";
+App::$strings["Done Editing"] = "Закончить редактирование";
+App::$strings["Away"] = "Нет на месте";
+App::$strings["Online"] = "В сети";
+App::$strings["Unable to locate original post."] = "Не удалось найти оригинальную публикацию.";
+App::$strings["Empty post discarded."] = "Пустая публикация отклонена.";
+App::$strings["Duplicate post suppressed."] = "Подавлена дублирующаяся публикация.";
+App::$strings["System error. Post not saved."] = "Системная ошибка. Публикация не сохранена.";
+App::$strings["Your comment is awaiting approval."] = "Ваш комментарий ожидает одобрения.";
+App::$strings["Unable to obtain post information from database."] = "Невозможно получить информацию о публикации из базы данных";
+App::$strings["You have reached your limit of %1$.0f top level posts."] = "Вы достигли вашего ограничения в %1$.0f публикаций высокого уровня.";
+App::$strings["You have reached your limit of %1$.0f webpages."] = "Вы достигли вашего ограничения в %1$.0f страниц.";
+App::$strings["sent you a private message"] = "отправил вам личное сообщение";
+App::$strings["added your channel"] = "добавил ваш канал";
+App::$strings["requires approval"] = "Требуется подтверждение";
+App::$strings["g A l F d"] = "g A l F d";
+App::$strings["[today]"] = "[сегодня]";
+App::$strings["posted an event"] = "событие опубликовано";
+App::$strings["shared a file with you"] = "с вами поделились файлом";
+App::$strings["Private forum"] = "Частный форум";
+App::$strings["Public forum"] = "Публичный форум";
+App::$strings["Invalid item."] = "Недействительный элемент.";
+App::$strings["Page not found."] = "Страница не найдена.";
+App::$strings["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."] = "";
+App::$strings["Could not access contact record."] = "Не удалось получить доступ к записи контакта.";
App::$strings["Could not locate selected profile."] = "Не удалось обнаружить выбранный профиль.";
App::$strings["Connection updated."] = "Контакты обновлены.";
App::$strings["Failed to update connection record."] = "Не удалось обновить запись контакта.";
@@ -2202,16 +1193,17 @@ App::$strings["Could not access address book record."] = "Не удалось п
App::$strings["Refresh failed - channel is currently unavailable."] = "Обновление невозможно - в настоящее время канал недоступен.";
App::$strings["Unable to set address book parameters."] = "Не удалось получить доступ к параметрам адресной книги.";
App::$strings["Connection has been removed."] = "Контакт был удалён.";
+App::$strings["View Profile"] = "Просмотреть профиль";
App::$strings["View %s's profile"] = "Просмотр %s профиля";
App::$strings["Refresh Permissions"] = "Обновить разрешения";
App::$strings["Fetch updated permissions"] = "Получить обновлённые разрешения";
App::$strings["Refresh Photo"] = "Обновить фотографию";
App::$strings["Fetch updated photo"] = "Получить обновлённую фотографию";
+App::$strings["Recent Activity"] = "Последние действия";
App::$strings["View recent posts and comments"] = "Просмотреть последние публикации и комментарии";
App::$strings["Block (or Unblock) all communications with this connection"] = "Блокировать (или разблокировать) связи с этим контактом";
App::$strings["This connection is blocked!"] = "Этот контакт заблокирован!";
App::$strings["Unignore"] = "Не игнорировать";
-App::$strings["Ignore"] = "Игнорировать";
App::$strings["Ignore (or Unignore) all inbound communications from this connection"] = "Игнорировать (или не игнорировать) все связи для этого контакта";
App::$strings["This connection is ignored!"] = "Этот контакт игнорируется!";
App::$strings["Unarchive"] = "Разархивировать";
@@ -2231,7 +1223,6 @@ App::$strings["Open Set Affinity section by default"] = "Открыть секц
App::$strings["Me"] = "Я";
App::$strings["Family"] = "Семья";
App::$strings["Acquaintances"] = "Знакомые";
-App::$strings["All"] = "Все";
App::$strings["Filter"] = "Фильтр";
App::$strings["Open Custom Filter section by default"] = "Открывать секцию \"Настраиваемый фильтр\" по умолчанию";
App::$strings["Approve this connection"] = "Утвердить этот контакт";
@@ -2243,11 +1234,18 @@ App::$strings["This connection is unreachable from this location."] = "Этот
App::$strings["This connection may be unreachable from other channel locations."] = "Этот контакт может быть недоступен из других мест размещения канала";
App::$strings["Location independence is not supported by their network."] = "Независимое местоположение не поддерживается их сетью.";
App::$strings["This connection is unreachable from this location. Location independence is not supported by their network."] = "Этот контакт недоступен из данного местоположения. Независимое местоположение не поддерживается их сетью.";
+App::$strings["Connection Default Permissions"] = "Разрешения по умолчанию для контакта";
+App::$strings["Connection: %s"] = "Контакт: %s";
+App::$strings["Apply these permissions automatically"] = "Применить эти разрешения автоматически";
App::$strings["Connection requests will be approved without your interaction"] = "Запросы контактов будут одобрены без вашего участия";
+App::$strings["Permission role"] = "Роль разрешения";
+App::$strings["Add permission role"] = "Добавить роль разрешения";
App::$strings["This connection's primary address is"] = "Главный адрес это контакта";
App::$strings["Available locations:"] = "Доступные расположения:";
+App::$strings["The permissions indicated on this page will be applied to all new connections."] = "Разрешения, указанные на этой странице, будут применяться ко всем новым соединениям.";
App::$strings["Connection Tools"] = "Инструменты контактов";
App::$strings["Slide to adjust your degree of friendship"] = "Прокрутить для настройки степени дружбы";
+App::$strings["Rating"] = "Оценка";
App::$strings["Slide to adjust your rating"] = "Прокрутить для настройки оценки";
App::$strings["Optionally explain your rating"] = "Объясните свою оценку (не обязательно)";
App::$strings["Custom Filter"] = "Настраиваемый фильтр";
@@ -2259,14 +1257,99 @@ App::$strings["Please choose the profile you would like to display to %s when vi
App::$strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can change those settings here but they wont have any impact unless the inherited setting changes."] = "Некоторые разрешения могут быть унаследованы из <a href=\"settings\"><strong>настроек приватности</strong></a> вашего канала, которые могут иметь более высокий приоритет чем индивидуальные. Вы можете изменить эти настройки, однако они не будут применены до изменения переданных по наследству настроек.";
App::$strings["Last update:"] = "Последнее обновление:";
App::$strings["Details"] = "Сведения";
+App::$strings["Chatrooms App"] = "Приложение \"Мои чаты\"";
+App::$strings["Access Controlled Chatrooms"] = "Получить доступ к контролируемым чатам";
+App::$strings["Room not found"] = "Комната не найдена";
+App::$strings["Leave Room"] = "Покинуть комнату";
+App::$strings["Delete Room"] = "Удалить комнату";
+App::$strings["I am away right now"] = "Я сейчас отошёл";
+App::$strings["I am online"] = "Я на связи";
+App::$strings["Bookmark this room"] = "Запомнить эту комнату";
+App::$strings["Please enter a link URL:"] = "Пожалуйста введите URL ссылки:";
+App::$strings["Encrypt text"] = "Зашифровать текст";
+App::$strings["New Chatroom"] = "Новый чат";
+App::$strings["Chatroom name"] = "Название чата";
+App::$strings["Expiration of chats (minutes)"] = "Завершение чатов (минут)";
+App::$strings["%1\$s's Chatrooms"] = "Чаты пользователя %1\$s";
+App::$strings["No chatrooms available"] = "Нет доступных чатов";
+App::$strings["Expiration"] = "Срок действия";
+App::$strings["min"] = "мин.";
+App::$strings["Photos"] = "Фотографии";
+App::$strings["Files"] = "Файлы";
+App::$strings["Unable to update menu."] = "Невозможно обновить меню.";
+App::$strings["Unable to create menu."] = "Невозможно создать меню.";
+App::$strings["Menu Name"] = "Название меню";
+App::$strings["Unique name (not visible on webpage) - required"] = "Уникальное название (не видимо на странице) - требуется";
+App::$strings["Menu Title"] = "Заголовок меню";
+App::$strings["Visible on webpage - leave empty for no title"] = "Видимость на странице - оставьте пустым если не хотите иметь заголовок";
+App::$strings["Allow Bookmarks"] = "Разрешить закладки";
+App::$strings["Menu may be used to store saved bookmarks"] = "Меню может использоваться, чтобы сохранить закладки";
+App::$strings["Submit and proceed"] = "Отправить и обработать";
+App::$strings["Menus"] = "Меню";
+App::$strings["Bookmarks allowed"] = "Закладки разрешены";
+App::$strings["Delete this menu"] = "Удалить это меню";
+App::$strings["Edit menu contents"] = "Редактировать содержание меню";
+App::$strings["Edit this menu"] = "Редактировать это меню";
+App::$strings["Menu could not be deleted."] = "Меню не может быть удалено.";
+App::$strings["Edit Menu"] = "Редактировать меню";
+App::$strings["Add or remove entries to this menu"] = "Добавить или удалить пункты этого меню";
+App::$strings["Menu name"] = "Название меню";
+App::$strings["Must be unique, only seen by you"] = "Должно быть уникальным (видно только вам)";
+App::$strings["Menu title"] = "Заголовок меню";
+App::$strings["Menu title as seen by others"] = "Видимый другими заголовок меню";
+App::$strings["Allow bookmarks"] = "Разрешить закладки";
+App::$strings["Layouts"] = "Шаблоны";
+App::$strings["Help"] = "Помощь";
+App::$strings["Comanche page description language help"] = "Помощь по языку описания страниц Comanche ";
+App::$strings["Layout Description"] = "Описание шаблона";
+App::$strings["Download PDL file"] = "Загрузить PDL файл";
+App::$strings["Notes App"] = "Приложение \"Заметки\"";
+App::$strings["A simple notes app with a widget (note: notes are not encrypted)"] = "Простое приложение для заметок с виджетом (примечание: заметки не зашифрованы)";
+App::$strings["Not found"] = "Не найдено.";
+App::$strings["Please refresh page"] = "Пожалуйста обновите страницу";
+App::$strings["Unknown error"] = "Неизвестная ошибка";
+App::$strings["Token verification failed."] = "Не удалось выполнить проверку токена.";
+App::$strings["Email Verification Required"] = "Требуется проверка адреса email";
+App::$strings["A verification token was sent to your email address [%s]. Enter that token here to complete the account verification step. Please allow a few minutes for delivery, and check your spam folder if you do not see the message."] = "Проверочный токен был отправлен на ваш адрес электронной почты [%s]. Введите этот токен здесь для завершения этапа проверки учётной записи. Пожалуйста, подождите несколько минут для завершения доставки и проверьте вашу папку \"Спам\" если вы не видите письма.";
+App::$strings["Resend Email"] = "Выслать повторно";
+App::$strings["Validation token"] = "Проверочный токен";
+App::$strings["Post not found."] = "Публикация не найдена";
+App::$strings["post"] = "публикация";
+App::$strings["comment"] = "комментарий";
+App::$strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s отметил тегом %2\$s %3\$s с %4\$s";
+App::$strings["This setting requires special processing and editing has been blocked."] = "Этот параметр требует специальной обработки и редактирования и был заблокирован.";
+App::$strings["Configuration Editor"] = "Редактор конфигурации";
+App::$strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Предупреждение. Изменение некоторых настроек может привести к неработоспособности вашего канала. Пожалуйста, покиньте эту страницу, если вы точно не значете, как правильно использовать эту функцию.";
+App::$strings["Affinity Tool settings updated."] = "Настройки степени сходства обновлены.";
+App::$strings["This app presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship (affinity) with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream."] = "Это приложение представляет управление ползунком на странице контактов и сетевом потоке, который позволяет выбирать вашу степень дружбы (сходства). Это позволяет вам увеличивать или уменьшать масштаб и отображать разговоры только от ваших самых близких друзей или всех в вашем потоке.";
+App::$strings["Affinity Tool App"] = "Приложение \"Степень сходства\"";
+App::$strings["The numbers below represent the minimum and maximum slider default positions for your network/stream page as a percentage."] = "Числа ниже представляют минимальное и максимальное значение по умолчанию для вашей сети / потока в процентах.";
+App::$strings["Default maximum affinity level"] = "Максимальная степень сходства по умолчанию.";
+App::$strings["0-99 default 99"] = "0-99 (по умолчанию 99)";
+App::$strings["Default minimum affinity level"] = "Максимальная степень сходства по умолчанию.";
+App::$strings["0-99 - default 0"] = "0-99 (по умолчанию 0)";
+App::$strings["Persistent affinity levels"] = "Устоявшиеся степени сходства";
+App::$strings["If disabled the max and min levels will be reset to default after page reload"] = "Если этот параметр отключен, максимальный и минимальный уровни будут сброшены к значениям по умолчанию после перезагрузки страницы";
+App::$strings["Affinity Tool Settings"] = "Настройки степени сходства";
+App::$strings["Default Permissions App"] = "Приложение \"Разрешения по умолчанию\"";
+App::$strings["Set custom default permissions for new connections"] = "Настройка пользовательских разрешений по умолчанию для новых подключений ";
+App::$strings["Automatic approval settings"] = "Настройки автоматического одобрения";
+App::$strings["Some individual permissions may have been preset or locked based on your channel type and privacy settings."] = "Некоторые индивидуальные разрешения могут быть предустановлены или заблокированы на основании типа вашего канала и настроек приватности.";
+App::$strings["Unknown App"] = "Неизвестное приложение";
+App::$strings["Authorize"] = "Авторизовать";
+App::$strings["Do you authorize the app %s to access your channel data?"] = "Авторизуете ли вы приложение %s для доступа к данным вашего канала?";
+App::$strings["Allow"] = "Разрешить";
App::$strings["Privacy group created."] = "Группа безопасности создана.";
App::$strings["Could not create privacy group."] = "Не удалось создать группу безопасности.";
+App::$strings["Privacy group not found."] = "Группа безопасности не найдена.";
App::$strings["Privacy group updated."] = "Группа безопасности обновлена.";
App::$strings["Privacy Groups App"] = "Приложение \"Группы безопасности\"";
App::$strings["Management of privacy groups"] = "Управление группами безопасности.";
+App::$strings["Privacy Groups"] = "Группы безопасности";
App::$strings["Add Group"] = "Добавить группу";
App::$strings["Privacy group name"] = "Имя группы безопасности";
App::$strings["Members are visible to other channels"] = "Участники канала видимые для остальных";
+App::$strings["Members"] = "Участники";
App::$strings["Privacy group removed."] = "Группа безопасности удалена.";
App::$strings["Unable to remove privacy group."] = "Ну удалось удалить группу безопасности.";
App::$strings["Privacy Group: %s"] = "Группа безопасности: %s";
@@ -2275,137 +1358,93 @@ App::$strings["Delete Group"] = "Удалить группу";
App::$strings["Group members"] = "Члены группы";
App::$strings["Not in this group"] = "Не в этой группе";
App::$strings["Click a channel to toggle membership"] = "Нажмите на канал для просмотра членства";
-App::$strings["Active"] = "Активен";
-App::$strings["Blocked"] = "Заблокирован";
-App::$strings["Ignored"] = "Игнорируется";
-App::$strings["Hidden"] = "Скрыт";
-App::$strings["Archived/Unreachable"] = "Заархивировано / недоступно";
-App::$strings["Active Connections"] = "Активные контакты";
-App::$strings["Show active connections"] = "Показать активные контакты";
-App::$strings["New Connections"] = "Новые контакты";
-App::$strings["Show pending (new) connections"] = "Просмотр (новых) ожидающих контактов";
-App::$strings["Only show blocked connections"] = "Показать только заблокированные контакты";
-App::$strings["Only show ignored connections"] = "Показать только проигнорированные контакты";
-App::$strings["Only show archived/unreachable connections"] = "Показать только заархивированные / недоступные контакты";
-App::$strings["Only show hidden connections"] = "Показать только скрытые контакты";
-App::$strings["Show all connections"] = "Просмотр всех контактов";
-App::$strings["Pending approval"] = "Ожидающие подтверждения";
-App::$strings["Archived"] = "Зархивирован";
-App::$strings["Not connected at this location"] = "Не подключено в этом месте";
-App::$strings["%1\$s [%2\$s]"] = "";
-App::$strings["Edit connection"] = "Редактировать контакт";
-App::$strings["Delete connection"] = "Удалить контакт";
-App::$strings["Channel address"] = "Адрес канала";
-App::$strings["Call"] = "Вызов";
-App::$strings["Status"] = "Статус";
-App::$strings["Connected"] = "Подключено";
-App::$strings["Approve connection"] = "Утвердить контакт";
-App::$strings["Ignore connection"] = "Игнорировать контакт";
-App::$strings["Recent activity"] = "Последние действия";
-App::$strings["Search your connections"] = "Поиск ваших контактов";
-App::$strings["Connections search"] = "Поиск контаков";
-App::$strings["Mood App"] = "Приложение \"Настроение\"";
-App::$strings["Set your current mood and tell your friends"] = "Установить текущее настроение и рассказать друзьям";
-App::$strings["Mood"] = "Настроение";
-App::$strings["Edit Card"] = "Редактировать карточку";
-App::$strings["Edit Article"] = "Редактировать статью";
-App::$strings["Language App"] = "Приложение \"Язык\"";
-App::$strings["Change UI language"] = "Изменить язык интерфейса";
-App::$strings["Block Title"] = "Заблокировать заголовок";
-App::$strings["Random Channel App"] = "Приложение \"Случайный канал\"";
-App::$strings["Visit a random channel in the \$Projectname network"] = "Посещение случайного канала в сети \$Projectname";
-App::$strings["Total invitation limit exceeded."] = "Превышено общее количество приглашений.";
-App::$strings["%s : Not a valid email address."] = "%s : Недействительный адрес электронной почты.";
-App::$strings["Please join us on \$Projectname"] = "Присоединятесь к \$Projectname !";
-App::$strings["Invitation limit exceeded. Please contact your site administrator."] = "Превышен лимит приглашений. Пожалуйста, свяжитесь с администрацией сайта.";
-App::$strings["%s : Message delivery failed."] = "%s : Доставка сообщения не удалась.";
-App::$strings["%d message sent."] = array(
- 0 => "%d сообщение отправлено.",
- 1 => "%d сообщения отправлено.",
- 2 => "%d сообщений отправлено.",
-);
-App::$strings["Invite App"] = "Приложение \"Пригласить\"";
-App::$strings["Send email invitations to join this network"] = "Отправить приглашение присоединиться к этой сети по электронной почте";
-App::$strings["You have no more invitations available"] = "У вас больше нет приглашений";
-App::$strings["Send invitations"] = "Отправить приглашение";
-App::$strings["Enter email addresses, one per line:"] = "Введите адреса электронной почты, по одному в строке:";
-App::$strings["Please join my community on \$Projectname."] = "Присоединятесь к нашему сообществу \$Projectname !";
-App::$strings["You will need to supply this invitation code:"] = "Вам нужно предоставит этот код приглашения:";
-App::$strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Зарегистрируйтесь на любом из серверов \$Projectname";
-App::$strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Введите сетевой адрес \$Projectname в поисковой строке сайта";
-App::$strings["or visit"] = "или посетите";
-App::$strings["3. Click [Connect]"] = "Нажать [Подключиться]";
-App::$strings["Articles App"] = "Приложение \"Статьи\"";
-App::$strings["Create interactive articles"] = "Создать интерактивные статьи";
-App::$strings["Add Article"] = "Добавить статью";
-App::$strings["Continue"] = "Продолжить";
-App::$strings["Premium Channel App"] = "Приложение \"Премиальный канал\"";
-App::$strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Позволяет установить ограничения и условия для подключающихся к вашему каналу";
-App::$strings["Premium Channel Setup"] = "Установка премиального канала";
-App::$strings["Enable premium channel connection restrictions"] = "Включить ограничения для премиального канала";
-App::$strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Пожалуйста введите ваши ограничения или условия, такие, как оплата PayPal, правила использования и т.п.";
-App::$strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Этот канал до подключения может требовать дополнительных шагов или подтверждений следующих условий:";
-App::$strings["Potential connections will then see the following text before proceeding:"] = "Потенциальные соединения будут видеть следующий предварительный текст:";
-App::$strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Продолжая, я подтверждаю что я выполнил все условия представленные на данной странице.";
-App::$strings["(No specific instructions have been provided by the channel owner.)"] = "(Владельцем канала не было представлено никаких специальных инструкций.)";
-App::$strings["Restricted or Premium Channel"] = "Ограниченный или премиальный канал";
-App::$strings["Not found"] = "Не найдено.";
-App::$strings["Please refresh page"] = "Пожалуйста обновите страницу";
-App::$strings["Unknown error"] = "Неизвестная ошибка";
-App::$strings["Layout updated."] = "Шаблон обновлен.";
-App::$strings["PDL Editor App"] = "Приложение \"Редактор PDL\"";
-App::$strings["Provides the ability to edit system page layouts"] = "Предоставляет возможность редактировать макеты системных страниц";
-App::$strings["Edit System Page Description"] = "Редактировать описание системной страницы";
-App::$strings["(modified)"] = "(изменено)";
-App::$strings["Layout not found."] = "Шаблон не найден.";
-App::$strings["Module Name:"] = "Имя модуля:";
-App::$strings["Layout Help"] = "Помощь к шаблону";
-App::$strings["Edit another layout"] = "Редактировать другой шаблон";
-App::$strings["System layout"] = "Системный шаблон";
-App::$strings["Profile Unavailable."] = "Профиль недоступен.";
-App::$strings["Wiki App"] = "Приложение \"Wiki\"";
-App::$strings["Provide a wiki for your channel"] = "Предоставьте Wiki для вашего канала";
-App::$strings["Invalid channel"] = "Недействительный канал";
-App::$strings["Error retrieving wiki"] = "Ошибка при получении Wiki";
-App::$strings["Error creating zip file export folder"] = "Ошибка при создании zip-файла при экспорте каталога";
-App::$strings["Error downloading wiki: "] = "Ошибка загрузки Wiki:";
-App::$strings["Download"] = "Загрузить";
-App::$strings["Wiki name"] = "Название Wiki";
-App::$strings["Content type"] = "Тип содержимого";
-App::$strings["Any&nbsp;type"] = "Любой&nbsp;тип";
-App::$strings["Lock content type"] = "Зафиксировать тип содержимого";
-App::$strings["Create a status post for this wiki"] = "Создать публикацию о статусе этой Wiki";
-App::$strings["Edit Wiki Name"] = "Редактировать наименование Wiki";
-App::$strings["Wiki not found"] = "Wiki не найдена";
-App::$strings["Rename page"] = "Переименовать страницу";
-App::$strings["Error retrieving page content"] = "Ошибка при получении содержимого страницы";
-App::$strings["New page"] = "Новая страница";
-App::$strings["Revision Comparison"] = "Сравнение ревизий";
-App::$strings["Revert"] = "Отменить";
-App::$strings["Short description of your changes (optional)"] = "Краткое описание ваших изменений (необязательно)";
-App::$strings["Source"] = "Источник";
-App::$strings["New page name"] = "Новое имя страницы";
-App::$strings["Embed image from photo albums"] = "Встроить изображение из фотоальбома";
-App::$strings["History"] = "История";
-App::$strings["Error creating wiki. Invalid name."] = "Ошибка создания Wiki. Неверное имя.";
-App::$strings["A wiki with this name already exists."] = "Wiki с таким именем уже существует.";
-App::$strings["Wiki created, but error creating Home page."] = "Wiki создана, но возникла ошибка при создании домашней страницы";
-App::$strings["Error creating wiki"] = "Ошибка при создании Wiki";
-App::$strings["Error updating wiki. Invalid name."] = "Ошибка при обновлении Wiki. Неверное имя.";
-App::$strings["Error updating wiki"] = "Ошибка при обновлении Wiki";
-App::$strings["Wiki delete permission denied."] = "Нет прав на удаление Wiki.";
-App::$strings["Error deleting wiki"] = "Ошибка удаления Wiki";
-App::$strings["New page created"] = "Создана новая страница";
-App::$strings["Cannot delete Home"] = "Невозможно удалить домашнюю страницу";
-App::$strings["Current Revision"] = "Текущая ревизия";
-App::$strings["Selected Revision"] = "Выбранная ревизия";
-App::$strings["You must be authenticated."] = "Вы должны быть аутентифицированы.";
-App::$strings["Email verification resent"] = "Сообщение для проверки email отправлено повторно";
-App::$strings["Unable to resend email verification message."] = "Невозможно повторно отправить сообщение для проверки email";
-App::$strings["Enter a folder name"] = "Введите название каталога";
-App::$strings["or select an existing folder (doubleclick)"] = "или выберите существующий каталог (двойной щелчок)";
-App::$strings["Save to Folder"] = "Сохранить в каталог";
+App::$strings["Profile not found."] = "Профиль не найден.";
+App::$strings["Profile deleted."] = "Профиль удален.";
+App::$strings["Profile-"] = "Профиль -";
+App::$strings["New profile created."] = "Новый профиль создан.";
+App::$strings["Profile unavailable to clone."] = "Профиль недоступен для клонирования.";
+App::$strings["Profile unavailable to export."] = "Профиль недоступен для экспорта.";
+App::$strings["Profile Name is required."] = "Требуется имя профиля.";
+App::$strings["Marital Status"] = "Семейное положение";
+App::$strings["Romantic Partner"] = "Романтический партнер";
+App::$strings["Likes"] = "Нравится";
+App::$strings["Dislikes"] = "Не нравится";
+App::$strings["Work/Employment"] = "Работа / Занятость";
+App::$strings["Religion"] = "Религия";
+App::$strings["Political Views"] = "Политические взгляды";
+App::$strings["Gender"] = "Гендер";
+App::$strings["Sexual Preference"] = "Сексуальная ориентация";
+App::$strings["Homepage"] = "Домашняя страница";
+App::$strings["Interests"] = "Интересы";
+App::$strings["Profile updated."] = "Профиль обновлен.";
+App::$strings["Hide your connections list from viewers of this profile"] = "Скрывать от просмотра ваш список контактов в этом профиле";
+App::$strings["Edit Profile Details"] = "Редактирование профиля";
+App::$strings["View this profile"] = "Посмотреть этот профиль";
+App::$strings["Edit visibility"] = "Редактировать видимость";
+App::$strings["Profile Tools"] = "Инструменты профиля";
+App::$strings["Change cover photo"] = "Изменить фотографию обложки";
+App::$strings["Change profile photo"] = "Изменить фотографию профиля";
+App::$strings["Create a new profile using these settings"] = "Создать новый профиль с теми же настройками";
+App::$strings["Clone this profile"] = "Клонировать этот профиль";
+App::$strings["Delete this profile"] = "Удалить этот профиль";
+App::$strings["Add profile things"] = "Добавить в профиль";
+App::$strings["Personal"] = "Личное";
+App::$strings["Relationship"] = "Отношения";
+App::$strings["Miscellaneous"] = "Прочее";
+App::$strings["Import profile from file"] = "Импортировать профиль из файла";
+App::$strings["Export profile to file"] = "Экспортировать профиль в файл";
+App::$strings["Your gender"] = "Ваш пол";
+App::$strings["Marital status"] = "Семейное положение";
+App::$strings["Sexual preference"] = "Сексуальная ориентация";
+App::$strings["Profile name"] = "Имя профиля";
+App::$strings["This is your default profile."] = "Это ваш профиль по умолчанию.";
+App::$strings["Your full name"] = "Ваше полное имя";
+App::$strings["Title/Description"] = "Заголовок / описание";
+App::$strings["Street address"] = "Улица, дом, квартира";
+App::$strings["Locality/City"] = "Населенный пункт / город";
+App::$strings["Region/State"] = "Регион / Область";
+App::$strings["Postal/Zip code"] = "Почтовый индекс";
+App::$strings["Who (if applicable)"] = "Кто (если применимо)";
+App::$strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Примеры: ivan1990, Ivan Petrov, ivan@example.com";
+App::$strings["Since (date)"] = "С (дата)";
+App::$strings["Tell us about yourself"] = "Расскажите нам о себе";
+App::$strings["Homepage URL"] = "URL домашней страницы";
+App::$strings["Hometown"] = "Родной город";
+App::$strings["Political views"] = "Политические взгляды";
+App::$strings["Religious views"] = "Религиозные взгляды";
+App::$strings["Keywords used in directory listings"] = "Ключевые слова для участия в каталоге";
+App::$strings["Example: fishing photography software"] = "Например: fishing photography software";
+App::$strings["Musical interests"] = "Музыкальные интересы";
+App::$strings["Books, literature"] = "Книги, литература";
+App::$strings["Television"] = "Телевидение";
+App::$strings["Film/Dance/Culture/Entertainment"] = "Кино / танцы / культура / развлечения";
+App::$strings["Hobbies/Interests"] = "Хобби / интересы";
+App::$strings["Love/Romance"] = "Любовь / романтические отношения";
+App::$strings["School/Education"] = "Школа / образование";
+App::$strings["Contact information and social networks"] = "Информация и социальные сети для связи";
+App::$strings["My other channels"] = "Мои другие контакты";
+App::$strings["Communications"] = "Связи";
+App::$strings["Profile Image"] = "Изображение профиля";
+App::$strings["Edit Profiles"] = "Редактирование профилей";
+App::$strings["This page is available only to site members"] = "Эта страница доступна только для подписчиков сайта";
+App::$strings["Welcome"] = "Добро пожаловать";
+App::$strings["What would you like to do?"] = "Что бы вы хотели сделать?";
+App::$strings["Please bookmark this page if you would like to return to it in the future"] = "Пожалуйста, запомните эту страницу если вы хотите вернуться на неё в будущем";
+App::$strings["Upload a profile photo"] = "Загрузить фотографию профиля";
+App::$strings["Upload a cover photo"] = "Загрузить фотографию обложки";
+App::$strings["Edit your default profile"] = "Редактировать ваш профиль по умолчанию";
+App::$strings["View friend suggestions"] = "Просмотр рекомендуемых друзей";
+App::$strings["View the channel directory"] = "Просмотр каталога каналов";
+App::$strings["View/edit your channel settings"] = "Просмотреть / редактировать настройки вашего канала";
+App::$strings["View the site or project documentation"] = "Просмотр документации сайта / проекта";
+App::$strings["Visit your channel homepage"] = "Посетить страницу вашего канала";
+App::$strings["View your connections and/or add somebody whose address you already know"] = "Просмотреть ваши контакты и / или добавить кого-то чей адрес в уже знаете";
+App::$strings["View your personal stream (this may be empty until you add some connections)"] = "Ваш персональный поток (может быть пуст пока вы не добавите контакты)";
+App::$strings["View the public stream. Warning: this content is not moderated"] = "Просмотр публичного потока. Предупреждение: этот контент не модерируется";
+App::$strings["Page link"] = "Ссылка страницы";
+App::$strings["Edit Webpage"] = "Редактировать веб-страницу";
App::$strings["Create a new channel"] = "Создать новый канал";
+App::$strings["Channel Manager"] = "Менеджер каналов";
App::$strings["Current Channel"] = "Текущий канал";
App::$strings["Switch to one of your channels by selecting it."] = "Выбрать и переключиться на один из ваших каналов";
App::$strings["Default Channel"] = "Основной канал";
@@ -2413,39 +1452,15 @@ App::$strings["Make Default"] = "Сделать основным";
App::$strings["%d new messages"] = "%d новых сообщений";
App::$strings["%d new introductions"] = "%d новых представлений";
App::$strings["Delegated Channel"] = "Делегированный канал";
-App::$strings["Suggest Channels App"] = "Приложение \"Рекомендуемые каналы\"";
-App::$strings["Suggestions for channels in the \$Projectname network you might be interested in"] = "Предложения по рекомендуемым каналам в сети \$Projectname которые могут вас заинтересовать";
-App::$strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Нет предложений. Если это новый сайт, повторите попытку через 24 часа.";
-App::$strings["Ignore/Hide"] = "Игнорировать / cкрыть";
-App::$strings["Nothing to import."] = "Ничего импортировать.";
-App::$strings["Unable to download data from old server"] = "Невозможно загрузить данные со старого сервера";
-App::$strings["Imported file is empty."] = "Импортированный файл пуст.";
-App::$strings["Your service plan only allows %d channels."] = "Ваш класс обслуживания разрешает только %d каналов.";
-App::$strings["No channel. Import failed."] = "Канала нет. Импорт невозможен.";
-App::$strings["Import completed."] = "Импорт завершен.";
-App::$strings["You must be logged in to use this feature."] = "Вы должны войти в систему, чтобы использовать эту функцию.";
-App::$strings["Import Channel"] = "Импортировать канал";
-App::$strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file."] = "Используйте эту форм для импорта существующего канала с другого сервера / хаба. Вы можете получить идентификационные данные канала со старого сервера / хаба через сеть или предоставить файл экспорта.";
-App::$strings["File to Upload"] = "Файл для загрузки";
-App::$strings["Or provide the old server/hub details"] = "или предоставьте данные старого сервера";
-App::$strings["Your old identity address (xyz@example.com)"] = "Ваш старый адрес идентичности (xyz@example.com)";
-App::$strings["Your old login email address"] = "Ваш старый адрес электронной почты";
-App::$strings["Your old login password"] = "Ваш старый пароль";
-App::$strings["Import a few months of posts if possible (limited by available memory"] = "Импортировать несколько месяцев публикаций если возможно (ограничено доступной памятью)";
-App::$strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Для любого варианта, пожалуйста, выберите, следует ли сделать этот хаб вашим новым основным адресом, или ваше прежнее местоположение должно продолжить выполнять эту роль. Вы сможете отправлять сообщения из любого местоположения, но только одно может быть помечено как основное место для файлов, фотографий и мультимедиа.";
-App::$strings["Make this hub my primary location"] = "Сделать этот хаб главным";
-App::$strings["Move this channel (disable all previous locations)"] = "Переместить это канал (отключить все предыдущие месторасположения)";
-App::$strings["Use this channel nickname instead of the one provided"] = "Использовать псевдоним этого канала вместо предоставленного";
-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."] = "Оставьте пустым для сохранения существующего псевдонима канала. Вам будет случайным образом назначен похожий псевдоним если такое имя уже выделено на этом сайте.";
-App::$strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Процесс может занять несколько минут. Пожалуйста, отправьте форму только один раз и оставьте эту страницу открытой до завершения.";
-App::$strings["Hub not found."] = "Узел не найден.";
-App::$strings["Warning: Database versions differ by %1\$d updates."] = "Предупреждение: Версия базы данных отличается от %1\$d обновления.";
-App::$strings["Import completed"] = "Импорт завершён.";
-App::$strings["Import Items"] = "Импортировать объекты";
-App::$strings["Use this form to import existing posts and content from an export file."] = "Используйте эту форму для импорта существующих публикаций и содержимого из файла.";
+App::$strings["Cards App"] = "Приложение \"Карточки\"";
+App::$strings["Create personal planning cards"] = "Создать личные карточки планирования";
+App::$strings["Add Card"] = "Добавить карточку";
+App::$strings["Cards"] = "Карточки";
+App::$strings["This directory server requires an access token"] = "Для доступа к этому серверу каталогов требуется токен";
App::$strings["About this site"] = "Об этом сайте";
App::$strings["Site Name"] = "Название сайта";
App::$strings["Administrator"] = "Администратор";
+App::$strings["Terms of Service"] = "Условия предоставления услуг";
App::$strings["Software and Project information"] = "Информация о программном обеспечении и проекте";
App::$strings["This site is powered by \$Projectname"] = "Этот сайт работает на \$Projectname";
App::$strings["Federated and decentralised networking and identity services provided by Zot"] = "Объединенные и децентрализованные сети и службы идентификациии обеспечиваются Zot";
@@ -2453,209 +1468,402 @@ App::$strings["Additional federated transport protocols:"] = "Дополните
App::$strings["Version %s"] = "Версия %s";
App::$strings["Project homepage"] = "Домашняя страница проекта";
App::$strings["Developer homepage"] = "Домашняя страница разработчика";
-App::$strings["Cards App"] = "Приложение \"Карточки\"";
-App::$strings["Create personal planning cards"] = "Создать личные карточки планирования";
-App::$strings["Add Card"] = "Добавить карточку";
-App::$strings["Account removals are not allowed within 48 hours of changing the account password."] = "Удаление канала не разрешается в течении 48 часов после смены пароля у аккаунта.";
-App::$strings["Remove This Account"] = "Удалить этот аккаунт";
-App::$strings["This account and all its channels will be completely removed from the network. "] = "Этот аккаунт и все его каналы будут полностью удалены из сети.";
-App::$strings["Remove this account, all its channels and all its channel clones from the network"] = "Удалить этот аккаунт, все его каналы и их клоны из сети.";
-App::$strings["By default only the instances of the channels located on this hub will be removed from the network"] = "По умолчанию только представление канала расположенное на данном хабе будет удалено из сети";
+App::$strings["No ratings"] = "Оценок нет";
+App::$strings["Ratings"] = "Оценки";
+App::$strings["Rating: "] = "Оценкa:";
+App::$strings["Website: "] = "Веб-сайт:";
+App::$strings["Description: "] = "Описание:";
+App::$strings["Webpages App"] = "Приложение \"Веб-страницы\"";
+App::$strings["Provide managed web pages on your channel"] = "Предоставлять управляемые веб-страницы на Вашем канале";
+App::$strings["Import Webpage Elements"] = "Импортировать части веб-страницы";
+App::$strings["Import selected"] = "Импортировать выбранное";
+App::$strings["Export Webpage Elements"] = "Экспортировать часть веб-страницы";
+App::$strings["Export selected"] = "Экспортировать выбранное";
+App::$strings["Webpages"] = "Веб-страницы";
+App::$strings["Actions"] = "Действия";
+App::$strings["Page Link"] = "Ссылка страницы";
+App::$strings["Page Title"] = "Заголовок страницы";
+App::$strings["Invalid file type."] = "Неверный тип файла.";
+App::$strings["Error opening zip file"] = "Ошибка открытия ZIP файла";
+App::$strings["Invalid folder path."] = "Неверный путь к каталогу.";
+App::$strings["No webpage elements detected."] = "Не обнаружено частей веб-страницы.";
+App::$strings["Import complete."] = "Импорт завершен.";
+App::$strings["Channel name changes are not allowed within 48 hours of changing the account password."] = "Изменение названия канала не разрешается в течении 48 часов после смены пароля у аккаунта.";
+App::$strings["Reserved nickname. Please choose another."] = "Зарезервированый псевдоним. Пожалуйста, выберите другой.";
+App::$strings["Nickname has unsupported characters or is already being used on this site."] = "Псевдоним имеет недопустимые символы или уже используется на этом сайте.";
+App::$strings["Change channel nickname/address"] = "Изменить псевдоним / адрес канала";
+App::$strings["Any/all connections on other networks will be lost!"] = "Любые / все контакты в других сетях будут утеряны!";
+App::$strings["New channel address"] = "Новый адрес канала";
+App::$strings["Rename Channel"] = "Переименовать канал";
+App::$strings["Item is not editable"] = "Элемент нельзя редактировать";
+App::$strings["Edit post"] = "Редактировать сообщение";
+App::$strings["Invalid message"] = "Неверное сообщение";
+App::$strings["no results"] = "Ничего не найдено.";
+App::$strings["channel sync processed"] = "синхронизация канала завершена";
+App::$strings["queued"] = "в очереди";
+App::$strings["posted"] = "опубликовано";
+App::$strings["accepted for delivery"] = "принято к доставке";
+App::$strings["updated"] = "обновлено";
+App::$strings["update ignored"] = "обновление игнорируется";
+App::$strings["permission denied"] = "доступ запрещен";
+App::$strings["recipient not found"] = "получатель не найден";
+App::$strings["mail recalled"] = "почта отозвана";
+App::$strings["duplicate mail received"] = "получено дублирующее сообщение";
+App::$strings["mail delivered"] = "почта доставлен";
+App::$strings["Delivery report for %1\$s"] = "Отчёт о доставке для %1\$s";
+App::$strings["Options"] = "Параметры";
+App::$strings["Redeliver"] = "Доставить повторно";
+App::$strings["Failed to create source. No channel selected."] = "Не удалось создать источник. Канал не выбран.";
+App::$strings["Source created."] = "Источник создан.";
+App::$strings["Source updated."] = "Источник обновлен.";
+App::$strings["Sources App"] = "Приложение \"Источники канала\"";
+App::$strings["Automatically import channel content from other channels or feeds"] = "Автоматический импорт контента из других каналов или лент";
+App::$strings["*"] = "";
+App::$strings["Channel Sources"] = "Источники канала";
+App::$strings["Manage remote sources of content for your channel."] = "Управление удалённым источниками содержимого для вашего канала";
+App::$strings["New Source"] = "Новый источник";
+App::$strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Импортировать всё или выбранное содержимое из следующего канала в этот канал и распределить его в соответствии с вашими настройками.";
+App::$strings["Only import content with these words (one per line)"] = "Импортировать содержимое только с этим текстом (построчно)";
+App::$strings["Leave blank to import all public content"] = "Оставьте пустым для импорта всего общедоступного содержимого";
+App::$strings["Channel Name"] = "Название канала";
+App::$strings["Add the following categories to posts imported from this source (comma separated)"] = "Добавить следующие категории к импортированным публикациям из этого источника (через запятые)";
+App::$strings["Optional"] = "Необязательно";
+App::$strings["Resend posts with this channel as author"] = "Отправить публикации в этот канал повторно как автор";
+App::$strings["Copyrights may apply"] = "Могут применяться авторские права";
+App::$strings["Source not found."] = "Источник не найден.";
+App::$strings["Edit Source"] = "Редактировать источник";
+App::$strings["Delete Source"] = "Удалить источник";
+App::$strings["Source removed"] = "Источник удален";
+App::$strings["Unable to remove source."] = "Невозможно удалить источник.";
+App::$strings["Like/Dislike"] = "Нравится / не нравится";
+App::$strings["This action is restricted to members."] = "Это действие доступно только участникам.";
+App::$strings["Please <a href=\"rmagic\">login with your \$Projectname ID</a> or <a href=\"register\">register as a new \$Projectname member</a> to continue."] = "Пожалуйста, для продолжения <a href=\"rmagic\"> войдите с вашим \$Projectname ID</a> или <a href=\"register\">зарегистрируйтесь как новый участник \$Projectname</a>.";
+App::$strings["Invalid request."] = "Неверный запрос.";
+App::$strings["channel"] = "канал";
+App::$strings["thing"] = "предмет";
+App::$strings["Channel unavailable."] = "Канал недоступен.";
+App::$strings["Previous action reversed."] = "Предыдущее действие отменено.";
+App::$strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s нравится %3\$s %2\$s";
+App::$strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s не нравится %2\$s %3\$s";
+App::$strings["%1\$s agrees with %2\$s's %3\$s"] = "%1\$s согласен с %2\$s %3\$s";
+App::$strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%1\$s не согласен с %2\$s %3\$s";
+App::$strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%1\$s воздерживается от решения по %2\$s%3\$s";
+App::$strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s посещает %2\$s%3\$s";
+App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s не посещает %2\$s%3\$s";
+App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s может посетить %2\$s%3\$s";
+App::$strings["Action completed."] = "Действие завершено.";
+App::$strings["Thank you."] = "Спасибо.";
+App::$strings["No default suggestions were found."] = "Предложений по умолчанию не найдено.";
+App::$strings["%d rating"] = array(
+ 0 => "%d оценка",
+ 1 => "%d оценки",
+ 2 => "%d оценок",
+);
+App::$strings["Gender: "] = "Пол:";
+App::$strings["Status: "] = "Статус:";
+App::$strings["Homepage: "] = "Домашняя страница:";
+App::$strings["Age:"] = "Возраст:";
+App::$strings["Location:"] = "Местоположение:";
+App::$strings["Description:"] = "Описание:";
+App::$strings["Hometown:"] = "Родной город:";
+App::$strings["About:"] = "О себе:";
+App::$strings["Connect"] = "Подключить";
+App::$strings["Public Forum:"] = "Публичный форум:";
+App::$strings["Keywords: "] = "Ключевые слова:";
+App::$strings["Don't suggest"] = "Не предлагать";
+App::$strings["Common connections (estimated):"] = "Общие контакты (оценочно):";
+App::$strings["Global Directory"] = "Глобальный каталог";
+App::$strings["Local Directory"] = "Локальный каталог";
+App::$strings["Finding:"] = "Поиск:";
+App::$strings["Channel Suggestions"] = "Рекомендации каналов";
+App::$strings["next page"] = "следующая страница";
+App::$strings["previous page"] = "предыдущая страница";
+App::$strings["Sort options"] = "Параметры сортировки";
+App::$strings["Alphabetic"] = "По алфавиту";
+App::$strings["Reverse Alphabetic"] = "Против алфавита";
+App::$strings["Newest to Oldest"] = "От новых к старым";
+App::$strings["Oldest to Newest"] = "От старых к новым";
+App::$strings["No entries (some entries may be hidden)."] = "Нет записей (некоторые записи могут быть скрыты).";
+App::$strings["Xchan Lookup"] = "Поиск Xchan";
+App::$strings["Lookup xchan beginning with (or webbie): "] = "Запрос Xchan начинается с (или webbie):";
+App::$strings["Suggest Channels App"] = "Приложение \"Рекомендуемые каналы\"";
+App::$strings["Suggestions for channels in the \$Projectname network you might be interested in"] = "Предложения по рекомендуемым каналам в сети \$Projectname которые могут вас заинтересовать";
+App::$strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Нет предложений. Если это новый сайт, повторите попытку через 24 часа.";
+App::$strings["Ignore/Hide"] = "Игнорировать / cкрыть";
App::$strings["Unable to find your hub."] = "Невозможно найти ваш сервер";
App::$strings["Post successful."] = "Успешно опубликовано.";
-App::$strings["Authentication failed."] = "Ошибка аутентификации.";
-App::$strings["Comanche page description language help"] = "Помощь по языку описания страниц Comanche ";
-App::$strings["Layout Description"] = "Описание шаблона";
-App::$strings["Download PDL file"] = "Загрузить PDL файл";
-App::$strings["This page is available only to site members"] = "Эта страница доступна только для подписчиков сайта";
-App::$strings["Welcome"] = "Добро пожаловать";
-App::$strings["What would you like to do?"] = "Что бы вы хотели сделать?";
-App::$strings["Please bookmark this page if you would like to return to it in the future"] = "Пожалуйста, запомните эту страницу если вы хотите вернуться на неё в будущем";
-App::$strings["Upload a profile photo"] = "Загрузить фотографию профиля";
-App::$strings["Upload a cover photo"] = "Загрузить фотографию обложки";
-App::$strings["Edit your default profile"] = "Редактировать ваш профиль по умолчанию";
-App::$strings["View friend suggestions"] = "Просмотр рекомендуемых друзей";
-App::$strings["View the channel directory"] = "Просмотр каталога каналов";
-App::$strings["View/edit your channel settings"] = "Просмотреть / редактировать настройки вашего канала";
-App::$strings["View the site or project documentation"] = "Просмотр документации сайта / проекта";
-App::$strings["Visit your channel homepage"] = "Посетить страницу вашего канала";
-App::$strings["View your connections and/or add somebody whose address you already know"] = "Просмотреть ваши контакты и / или добавить кого-то чей адрес в уже знаете";
-App::$strings["View your personal stream (this may be empty until you add some connections)"] = "Ваш персональный поток (может быть пуст пока вы не добавите контакты)";
-App::$strings["View the public stream. Warning: this content is not moderated"] = "Просмотр публичного потока. Предупреждение: этот контент не модерируется";
-App::$strings["Forums"] = "Форумы";
-App::$strings["Notes"] = "Заметки";
-App::$strings["Suggestions"] = "Рекомендации";
-App::$strings["See more..."] = "Просмотреть больше...";
-App::$strings["New Network Activity"] = "Новая сетевая активность";
-App::$strings["New Network Activity Notifications"] = "Новые уведомления о сетевой активности";
-App::$strings["View your network activity"] = "Просмотреть вашу сетевую активность";
-App::$strings["Mark all notifications read"] = "Пометить уведомления как прочитанные";
-App::$strings["Show new posts only"] = "Показывать только новые публикации";
-App::$strings["Filter by name"] = "Отфильтровать по имени";
-App::$strings["New Home Activity"] = "Новая локальная активность";
-App::$strings["New Home Activity Notifications"] = "Новые уведомления локальной активности";
-App::$strings["View your home activity"] = "Просмотреть локальную активность";
-App::$strings["Mark all notifications seen"] = "Пометить уведомления как просмотренные";
-App::$strings["New Mails"] = "Новая переписка";
-App::$strings["New Mails Notifications"] = "Уведомления о новой переписке";
-App::$strings["View your private mails"] = "Просмотреть вашу личную переписку";
-App::$strings["Mark all messages seen"] = "Пометить сообщения как просмотренные";
-App::$strings["New Events"] = "Новые события";
-App::$strings["New Events Notifications"] = "Уведомления о новых событиях";
-App::$strings["View events"] = "Просмотреть события";
-App::$strings["Mark all events seen"] = "Пометить все события как просмотренные";
-App::$strings["New Connections Notifications"] = "Уведомления о новых контактах";
-App::$strings["View all connections"] = "Просмотр всех контактов";
-App::$strings["New Files"] = "Новые файлы";
-App::$strings["New Files Notifications"] = "Уведомления о новых файлах";
-App::$strings["Notices"] = "Оповещения";
-App::$strings["View all notices"] = "Просмотреть все оповещения";
-App::$strings["Mark all notices seen"] = "Пометить все оповещения как просмотренные";
-App::$strings["New Registrations"] = "Новые регистрации";
-App::$strings["New Registrations Notifications"] = "Уведомления о новых регистрациях";
-App::$strings["Public Stream Notifications"] = "Уведомления публичного потока";
-App::$strings["View the public stream"] = "Просмотреть публичный поток";
-App::$strings["Sorry, you have got no notifications at the moment"] = "Извините, но сейчас у вас нет уведомлений";
-App::$strings["Tasks"] = "Задачи";
-App::$strings["photo/image"] = "фотография / изображение";
-App::$strings["Select Channel"] = "Выбрать канал";
-App::$strings["Read-write"] = "Чтение-запись";
-App::$strings["Read-only"] = "Только чтение";
-App::$strings["My Calendars"] = "Мои календари";
-App::$strings["Shared Calendars"] = "Общие календари";
-App::$strings["Share this calendar"] = "Поделиться этим календарём";
-App::$strings["Calendar name and color"] = "Имя и цвет календаря";
-App::$strings["Create new calendar"] = "Создать новый календарь";
-App::$strings["Calendar Name"] = "Имя календаря";
-App::$strings["Calendar Tools"] = "Инструменты календаря";
-App::$strings["Import calendar"] = "Импортировать календарь";
-App::$strings["Select a calendar to import to"] = "Выбрать календарь для импорта в";
-App::$strings["Addressbooks"] = "Адресные книги";
-App::$strings["Addressbook name"] = "Имя адресной книги";
-App::$strings["Create new addressbook"] = "Создать новую адресную книгу";
-App::$strings["Addressbook Name"] = "Имя адресной книги";
-App::$strings["Addressbook Tools"] = "Инструменты адресной книги";
-App::$strings["Import addressbook"] = "Импортировать адресную книгу";
-App::$strings["Select an addressbook to import to"] = "Выбрать адресную книгу для импорта в";
-App::$strings["__ctx:widget__ Activity"] = "Активность";
-App::$strings["HQ Control Panel"] = "Панель управления HQ";
-App::$strings["Create a new post"] = "Создать новую публикацию";
-App::$strings["You have %1$.0f of %2$.0f allowed connections."] = "У вас есть %1$.0f из %2$.0f разрешенных контактов.";
-App::$strings["Add New Connection"] = "Добавить новый контакт";
-App::$strings["Enter channel address"] = "Введите адрес канала";
-App::$strings["Examples: bob@example.com, https://example.com/barbara"] = "Пример: ivan@example.com, http://example.com/ivan";
-App::$strings["Archives"] = "Архивы";
-App::$strings["Suggested Chatrooms"] = "Рекомендуемые чаты";
-App::$strings["Rating Tools"] = "Инструменты оценки";
-App::$strings["Rate Me"] = "Оценить меня";
-App::$strings["View Ratings"] = "Просмотр оценок";
-App::$strings["Profile Creation"] = "Создание профиля";
-App::$strings["Upload profile photo"] = "Загрузить фотографию профиля";
-App::$strings["Upload cover photo"] = "Загрузить фотографию обложки";
-App::$strings["Find and Connect with others"] = "Найти и вступить в контакт";
-App::$strings["View the directory"] = "Просмотреть каталог";
-App::$strings["Manage your connections"] = "Управление вашими контактами";
-App::$strings["Communicate"] = "Связаться";
-App::$strings["View your channel homepage"] = "Домашняя страница канала";
-App::$strings["View your network stream"] = "Просмотреть ваш сетевой поток";
-App::$strings["Documentation"] = "Документация";
-App::$strings["Missing Features?"] = "Отсутствует функция?";
-App::$strings["Pin apps to navigation bar"] = "Прикрепить приложение к панели";
-App::$strings["Install more apps"] = "Установить больше приложений";
-App::$strings["View public stream"] = "Просмотреть публичный поток";
-App::$strings["Private Mail Menu"] = "Меню личной переписки";
-App::$strings["Combined View"] = "Комбинированный вид";
-App::$strings["Inbox"] = "Входящие";
-App::$strings["Outbox"] = "Исходящие";
-App::$strings["New Message"] = "Новое сообщение";
-App::$strings["Add new page"] = "Добавить новую страницу";
-App::$strings["Wiki Pages"] = "Wiki страницы";
-App::$strings["Page name"] = "Название страницы";
-App::$strings["Events Tools"] = "Инструменты для событий";
-App::$strings["Export Calendar"] = "Экспортировать календарь";
-App::$strings["Import Calendar"] = "Импортировать календарь";
-App::$strings["Overview"] = "Обзор";
-App::$strings["Account settings"] = "Настройки аккаунта";
-App::$strings["Channel settings"] = "Настройки канала";
-App::$strings["Display settings"] = "Настройки отображения";
-App::$strings["Addon settings"] = "Настройки расширений";
-App::$strings["Manage locations"] = "Управление местоположением";
-App::$strings["Member registrations waiting for confirmation"] = "Регистрации участников, ожидающие подверждения";
+App::$strings["Unable to lookup recipient."] = "Не удалось найти получателя.";
+App::$strings["Unable to communicate with requested channel."] = "Не удалось установить связь с запрашиваемым каналом.";
+App::$strings["Cannot verify requested channel."] = "Не удалось установить подлинность требуемого канала.";
+App::$strings["Selected channel has private message restrictions. Send failed."] = "Выбранный канал ограничивает частные сообщения. Отправка не удалась.";
+App::$strings["Messages"] = "Сообщения";
+App::$strings["message"] = "сообщение";
+App::$strings["Message recalled."] = "Сообщение отозванно.";
+App::$strings["Conversation removed."] = "Беседа удалена.";
+App::$strings["Expires YYYY-MM-DD HH:MM"] = "Истекает YYYY-MM-DD HH:MM";
+App::$strings["Requested channel is not in this network"] = "Запрашиваемый канал не доступен.";
+App::$strings["Send Private Message"] = "Отправить личное сообщение";
+App::$strings["To:"] = "Кому:";
+App::$strings["Subject:"] = "Тема:";
+App::$strings["Attach file"] = "Прикрепить файл";
+App::$strings["Send"] = "Отправить";
+App::$strings["Set expiration date"] = "Установить срок действия";
+App::$strings["Delete message"] = "Удалить сообщение";
+App::$strings["Delivery report"] = "Отчёт о доставке";
+App::$strings["Recall message"] = "Отозвать сообщение";
+App::$strings["Message has been recalled."] = "Сообщение отозванно";
+App::$strings["Delete Conversation"] = "Удалить беседу";
+App::$strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Безопасная связь недоступна. Вы <strong>можете</strong> попытаться ответить со страницы профиля отправителя.";
+App::$strings["Send Reply"] = "Отправить ответ";
+App::$strings["Your message for %s (%s):"] = "Ваше сообщение для %s (%s):";
+App::$strings["Public Hubs"] = "Публичные хабы";
+App::$strings["The listed hubs allow public registration for the \$Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself <strong>may</strong> provide additional details."] = "Указанные хабы разрешают публичную регистрацию для сети \$Projectname. Все хабы в сети взаимосвязаны, поэтому членство в любом из них передает членство во всю сеть. Некоторым хабам может потребоваться подписка или предоставление многоуровневых планов обслуживания. Сам хаб <strong>может</strong> предоставить дополнительные сведения.";
+App::$strings["Hub URL"] = "URL сервера";
+App::$strings["Access Type"] = "Тип доступа";
+App::$strings["Registration Policy"] = "Политика регистрации";
+App::$strings["Stats"] = "Статистика";
+App::$strings["Software"] = "Программное обеспечение";
+App::$strings["Rate"] = "Оценка";
+App::$strings["webpage"] = "веб-страница";
+App::$strings["block"] = "заблокировать";
+App::$strings["layout"] = "шаблон";
+App::$strings["menu"] = "меню";
+App::$strings["%s element installed"] = "%s элемент установлен";
+App::$strings["%s element installation failed"] = "%sустановка элемента неудачна.";
+App::$strings["Select a bookmark folder"] = "Выбрать каталог для закладок";
+App::$strings["Save Bookmark"] = "Сохранить закладку";
+App::$strings["URL of bookmark"] = "URL закладки";
+App::$strings["Or enter new bookmark folder name"] = "или введите новое имя каталога закладок";
+App::$strings["Enter a folder name"] = "Введите название каталога";
+App::$strings["or select an existing folder (doubleclick)"] = "или выберите существующий каталог (двойной щелчок)";
+App::$strings["Save to Folder"] = "Сохранить в каталог";
+App::$strings["Remote Diagnostics App"] = "Приложение \"Удалённая диагностика\"";
+App::$strings["Perform diagnostics on remote channels"] = "Производит диагностику удалённых каналов";
+App::$strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Превышено максимальное количество регистраций на сегодня. Пожалуйста, попробуйте снова завтра.";
+App::$strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Пожалуйста, подтвердите согласие с \"Условиями обслуживания\". Регистрация не удалась.";
+App::$strings["Passwords do not match."] = "Пароли не совпадают.";
+App::$strings["Registration successful. Continue to create your first channel..."] = "Регистрация завершена успешно. Для продолжения создайте свой первый канал...";
+App::$strings["Registration successful. Please check your email for validation instructions."] = "Регистрация завершена успешно. Пожалуйста проверьте вашу электронную почту для подтверждения.";
+App::$strings["Your registration is pending approval by the site owner."] = "Ваша регистрация ожидает одобрения администрации сайта.";
+App::$strings["Your registration can not be processed."] = "Ваша регистрация не может быть обработана.";
+App::$strings["Registration on this hub is disabled."] = "Регистрация на этом хабе отключена.";
+App::$strings["Registration on this hub is by approval only."] = "Регистрация на этом хабе только по утверждению.";
+App::$strings["<a href=\"pubsites\">Register at another affiliated hub.</a>"] = "<a href=\"pubsites\">Зарегистрироваться на другом хабе.</a>";
+App::$strings["Registration on this hub is by invitation only."] = "Регистрация на этом хабе доступна только по приглашениям.";
+App::$strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Этот сайт превысил максимальное количество регистраций на сегодня. Пожалуйста, попробуйте снова завтра. ";
+App::$strings["I accept the %s for this website"] = "Я принимаю %s для этого веб-сайта.";
+App::$strings["I am over %s years of age and accept the %s for this website"] = "Мой возраст превышает %s лет и я принимаю %s для этого веб-сайта.";
+App::$strings["Your email address"] = "Ваш адрес электронной почты";
+App::$strings["Choose a password"] = "Выберите пароль";
+App::$strings["Please re-enter your password"] = "Пожалуйста, введите пароль еще раз";
+App::$strings["Please enter your invitation code"] = "Пожалуйста, введите Ваш код приглашения";
+App::$strings["Your Name"] = "Ваше имя";
+App::$strings["Real names are preferred."] = "Предпочтительны реальные имена.";
+App::$strings["Your nickname will be used to create an easy to remember channel address e.g. nickname%s"] = "Ваш псевдоним будет использован для создания легко запоминаемого адреса канала, напр. nickname %s";
+App::$strings["Select a channel permission role for your usage needs and privacy requirements."] = "Выберите разрешения для канала в зависимости от ваших потребностей и требований приватности.";
+App::$strings["no"] = "нет";
+App::$strings["yes"] = "да";
+App::$strings["Register"] = "Регистрация";
+App::$strings["This site requires email verification. After completing this form, please check your email for further instructions."] = "Этот сайт требует проверку адреса электронной почты. После заполнения этой формы, пожалуйста, проверьте ваш почтовый ящик для дальнейших инструкций.";
+App::$strings["Cover Photos"] = "Фотографии обложки";
+App::$strings["female"] = "женщина";
+App::$strings["%1\$s updated her %2\$s"] = "%1\$s обновила её %2\$s";
+App::$strings["male"] = "мужчина";
+App::$strings["%1\$s updated his %2\$s"] = "%1\$s обновил его %2\$s";
+App::$strings["%1\$s updated their %2\$s"] = "%1\$s обновили их %2\$s";
+App::$strings["cover photo"] = "фотография обложки";
+App::$strings["Your cover photo may be visible to anybody on the internet"] = "Фотография вашей обложки может быть видна всем в Интернете";
+App::$strings["Change Cover Photo"] = "Изменить фотографию обложки";
+App::$strings["Documentation Search"] = "Поиск документации";
+App::$strings["About"] = "О себе";
+App::$strings["Administrators"] = "Администраторы";
+App::$strings["Developers"] = "Разработчики";
+App::$strings["Tutorials"] = "Руководства";
+App::$strings["\$Projectname Documentation"] = "\$Projectname Документация";
+App::$strings["Contents"] = "Содержимое";
+App::$strings["Article"] = "Статья";
+App::$strings["Item has been removed."] = "Элемент был удалён.";
+App::$strings["Tag removed"] = "Тег удалён";
+App::$strings["Remove Item Tag"] = "Удалить тег элемента";
+App::$strings["Select a tag to remove: "] = "Выбрать тег для удаления:";
+App::$strings["No such group"] = "Нет такой группы";
+App::$strings["No such channel"] = "Нет такого канала";
+App::$strings["Privacy group is empty"] = "Группа безопасности пуста";
+App::$strings["Privacy group: "] = "Группа безопасности: ";
+App::$strings["Invalid channel."] = "Недействительный канал.";
+App::$strings["network"] = "сеть";
+App::$strings["\$Projectname"] = "";
+App::$strings["Welcome to %s"] = "Добро пожаловать в %s";
+App::$strings["Permission Denied."] = "Доступ запрещен.";
+App::$strings["File not found."] = "Файл не найден.";
+App::$strings["Edit file permissions"] = "Редактировать разрешения файла";
+App::$strings["Set/edit permissions"] = "Редактировать разрешения";
+App::$strings["Include all files and sub folders"] = "Включить все файлы и подкаталоги";
+App::$strings["Return to file list"] = "Вернутся к списку файлов";
+App::$strings["Copy/paste this code to attach file to a post"] = "Копировать / вставить этот код для прикрепления файла к публикации";
+App::$strings["Copy/paste this URL to link file from a web page"] = "Копировать / вставить эту URL для ссылки на файл со страницы";
+App::$strings["Share this file"] = "Поделиться этим файлом";
+App::$strings["Show URL to this file"] = "Показать URL этого файла";
+App::$strings["Show in your contacts shared folder"] = "Показать общий каталог в ваших контактах";
+App::$strings["No channel."] = "Канала нет.";
+App::$strings["No connections in common."] = "Общих контактов нет.";
+App::$strings["View Common Connections"] = "Просмотр общий контактов";
+App::$strings["Email verification resent"] = "Сообщение для проверки email отправлено повторно";
+App::$strings["Unable to resend email verification message."] = "Невозможно повторно отправить сообщение для проверки email";
+App::$strings["No connections."] = "Контактов нет.";
+App::$strings["Visit %s's profile [%s]"] = "Посетить %s ​​профиль [%s]";
+App::$strings["View Connections"] = "Просмотр контактов";
+App::$strings["Blocked accounts"] = "Заблокированные аккаунты";
+App::$strings["Expired accounts"] = "Просроченные аккаунты";
+App::$strings["Expiring accounts"] = "Близкие к просрочке аккаунты";
+App::$strings["Message queues"] = "Очередь сообщений";
+App::$strings["Your software should be updated"] = "Ваше программное обеспечение должно быть обновлено";
+App::$strings["Summary"] = "Резюме";
+App::$strings["Registered accounts"] = "Зарегистрированные аккаунты";
+App::$strings["Pending registrations"] = "Ждут утверждения";
+App::$strings["Registered channels"] = "Зарегистрированные каналы";
+App::$strings["Active addons"] = "Активные расширения";
+App::$strings["Version"] = "Версия системы";
+App::$strings["Repository version (master)"] = "Версия репозитория (master)";
+App::$strings["Repository version (dev)"] = "Версия репозитория (dev)";
+App::$strings["No service class restrictions found."] = "Ограничений класса обслуживание не найдено.";
+App::$strings["Website:"] = "Веб-сайт:";
+App::$strings["Remote Channel [%s] (not yet known on this site)"] = "Удалённый канал [%s] (пока неизвестен на этом сайте)";
+App::$strings["Rating (this information is public)"] = "Оценка (эта информация общедоступна)";
+App::$strings["Optionally explain your rating (this information is public)"] = "Объясните свою оценку (необязательно; эта информация общедоступна)";
+App::$strings["Edit Card"] = "Редактировать карточку";
+App::$strings["No valid account found."] = "Действительный аккаунт не найден.";
+App::$strings["Password reset request issued. Check your email."] = "Запрос на сброс пароля отправлен. Проверьте вашу электронную почту.";
+App::$strings["Site Member (%s)"] = "Участник сайта (%s)";
+App::$strings["Password reset requested at %s"] = "Запрошен сброс пароля на %s";
+App::$strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Запрос не может быть проверен. (Вы могли отправить его раньше). Сброс пароля не возможен.";
+App::$strings["Password Reset"] = "Сбросить пароль";
+App::$strings["Your password has been reset as requested."] = "Ваш пароль в соответствии с просьбой сброшен.";
+App::$strings["Your new password is"] = "Ваш новый пароль";
+App::$strings["Save or copy your new password - and then"] = "Сохраните ваш новый пароль и затем";
+App::$strings["click here to login"] = "нажмите здесь чтобы войти";
+App::$strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Ваш пароль может быть изменён на странице <em>Настройки</em> после успешного входа.";
+App::$strings["Your password has changed at %s"] = "Пароль был изменен на %s";
+App::$strings["Forgot your Password?"] = "Забыли ваш пароль?";
+App::$strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Введите ваш адрес электронной почты и нажмите отправить чтобы сбросить пароль. Затем проверьте ваш почтовый ящик для дальнейших инструкций. ";
+App::$strings["Email Address"] = "Адрес электронной почты";
+App::$strings["Name is required"] = "Необходимо имя";
+App::$strings["Key and Secret are required"] = "Требуются ключ и код";
+App::$strings["OAuth Apps Manager App"] = "Приложение \"Менеджер Oauth\"";
+App::$strings["OAuth authentication tokens for mobile and remote apps"] = "Токены аутентификации OAuth для мобильный и удалённых приложений";
+App::$strings["Consumer Key"] = "Ключ клиента";
+App::$strings["Icon url"] = "URL значка";
+App::$strings["Application not found."] = "Приложение не найдено.";
+App::$strings["Connected OAuth Apps"] = "Подключенные приложения OAuth";
+App::$strings["Mark all seen"] = "Отметить как просмотренное";
+App::$strings["Likes %1\$s's %2\$s"] = "Нравится %1\$s %2\$s";
+App::$strings["Doesn't like %1\$s's %2\$s"] = "Не нравится %1\$s %2\$s";
+App::$strings["Will attend %1\$s's %2\$s"] = "Примет участие %1\$s %2\$s";
+App::$strings["Will not attend %1\$s's %2\$s"] = "Не примет участие %1\$s %2\$s";
+App::$strings["May attend %1\$s's %2\$s"] = "Возможно примет участие %1\$s %2\$s";
+App::$strings["ActivityPub"] = "";
+App::$strings["0. Beginner/Basic"] = "Начинающий / Базовый";
+App::$strings["1. Novice - not skilled but willing to learn"] = "1. Новичок - не опытный, но желающий учиться";
+App::$strings["2. Intermediate - somewhat comfortable"] = "2. Промежуточный - более удобный";
+App::$strings["3. Advanced - very comfortable"] = "3. Продвинутый - очень удобный";
+App::$strings["4. Expert - I can write computer code"] = "4. Эксперт - я умею программировать";
+App::$strings["5. Wizard - I probably know more than you do"] = "5. Волшебник - возможно я знаю больше чем ты";
+App::$strings["Unable to verify channel signature"] = "Невозможно проверить подпись канала";
+App::$strings["Apps"] = "Приложения";
+App::$strings["Affinity Tool"] = "Степень сходства";
+App::$strings["Site Admin"] = "Администратор сайта";
+App::$strings["Report Bug"] = "Сообщить об ошибке";
+App::$strings["Bookmarks"] = "Закладки";
+App::$strings["Chatrooms"] = "Чаты";
+App::$strings["Remote Diagnostics"] = "Удалённая диагностика";
+App::$strings["Suggest Channels"] = "Предлагаемые каналы";
+App::$strings["Login"] = "Войти";
+App::$strings["Stream"] = "Поток";
+App::$strings["Wiki"] = "";
+App::$strings["Channel Home"] = "Главная канала";
+App::$strings["Events"] = "События";
+App::$strings["Directory"] = "Каталог";
+App::$strings["Mail"] = "Переписка";
+App::$strings["Chat"] = "Чат";
+App::$strings["Probe"] = "Проба";
+App::$strings["Suggest"] = "Предложить";
+App::$strings["Random Channel"] = "Случайный канал";
+App::$strings["Invite"] = "Пригласить";
App::$strings["Features"] = "Функции";
-App::$strings["Inspect queue"] = "Просмотр очереди";
-App::$strings["DB updates"] = "Обновление базы данных";
-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["Show posts that I have filed to %s"] = "Показывать публикации которые я добавил в %s";
-App::$strings["Show filed post categories"] = "Показывать категории добавленных публикаций";
-App::$strings["Panel search"] = "Панель поиска";
-App::$strings["Remove active filter"] = "Удалить активный фильтр";
-App::$strings["Stream Filters"] = "Фильтры потока";
-App::$strings["Chat Members"] = "Участники чата";
-App::$strings["Click to show more"] = "Нажмите чтобы показать больше";
-App::$strings["Refresh"] = "Обновить";
-App::$strings["Commented Date"] = "По комментариям";
-App::$strings["Order by last commented date"] = "Сортировка по дате последнего комментария";
-App::$strings["Posted Date"] = "По публикациям";
-App::$strings["Order by last posted date"] = "Сортировка по дате последней публикации";
-App::$strings["Date Unthreaded"] = "По порядку";
-App::$strings["Order unthreaded by date"] = "Сортировка в порядке поступления";
-App::$strings["Stream Order"] = "Упорядочить поток";
-App::$strings["Bookmarked Chatrooms"] = "Закладки чатов";
-App::$strings["Received Messages"] = "Полученные сообщения";
-App::$strings["Sent Messages"] = "Отправленные сообщения";
-App::$strings["Conversations"] = "Беседы";
-App::$strings["No messages."] = "Сообщений нет.";
-App::$strings["Delete conversation"] = "Удалить беседу";
+App::$strings["Language"] = "Язык";
+App::$strings["Post"] = "Публикация";
+App::$strings["Profile Photo"] = "Фотография профиля";
+App::$strings["Profiles"] = "Редактировать профиль";
+App::$strings["Notifications"] = "Оповещения";
+App::$strings["Order Apps"] = "Порядок приложений";
+App::$strings["CalDAV"] = "";
+App::$strings["CardDAV"] = "";
+App::$strings["Guest Access"] = "Гостевой доступ";
+App::$strings["Notes"] = "Заметки";
+App::$strings["OAuth Apps Manager"] = "Менеджер OAuth";
+App::$strings["OAuth2 Apps Manager"] = "Менеджер OAuth2";
+App::$strings["PDL Editor"] = "Редактор PDL";
+App::$strings["Premium Channel"] = "Премиальный канал";
+App::$strings["My Chatrooms"] = "Мои чаты";
+App::$strings["Channel Export"] = "Экспорт канала";
+App::$strings["Purchase"] = "Купить";
+App::$strings["Undelete"] = "Восстановить";
+App::$strings["Add to app-tray"] = "Добавить в app-tray";
+App::$strings["Remove from app-tray"] = "Удалить из app-tray";
+App::$strings["Pin to navbar"] = "Добавить на панель навигации";
+App::$strings["Unpin from navbar"] = "Удалить с панели навигации";
+App::$strings["__ctx:permcat__ default"] = "по умолчанию";
+App::$strings["__ctx:permcat__ follower"] = "поклонник";
+App::$strings["__ctx:permcat__ contributor"] = "участник";
+App::$strings["__ctx:permcat__ publisher"] = "издатель";
+App::$strings["(No Title)"] = "(нет заголовка)";
+App::$strings["Wiki page create failed."] = "Не удалось создать страницу Wiki.";
+App::$strings["Wiki not found."] = "Wiki не найдена.";
+App::$strings["Destination name already exists"] = "Имя назначения уже существует";
+App::$strings["Page not found"] = "Страница не найдена.";
+App::$strings["Error reading page content"] = "Ошибка чтения содержимого страницы";
+App::$strings["Error reading wiki"] = "Ошибка чтения Wiki";
+App::$strings["Page update failed."] = "Не удалось обновить страницу.";
+App::$strings["Nothing deleted"] = "Ничего не удалено";
+App::$strings["Compare: object not found."] = "Сравнение: объект не найден.";
+App::$strings["Page updated"] = "Страница обновлена";
+App::$strings["Untitled"] = "Не озаглавлено";
+App::$strings["Wiki resource_id required for git commit"] = "Требуется resource_id Wiki для отправки в Git";
App::$strings["__ctx:wiki_history__ Message"] = "Сообщение";
App::$strings["Date"] = "Дата";
App::$strings["Compare"] = "Сравнить";
-App::$strings["Can view my channel stream and posts"] = "Может просматривать мой поток и сообщения";
-App::$strings["Can send me their channel stream and posts"] = "Может присылать мне свои потоки и сообщения";
-App::$strings["Can view my default channel profile"] = "Может просматривать мой стандартный профиль канала";
-App::$strings["Can view my connections"] = "Может просматривать мои контакты";
-App::$strings["Can view my file storage and photos"] = "Может просматривать мое хранилище файлов";
-App::$strings["Can upload/modify my file storage and photos"] = "Может загружать/изменять мои файлы и фотографии в хранилище";
-App::$strings["Can view my channel webpages"] = "Может просматривать мои веб-страницы";
-App::$strings["Can view my wiki pages"] = "Может просматривать мои вики-страницы";
-App::$strings["Can create/edit my channel webpages"] = "Может редактировать мои веб-страницы";
-App::$strings["Can write to my wiki pages"] = "Может редактировать мои вики-страницы";
-App::$strings["Can post on my channel (wall) page"] = "Может публиковать на моей странице канала";
-App::$strings["Can comment on or like my posts"] = "Может прокомментировать или отмечать как понравившиеся мои посты";
-App::$strings["Can send me private mail messages"] = "Может отправлять мне личные сообщения по эл. почте";
-App::$strings["Can like/dislike profiles and profile things"] = "Может комментировать или отмечать как нравится/ненравится мой профиль";
-App::$strings["Can forward to all my channel connections via ! mentions in posts"] = "Может пересылать всем подписчикам моего канала используя ! в публикациях";
-App::$strings["Can chat with me"] = "Может общаться со мной в чате";
-App::$strings["Can source my public posts in derived channels"] = "Может использовать мои публичные сообщения в клонированных лентах сообщений";
-App::$strings["Can administer my channel"] = "Может администрировать мой канал";
-App::$strings["Social Networking"] = "Социальная Сеть";
-App::$strings["Social - Federation"] = "Социальная - Федерация";
-App::$strings["Social - Mostly Public"] = "Социальная - В основном общественный";
-App::$strings["Social - Restricted"] = "Социальная - Ограниченный";
-App::$strings["Social - Private"] = "Социальная - Частный";
-App::$strings["Community Forum"] = "Форум сообщества";
-App::$strings["Forum - Mostly Public"] = "Форум - В основном общественный";
-App::$strings["Forum - Restricted"] = "Форум - Ограниченный";
-App::$strings["Forum - Private"] = "Форум - Частный";
-App::$strings["Feed Republish"] = "Публиковать ленты новостей";
-App::$strings["Feed - Mostly Public"] = "Ленты новостей - В основном общественный";
-App::$strings["Feed - Restricted"] = "Ленты новостей - Ограниченный";
-App::$strings["Special Purpose"] = "Спец. назначение";
-App::$strings["Special - Celebrity/Soapbox"] = "Спец. назначение - Знаменитость/Soapbox";
-App::$strings["Special - Group Repository"] = "Спец. назначение - Групповой репозиторий";
-App::$strings["Custom/Expert Mode"] = "Экспертный режим";
-App::$strings["Update Error at %s"] = "Ошибка обновления на %s";
-App::$strings["Update %s failed. See error logs."] = "Выполнение %s неудачно. Проверьте системный журнал.";
+App::$strings["Different viewers will see this text differently"] = "Различные зрители увидят этот текст по-разному";
+App::$strings["Visible to your default audience"] = "Видно вашей аудитории по умолчанию.";
+App::$strings["Only me"] = "Только мне";
+App::$strings["Public"] = "Общедоступно";
+App::$strings["Anybody in the \$Projectname network"] = "Любому в сети \$Projectname";
+App::$strings["Any account on %s"] = "Любой аккаунт в %s";
+App::$strings["Any of my connections"] = "Любой из моих контактов";
+App::$strings["Only connections I specifically allow"] = "Только те контакты, кому я дам разрешение";
+App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Любой аутентифицированный (может включать посетителей их других сетей)";
+App::$strings["Any connections including those who haven't yet been approved"] = "Любые контакты включая те, которые вы ещё не одобрили";
+App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Это настройка по умолчанию для аудитории ваших обычных потоков и публикаций";
+App::$strings["This is your default setting for who can view your default channel profile"] = "Это настройка по умолчанию для тех, кто может просматривать профиль вашего основного канала";
+App::$strings["This is your default setting for who can view your connections"] = "Это настройка по умолчанию для тех, кто может просматривать ваши контакты";
+App::$strings["This is your default setting for who can view your file storage and photos"] = "Это настройка по умолчанию для тех, кто может просматривать ваше хранилище файлов и фотографий";
+App::$strings["This is your default setting for the audience of your webpages"] = "Это настройка по умолчанию для аудитории ваших веб-страниц";
+App::$strings["Directory Options"] = "Параметры каталога";
+App::$strings["Safe Mode"] = "Безопасный режим";
+App::$strings["Public Forums Only"] = "Только публичные форумы";
+App::$strings["This Website Only"] = "Только этот веб-сайт";
+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."] = "Удаленная группа с этим названием была восстановлена. Существующие разрешения пункт <strong>могут</strong> применяться к этой группе и к её будущих участников. Если это не то, чего вы хотели, пожалуйста, создайте другую группу с другим именем.";
+App::$strings["Add new connections to this privacy group"] = "Добавить новые контакты в группу безопасности";
+App::$strings["edit"] = "редактировать";
+App::$strings["Edit group"] = "Редактировать группу";
+App::$strings["Add privacy group"] = "Добавить группу безопасности";
+App::$strings["Channels not in any privacy group"] = "Каналы не включены ни в одну группу безопасности";
+App::$strings["add"] = "добавить";
+App::$strings["Missing room name"] = "Отсутствует название комнаты";
+App::$strings["Duplicate room name"] = "Название комнаты дублируется";
+App::$strings["Invalid room specifier."] = "Неверный указатель комнаты.";
+App::$strings["Room not found."] = "Комната не найдена.";
+App::$strings["Room is full"] = "Комната переполнена";
+App::$strings["Unable to verify site signature for %s"] = "Невозможно проверить подпись сайта %s";
App::$strings["\$Projectname Notification"] = "Оповещение \$Projectname ";
App::$strings["\$projectname"] = "";
App::$strings["Thank You,"] = "Спасибо,";
@@ -2711,60 +1919,27 @@ App::$strings["created a new post"] = "создал новую публикац
App::$strings["commented on %s's post"] = "прокомментировал публикацию %s";
App::$strings["edited a post dated %s"] = "отредактировал публикацию датированную %s";
App::$strings["edited a comment dated %s"] = "отредактировал комментарий датированный %s";
-App::$strings["(No Title)"] = "(нет заголовка)";
-App::$strings["Wiki page create failed."] = "Не удалось создать страницу Wiki.";
-App::$strings["Wiki not found."] = "Wiki не найдена.";
-App::$strings["Destination name already exists"] = "Имя назначения уже существует";
-App::$strings["Page not found"] = "Страница не найдена.";
-App::$strings["Error reading page content"] = "Ошибка чтения содержимого страницы";
-App::$strings["Error reading wiki"] = "Ошибка чтения Wiki";
-App::$strings["Page update failed."] = "Не удалось обновить страницу.";
-App::$strings["Nothing deleted"] = "Ничего не удалено";
-App::$strings["Compare: object not found."] = "Сравнение: объект не найден.";
-App::$strings["Page updated"] = "Страница обновлена";
-App::$strings["Untitled"] = "Не озаглавлено";
-App::$strings["Wiki resource_id required for git commit"] = "Требуется resource_id Wiki для отправки в Git";
-App::$strings["__ctx:permcat__ default"] = "по умолчанию";
-App::$strings["__ctx:permcat__ follower"] = "поклонник";
-App::$strings["__ctx:permcat__ contributor"] = "участник";
-App::$strings["__ctx:permcat__ publisher"] = "издатель";
-App::$strings["Apps"] = "Приложения";
-App::$strings["Site Admin"] = "Администратор сайта";
-App::$strings["Report Bug"] = "Сообщить об ошибке";
-App::$strings["Remote Diagnostics"] = "Удалённая диагностика";
-App::$strings["Stream"] = "Поток";
-App::$strings["Mail"] = "Переписка";
-App::$strings["Chat"] = "Чат";
-App::$strings["Probe"] = "Проба";
-App::$strings["Suggest"] = "Предложить";
-App::$strings["Random Channel"] = "Случайный канал";
-App::$strings["Invite"] = "Пригласить";
-App::$strings["Language"] = "Язык";
-App::$strings["Post"] = "Публикация";
-App::$strings["Profile Photo"] = "Фотография профиля";
-App::$strings["Notifications"] = "Оповещения";
-App::$strings["Order Apps"] = "Порядок приложений";
-App::$strings["CardDAV"] = "";
-App::$strings["Guest Access"] = "Гостевой доступ";
-App::$strings["OAuth Apps Manager"] = "Менеджер OAuth";
-App::$strings["OAuth2 Apps Manager"] = "Менеджер OAuth2";
-App::$strings["PDL Editor"] = "Редактор PDL";
-App::$strings["Premium Channel"] = "Премиальный канал";
-App::$strings["My Chatrooms"] = "Мои чаты";
-App::$strings["Channel Export"] = "Экспорт канала";
-App::$strings["Purchase"] = "Купить";
-App::$strings["Undelete"] = "Восстановить";
-App::$strings["Add to app-tray"] = "Добавить в app-tray";
-App::$strings["Remove from app-tray"] = "Удалить из app-tray";
-App::$strings["Pin to navbar"] = "Добавить на панель навигации";
-App::$strings["Unpin from navbar"] = "Удалить с панели навигации";
-App::$strings["I will attend"] = "Я буду присутствовать";
-App::$strings["I will not attend"] = "Я не буду присутствовать";
+App::$strings["Wiki updated successfully"] = "Wiki успешно обновлена";
+App::$strings["Wiki files deleted successfully"] = "Wiki успешно удалена";
+App::$strings["Update Error at %s"] = "Ошибка обновления на %s";
+App::$strings["Update %s failed. See error logs."] = "Выполнение %s неудачно. Проверьте системный журнал.";
+App::$strings["Private Message"] = "Личное сообщение";
+App::$strings["Privacy conflict. Discretion advised."] = "Конфиликт настроек конфиденциальности.";
+App::$strings["Admin Delete"] = "Удалено администратором";
+App::$strings["Select"] = "Выбрать";
+App::$strings["I will attend"] = "Я буду участвовать";
+App::$strings["I will not attend"] = "Я не буду участвовать";
App::$strings["I might attend"] = "Я возможно буду присутствовать";
App::$strings["I agree"] = "Я согласен";
App::$strings["I disagree"] = "Я не согласен";
App::$strings["I abstain"] = "Я воздержался";
+App::$strings["Toggle Star Status"] = "Переключить статус пометки";
+App::$strings["Message signature validated"] = "Подпись сообщения проверена";
+App::$strings["Message signature incorrect"] = "Подпись сообщения неверная";
App::$strings["Add Tag"] = "Добавить тег";
+App::$strings["Conversation Tools"] = "Инструменты общения";
+App::$strings["like"] = "нравится";
+App::$strings["dislike"] = "не нравится";
App::$strings["Share This"] = "Поделиться этим";
App::$strings["share"] = "поделиться";
App::$strings["Delivery Report"] = "Отчёт о доставке";
@@ -2778,73 +1953,377 @@ App::$strings["to"] = "к";
App::$strings["via"] = "через";
App::$strings["Wall-to-Wall"] = "Стена-к-Стене";
App::$strings["via Wall-To-Wall:"] = "через Стена-к-Стене:";
+App::$strings["from %s"] = "от %s";
+App::$strings["last edited: %s"] = "последнее редактирование: %s";
+App::$strings["Expires: %s"] = "Срок действия: %s";
App::$strings["Attend"] = "Посетить";
App::$strings["Attendance Options"] = "Параметры посещаемости";
App::$strings["Vote"] = "Голосовать";
App::$strings["Voting Options"] = "Параметры голосования";
App::$strings["Save Bookmarks"] = "Сохранить закладки";
App::$strings["Add to Calendar"] = "Добавить в календарь";
+App::$strings["This is an unsaved preview"] = "Это несохранённый просмотр";
+App::$strings["%s show all"] = "%s показать всё";
+App::$strings["Bold"] = "Жирный";
+App::$strings["Italic"] = "Курсив";
+App::$strings["Underline"] = "Подчеркнутый";
+App::$strings["Quote"] = "Цитата";
+App::$strings["Code"] = "Код";
App::$strings["Image"] = "Изображение";
+App::$strings["Attach/Upload file"] = "Прикрепить/загрузить файл";
App::$strings["Insert Link"] = "Вставить ссылку";
App::$strings["Video"] = "Видео";
App::$strings["Your full name (required)"] = "Ваше полное имя (требуется)";
App::$strings["Your email address (required)"] = "Ваш адрес электронной почты (требуется)";
App::$strings["Your website URL (optional)"] = "URL вашего вебсайта (необязательно)";
-App::$strings["Missing room name"] = "Отсутствует название комнаты";
-App::$strings["Duplicate room name"] = "Название комнаты дублируется";
-App::$strings["Invalid room specifier."] = "Неверный указатель комнаты.";
-App::$strings["Room not found."] = "Комната не найдена.";
-App::$strings["Room is full"] = "Комната переполнена";
-App::$strings["Public"] = "Общедоступно";
-App::$strings["Anybody in the \$Projectname network"] = "Любому в сети \$Projectname";
-App::$strings["Any account on %s"] = "Любой аккаунт в %s";
-App::$strings["Any of my connections"] = "Любой из моих контактов";
-App::$strings["Only connections I specifically allow"] = "Только те контакты, кому я дам разрешение";
-App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Любой аутентифицированный (может включать посетителей их других сетей)";
-App::$strings["Any connections including those who haven't yet been approved"] = "Любые контакты включая те, которые вы ещё не одобрили";
-App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Это настройка по умолчанию для аудитории ваших обычных потоков и публикаций";
-App::$strings["This is your default setting for who can view your default channel profile"] = "Это настройка по умолчанию для тех, кто может просматривать профиль вашего основного канала";
-App::$strings["This is your default setting for who can view your connections"] = "Это настройка по умолчанию для тех, кто может просматривать ваши контакты";
-App::$strings["This is your default setting for who can view your file storage and photos"] = "Это настройка по умолчанию для тех, кто может просматривать ваше хранилище файлов и фотографий";
-App::$strings["This is your default setting for the audience of your webpages"] = "Это настройка по умолчанию для аудитории ваших веб-страниц";
-App::$strings["0. Beginner/Basic"] = "Начинающий / Базовый";
-App::$strings["1. Novice - not skilled but willing to learn"] = "1. Новичок - не опытный, но желающий учиться";
-App::$strings["2. Intermediate - somewhat comfortable"] = "2. Промежуточный - более удобный";
-App::$strings["3. Advanced - very comfortable"] = "3. Продвинутый - очень удобный";
-App::$strings["4. Expert - I can write computer code"] = "4. Эксперт - я умею программировать";
-App::$strings["5. Wizard - I probably know more than you do"] = "5. Волшебник - возможно я знаю больше чем ты";
-App::$strings["Wiki updated successfully"] = "Wiki успешно обновлена";
-App::$strings["Wiki files deleted successfully"] = "Wiki успешно удалена";
-App::$strings["Use markdown for editing posts"] = "Использовать язык разметки Markdown для редактирования публикаций";
+App::$strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Удалённая аутентификация заблокирована. Вы вошли на этот сайт локально. Пожалуйста, выйдите и попробуйте ещё раз.";
+App::$strings["Welcome %s. Remote authentication successful."] = "Добро пожаловать %s. Удаленная аутентификация успешно завершена.";
+App::$strings["parent"] = "источник";
+App::$strings["Collection"] = "Коллекция";
+App::$strings["Principal"] = "Субъект";
+App::$strings["Addressbook"] = "Адресная книга";
+App::$strings["Calendar"] = "Календарь";
+App::$strings["Schedule Inbox"] = "План занятий входящий";
+App::$strings["Schedule Outbox"] = "План занятий исходящий";
+App::$strings["Total"] = "Всего";
+App::$strings["Shared"] = "Общие";
+App::$strings["Add Files"] = "Добавить файлы";
+App::$strings["You are using %1\$s of your available file storage."] = "Вы используете %1\$s из доступного вам хранилища файлов.";
+App::$strings["You are using %1\$s of %2\$s available file storage. (%3\$s&#37;)"] = "Вы используете %1\$s из %2\$s доступного хранилища файлов (%3\$s&#37;).";
+App::$strings["WARNING:"] = "Предупреждение:";
+App::$strings["Create new folder"] = "Создать новую папку";
+App::$strings["Upload file"] = "Загрузить файл";
+App::$strings["Drop files here to immediately upload"] = "Поместите файлы сюда для немедленной загрузки";
+App::$strings["Forums"] = "Форумы";
+App::$strings["Select Channel"] = "Выбрать канал";
+App::$strings["Read-write"] = "Чтение-запись";
+App::$strings["Read-only"] = "Только чтение";
+App::$strings["My Calendars"] = "Мои календари";
+App::$strings["Shared Calendars"] = "Общие календари";
+App::$strings["Share this calendar"] = "Поделиться этим календарём";
+App::$strings["Calendar name and color"] = "Имя и цвет календаря";
+App::$strings["Create new calendar"] = "Создать новый календарь";
+App::$strings["Calendar Name"] = "Имя календаря";
+App::$strings["Calendar Tools"] = "Инструменты календаря";
+App::$strings["Import calendar"] = "Импортировать календарь";
+App::$strings["Select a calendar to import to"] = "Выбрать календарь для импорта в";
+App::$strings["Addressbooks"] = "Адресные книги";
+App::$strings["Addressbook name"] = "Имя адресной книги";
+App::$strings["Create new addressbook"] = "Создать новую адресную книгу";
+App::$strings["Addressbook Name"] = "Имя адресной книги";
+App::$strings["Addressbook Tools"] = "Инструменты адресной книги";
+App::$strings["Import addressbook"] = "Импортировать адресную книгу";
+App::$strings["Select an addressbook to import to"] = "Выбрать адресную книгу для импорта в";
+App::$strings["Categories"] = "Категории";
+App::$strings["Everything"] = "Всё";
+App::$strings["Events Tools"] = "Инструменты для событий";
+App::$strings["Export Calendar"] = "Экспортировать календарь";
+App::$strings["Import Calendar"] = "Импортировать календарь";
+App::$strings["Suggested Chatrooms"] = "Рекомендуемые чаты";
+App::$strings["HQ Control Panel"] = "Панель управления HQ";
+App::$strings["Create a new post"] = "Создать новую публикацию";
+App::$strings["Private Mail Menu"] = "Меню личной переписки";
+App::$strings["Combined View"] = "Комбинированный вид";
+App::$strings["Inbox"] = "Входящие";
+App::$strings["Outbox"] = "Исходящие";
+App::$strings["New Message"] = "Новое сообщение";
+App::$strings["Overview"] = "Обзор";
+App::$strings["Rating Tools"] = "Инструменты оценки";
+App::$strings["Rate Me"] = "Оценить меня";
+App::$strings["View Ratings"] = "Просмотр оценок";
+App::$strings["__ctx:widget__ Activity"] = "Активность";
+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["Saved Folders"] = "Сохранённые каталоги";
+App::$strings["Show filed post categories"] = "Показывать категории добавленных публикаций";
+App::$strings["Panel search"] = "Панель поиска";
+App::$strings["Filter by name"] = "Отфильтровать по имени";
+App::$strings["Remove active filter"] = "Удалить активный фильтр";
+App::$strings["Stream Filters"] = "Фильтры потока";
+App::$strings["You have %1$.0f of %2$.0f allowed connections."] = "У вас есть %1$.0f из %2$.0f разрешенных контактов.";
+App::$strings["Add New Connection"] = "Добавить новый контакт";
+App::$strings["Enter channel address"] = "Введите адрес канала";
+App::$strings["Examples: bob@example.com, https://example.com/barbara"] = "Пример: ivan@example.com, http://example.com/ivan";
+App::$strings["Archives"] = "Архивы";
+App::$strings["Received Messages"] = "Полученные сообщения";
+App::$strings["Sent Messages"] = "Отправленные сообщения";
+App::$strings["Conversations"] = "Беседы";
+App::$strings["No messages."] = "Сообщений нет.";
+App::$strings["Delete conversation"] = "Удалить беседу";
+App::$strings["Chat Members"] = "Участники чата";
+App::$strings["photo/image"] = "фотография / изображение";
+App::$strings["Remove term"] = "Удалить термин";
+App::$strings["Saved Searches"] = "Сохранённые поиски";
+App::$strings["Add new page"] = "Добавить новую страницу";
+App::$strings["Wiki Pages"] = "Wiki страницы";
+App::$strings["Page name"] = "Название страницы";
+App::$strings["Refresh"] = "Обновить";
+App::$strings["Tasks"] = "Задачи";
+App::$strings["Suggestions"] = "Рекомендации";
+App::$strings["See more..."] = "Просмотреть больше...";
+App::$strings["Commented Date"] = "По комментариям";
+App::$strings["Order by last commented date"] = "Сортировка по дате последнего комментария";
+App::$strings["Posted Date"] = "По публикациям";
+App::$strings["Order by last posted date"] = "Сортировка по дате последней публикации";
+App::$strings["Date Unthreaded"] = "По порядку";
+App::$strings["Order unthreaded by date"] = "Сортировка в порядке поступления";
+App::$strings["Stream Order"] = "Упорядочить поток";
+App::$strings["Click to show more"] = "Нажмите чтобы показать больше";
+App::$strings["Tags"] = "Теги";
+App::$strings["App Collections"] = "Коллекции приложений";
+App::$strings["Installed apps"] = "Установленные приложения";
+App::$strings["Profile Creation"] = "Создание профиля";
+App::$strings["Upload profile photo"] = "Загрузить фотографию профиля";
+App::$strings["Upload cover photo"] = "Загрузить фотографию обложки";
+App::$strings["Edit your profile"] = "Редактировать профиль";
+App::$strings["Find and Connect with others"] = "Найти и вступить в контакт";
+App::$strings["View the directory"] = "Просмотреть каталог";
+App::$strings["Manage your connections"] = "Управление вашими контактами";
+App::$strings["Communicate"] = "Связаться";
+App::$strings["View your channel homepage"] = "Домашняя страница канала";
+App::$strings["View your network stream"] = "Просмотреть ваш сетевой поток";
+App::$strings["Documentation"] = "Документация";
+App::$strings["Missing Features?"] = "Отсутствует функция?";
+App::$strings["Pin apps to navigation bar"] = "Прикрепить приложение к панели";
+App::$strings["Install more apps"] = "Установить больше приложений";
+App::$strings["View public stream"] = "Просмотреть публичный поток";
+App::$strings["Member registrations waiting for confirmation"] = "Регистрации участников, ожидающие подверждения";
+App::$strings["Inspect queue"] = "Просмотр очереди";
+App::$strings["DB updates"] = "Обновление базы данных";
+App::$strings["Admin"] = "Администрирование";
+App::$strings["Addon Features"] = "Настройки расширений";
+App::$strings["Account settings"] = "Настройки аккаунта";
+App::$strings["Channel settings"] = "Настройки канала";
+App::$strings["Display settings"] = "Настройки отображения";
+App::$strings["Manage locations"] = "Управление местоположением";
+App::$strings["Bookmarked Chatrooms"] = "Закладки чатов";
+App::$strings["New Network Activity"] = "Новая сетевая активность";
+App::$strings["New Network Activity Notifications"] = "Новые уведомления о сетевой активности";
+App::$strings["View your network activity"] = "Просмотреть вашу сетевую активность";
+App::$strings["Mark all notifications read"] = "Пометить уведомления как прочитанные";
+App::$strings["Show new posts only"] = "Показывать только новые публикации";
+App::$strings["Filter by name or address"] = "Фильтровать по имени или адресу";
+App::$strings["New Home Activity"] = "Новая локальная активность";
+App::$strings["New Home Activity Notifications"] = "Новые уведомления локальной активности";
+App::$strings["View your home activity"] = "Просмотреть локальную активность";
+App::$strings["Mark all notifications seen"] = "Пометить уведомления как просмотренные";
+App::$strings["New Mails"] = "Новая переписка";
+App::$strings["New Mails Notifications"] = "Уведомления о новой переписке";
+App::$strings["View your private mails"] = "Просмотреть вашу личную переписку";
+App::$strings["Mark all messages seen"] = "Пометить сообщения как просмотренные";
+App::$strings["New Events"] = "Новые события";
+App::$strings["New Events Notifications"] = "Уведомления о новых событиях";
+App::$strings["View events"] = "Просмотреть события";
+App::$strings["Mark all events seen"] = "Пометить все события как просмотренные";
+App::$strings["New Connections Notifications"] = "Уведомления о новых контактах";
+App::$strings["View all connections"] = "Просмотр всех контактов";
+App::$strings["New Files"] = "Новые файлы";
+App::$strings["New Files Notifications"] = "Уведомления о новых файлах";
+App::$strings["Notices"] = "Оповещения";
+App::$strings["View all notices"] = "Просмотреть все оповещения";
+App::$strings["Mark all notices seen"] = "Пометить все оповещения как просмотренные";
+App::$strings["New Registrations"] = "Новые регистрации";
+App::$strings["New Registrations Notifications"] = "Уведомления о новых регистрациях";
+App::$strings["Public Stream Notifications"] = "Уведомления публичного потока";
+App::$strings["View the public stream"] = "Просмотреть публичный поток";
+App::$strings["Sorry, you have got no notifications at the moment"] = "Извините, но сейчас у вас нет уведомлений";
+App::$strings["Source channel not found."] = "Канал-источник не найден.";
+App::$strings["Network/Protocol"] = "Сеть / протокол";
+App::$strings["Zot"] = "";
+App::$strings["Diaspora"] = "";
+App::$strings["Friendica"] = "";
+App::$strings["OStatus"] = "";
+App::$strings["Create an account to access services and applications"] = "Создайте аккаунт для доступа к службам и приложениям";
+App::$strings["Logout"] = "Выход";
+App::$strings["Login/Email"] = "Пользователь / email";
+App::$strings["Password"] = "Пароль";
+App::$strings["Remember me"] = "Запомнить меня";
+App::$strings["Forgot your password?"] = "Забыли пароль или логин?";
+App::$strings["[\$Projectname] Website SSL error for %s"] = "[\$Projectname] Ошибка SSL/TLS веб-сайта для %s";
+App::$strings["Website SSL certificate is not valid. Please correct."] = "SSL/TLS сертификат веб-сайт недействителен. Исправьте это.";
+App::$strings["[\$Projectname] Cron tasks not running on %s"] = "[\$Projectname] Задания Cron не запущены на %s";
+App::$strings["Cron/Scheduled tasks not running."] = "Задания Cron / планировщика не запущены.";
+App::$strings["never"] = "никогда";
+App::$strings["Focus (Hubzilla default)"] = "Фокус (по умолчанию Hubzilla)";
+App::$strings["Theme settings"] = "Настройки темы";
+App::$strings["Narrow navbar"] = "Узкая панель навигации";
+App::$strings["Navigation bar background color"] = "Панель навигации, цвет фона";
+App::$strings["Navigation bar icon color "] = "Панель навигации, цвет значков";
+App::$strings["Navigation bar active icon color "] = "Панель навигации, цвет активного значка";
+App::$strings["Link color"] = "Цвет ссылок";
+App::$strings["Set font-color for banner"] = "Цвет текста в шапке";
+App::$strings["Set the background color"] = "Цвет фона";
+App::$strings["Set the background image"] = "Фоновое изображение";
+App::$strings["Set the background color of items"] = "Цвет фона элементов";
+App::$strings["Set the background color of comments"] = "Цвет фона комментариев";
+App::$strings["Set font-size for the entire application"] = "Установить системный размер шрифта";
+App::$strings["Examples: 1rem, 100%, 16px"] = "Например: 1rem, 100%, 16px";
+App::$strings["Set font-color for posts and comments"] = "Цвет шрифта для публикаций и комментариев";
+App::$strings["Set radius of corners"] = "Радиус скруглений";
+App::$strings["Example: 4px"] = "Например: 4px";
+App::$strings["Set shadow depth of photos"] = "Глубина теней фотографий";
+App::$strings["Set maximum width of content region in pixel"] = "Максимальная ширина содержания региона (в пикселях)";
+App::$strings["Leave empty for default width"] = "Оставьте пустым для ширины по умолчанию";
+App::$strings["Left align page content"] = "Выровнять содержимое страницы по левому краю";
+App::$strings["Set size of conversation author photo"] = "Размер фотографии автора беседы";
+App::$strings["Set size of followup author photos"] = "Размер фотографий подписчиков";
+App::$strings["Show advanced settings"] = "Показать расширенные настройки";
+App::$strings["Errors encountered deleting database table "] = "Возникшие при удалении таблицы базы данных ошибки";
+App::$strings["Submit Settings"] = "Отправить настройки";
+App::$strings["Drop tables when uninstalling?"] = "Удалить таблицы при деинсталляции?";
+App::$strings["If checked, the Rendezvous database tables will be deleted when the plugin is uninstalled."] = "Если включено, то таблицы базы данных Rendezvous будут удалены при удалении плагина.";
+App::$strings["Mapbox Access Token"] = "Токен доступа к Mapbox";
+App::$strings["If you enter a Mapbox access token, it will be used to retrieve map tiles from Mapbox instead of the default OpenStreetMap tile server."] = "Если вы введете токен доступа к Mapbox, он будет использоваться для извлечения фрагментов карты из Mapbox вместо стандартного сервера OpenStreetMap.";
+App::$strings["Rendezvous"] = "";
+App::$strings["This identity has been deleted by another member due to inactivity. Please press the \"New identity\" button or refresh the page to register a new identity. You may use the same name."] = "Этот идентификатор был удалён другим участником из-за неактивности. Пожалуйста нажмите кнопку \"Новый идентификатор\" для обновления страницы и получения нового идентификатора. Вы можете использовать то же имя.";
+App::$strings["Welcome to Rendezvous!"] = "Добро пожаловать в Rendezvous!";
+App::$strings["Enter your name to join this rendezvous. To begin sharing your location with the other members, tap the GPS control. When your location is discovered, a red dot will appear and others will be able to see you on the map."] = "Введите ваше имя для вступления в это Rendezvous. Для того, чтобы делиться вашим положением с другими участниками, нажмите \"GPS control\". Когда ваше местоположение определно, красная точка появится и остальные смогут увидеть вас на карте.";
+App::$strings["Let's meet here"] = "Давайте встретимся здесь";
+App::$strings["New marker"] = "Новый маркер";
+App::$strings["Edit marker"] = "Редактировать маркер";
+App::$strings["New identity"] = "Новый идентификатор";
+App::$strings["Delete marker"] = "Удалить маркер";
+App::$strings["Delete member"] = "Удалить участника";
+App::$strings["Edit proximity alert"] = "Изменить оповещение о близости";
+App::$strings["A proximity alert will be issued when this member is within a certain radius of you.<br><br>Enter a radius in meters (0 to disable):"] = "Оповещение о близости будет произведено, если этот участник находится на определённом расстоянии от вас. <br><br>Введите радиус в метрах (0 для отключения):";
+App::$strings["distance"] = "расстояние";
+App::$strings["Proximity alert distance (meters)"] = "Расстояние для уведомления о близости (метров)";
+App::$strings["A proximity alert will be issued when you are within a certain radius of the marker location.<br><br>Enter a radius in meters (0 to disable):"] = "Оповещение о близости будет произведено, если вы находитесь на определённом расстоянии местоположения маркера. <br><br>Введите радиус в метрах (0 для отключения):";
+App::$strings["Marker proximity alert"] = "Маркер уведомления о близости";
+App::$strings["Reminder note"] = "Напоминание";
+App::$strings["Enter a note to be displayed when you are within the specified proximity..."] = "Введите сообщение для отображения когда вы находитесь рядом";
+App::$strings["Add new rendezvous"] = "Добавить новое Rendezvous.";
+App::$strings["Create a new rendezvous and share the access link with those you wish to invite to the group. Those who open the link become members of the rendezvous. They can view other member locations, add markers to the map, or share their own locations with the group."] = "Создайте новое Rendezvous и поделитесь ссылкой доступа с теми, кого вы хотите пригласить в группу. Тот, кто откроет эту ссылку, станет её участником. Участники могут видеть местоположение, добавлять маркеры на карту или делится своим собственным местоположением с группой.";
+App::$strings["You have no rendezvous. Press the button above to create a rendezvous!"] = "У вас нет Rendezvous. Нажмите на кнопку ниже чтобы создать его!";
+App::$strings["Skeleton App"] = "Приложение \"Скелет\"";
+App::$strings["A skeleton for addons, you can copy/paste"] = "Скелет для приложений. Вы можете использовать copy/paste";
+App::$strings["Some setting"] = "Некоторые настройки";
+App::$strings["A setting"] = "Настройка";
+App::$strings["Skeleton Settings"] = "Настройки скелета";
+App::$strings["The GNU-Social protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "Протокол GNU-Social не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала.";
+App::$strings["GNU-Social Protocol App"] = "Приложение \"Протокол GNU-Social\"";
+App::$strings["GNU-Social Protocol"] = "Протокол GNU-Social";
+App::$strings["Follow"] = "Отслеживать";
+App::$strings["%1\$s is now following %2\$s"] = "%1\$s сейчас отслеживает %2\$s";
+App::$strings["Random Planet App"] = "Приложение \"Случайная планета\"";
+App::$strings["Installed"] = "Установлено";
+App::$strings["Set a random planet from the Star Wars Empire as your location when posting"] = "Установить случайную планету из Империи Звездных Войн в качестве вашего местоположения при публикации";
+App::$strings["System defaults:"] = "Системные по умолчанию:";
+App::$strings["Preferred Clipart IDs"] = "Предпочитаемый Clipart ID";
+App::$strings["List of preferred clipart ids. These will be shown first."] = "Список предпочитаемых Clipart ID. Эти будут показаны первыми.";
+App::$strings["Default Search Term"] = "Условие поиска по умолчанию";
+App::$strings["The default search term. These will be shown second."] = "Условие поиска по умолчанию. Показываются во вторую очередь.";
+App::$strings["Return After"] = "Вернуться после";
+App::$strings["Page to load after image selection."] = "Страница для загрузки после выбора изображения.";
+App::$strings["Edit Profile"] = "Редактировать профиль";
+App::$strings["Profile List"] = "Список профилей";
+App::$strings["Order of Preferred"] = "Порядок предпочтения";
+App::$strings["Sort order of preferred clipart ids."] = "Порядок сортировки предпочитаемых Clipart ID. ";
+App::$strings["Newest first"] = "Новое первым";
+App::$strings["As entered"] = "По мере ввода";
+App::$strings["Order of other"] = "Порядок других";
+App::$strings["Sort order of other clipart ids."] = "Порядок сортировки остальных Clipart ID.";
+App::$strings["Most downloaded first"] = "Самое загружаемое первым";
+App::$strings["Most liked first"] = "Самое нравящееся первым";
+App::$strings["Preferred IDs Message"] = "Сообщение от предпочитаемых ID";
+App::$strings["Message to display above preferred results."] = "Отображаемое сообщение над предпочитаемыми результатами.";
+App::$strings["Uploaded by: "] = "Загружено:";
+App::$strings["Drawn by: "] = "Нарисовано:";
+App::$strings["Use this image"] = "Использовать это изображение";
+App::$strings["Or select from a free OpenClipart.org image:"] = "Или выберите из бесплатных изображений на OpenClipart.org";
+App::$strings["Search Term"] = "Условие поиска";
+App::$strings["Unknown error. Please try again later."] = "Неизвестная ошибка. Пожалуйста, повторите попытку позже.";
+App::$strings["Profile photo updated successfully."] = "Фотография профиля обновлена успешно.";
+App::$strings["Flag Adult Photos"] = "Пометка фотографий для взрослых";
+App::$strings["Provide photo edit option to hide inappropriate photos from default album view"] = "Предоставьте возможность редактирования фотографий, чтобы скрыть неприемлемые фотографии из альбома по умолчанию";
+App::$strings["You haven't set a TOTP secret yet.\nPlease click the button below to generate one and register this site\nwith your preferred authenticator app."] = "Вы еще не установили секретный код TOTP. Пожалуйста, нажмите на кнопку ниже, чтобы сгенерировать его и зарегистрировать этот сайт в предпочитаемом вами приложении для аутентификации.";
+App::$strings["Your TOTP secret is"] = "Ваш секретный код TOTP";
+App::$strings["Be sure to save it somewhere in case you lose or replace your mobile device.\nUse your mobile device to scan the QR code below to register this site\nwith your preferred authenticator app."] = "Обязательно сохраните его где-нибудь на случай потери или замены мобильного устройства. С помощью мобильного устройства отсканируйте приведенный ниже QR-код, чтобы зарегистрировать этот сайт в предпочитаемом вами приложении для аутентификации.";
+App::$strings["Test"] = "Тест";
+App::$strings["Generate New Secret"] = "Сгенерировать новый секретный код";
+App::$strings["Go"] = "Вперёд";
+App::$strings["Enter your password"] = "Введите ваш пароль";
+App::$strings["enter TOTP code from your device"] = "введите код TOTP из вашего устройства";
+App::$strings["Pass!"] = "Принято!";
+App::$strings["Fail"] = "Отказано";
+App::$strings["Incorrect password, try again."] = "Неверный пароль, попробуйте снова.";
+App::$strings["Record your new TOTP secret and rescan the QR code above."] = "Запишите ваш секретный код TOTP и повторно отсканируйте приведенный ниже QR-код.";
+App::$strings["TOTP Settings"] = "Настройки TOTP";
+App::$strings["TOTP Two-Step Verification"] = "Двухэтапная верификация TOTP";
+App::$strings["Enter the 2-step verification generated by your authenticator app:"] = "Введите код проверки, созданный вашим приложением для аутентификации";
+App::$strings["Success!"] = "Успех!";
+App::$strings["Invalid code, please try again."] = "Неверный код. Пожалуйста, попробуйте ещё раз.";
+App::$strings["Too many invalid codes..."] = "Слишком много неверных кодов...";
+App::$strings["Verify"] = "Проверить";
+App::$strings["Wordpress Settings saved."] = "Настройки WordPress сохранены.";
+App::$strings["Wordpress Post App"] = "Приложение \"Публикация в Wordpress\"";
+App::$strings["Post to WordPress or anything else which uses the wordpress XMLRPC API"] = "Опубликовать в WordPress или в чём-то ещё, поддерживающем wordpress XMLRPC API";
+App::$strings["WordPress username"] = "Имя пользователя WordPress";
+App::$strings["WordPress password"] = "Пароль WordPress";
+App::$strings["WordPress API URL"] = "URL API WordPress";
+App::$strings["Typically https://your-blog.tld/xmlrpc.php"] = "Обычно https://your-blog.tld/xmlrpc.php";
+App::$strings["WordPress blogid"] = "";
+App::$strings["For multi-user sites such as wordpress.com, otherwise leave blank"] = "Для многопользовательских сайтов, таких, как wordpress.com. В противном случае оставьте пустым";
+App::$strings["Post to WordPress by default"] = "Публиковать в WordPress по умолчанию";
+App::$strings["Forward comments (requires hubzilla_wp plugin)"] = "Пересылать комментарии (требуется плагин hubzilla_wp)";
+App::$strings["Wordpress Post"] = "Публикация в WordPress";
+App::$strings["Post to WordPress"] = "Опубликовать в WordPress";
+App::$strings["Possible adult content"] = "Возможно содержимое для взрослых";
+App::$strings["%s - view"] = "%s - просмотр";
+App::$strings["NSFW Settings saved."] = "Настройки NSFW сохранены.";
+App::$strings["NSFW App"] = "Приложение NSFW";
+App::$strings["Collapse content that contains predefined words"] = "Свернуть содержимое, содержащее предопределенные слова";
+App::$strings["This app looks in posts for the words/text you specify below, and collapses any content containing those keywords so it is not displayed at inappropriate times, such as sexual innuendo that may be improper in a work setting. It is polite and recommended to tag any content containing nudity with #NSFW. This filter can also match any other word/text you specify, and can thereby be used as a general purpose content filter."] = "Это приложение просматривает публикации для слов / текста, которые вы указываете ниже, и сворачивает любой контент, содержащий эти ключевые слова, поэтому он не отображается в неподходящее время, например, сексуальные инсинуации, которые могут быть неправильными в настройке работы. Например, мы рекомендуем отмечать любой контент, содержащий наготу, тегом #NSFW. Этот фильтр также способен реагировать на любое другое указанное вами слово / текст и может использоваться в качестве фильтра содержимого общего назначения.";
+App::$strings["Comma separated list of keywords to hide"] = "Список ключевых слов для скрытия, через запятую";
+App::$strings["Word, /regular-expression/, lang=xx, lang!=xx"] = "слово, /регулярное_выражение/, lang=xx, lang!=xx";
+App::$strings["NSFW"] = "";
+App::$strings["Max queueworker threads"] = "Макс. количество обработчиков очереди";
+App::$strings["Assume workers dead after ___ seconds"] = "Считать обработчики неактивными через секунд";
+App::$strings["Queueworker Settings"] = "Настройки обработчика очереди";
+App::$strings["Insane Journal Crosspost Connector Settings saved."] = "Настройки пересылки публикаций Insane Journal сохранены.";
+App::$strings["Insane Journal Crosspost Connector App"] = "Приложение \"Пересылка публикаций Insane Journal\"";
+App::$strings["Relay public postings to Insane Journal"] = "Пересылает общедоступные публикации в Insane Journal";
+App::$strings["InsaneJournal username"] = "Имя пользователя Insane Journal";
+App::$strings["InsaneJournal password"] = "Пароль Insane Journal";
+App::$strings["Post to InsaneJournal by default"] = "Публиковать в Insane Journal по умолчанию";
+App::$strings["Insane Journal Crosspost Connector"] = "Пересылка публикаций Insane Journal";
+App::$strings["Post to Insane Journal"] = "Опубликовать в Insane Journal";
App::$strings["Post to Dreamwidth"] = "Публиковать в Dreamwidth";
-App::$strings["Enable Dreamwidth Post Plugin"] = "Включить плагин публикаций Dreamwidth";
+App::$strings["Dreamwidth Crosspost Connector Settings saved."] = "Настройки пересылки публикаций Dreamwidth сохранены.";
+App::$strings["Dreamwidth Crosspost Connector App"] = "Приложение \"Пересылка публикаций Dreamwidth\"";
+App::$strings["Relay public postings to Dreamwidth"] = "Пересылает общедоступные публикации в Dreamwidth";
App::$strings["Dreamwidth username"] = "Имя пользователя Dreamwidth";
App::$strings["Dreamwidth password"] = "Пароль Dreamwidth";
App::$strings["Post to Dreamwidth by default"] = "Публиковать в Dreamwidth по умолчанию";
-App::$strings["Dreamwidth Post Settings"] = "Настройки публикаций в Dreamwidth";
-App::$strings["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>.)";
-App::$strings["Help support our ground-breaking work in decentralisation, web identity, and privacy."] = "Помогите поддержать нашу новаторскую работу в областях децентрализации, веб-идентификации и конфиденциальности.";
-App::$strings["Your donations keep servers and services running and also helps us to provide innovative new features and continued development."] = "В ваших пожертвованиях поддерживают серверы и службы, а также помогают нам предоставлять новые возможности и продолжать развитие.";
-App::$strings["Donate"] = "Пожертвовать";
-App::$strings["Choose a project, developer, or public hub to support with a one-time donation"] = "Выберите проект, разработчика или общедоступный узел для поддержки в форме единоразового пожертвования";
-App::$strings["Donate Now"] = "Пожертвовать сейчас";
-App::$strings["<strong><em>Or</em></strong> become a project sponsor (Hubzilla Project only)"] = "<strong><em>или</em></strong> станьте спонсором проекта (только для Hubzilla)";
-App::$strings["Please indicate if you would like your first name or full name (or nothing) to appear in our sponsor listing"] = "Пожалуйста, если желаете, укажите ваше имя для отображения в списке спонсоров.";
-App::$strings["Sponsor"] = "Спонсор";
-App::$strings["Special thanks to: "] = "Особые благодарности:";
-App::$strings["Fuzzloc Settings updated."] = "Настройки Fuzzloc обновлены.";
-App::$strings["Fuzzloc allows you to blur your precise location if your channel uses browser location mapping."] = "Fuzzloc позволяет размыть ваше точное местоположение, если ваш канал использует сопоставление местоположений браузера.";
-App::$strings["Enable Fuzzloc Plugin"] = "Включить плагин Fuzzloc";
-App::$strings["Minimum offset in meters"] = "Минимальное смещение в метрах";
-App::$strings["Maximum offset in meters"] = "Максимальное смещение в метрах";
-App::$strings["Fuzzloc Settings"] = "Настройки Fuzzloc";
-App::$strings["Allow magic authentication only to websites of your immediate connections"] = "Разрешить волшебную аутентификацию только на сайтах ваших непосредственных соединений";
-App::$strings["Authchoose"] = "";
+App::$strings["Dreamwidth Crosspost Connector"] = "Пересылка публикаций Dreamwidth";
+App::$strings["New registration"] = "Новая регистрация";
+App::$strings["Message sent to %s. New account registration: %s"] = "Сообщение отправлено в %s. Регистрация нового аккаунта: %s";
+App::$strings["Hubzilla Directory Stats"] = "Каталог статистики Hubzilla";
+App::$strings["Total Hubs"] = "Всего хабов";
+App::$strings["Hubzilla Hubs"] = "Хабы Hubzilla";
+App::$strings["Friendica Hubs"] = "Хабы Friendica";
+App::$strings["Diaspora Pods"] = "Стручки Diaspora";
+App::$strings["Hubzilla Channels"] = "Каналы Hubzilla";
+App::$strings["Friendica Channels"] = "Каналы Friendica";
+App::$strings["Diaspora Channels"] = "Каналы Diaspora";
+App::$strings["Aged 35 and above"] = "Возраст 35 и выше";
+App::$strings["Aged 34 and under"] = "Возраст 34 и ниже";
+App::$strings["Average Age"] = "Средний возраст";
+App::$strings["Known Chatrooms"] = "Известные чаты";
+App::$strings["Known Tags"] = "Известные теги";
+App::$strings["Please note Diaspora and Friendica statistics are merely those **this directory** is aware of, and not all those known in the network. This also applies to chatrooms,"] = "Обратите внимание, что статистика Diaspora и Friendica это только те, о которых ** этот каталог ** знает, а не все известные в сети. Это также относится и к чатам.";
+App::$strings["Your Webbie:"] = "Ваш Webbie:";
+App::$strings["Fontsize (px):"] = "Размер шрифта (px):";
+App::$strings["Link:"] = "Ссылка:";
+App::$strings["Like us on Hubzilla"] = "Нравится на Hubzilla";
+App::$strings["Embed:"] = "Встроить:";
App::$strings["Photos imported"] = "Фотографии импортированы";
App::$strings["Redmatrix Photo Album Import"] = "Импортировать альбом фотографий Redmatrix";
App::$strings["This will import all your Redmatrix photo albums to this channel."] = "Это позволит импортировать все ваши альбомы фотографий Redmatrix в этот канал.";
@@ -2855,89 +2334,53 @@ App::$strings["Import just this album"] = "Импортировать тольк
App::$strings["Leave blank to import all albums"] = "Оставьте пустым для импорта всех альбомов";
App::$strings["Maximum count to import"] = "Максимальное количество для импорта";
App::$strings["0 or blank to import all available"] = "0 или пусто для импорта всех доступных";
-App::$strings["A simple gallery for your photo albums"] = "Простая галлерея для ваших фотоальбомов";
+App::$strings["Popular Channels"] = "Популярные каналы";
+App::$strings["Channels to auto connect"] = "Каналы для автоматического подключения";
+App::$strings["Comma separated list"] = "Список, разделённый запятыми";
+App::$strings["IRC Settings"] = "Настройки IRC";
+App::$strings["IRC settings saved."] = "Настройки IRC сохранены";
+App::$strings["IRC Chatroom"] = "Чат IRC";
App::$strings["Gallery"] = "Галерея";
App::$strings["Photo Gallery"] = "Фотогалерея";
-App::$strings["Post to Friendica"] = "Опубликовать в Friendica";
-App::$strings["rtof Settings saved."] = "Настройки rtof сохранены.";
-App::$strings["Allow posting to Friendica"] = "Разрешить публиковать в Friendica";
-App::$strings["Send public postings to Friendica by default"] = "Отправлять общедоступные публикации во Friendica по умолчанию";
-App::$strings["Friendica API Path"] = "Путь к Friendica API";
-App::$strings["https://{sitename}/api"] = "";
-App::$strings["Friendica login name"] = "Имя входа Friendica";
-App::$strings["Friendica password"] = "Пароль Friendica";
-App::$strings["Hubzilla to Friendica Post Settings"] = "Настройки публикаций Hubzilla для Friendica";
-App::$strings["An account has been created for you."] = "Учётная запись, которая была для вас создана.";
-App::$strings["Authentication successful but rejected: account creation is disabled."] = "Аутентификация выполнена успешно, но отклонена: создание учетной записи отключено.";
-App::$strings["Post to Insanejournal"] = "Опубликовать в InsaneJournal";
-App::$strings["Enable InsaneJournal Post Plugin"] = "Включить плагин публикаций InsaneJournal";
-App::$strings["InsaneJournal username"] = "Имя пользователя InsaneJournal";
-App::$strings["InsaneJournal password"] = "Пароль InsaneJournal";
-App::$strings["Post to InsaneJournal by default"] = "Публиковать в InsaneJournal по умолчанию";
-App::$strings["InsaneJournal Post Settings"] = "Настройки публикаций в InsaneJournal";
-App::$strings["Insane Journal Settings saved."] = "Настройки InsaneJournal сохранены.";
-App::$strings["Your account on %s will expire in a few days."] = "Ваш аккаунт на %s перестанет работать через несколько дней.";
-App::$strings["Your $Productname test account is about to expire."] = "Ваш тестовый аккаунт в $Productname близок к окончанию срока действия.";
-App::$strings["Redmatrix File Storage Import"] = "Импорт файлового хранилища Redmatrix";
-App::$strings["This will import all your Redmatrix cloud files to this channel."] = "Это позволит импортировать все ваши файлы в Redmatrix в этот канал.";
-App::$strings["file"] = "файл";
-App::$strings["Post to Twitter"] = "Опубликовать в Twitter";
-App::$strings["Twitter settings updated."] = "Настройки Twitter обновлены";
-App::$strings["No consumer key pair for Twitter found. Please contact your site administrator."] = "Не найдено пары ключей для Twitter. Пожалуйста, свяжитесь с администратором сайта.";
-App::$strings["At this Hubzilla instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter."] = "В этой установке Hubzilla плагин Twitter был включён, однако пока он не подключён к вашему аккаунту в Twitter. Для этого нажмите на кнопку ниже для получения PIN-кода от Twitter который нужно скопировать в поле ввода и отправить форму. Только ваши <strong>общедоступные</strong> публикации будут опубликованы в Twitter.";
-App::$strings["Log in with Twitter"] = "Войти в Twitter";
-App::$strings["Copy the PIN from Twitter here"] = "Скопируйте PIN-код из Twitter здесь";
-App::$strings["Currently connected to: "] = "В настоящее время подключён к:";
-App::$strings["<strong>Note:</strong> Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Замечание</strong>: Из-за настроек конфиденциальности (<em>скрыть данные своего профиля от неизвестных зрителей?</em>) cсылка, потенциально включенная в общедоступные публикации, переданные в Twitter, приведет посетителя к пустой странице, информирующей его о том, что доступ к вашему профилю был ограничен.";
-App::$strings["Allow posting to Twitter"] = "Разрешить публиковать в Twitter";
-App::$strings["If enabled your public postings can be posted to the associated Twitter account"] = "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи Twitter";
-App::$strings["Twitter post length"] = "Длина публикации Twitter";
-App::$strings["Maximum tweet length"] = "Максимальная длина твита";
-App::$strings["Send public postings to Twitter by default"] = "Отправлять общедоступные публикации в Twitter по умолчанию";
-App::$strings["If enabled your public postings will be posted to the associated Twitter account by default"] = "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи Twitter по умолчанию";
-App::$strings["Clear OAuth configuration"] = "Очистить конфигурацию OAuth";
-App::$strings["Twitter Post Settings"] = "Настройки публикаций в Twitter";
-App::$strings["Submit Settings"] = "Отправить настройки";
-App::$strings["Edit your profile and change settings."] = "Отредактировать ваш профиль и изменить настройки.";
-App::$strings["Click here to see activity from your connections."] = "Нажмите сюда для отображения активности ваши контактов.";
-App::$strings["Click here to see your channel home."] = "Нажмите сюда чтобы увидеть главную страницу вашего канала.";
-App::$strings["You can access your private messages from here."] = "Вы можете получить доступ с личной переписке здесь.";
-App::$strings["Create new events here."] = "Создать новое событие здесь.";
-App::$strings["You can accept new connections and change permissions for existing ones here. You can also e.g. create groups of contacts."] = "Вы можете подключать новые контакты и менять разрешения для существующих здесь. Также вы можете создавать их группы.";
-App::$strings["System notifications will arrive here"] = "Системные оповещения будут показываться здесь";
-App::$strings["Search for content and users"] = "Поиск пользователей и содержимого";
-App::$strings["Browse for new contacts"] = "Поиск новых контактов";
-App::$strings["Launch installed apps"] = "Запустить установленные приложения";
-App::$strings["Looking for help? Click here."] = "Нужна помощь? Нажмите сюда.";
-App::$strings["New events have occurred in your network. Click here to see what has happened!"] = "Новые события произошли в вашей сети. Нажмите здесь для того, чтобы знать что случилось!";
-App::$strings["You have received a new private message. Click here to see from who!"] = "Вы получили новое личное сообщение. Нажмите чтобы увидеть от кого!";
-App::$strings["There are events this week. Click here too see which!"] = "На этой неделе есть события. Нажмите здесь чтобы увидеть какие!";
-App::$strings["You have received a new introduction. Click here to see who!"] = "Вы были представлены. Нажмите чтобы увидеть кому!";
-App::$strings["There is a new system notification. Click here to see what has happened!"] = "Это новое системное уведомление. Нажмите чтобы посмотреть что случилось!";
-App::$strings["Click here to share text, images, videos and sound."] = "Нажмите сюда чтобы поделиться текстом, изображениями, видео или треком.";
-App::$strings["You can write an optional title for your update (good for long posts)."] = "Вы можете написать необязательный заголовок для вашей публикации (желательно для больших постов).";
-App::$strings["Entering some categories here makes it easier to find your post later."] = "Введите категории здесь чтобы было проще найти вашу публикацию позднее.";
-App::$strings["Share photos, links, location, etc."] = "Поделиться фотографией, ссылками, местоположение и т.п.";
-App::$strings["Only want to share content for a while? Make it expire at a certain date."] = "Хотите только поделиться временным содержимым? Установите срок его действия.";
-App::$strings["You can password protect content."] = "Вы можете защитить содержимое паролем.";
-App::$strings["Choose who you share with."] = "Выбрать с кем поделиться.";
-App::$strings["Click here when you are done."] = "Нажмите здесь когда закончите.";
-App::$strings["Adjust from which channels posts should be displayed."] = "Настройте из каких каналов должны отображаться публикации.";
-App::$strings["Only show posts from channels in the specified privacy group."] = "Показывать только публикации из определённой группы безопасности.";
-App::$strings["Easily find posts containing tags (keywords preceded by the \"#\" symbol)."] = "Лёгкий поиск сообщения, содержащего теги (ключевые слова, которым предшествует символ #).";
-App::$strings["Easily find posts in given category."] = "Лёгкий поиск публикаций в данной категории.";
-App::$strings["Easily find posts by date."] = "Лёгкий поиск публикаций по дате.";
-App::$strings["Suggested users who have volounteered to be shown as suggestions, and who we think you might find interesting."] = "Рекомендуемые пользователи, которые были представлены в качестве предложений, и которые, по нашему мнению, могут оказаться интересными.";
-App::$strings["Here you see channels you have connected to."] = "Здесь вы видите каналы, к которым вы подключились.";
-App::$strings["Save your search so you can repeat it at a later date."] = "Сохраните ваш поиск с тем, чтобы повторить его позже.";
-App::$strings["If you see this icon you can be sure that the sender is who it say it is. It is normal that it is not always possible to verify the sender, so the icon will be missing sometimes. There is usually no need to worry about that."] = "Если вы видите этот значок, вы можете быть уверены, что отправитель - это тот, кто это говорит. Это нормально, что не всегда можно проверить отправителя, поэтому значок иногда будет отсутствовать. Обычно об этом не нужно беспокоиться.";
-App::$strings["Danger! It seems someone tried to forge a message! This message is not necessarily from who it says it is from!"] = "Опасность! Кажется, кто-то пытался подделать сообщение! Это сообщение не обязательно от того, от кого оно значится!";
-App::$strings["Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can pause it at any time and continue where you left off by reloading the page, or navigting to another page.</p><p>You can also advance by pressing the return key"] = "Добро пожаловать в Hubzilla! Желаете получить обзор пользовательского интерфейса?</p> <p>Вы можете его приостановаить и в любое время перезагрузив страницу или перейдя на другую.</p><p>Также вы можете нажать клавишу \"Назад\"";
-App::$strings["Block Completely"] = "Заблокировать полностью";
-App::$strings["Block channels"] = "Заблокировать каналы";
-App::$strings["superblock settings updated"] = "Настройки Superblock обновлены.";
-App::$strings["Currently blocked"] = "В настоящее время заблокирован";
-App::$strings["No channels currently blocked"] = "В настоящее время никакие каналы не блокируются";
+App::$strings["Gallery App"] = "Приложение \"Галерея\"";
+App::$strings["A simple gallery for your photo albums"] = "Простая галлерея для ваших фотоальбомов";
+App::$strings["Livejournal Crosspost Connector App"] = "Приложение \"Пересылка публикаций Livejournal\"";
+App::$strings["Relay public posts to Livejournal"] = "Пересылает общедоступные публикации в Livejournal";
+App::$strings["Livejournal username"] = "Имя пользователя Livejournal";
+App::$strings["Livejournal password"] = "Пароль Livejournal";
+App::$strings["Post to Livejournal by default"] = "Публиковать в Livejournal по умолчанию";
+App::$strings["Livejournal Crosspost Connector"] = "Пересылка публикаций Livejournal";
+App::$strings["Post to Livejournal"] = "Опубликовать в Livejournal";
+App::$strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Мы столкнулись с проблемой входа с предоставленным вами OpenID. Пожалуйста, проверьте корректность его написания.";
+App::$strings["The error message was:"] = "Сообщение об ошибке было:";
+App::$strings["First Name"] = "Имя";
+App::$strings["Last Name"] = "Фамилия";
+App::$strings["Nickname"] = "Псевдоним";
+App::$strings["Full Name"] = "Полное имя";
+App::$strings["Profile Photo 16px"] = "Фотография профиля 16px";
+App::$strings["Profile Photo 32px"] = "Фотография профиля 32px";
+App::$strings["Profile Photo 48px"] = "Фотография профиля 48px";
+App::$strings["Profile Photo 64px"] = "Фотография профиля 64px";
+App::$strings["Profile Photo 80px"] = "Фотография профиля 80px";
+App::$strings["Profile Photo 128px"] = "Фотография профиля 128px";
+App::$strings["Timezone"] = "Часовой пояс";
+App::$strings["Birth Year"] = "Год рождения";
+App::$strings["Birth Month"] = "Месяц рождения";
+App::$strings["Birth Day"] = "День рождения";
+App::$strings["Birthdate"] = "Дата рождения";
+App::$strings["OpenID protocol error. No ID returned."] = "Ошибка протокола OpenID. Идентификатор не возвращён.";
+App::$strings["Login failed."] = "Не удалось войти.";
+App::$strings["Male"] = "Мужчина";
+App::$strings["Female"] = "Женщина";
+App::$strings["You're welcome."] = "Пожалуйста.";
+App::$strings["Ah shucks..."] = "О, чёрт...";
+App::$strings["Don't mention it."] = "Не стоит благодарности.";
+App::$strings["&lt;blush&gt;"] = "&lt;краснею&gt;";
+App::$strings["Startpage App"] = "Приложение \"Стартовая страница\"";
+App::$strings["Set a preferred page to load on login from home page"] = "Устанавливает предпочтительную страницу для загрузки при входе с домашней страницы";
+App::$strings["Page to load after login"] = "Страница для загрузки после входа";
+App::$strings["Examples: &quot;apps&quot;, &quot;network?f=&gid=37&quot; (privacy collection), &quot;channel&quot; or &quot;notifications/system&quot; (leave blank for default network page (grid)."] = "Примеры: &quot;apps&quot;, &quot;network?f=&gid=37&quot; (privacy collection), &quot;channel&quot; or &quot;notifications/system&quot; (оставьте пустым для для страницы сети по умолчанию).";
+App::$strings["Startpage"] = "Стартовая страница";
App::$strings["bitchslap"] = "дать леща";
App::$strings["bitchslapped"] = "получил леща";
App::$strings["shag"] = "вздрючить";
@@ -2976,18 +2419,63 @@ App::$strings["bonk"] = "";
App::$strings["bonked"] = "";
App::$strings["declare undying love for"] = "признаться в любви к";
App::$strings["declared undying love for"] = "признался в любви к";
-App::$strings["Logfile archive directory"] = "Каталог архивирования журнала";
-App::$strings["Directory to store rotated logs"] = "Каталог для хранения заархивированных журналов";
-App::$strings["Logfile size in bytes before rotating"] = "Размер файла журнала в байтах для архивирования";
-App::$strings["Number of logfiles to retain"] = "Количество сохраняемых файлов журналов";
-App::$strings["Your Webbie:"] = "Ваш Webbie:";
-App::$strings["Fontsize (px):"] = "Размер шрифта (px):";
-App::$strings["Link:"] = "Ссылка:";
-App::$strings["Like us on Hubzilla"] = "Нравится на Hubzilla";
-App::$strings["Embed:"] = "Встроить:";
-App::$strings["QR code"] = "QR-код";
-App::$strings["QR Generator"] = "Генератор QR-кодов";
-App::$strings["Enter some text"] = "Введите любой текст";
+App::$strings["%1\$s dislikes %2\$s's %3\$s"] = "%1\$s не нравится %2\$s's %3\$s";
+App::$strings["Diaspora Protocol Settings updated."] = "Настройки протокола Diaspora обновлены.";
+App::$strings["The diaspora protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "Протокол Diaspora не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала.";
+App::$strings["Diaspora Protocol App"] = "Приложение \"Протокол Diaspora\"";
+App::$strings["Allow any Diaspora member to comment on your public posts"] = "Разрешить любому участнику Diaspora комментировать ваши общедоступные публикации";
+App::$strings["Prevent your hashtags from being redirected to other sites"] = "Предотвратить перенаправление тегов на другие сайты";
+App::$strings["Sign and forward posts and comments with no existing Diaspora signature"] = "Подписывать и отправлять публикации и комментарии с несуществующей подписью Diaspora";
+App::$strings["Followed hashtags (comma separated, do not include the #)"] = "Отслеживаемые теги (через запятую, исключая #)";
+App::$strings["Diaspora Protocol"] = "Протокол Diaspora";
+App::$strings["No username found in import file."] = "Имя пользователя не найдено в файле для импорта.";
+App::$strings["Unable to create a unique channel address. Import failed."] = "Не удалось создать уникальный адрес канала. Импорт не завершен.";
+App::$strings["Photo Cache settings saved."] = "Настройки кэширования изображений сохранены.";
+App::$strings["Photo Cache addon saves a copy of images from external sites locally to increase your anonymity in the web."] = "Приложение \"Кэшировние изображений\" сохраняет копию изображений с внешних сайтов локально для повышения вашей анонимности в Интернет.";
+App::$strings["Photo Cache App"] = "Приложение \"Кэширование изображений\"";
+App::$strings["Minimal photo size for caching"] = "Минимальный размер изображений для кэширования";
+App::$strings["In pixels. From 1 up to 1024, 0 will be replaced with system default."] = "В пикселях. От 1 до 1024, 0 будет заменён значением по умолчанию.";
+App::$strings["Photo Cache"] = "Кэширование изображений";
+App::$strings["Your account on %s will expire in a few days."] = "Ваш аккаунт на %s перестанет работать через несколько дней.";
+App::$strings["Your $Productname test account is about to expire."] = "Ваш тестовый аккаунт в $Productname близок к окончанию срока действия.";
+App::$strings["Add some colour to tag clouds"] = "Добавить немного цвета для облака тегов";
+App::$strings["Rainbow Tag App"] = "Приложение \"Радуга тегов\"";
+App::$strings["Rainbow Tag"] = "Радуга тегов";
+App::$strings["Show Upload Limits"] = "Показать ограничения на загрузку";
+App::$strings["Hubzilla configured maximum size: "] = "Максимальный размер настроенный в Hubzilla:";
+App::$strings["PHP upload_max_filesize: "] = "";
+App::$strings["PHP post_max_size (must be larger than upload_max_filesize): "] = "PHP post_max_size (должен быть больше чем upload_max_filesize): ";
+App::$strings["generic profile image"] = "Стандартное изображение профиля";
+App::$strings["random geometric pattern"] = "Случайный геометрический рисунок";
+App::$strings["monster face"] = "Лицо чудовища";
+App::$strings["computer generated face"] = "Сгенерированное компьютером лицо";
+App::$strings["retro arcade style face"] = "Лицо в стиле старой аркадной игры";
+App::$strings["Hub default profile photo"] = "Фотография профиля по умолчанию";
+App::$strings["Information"] = "Информация";
+App::$strings["Libravatar addon is installed, too. Please disable Libravatar addon or this Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if nothing was found at Libravatar."] = "Плагин Libravatar также установлен. Пожалуйста, отключите плагин Libravatar или этот плагин Gravatar. Если Плагин Libravatar ничего не найдёт, он вернётся в Gravatar.";
+App::$strings["Save Settings"] = "Сохранить настройки";
+App::$strings["Default avatar image"] = "Изображение аватара по умолчанию";
+App::$strings["Select default avatar image if none was found at Gravatar. See README"] = "Выберите изображения аватар по умолчанию если ничего не было найдено в Gravatar (см. README).";
+App::$strings["Rating of images"] = "Оценки изображений";
+App::$strings["Select the appropriate avatar rating for your site. See README"] = "Выберите подходящую оценку аватара для вашего сайта (см. README).";
+App::$strings["Gravatar settings updated."] = "Настройки Gravatar обновлены.";
+App::$strings["Hubzilla File Storage Import"] = "Импорт файлового хранилища Hubzilla";
+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["Who viewed my channel/profile"] = "Кто смотрел мой канал / профиль";
+App::$strings["Recent Channel/Profile Viewers"] = "Последние просмотры канала / профиля";
+App::$strings["No entries."] = "Нет записей.";
+App::$strings["NSA Bait App"] = "Приложение NSA Bait";
+App::$strings["Make yourself a political target"] = "Сделать себя политической мишенью";
+App::$strings["Send test email"] = "Отправить тестовый email";
+App::$strings["No recipients found."] = "Получателей не найдено.";
+App::$strings["Mail sent."] = "Сообщение отправлено";
+App::$strings["Sending of mail failed."] = "Не удалось отправить сообщение.";
+App::$strings["Mail Test"] = "Тестовое сообщение";
+App::$strings["Message subject"] = "Тема сообщения";
+App::$strings["Use markdown for editing posts"] = "Использовать язык разметки Markdown для редактирования публикаций";
App::$strings["View Larger"] = "Увеличить";
App::$strings["Tile Server URL"] = "URL сервера Tile";
App::$strings["A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">public tile servers</a>"] = "Список <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">общедоступных серверов</a>";
@@ -2997,8 +2485,27 @@ App::$strings["Default zoom"] = "Масштаб по умолчанию";
App::$strings["The default zoom level. (1:world, 18:highest, also depends on tile server)"] = "Уровень размера по умолчанию (1 - весь мир, 18 - максимальный; зависит от сервера).";
App::$strings["Include marker on map"] = "Включите маркер на карте";
App::$strings["Include a marker on the map."] = "Включить маркер на карте";
-App::$strings["Activate addon"] = "Активировать расширение";
-App::$strings["Hide Jappixmini Chat-Widget from the webinterface"] = "Скрыть виджет чата Jappixmini из веб-интерфейса";
+App::$strings["text to include in all outgoing posts from this site"] = "текст, который будет добавлен во все исходящие публикации с этого сайта";
+App::$strings["Fuzzloc Settings updated."] = "Настройки примерного положения обновлены.";
+App::$strings["Fuzzy Location App"] = "Приложение \"Примерное положение\"";
+App::$strings["Blur your precise location if your channel uses browser location mapping"] = "Размывает вашего точное местоположение в случае если ваш канал использует отображение местоположения из браузера";
+App::$strings["Minimum offset in meters"] = "Минимальное смещение в метрах";
+App::$strings["Maximum offset in meters"] = "Максимальное смещение в метрах";
+App::$strings["Fuzzy Location"] = "Примерное положение";
+App::$strings["Post to Friendica"] = "Опубликовать в Friendica";
+App::$strings["Friendica Crosspost Connector Settings saved."] = "Настройки пересылки публикаций Friendica сохранены.";
+App::$strings["Friendica Crosspost Connector App"] = "Приложение \"Пересылка публикаций Friendica\"";
+App::$strings["Relay public postings to a connected Friendica account"] = "Пересылает общедоступные публикации на подключённую учётную запись Friendica";
+App::$strings["Send public postings to Friendica by default"] = "Отправлять общедоступные публикации во Friendica по умолчанию";
+App::$strings["Friendica API Path"] = "Путь к Friendica API";
+App::$strings["https://{sitename}/api"] = "";
+App::$strings["Friendica login name"] = "Имя входа Friendica";
+App::$strings["Friendica password"] = "Пароль Friendica";
+App::$strings["Friendica Crosspost Connector"] = "Пересылка публикаций Friendica";
+App::$strings["Jappixmini App"] = "Приложение Jappix Mini";
+App::$strings["Provides a Facebook-like chat using Jappix Mini"] = "Предоставляет Facebook-подобный чат с использованием Jappix Mini";
+App::$strings["Status:"] = "Статус:";
+App::$strings["Hide Jappixmini Chat-Widget from the webinterface"] = "Скрыть виджет чата Jappix Mini из веб-интерфейса";
App::$strings["Jabber username"] = "Имя пользователя Jabber";
App::$strings["Jabber server"] = "Сервер Jabber";
App::$strings["Jabber BOSH host URL"] = "URL узла Jabber BOSH";
@@ -3008,111 +2515,138 @@ App::$strings["Hubzilla password"] = "Пароль Hubzilla";
App::$strings["Approve subscription requests from Hubzilla contacts automatically"] = "Утверждать запросы на подписку от контактов Hubzilla автоматически";
App::$strings["Purge internal list of jabber addresses of contacts"] = "Очистить внутренний список адресов контактов Jabber";
App::$strings["Configuration Help"] = "Помощь по конфигурации";
-App::$strings["Jappix Mini Settings"] = "Настройки Jappix Mini";
-App::$strings["Errors encountered deleting database table "] = "Возникшие при удалении таблицы базы данных ошибки";
-App::$strings["Drop tables when uninstalling?"] = "Удалить таблицы при деинсталляции?";
-App::$strings["If checked, the Rendezvous database tables will be deleted when the plugin is uninstalled."] = "Если включено, то таблицы базы данных Rendezvous будут удалены при удалении плагина.";
-App::$strings["Mapbox Access Token"] = "Токен доступа к Mapbox";
-App::$strings["If you enter a Mapbox access token, it will be used to retrieve map tiles from Mapbox instead of the default OpenStreetMap tile server."] = "Если вы введете токен доступа к Mapbox, он будет использоваться для извлечения фрагментов карты из Mapbox вместо стандартного сервера OpenStreetMap.";
-App::$strings["Rendezvous"] = "";
-App::$strings["This identity has been deleted by another member due to inactivity. Please press the \"New identity\" button or refresh the page to register a new identity. You may use the same name."] = "Этот идентификатор был удалён другим участником из-за неактивности. Пожалуйста нажмите кнопку \"Новый идентификатор\" для обновления страницы и получения нового идентификатора. Вы можете использовать то же имя.";
-App::$strings["Welcome to Rendezvous!"] = "Добро пожаловать в Rendezvous!";
-App::$strings["Enter your name to join this rendezvous. To begin sharing your location with the other members, tap the GPS control. When your location is discovered, a red dot will appear and others will be able to see you on the map."] = "Введите ваше имя для вступления в это Rendezvous. Для того, чтобы делиться вашим положением с другими участниками, нажмите \"GPS control\". Когда ваше местоположение определно, красная точка появится и остальные смогут увидеть вас на карте.";
-App::$strings["Let's meet here"] = "Давайте встретимся здесь";
-App::$strings["New marker"] = "Новый маркер";
-App::$strings["Edit marker"] = "Редактировать маркер";
-App::$strings["New identity"] = "Новый идентификатор";
-App::$strings["Delete marker"] = "Удалить маркер";
-App::$strings["Delete member"] = "Удалить участника";
-App::$strings["Edit proximity alert"] = "Изменить оповещение о близости";
-App::$strings["A proximity alert will be issued when this member is within a certain radius of you.<br><br>Enter a radius in meters (0 to disable):"] = "Оповещение о близости будет произведено, если этот участник находится на определённом расстоянии от вас. <br><br>Введите радиус в метрах (0 для отключения):";
-App::$strings["distance"] = "расстояние";
-App::$strings["Proximity alert distance (meters)"] = "Расстояние для уведомления о близости (метров)";
-App::$strings["A proximity alert will be issued when you are within a certain radius of the marker location.<br><br>Enter a radius in meters (0 to disable):"] = "Оповещение о близости будет произведено, если вы находитесь на определённом расстоянии местоположения маркера. <br><br>Введите радиус в метрах (0 для отключения):";
-App::$strings["Marker proximity alert"] = "Маркер уведомления о близости";
-App::$strings["Reminder note"] = "Напоминание";
-App::$strings["Enter a note to be displayed when you are within the specified proximity..."] = "Введите сообщение для отображения когда вы находитесь рядом";
-App::$strings["Add new rendezvous"] = "Добавить новое Rendezvous.";
-App::$strings["Create a new rendezvous and share the access link with those you wish to invite to the group. Those who open the link become members of the rendezvous. They can view other member locations, add markers to the map, or share their own locations with the group."] = "Создайте новое Rendezvous и поделитесь ссылкой доступа с теми, кого вы хотите пригласить в группу. Тот, кто откроет эту ссылку, станет её участником. Участники могут видеть местоположение, добавлять маркеры на карту или делится своим собственным местоположением с группой.";
-App::$strings["You have no rendezvous. Press the button above to create a rendezvous!"] = "У вас нет Rendezvous. Нажмите на кнопку ниже чтобы создать его!";
-App::$strings["This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> analytics tool."] = "Этот сайт отслеживается с помощью инструментов аналитики <a href='http://www.piwik.org'>Piwik</a>.";
-App::$strings["If you do not want that your visits are logged this way you <a href='%s'>can set a cookie to prevent Piwik from tracking further visits of the site</a> (opt-out)."] = "Если вы не хотите, чтобы ваши визиты регистрировались таким образом, вы <a href='%s'>можете отключить cookie с тем, чтобы Piwik не отслеживал дальнейшие посещения сайта</a>.";
-App::$strings["Piwik Base URL"] = "Базовый URL Piwik";
-App::$strings["Absolute path to your Piwik installation. (without protocol (http/s), with trailing slash)"] = "Абсолютный путь к вашей установке Piwik (без типа протокола, с начальным слэшем)";
-App::$strings["Site ID"] = "ID сайта";
-App::$strings["Show opt-out cookie link?"] = "Показывать ссылку на отказ от использования cookies?";
-App::$strings["Asynchronous tracking"] = "Асинхронное отслеживание";
-App::$strings["Enable frontend JavaScript error tracking"] = "Включить отслеживание ошибок JavaScript на фронтенде.";
-App::$strings["This feature requires Piwik >= 2.2.0"] = "Эта функция требует версию Piwik >= 2.2.0";
-App::$strings["You are now authenticated to pumpio."] = "Вы аутентифицированы в Pump.io";
-App::$strings["return to the featured settings page"] = "Вернутся к странице настроек";
-App::$strings["Post to Pump.io"] = "Опубликовать в Pump.io";
-App::$strings["Pump.io servername"] = "Имя сервера Pump.io";
-App::$strings["Without \"http://\" or \"https://\""] = "Без \"http://\" или \"https://\"";
-App::$strings["Pump.io username"] = "Имя пользователя Pump.io";
-App::$strings["Without the servername"] = "без имени сервера";
-App::$strings["You are not authenticated to pumpio"] = "Вы не аутентифицированы на Pump.io";
-App::$strings["(Re-)Authenticate your pump.io connection"] = "Аутентифицировать (повторно) ваше соединение с Pump.io";
-App::$strings["Enable pump.io Post Plugin"] = "Включить плагин публикаций Pump.io";
-App::$strings["Post to pump.io by default"] = "Публиковать в Pump.io по умолчанию";
-App::$strings["Should posts be public"] = "Публикации должны быть общедоступными";
-App::$strings["Mirror all public posts"] = "Отображать все общедоступные публикации";
-App::$strings["Pump.io Post Settings"] = "Настройки публикаций в Pump.io";
-App::$strings["PumpIO Settings saved."] = "Настройки публикаций в Pump.io сохранены.";
-App::$strings["Nsabait Settings updated."] = "Настройки Nsabait обновлены";
-App::$strings["Enable NSAbait Plugin"] = "Включить плагин NSAbait";
-App::$strings["NSAbait Settings"] = "Настройки Nsabait";
-App::$strings["Send test email"] = "Отправить тестовый email";
-App::$strings["No recipients found."] = "Получателей не найдено.";
-App::$strings["Mail sent."] = "Сообщение отправлено";
-App::$strings["Sending of mail failed."] = "Не удалось отправить сообщение.";
-App::$strings["Mail Test"] = "Тестовое сообщение";
-App::$strings["Message subject"] = "Тема сообщения";
-App::$strings["You're welcome."] = "Пожалуйста.";
-App::$strings["Ah shucks..."] = "О, чёрт...";
-App::$strings["Don't mention it."] = "Не стоит благодарности.";
-App::$strings["&lt;blush&gt;"] = "&lt;краснею&gt;";
-App::$strings["System defaults:"] = "Системные по умолчанию:";
-App::$strings["Preferred Clipart IDs"] = "Предпочитаемый Clipart ID";
-App::$strings["List of preferred clipart ids. These will be shown first."] = "Список предпочитаемых Clipart ID. Эти будут показаны первыми.";
-App::$strings["Default Search Term"] = "Условие поиска по умолчанию";
-App::$strings["The default search term. These will be shown second."] = "Условие поиска по умолчанию. Показываются во вторую очередь.";
-App::$strings["Return After"] = "Вернуться после";
-App::$strings["Page to load after image selection."] = "Страница для загрузки после выбора изображения.";
-App::$strings["Profile List"] = "Список профилей";
-App::$strings["Order of Preferred"] = "Порядок предпочтения";
-App::$strings["Sort order of preferred clipart ids."] = "Порядок сортировки предпочитаемых Clipart ID. ";
-App::$strings["Newest first"] = "Новое первым";
-App::$strings["As entered"] = "По мере ввода";
-App::$strings["Order of other"] = "Порядок других";
-App::$strings["Sort order of other clipart ids."] = "Порядок сортировки остальных Clipart ID.";
-App::$strings["Most downloaded first"] = "Самое загружаемое первым";
-App::$strings["Most liked first"] = "Самое нравящееся первым";
-App::$strings["Preferred IDs Message"] = "Сообщение от предпочитаемых ID";
-App::$strings["Message to display above preferred results."] = "Отображаемое сообщение над предпочитаемыми результатами.";
-App::$strings["Uploaded by: "] = "Загружено:";
-App::$strings["Drawn by: "] = "Нарисовано:";
-App::$strings["Use this image"] = "Использовать это изображение";
-App::$strings["Or select from a free OpenClipart.org image:"] = "Или выберите из бесплатных изображений на OpenClipart.org";
-App::$strings["Search Term"] = "Условие поиска";
-App::$strings["Unknown error. Please try again later."] = "Неизвестная ошибка. Пожалуйста, повторите попытку позже.";
-App::$strings["Profile photo updated successfully."] = "Фотография профиля обновлена успешно.";
-App::$strings["Hubzilla File Storage Import"] = "Импорт файлового хранилища Hubzilla";
-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 GNU social"] = "Опубликовать в GNU Social";
+App::$strings["Jappixmini Settings"] = "Настройки Jappix Мini";
+App::$strings["Your channel has been upgraded to the latest \$Projectname version."] = "Ваш канал был обновлён на последнюю версию \$Projectname.";
+App::$strings["To improve usability, we have converted some features into installable stand-alone apps."] = "Чтобы улучшить удобство использования, некоторые функции теперь доступны в виде устанавливаемых автономных приложений.";
+App::$strings["Please visit the \$Projectname"] = "Пожалуйста, посетите \$Projectname";
+App::$strings["app store"] = "раздел \"Приложения\"";
+App::$strings["and install possibly missing apps."] = "и установите необходимые вам.";
+App::$strings["Upgrade Info"] = "Сведения об обновлении";
+App::$strings["Do not show this again"] = "Больше не показывать";
+App::$strings["Access Denied"] = "Доступ запрещён";
+App::$strings["Enable Community Moderation"] = "Включить модерацию сообщества";
+App::$strings["Reputation automatically given to new members"] = "Репутация автоматически предоставляемая новым участникам";
+App::$strings["Reputation will never fall below this value"] = "Репутация никогда не упадёт ниже этого значения";
+App::$strings["Minimum reputation before posting is allowed"] = "Минимальная репутация для разрешения возможности размещать публикации";
+App::$strings["Minimum reputation before commenting is allowed"] = "Минимальная репутация для разрешения комментирования";
+App::$strings["Minimum reputation before a member is able to moderate other posts"] = "Минимальная репутация для возможности модерирования участником чужих публикаций";
+App::$strings["Max ratio of moderator's reputation that can be added to/deducted from reputation of person being moderated"] = "Максимальное соотношение репутации модератора, которое может быть добавлено / вычтено из репутации модерируемого участника";
+App::$strings["Reputation \"cost\" to post"] = "\"Стоимость\" репутации для публикации";
+App::$strings["Reputation \"cost\" to comment"] = "\"Стоимость\" репутации для комментирования";
+App::$strings["Reputation automatically recovers at this rate per hour until it reaches minimum_to_post"] = "Репутация автоматически восстанавливается с этой скоростью в час пока не достигает значения minimum_to_post";
+App::$strings["When minimum_to_moderate > reputation > minimum_to_post reputation recovers at this rate per hour"] = "При minimum_to_moderate > репутация > minimum_to_post репутация восстанавливается с этой скоростью в час";
+App::$strings["Community Moderation Settings"] = "Настройки модерирования сообщества";
+App::$strings["Can moderate reputation on my channel."] = "Может модерировать репутацию на моём канале";
+App::$strings["Channel Reputation"] = "Репутация канала";
+App::$strings["Block Completely"] = "Заблокировать полностью";
+App::$strings["Superblock App"] = "Приложение Superblock";
+App::$strings["Block channels"] = "Заблокировать каналы";
+App::$strings["superblock settings updated"] = "Настройки Superblock обновлены.";
+App::$strings["Currently blocked"] = "В настоящее время заблокирован";
+App::$strings["No channels currently blocked"] = "В настоящее время никакие каналы не блокируются";
+App::$strings["nofed Settings saved."] = "Настройки nofed сохранены.";
+App::$strings["No Federation App"] = "Приложение No Federation";
+App::$strings["Prevent posting from being federated to anybody. It will exist only on your channel page."] = "Запрещает федеративные функций для публикаций. Они будут существовать только на странице вашего канала.";
+App::$strings["Federate posts by default"] = "Разрешить федерацию публикаций по умолчанию";
+App::$strings["No Federation"] = "Отключить Federation";
+App::$strings["Federate"] = "Федерировать";
+App::$strings["Channel is required."] = "Необходим канал.";
+App::$strings["Hubzilla Crosspost Connector Settings saved."] = "Настройки пересылки публикаций Hubzilla сохранены.";
+App::$strings["Hubzilla Crosspost Connector App"] = "Приложение \"Пересылка публикаций Hubzilla\"";
+App::$strings["Relay public postings to another Hubzilla channel"] = "Пересылает общедоступные публикации в другой канал Hubzilla";
+App::$strings["Send public postings to Hubzilla channel by default"] = "Отправлять общедоступные публикации в канал Hubzilla по умолчанию";
+App::$strings["Hubzilla API Path"] = "Путь к Hubzilla API";
+App::$strings["Hubzilla login name"] = "Имя входа Hubzilla";
+App::$strings["Hubzilla channel name"] = "Название канала Hubzilla";
+App::$strings["Hubzilla Crosspost Connector"] = "Пересылка публикаций Hubzilla";
+App::$strings["Post to Hubzilla"] = "Опубликовать в Hubzilla";
+App::$strings["Logfile archive directory"] = "Каталог архивирования журнала";
+App::$strings["Directory to store rotated logs"] = "Каталог для хранения заархивированных журналов";
+App::$strings["Logfile size in bytes before rotating"] = "Размер файла журнала в байтах для архивирования";
+App::$strings["Number of logfiles to retain"] = "Количество сохраняемых файлов журналов";
+App::$strings["Friendica Photo Album Import"] = "Импортировать альбом фотографий Friendica";
+App::$strings["This will import all your Friendica photo albums to this Red channel."] = "Это позволит импортировать все ваши альбомы фотографий Friendica в этот канал.";
+App::$strings["Friendica Server base URL"] = "Базовый URL сервера Friendica";
+App::$strings["Friendica Login Username"] = "Имя пользователя для входа Friendica";
+App::$strings["Friendica Login Password"] = "Пароль для входа Firendica";
+App::$strings["WYSIWYG status editor"] = "WYSIWYG редактор статуса ";
+App::$strings["WYSIWYG Status App"] = "Приложение \"WYSIWYG статус\"";
+App::$strings["WYSIWYG Status"] = "WYSIWYG статус";
+App::$strings["Set your location"] = "Задать своё местоположение";
+App::$strings["Clear browser location"] = "Очистить местоположение из браузера";
+App::$strings["Embed (existing) photo from your photo albums"] = "Встроить (существующее) фото из вашего фотоальбома";
+App::$strings["Tag term:"] = "Теги:";
+App::$strings["Where are you right now?"] = "Где вы сейчас?";
+App::$strings["Choose a different album..."] = "Выбрать другой альбом...";
+App::$strings["Comments enabled"] = "Комментарии включены";
+App::$strings["Comments disabled"] = "Комментарии отключены";
+App::$strings["Page link name"] = "Название ссылки на страницу ";
+App::$strings["Post as"] = "Опубликовать как";
+App::$strings["Toggle voting"] = "Подключить голосование";
+App::$strings["Disable comments"] = "Отключить комментарии";
+App::$strings["Toggle comments"] = "Переключить комментарии";
+App::$strings["Categories (optional, comma-separated list)"] = "Категории (необязательно, список через запятую)";
+App::$strings["Other networks and post services"] = "Другие сети и службы публикаций";
+App::$strings["Set publish date"] = "Установить дату публикации";
+App::$strings["ActivityPub Protocol Settings updated."] = "Настройки протокола ActivityPub обновлены.";
+App::$strings["The activitypub protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "Протокол ActivityPub не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала.";
+App::$strings["Activitypub Protocol App"] = "Приложение \"Протокол ActivityPub\"";
+App::$strings["Deliver to ActivityPub recipients in privacy groups"] = "Доставить получателям ActivityPub в группах безопасности";
+App::$strings["May result in a large number of mentions and expose all the members of your privacy group"] = "Может привести к большому количеству упоминаний и раскрытию участников группы безопасности";
+App::$strings["Send multi-media HTML articles"] = "Отправить HTML статьи с мультимедиа";
+App::$strings["Not supported by some microblog services such as Mastodon"] = "Не поддерживается некоторыми микроблогами, например Mastodon";
+App::$strings["Activitypub Protocol"] = "Протокол ActivityPub";
+App::$strings["Project Servers and Resources"] = "Серверы и ресурсы проекта";
+App::$strings["Project Creator and Tech Lead"] = "Создатель проекта и технический руководитель";
+App::$strings["And the hundreds of other people and organisations who helped make the Hubzilla possible."] = "И сотни других людей и организаций которые помогали в создании Hubzilla.";
+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>.)";
+App::$strings["Help support our ground-breaking work in decentralisation, web identity, and privacy."] = "Помогите поддержать нашу новаторскую работу в областях децентрализации, веб-идентификации и конфиденциальности.";
+App::$strings["Your donations keep servers and services running and also helps us to provide innovative new features and continued development."] = "В ваших пожертвованиях поддерживают серверы и службы, а также помогают нам предоставлять новые возможности и продолжать развитие.";
+App::$strings["Donate"] = "Пожертвовать";
+App::$strings["Choose a project, developer, or public hub to support with a one-time donation"] = "Выберите проект, разработчика или общедоступный узел для поддержки в форме единоразового пожертвования";
+App::$strings["Donate Now"] = "Пожертвовать сейчас";
+App::$strings["<strong><em>Or</em></strong> become a project sponsor (Hubzilla Project only)"] = "<strong><em>или</em></strong> станьте спонсором проекта (только для Hubzilla)";
+App::$strings["Please indicate if you would like your first name or full name (or nothing) to appear in our sponsor listing"] = "Пожалуйста, если желаете, укажите ваше имя для отображения в списке спонсоров.";
+App::$strings["Sponsor"] = "Спонсор";
+App::$strings["Special thanks to: "] = "Особые благодарности:";
+App::$strings["This is a fairly comprehensive and complete guitar chord dictionary which will list most of the available ways to play a certain chord, starting from the base of the fingerboard up to a few frets beyond the twelfth fret (beyond which everything repeats). A couple of non-standard tunings are provided for the benefit of slide players, etc."] = "";
+App::$strings["Chord names start with a root note (A-G) and may include sharps (#) and flats (b). This software will parse most of the standard naming conventions such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements."] = "";
+App::$strings["Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..."] = "Примеры действительных включают A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ...";
+App::$strings["Guitar Chords"] = "Гитарные аккорды";
+App::$strings["The complete online chord dictionary"] = "Полный онлайн словарь аккордов";
+App::$strings["Tuning"] = "Настройка";
+App::$strings["Chord name: example: Em7"] = "Наименование аккорда - example: Em7";
+App::$strings["Show for left handed stringing"] = "Показывать струны для левшей";
+App::$strings["Quick Reference"] = "Быстрая ссылка";
+App::$strings["Post to Libertree"] = "Опубликовать в Libertree";
+App::$strings["Libertree Crosspost Connector Settings saved."] = "Настройки пересылки публикаций Libertree сохранены.";
+App::$strings["Libertree Crosspost Connector App"] = "Приложение \"Пересылка публикаций Libertree\"";
+App::$strings["Relay public posts to Libertree"] = "Пересылает общедоступные публикации в Libertree";
+App::$strings["Libertree API token"] = "Токен Libertree API";
+App::$strings["Libertree site URL"] = "URL сайта Libertree";
+App::$strings["Post to Libertree by default"] = "Публиковать в Libertree по умолчанию";
+App::$strings["Libertree Crosspost Connector"] = "Пересылка публикаций Libertree";
+App::$strings["Flattr widget settings updated."] = "Настройки виджета Flattr обновлены.";
+App::$strings["Flattr Widget App"] = "Приложение \"Виджет Flattr\"";
+App::$strings["Add a Flattr button to your channel page"] = "Добавить кнопку Flattr на страницу вашего канала";
+App::$strings["Flattr user"] = "Пользователь Flattr";
+App::$strings["URL of the Thing to flattr"] = "URL ccылки на Flattr";
+App::$strings["If empty channel URL is used"] = "Если пусто, то используется URL канала";
+App::$strings["Title of the Thing to flattr"] = "Заголовок вещи на Flattr";
+App::$strings["If empty \"channel name on The Hubzilla\" will be used"] = "Если пусто, то будет использовано \"Название канала Hubzilla\"";
+App::$strings["Static or dynamic flattr button"] = "Статическая или динамическая кнопка Flattr";
+App::$strings["static"] = "статическая";
+App::$strings["dynamic"] = "динамическая";
+App::$strings["Alignment of the widget"] = "Выравнивание виджета";
+App::$strings["left"] = "слева";
+App::$strings["right"] = "справа";
+App::$strings["Flattr Widget"] = "Виджет Flattr";
+App::$strings["Flattr this!"] = "Flattr это!";
App::$strings["Please contact your site administrator.<br />The provided API URL is not valid."] = "Пожалуйста свяжитесь с администратором сайта. <br />Предоставленный URL API недействителен.";
App::$strings["We could not contact the GNU social API with the Path you entered."] = "Нам не удалось установить контакт с GNU Social API по введённому вами пути";
App::$strings["GNU social settings updated."] = "Настройки GNU Social обновлены.";
+App::$strings["Relay public postings to a connected GNU social account (formerly StatusNet)"] = "Пересылает общедоступные публикации на подключённую учётную запись GNU social (бывшая StatusNet)";
App::$strings["Globally Available GNU social OAuthKeys"] = "Глобально доступные ключи OAuthKeys GNU Social";
App::$strings["There are preconfigured OAuth key pairs for some GNU social servers available. If you are using one of them, please use these credentials.<br />If not feel free to connect to any other GNU social instance (see below)."] = "Существуют предварительно настроенные пары ключей OAuth для некоторых доступных серверов GNU social. Если вы используете один из них, используйте эти учетные данные. <br />Если вы не хотите подключаться к какому-либо другому серверу GNU social (см. ниже).";
App::$strings["Provide your own OAuth Credentials"] = "Предоставьте ваши собственные регистрационные данные OAuth";
@@ -3128,113 +2662,53 @@ App::$strings["Copy the security code from GNU social here"] = "Скопируй
App::$strings["Cancel Connection Process"] = "Отменить процесс подключения";
App::$strings["Current GNU social API is"] = "Текущий GNU social API";
App::$strings["Cancel GNU social Connection"] = "Отменить подключение с GNU social";
+App::$strings["Currently connected to: "] = "В настоящее время подключён к:";
App::$strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to GNU social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Замечание</strong>: Из-за настроек конфиденциальности (<em>скрыть данные своего профиля от неизвестных зрителей?</em>) cсылка, потенциально включенная в общедоступные публикации, переданные в GNU social, приведет посетителя к пустой странице, информирующей его о том, что доступ к вашему профилю был ограничен.";
-App::$strings["Allow posting to GNU social"] = "Разрешить публиковать в GNU social";
-App::$strings["If enabled your public postings can be posted to the associated GNU-social account"] = "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи GNU social";
App::$strings["Post to GNU social by default"] = "Публиковать в GNU social по умолчанию";
App::$strings["If enabled your public postings will be posted to the associated GNU-social account by default"] = "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи GNU social по умолчанию";
-App::$strings["GNU social Post Settings"] = "Настройки публикаций GNU social";
+App::$strings["Clear OAuth configuration"] = "Очистить конфигурацию OAuth";
+App::$strings["GNU-Social Crosspost Connector"] = "Подключение пересылки публикаций GNU Social";
+App::$strings["Post to GNU social"] = "Опубликовать в GNU Social";
App::$strings["API URL"] = "";
App::$strings["Application name"] = "Название приложения";
-App::$strings["Access Denied"] = "Доступ запрещён";
-App::$strings["Enable Community Moderation"] = "Включить модерацию сообщества";
-App::$strings["Reputation automatically given to new members"] = "Репутация автоматически предоставляемая новым участникам";
-App::$strings["Reputation will never fall below this value"] = "Репутация никогда не упадёт ниже этого значения";
-App::$strings["Minimum reputation before posting is allowed"] = "Минимальная репутация для разрешения возможности размещать публикации";
-App::$strings["Minimum reputation before commenting is allowed"] = "Минимальная репутация для разрешения комментирования";
-App::$strings["Minimum reputation before a member is able to moderate other posts"] = "Минимальная репутация для возможности модерирования участником чужих публикаций";
-App::$strings["Max ratio of moderator's reputation that can be added to/deducted from reputation of person being moderated"] = "Максимальное соотношение репутации модератора, которое может быть добавлено / вычтено из репутации модерируемого участника";
-App::$strings["Reputation \"cost\" to post"] = "\"Стоимость\" репутации для публикации";
-App::$strings["Reputation \"cost\" to comment"] = "\"Стоимость\" репутации для комментирования";
-App::$strings["Reputation automatically recovers at this rate per hour until it reaches minimum_to_post"] = "Репутация автоматически восстанавливается с этой скоростью в час пока не достигает значения minimum_to_post";
-App::$strings["When minimum_to_moderate > reputation > minimum_to_post reputation recovers at this rate per hour"] = "При minimum_to_moderate > репутация > minimum_to_post репутация восстанавливается с этой скоростью в час";
-App::$strings["Community Moderation Settings"] = "Настройки модерирования сообщества";
-App::$strings["Can moderate reputation on my channel."] = "Может модерировать репутацию на моём канале";
-App::$strings["Channel Reputation"] = "Репутация канала";
-App::$strings["Flag Adult Photos"] = "Пометка фотографий для взрослых";
-App::$strings["Provide photo edit option to hide inappropriate photos from default album view"] = "Предоставьте возможность редактирования фотографий, чтобы скрыть неприемлемые фотографии из альбома по умолчанию";
-App::$strings["First Name"] = "Имя";
-App::$strings["Last Name"] = "Фамилия";
-App::$strings["Nickname"] = "Псевдоним";
-App::$strings["Full Name"] = "Полное имя";
-App::$strings["Profile Photo 16px"] = "Фотография профиля 16px";
-App::$strings["Profile Photo 32px"] = "Фотография профиля 32px";
-App::$strings["Profile Photo 48px"] = "Фотография профиля 48px";
-App::$strings["Profile Photo 64px"] = "Фотография профиля 64px";
-App::$strings["Profile Photo 80px"] = "Фотография профиля 80px";
-App::$strings["Profile Photo 128px"] = "Фотография профиля 128px";
-App::$strings["Timezone"] = "Часовой пояс";
-App::$strings["Birth Year"] = "Год рождения";
-App::$strings["Birth Month"] = "Месяц рождения";
-App::$strings["Birth Day"] = "День рождения";
-App::$strings["Birthdate"] = "Дата рождения";
-App::$strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Мы столкнулись с проблемой входа с предоставленным вами OpenID. Пожалуйста, проверьте корректность его написания.";
-App::$strings["The error message was:"] = "Сообщение об ошибке было:";
-App::$strings["OpenID protocol error. No ID returned."] = "Ошибка протокола OpenID. Идентификатор не возвращён.";
-App::$strings["Set a preferred page to load on login from home page"] = "Установить предпочтительную страницу для загрузки при входе с домашней страницы";
-App::$strings["Page to load after login"] = "Страница для загрузки после входа";
-App::$strings["Examples: &quot;apps&quot;, &quot;network?f=&gid=37&quot; (privacy collection), &quot;channel&quot; or &quot;notifications/system&quot; (leave blank for default network page (grid)."] = "Примеры: &quot;apps&quot;, &quot;network?f=&gid=37&quot; (privacy collection), &quot;channel&quot; or &quot;notifications/system&quot; (оставьте пустым для для страницы сети по умолчанию).";
-App::$strings["Startpage"] = "Стартовая страница";
-App::$strings["Hubzilla Directory Stats"] = "Каталог статистики Hubzilla";
-App::$strings["Total Hubs"] = "Всего хабов";
-App::$strings["Hubzilla Hubs"] = "Хабы Hubzilla";
-App::$strings["Friendica Hubs"] = "Хабы Friendica";
-App::$strings["Diaspora Pods"] = "Стручки Diaspora";
-App::$strings["Hubzilla Channels"] = "Каналы Hubzilla";
-App::$strings["Friendica Channels"] = "Каналы Friendica";
-App::$strings["Diaspora Channels"] = "Каналы Diaspora";
-App::$strings["Aged 35 and above"] = "Возраст 35 и выше";
-App::$strings["Aged 34 and under"] = "Возраст 34 и ниже";
-App::$strings["Average Age"] = "Средний возраст";
-App::$strings["Known Chatrooms"] = "Известные чаты";
-App::$strings["Known Tags"] = "Известные теги";
-App::$strings["Please note Diaspora and Friendica statistics are merely those **this directory** is aware of, and not all those known in the network. This also applies to chatrooms,"] = "Обратите внимание, что статистика Diaspora и Friendica это только те, о которых ** этот каталог ** знает, а не все известные в сети. Это также относится и к чатам.";
+App::$strings["QR code"] = "QR-код";
+App::$strings["QR Generator"] = "Генератор QR-кодов";
+App::$strings["Enter some text"] = "Введите любой текст";
+App::$strings["Invalid game."] = "Недействительная игра.";
+App::$strings["You are not a player in this game."] = "Вы не играете в эту игру.";
+App::$strings["You must be a local channel to create a game."] = "Ваш канал должен быть локальным чтобы создать игру.";
+App::$strings["You must select one opponent that is not yourself."] = "Вы должны выбрать противника который не является вами.";
+App::$strings["Random color chosen."] = "Выбран случайный цвет.";
+App::$strings["Error creating new game."] = "Ошибка создания новой игры.";
+App::$strings["Requested channel is not available."] = "Запрошенный канал не доступен.";
+App::$strings["Chess not installed."] = "Шахматы не установлены.";
+App::$strings["You must select a local channel /chess/channelname"] = "Вы должны выбрать локальный канал /chess/channelname";
+App::$strings["Enable notifications"] = "Включить оповещения";
+App::$strings["Twitter settings updated."] = "Настройки Twitter обновлены";
+App::$strings["Twitter Crosspost Connector App"] = "Приложение \"Пересылка публикаций Twitter\"";
+App::$strings["Relay public posts to Twitter"] = "Пересылает общедоступные публикации в Twitter";
+App::$strings["No consumer key pair for Twitter found. Please contact your site administrator."] = "Не найдено пары ключей для Twitter. Пожалуйста, свяжитесь с администратором сайта.";
+App::$strings["At this Hubzilla instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter."] = "В этой установке Hubzilla плагин Twitter был включён, однако пока он не подключён к вашему аккаунту в Twitter. Для этого нажмите на кнопку ниже для получения PIN-кода от Twitter который нужно скопировать в поле ввода и отправить форму. Только ваши <strong>общедоступные</strong> публикации будут опубликованы в Twitter.";
+App::$strings["Log in with Twitter"] = "Войти в Twitter";
+App::$strings["Copy the PIN from Twitter here"] = "Скопируйте PIN-код из Twitter здесь";
+App::$strings["<strong>Note:</strong> Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Замечание</strong>: Из-за настроек конфиденциальности (<em>скрыть данные своего профиля от неизвестных зрителей?</em>) cсылка, потенциально включенная в общедоступные публикации, переданные в Twitter, приведет посетителя к пустой странице, информирующей его о том, что доступ к вашему профилю был ограничен.";
+App::$strings["Twitter post length"] = "Длина публикации Twitter";
+App::$strings["Maximum tweet length"] = "Максимальная длина твита";
+App::$strings["Send public postings to Twitter by default"] = "Отправлять общедоступные публикации в Twitter по умолчанию";
+App::$strings["If enabled your public postings will be posted to the associated Twitter account by default"] = "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи Twitter по умолчанию";
+App::$strings["Twitter Crosspost Connector"] = "Пересылка публикаций Twitter";
+App::$strings["Post to Twitter"] = "Опубликовать в Twitter";
+App::$strings["Smileybutton App"] = "Приложение \"Кнопка со смайликам\"";
+App::$strings["Adds a smileybutton to the jot editor"] = "Добавлять кнопку со смайликами в редактор Jot";
+App::$strings["Hide the button and show the smilies directly."] = "Скрыть кнопку и сразу показывать смайлики.";
+App::$strings["Smileybutton Settings"] = "Настройки кнопки со смайликами";
App::$strings["Enable Test Catalog"] = "Включить тестовый каталог";
App::$strings["Enable Manual Payments"] = "Включить ручные платежи";
App::$strings["Base Merchant Currency"] = "Основная торговая валюта";
App::$strings["Cart Settings"] = "Настройки карточек";
-App::$strings["Enable Subscription Management Module"] = "Включить модуль управления подписками";
-App::$strings["Cannot include subscription items with different terms in the same order."] = "Нельзя включать элементы подписки с разными условиями в том же заказе.";
-App::$strings["Select Subscription to Edit"] = "Выбрать подписку для редактирования";
-App::$strings["Edit Subscriptions"] = "Редактировать подписки";
-App::$strings["Subscription SKU"] = "Код подписки";
-App::$strings["Catalog Description"] = "Описание каталога";
-App::$strings["Subscription available for purchase."] = "Подписка доступна для покупки.";
-App::$strings["Maximum active subscriptions to this item per account."] = "Максимальное количество подписок на аккаунт для этой позиции";
-App::$strings["Subscription price."] = "Цена подписки.";
-App::$strings["Quantity"] = "Количество";
-App::$strings["Term"] = "Условия";
-App::$strings["Enable Hubzilla Services Module"] = "Включить модуль сервиса Hubzilla";
-App::$strings["New Sku"] = "Новый код";
-App::$strings["Cannot save edits to locked item."] = "Невозможно сохранить изменения заблокированной позиции.";
-App::$strings["SKU not found."] = "Код не найден.";
-App::$strings["Invalid Activation Directive."] = "Недействительная директива активации.";
-App::$strings["Invalid Deactivation Directive."] = "Недействительная директива деактивации";
-App::$strings["Add to this privacy group"] = "Добавить в эту группу безопасности";
-App::$strings["Set user service class"] = "Установить класс обслуживания пользователя";
-App::$strings["You must be using a local account to purchase this service."] = "Вы должны использовать локальную учётноую запись для покупки этого сервиса.";
-App::$strings["Changes Locked"] = "Изменения заблокированы";
-App::$strings["Item available for purchase."] = "Позиция доступна для приобретения.";
-App::$strings["Price"] = "Цена";
-App::$strings["Add buyer to privacy group"] = "Добавить покупателя в группу безопасности";
-App::$strings["Add buyer as connection"] = "Добавить покупателя как контакт";
-App::$strings["Set Service Class"] = "Установить класс обслуживания";
-App::$strings["Enable Paypal Button Module"] = "Включить модуль кнопки Paypal";
-App::$strings["Use Production Key"] = "Использовать ключ Production";
-App::$strings["Paypal Sandbox Client Key"] = "Ключ клиента Paypal Sandbox";
-App::$strings["Paypal Sandbox Secret Key"] = "Секретный ключ Paypal Sandbox";
-App::$strings["Paypal Production Client Key"] = "Ключ клиента Paypal Production";
-App::$strings["Paypal Production Secret Key"] = "Секретный ключ Paypal Production";
-App::$strings["Paypal button payments are not enabled."] = "Кнопка Paypal для платежей не включена.";
-App::$strings["Paypal button payments are not properly configured. Please choose another payment option."] = "Кнопка Paypal для платежей настроена неправильно. Пожалуйста, используйте другой вариант оплаты.";
-App::$strings["Order not found."] = "Заказ не найден.";
-App::$strings["Enable Manual Cart Module"] = "Включить модуль ручного управления карточками";
App::$strings["Access Denied."] = "Доступ запрещён.";
App::$strings["Order Not Found"] = "Заказ не найден";
App::$strings["Invalid Item"] = "Недействительный элемент";
-App::$strings["Error: order mismatch. Please try again."] = "Ошибка: несоответствие заказа. Пожалуйста, попробуйте ещё раз";
-App::$strings["Manual payments are not enabled."] = "Ручные платежи не подключены.";
-App::$strings["Finished"] = "Завершено";
App::$strings["DB Cleanup Failure"] = "Сбой очистки базы данных";
App::$strings["[cart] Item Added"] = "[cart] Элемент добавлен";
App::$strings["Order already checked out."] = "Заказ уже проверен.";
@@ -3242,92 +2716,97 @@ App::$strings["Drop database tables when uninstalling."] = "Сбросить т
App::$strings["Shop"] = "Магазин";
App::$strings["Cart utilities for orders and payments"] = "Утилиты карточек для заказов и платежей";
App::$strings["You must be logged into the Grid to shop."] = "Вы должны быть в сети для доступа к магазину";
+App::$strings["Order not found."] = "Заказ не найден.";
App::$strings["Access denied."] = "Доступ запрещён.";
App::$strings["No Order Found"] = "Нет найденных заказов";
App::$strings["An unknown error has occurred Please start again."] = "Произошла неизвестная ошибка. Пожалуйста, начните снова.";
App::$strings["Invalid Payment Type. Please start again."] = "Недействительный тип платежа. Пожалуйста, начните снова.";
App::$strings["Order not found"] = "Заказ не найден";
-App::$strings["Federate"] = "";
-App::$strings["nofed Settings saved."] = "Настройки nofed сохранены.";
-App::$strings["Allow Federation Toggle"] = "Разрешить переключение федерации";
-App::$strings["Federate posts by default"] = "Разрешить федерацию публикаций по умолчанию";
-App::$strings["NoFed Settings"] = "Настройки NoFed";
-App::$strings["Your channel has been upgraded to the latest \$Projectname version."] = "Ваш канал был обновлён на последнюю версию \$Projectname.";
-App::$strings["To improve usability, we have converted some features into installable stand-alone apps."] = "Чтобы улучшить удобство использования, некоторые функции теперь доступны в виде устанавливаемых автономных приложений.";
-App::$strings["Please visit the \$Projectname"] = "Пожалуйста, посетите \$Projectname";
-App::$strings["app store"] = "раздел \"Приложения\"";
-App::$strings["and install possibly missing apps."] = "и установите необходимые вам.";
-App::$strings["Upgrade Info"] = "Сведения об обновлении";
-App::$strings["Do not show this again"] = "Больше не показывать";
-App::$strings["generic profile image"] = "Стандартное изображение профиля";
-App::$strings["random geometric pattern"] = "Случайный геометрический рисунок";
-App::$strings["monster face"] = "Лицо чудовища";
-App::$strings["computer generated face"] = "Сгенерированное компьютером лицо";
-App::$strings["retro arcade style face"] = "Лицо в стиле старой аркадной игры";
-App::$strings["Hub default profile photo"] = "Фотография профиля по умолчанию";
-App::$strings["Information"] = "Информация";
-App::$strings["Libravatar addon is installed, too. Please disable Libravatar addon or this Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if nothing was found at Libravatar."] = "Плагин Libravatar также установлен. Пожалуйста, отключите плагин Libravatar или этот плагин Gravatar. Если Плагин Libravatar ничего не найдёт, он вернётся в Gravatar.";
-App::$strings["Save Settings"] = "Сохранить настройки";
-App::$strings["Default avatar image"] = "Изображение аватара по умолчанию";
-App::$strings["Select default avatar image if none was found at Gravatar. See README"] = "Выберите изображения аватар по умолчанию если ничего не было найдено в Gravatar (см. README).";
-App::$strings["Rating of images"] = "Оценки изображений";
-App::$strings["Select the appropriate avatar rating for your site. See README"] = "Выберите подходящую оценку аватара для вашего сайта (см. README).";
-App::$strings["Gravatar settings updated."] = "Настройки Gravatar обновлены.";
-App::$strings["WYSIWYG status editor"] = "WYSIWYG редактор статуса ";
-App::$strings["WYSIWYG Status"] = "WYSIWYG статус";
-App::$strings["Planets Settings updated."] = "Настройки Planets обновлены.";
-App::$strings["Enable Planets Plugin"] = "Включить плагин Planets";
-App::$strings["Planets Settings"] = "Настройки Planets";
-App::$strings["Add some colour to tag clouds"] = "Добавить немного цвета для облака тегов";
-App::$strings["Rainbow Tag"] = "Радуга тегов";
-App::$strings["Invalid game."] = "Недействительная игра";
-App::$strings["You are not a player in this game."] = "Вы не играете в эту игру.";
-App::$strings["You must be a local channel to create a game."] = "Ваш канал должен быть локальным чтобы создать игру.";
-App::$strings["You must select one opponent that is not yourself."] = "Вы должны выбрать противника который не является вами.";
-App::$strings["Random color chosen."] = "Выбран случайный цвет.";
-App::$strings["Error creating new game."] = "Ошибка создания новой игры.";
-App::$strings["You must select a local channel /chess/channelname"] = "Вы должны выбрать локальный канал /chess/channelname";
-App::$strings["Enable notifications"] = "Включить оповещения";
-App::$strings["Follow"] = "Отслеживать";
-App::$strings["%1\$s is now following %2\$s"] = "%1\$s сейчас отслеживает %2\$s";
-App::$strings["The GNU-Social protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "Протокол GNU-Social не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала.";
-App::$strings["GNU-Social Protocol"] = "Протокол GNU-Social";
-App::$strings["Message to display on every page on this server"] = "Отображаемое сообщение на каждой странице на этом сервере.";
-App::$strings["Pageheader Settings"] = "Настройки шапки страницы";
-App::$strings["pageheader Settings saved."] = "Настройки шапки страницы сохранены.";
-App::$strings["text to include in all outgoing posts from this site"] = "текст, который будет добавлен во все исходящие публикации с этого сайта";
-App::$strings["Send email to all members"] = "Отправить email всем участникам";
-App::$strings["%1\$d of %2\$d messages sent."] = "%1\$d из %2\$d сообщений отправлено.";
-App::$strings["Send email to all hub members."] = "Отправить email всем участникам узла.";
-App::$strings["Sender Email address"] = "Адрес электронной почты отправителя";
-App::$strings["Test mode (only send to hub administrator)"] = "Тестовый режим (отправка только администратору узла)";
-App::$strings["Deactivate the feature"] = "Деактивировать функцию";
-App::$strings["Hide the button and show the smilies directly."] = "Скрыть кнопку и сразу показывать смайлики.";
-App::$strings["Smileybutton Settings"] = "Настройки кнопки смайликов";
-App::$strings["Friendica Photo Album Import"] = "Импортировать альбом фотографий Friendica";
-App::$strings["This will import all your Friendica photo albums to this Red channel."] = "Это позволит импортировать все ваши альбомы фотографий Friendica в этот канал.";
-App::$strings["Friendica Server base URL"] = "Базовый URL сервера Friendica";
-App::$strings["Friendica Login Username"] = "Имя пользователя для входа Friendica";
-App::$strings["Friendica Login Password"] = "Пароль для входа Firendica";
-App::$strings["Show Upload Limits"] = "Показать ограничения на загрузку";
-App::$strings["Hubzilla configured maximum size: "] = "Максимальный размер настроенный в Hubzilla:";
-App::$strings["PHP upload_max_filesize: "] = "";
-App::$strings["PHP post_max_size (must be larger than upload_max_filesize): "] = "PHP post_max_size (должен быть больше чем upload_max_filesize): ";
-App::$strings["Flattr this!"] = "Flattr это!";
-App::$strings["Flattr widget settings updated."] = "Настройки виджета Flattr обновлены.";
-App::$strings["Flattr user"] = "Пользователь Flattr";
-App::$strings["URL of the Thing to flattr"] = "URL ccылки на Flattr";
-App::$strings["If empty channel URL is used"] = "Если пусто, то используется URL канала";
-App::$strings["Title of the Thing to flattr"] = "Заголовок вещи на Flattr";
-App::$strings["If empty \"channel name on The Hubzilla\" will be used"] = "Если пусто, то будет использовано \"Название канала Hubzilla\"";
-App::$strings["Static or dynamic flattr button"] = "Статическая или динамическая кнопка Flattr";
-App::$strings["static"] = "статическая";
-App::$strings["dynamic"] = "динамическая";
-App::$strings["Alignment of the widget"] = "Выравнивание виджета";
-App::$strings["left"] = "слева";
-App::$strings["right"] = "справа";
-App::$strings["Enable Flattr widget"] = "Включить виджет Flattr";
-App::$strings["Flattr Widget Settings"] = "Настройки виджета Flattr";
+App::$strings["Enable Paypal Button Module"] = "Включить модуль кнопки Paypal";
+App::$strings["Use Production Key"] = "Использовать ключ Production";
+App::$strings["Paypal Sandbox Client Key"] = "Ключ клиента Paypal Sandbox";
+App::$strings["Paypal Sandbox Secret Key"] = "Секретный ключ Paypal Sandbox";
+App::$strings["Paypal Production Client Key"] = "Ключ клиента Paypal Production";
+App::$strings["Paypal Production Secret Key"] = "Секретный ключ Paypal Production";
+App::$strings["Paypal button payments are not enabled."] = "Кнопка Paypal для платежей не включена.";
+App::$strings["Paypal button payments are not properly configured. Please choose another payment option."] = "Кнопка Paypal для платежей настроена неправильно. Пожалуйста, используйте другой вариант оплаты.";
+App::$strings["Enable Manual Cart Module"] = "Включить модуль ручного управления карточками";
+App::$strings["New Sku"] = "Новый код";
+App::$strings["Cannot save edits to locked item."] = "Невозможно сохранить изменения заблокированной позиции.";
+App::$strings["Changes Locked"] = "Изменения заблокированы";
+App::$strings["Item available for purchase."] = "Позиция доступна для приобретения.";
+App::$strings["Price"] = "Цена";
+App::$strings["Enable Hubzilla Services Module"] = "Включить модуль сервиса Hubzilla";
+App::$strings["SKU not found."] = "Код не найден.";
+App::$strings["Invalid Activation Directive."] = "Недействительная директива активации.";
+App::$strings["Invalid Deactivation Directive."] = "Недействительная директива деактивации";
+App::$strings["Add to this privacy group"] = "Добавить в эту группу безопасности";
+App::$strings["Set user service class"] = "Установить класс обслуживания пользователя";
+App::$strings["You must be using a local account to purchase this service."] = "Вы должны использовать локальную учётноую запись для покупки этого сервиса.";
+App::$strings["Add buyer to privacy group"] = "Добавить покупателя в группу безопасности";
+App::$strings["Add buyer as connection"] = "Добавить покупателя как контакт";
+App::$strings["Set Service Class"] = "Установить класс обслуживания";
+App::$strings["Enable Subscription Management Module"] = "Включить модуль управления подписками";
+App::$strings["Cannot include subscription items with different terms in the same order."] = "Нельзя включать элементы подписки с разными условиями в том же заказе.";
+App::$strings["Select Subscription to Edit"] = "Выбрать подписку для редактирования";
+App::$strings["Edit Subscriptions"] = "Редактировать подписки";
+App::$strings["Subscription SKU"] = "Код подписки";
+App::$strings["Catalog Description"] = "Описание каталога";
+App::$strings["Subscription available for purchase."] = "Подписка доступна для покупки.";
+App::$strings["Maximum active subscriptions to this item per account."] = "Максимальное количество подписок на аккаунт для этой позиции";
+App::$strings["Subscription price."] = "Цена подписки.";
+App::$strings["Quantity"] = "Количество";
+App::$strings["Term"] = "Условия";
+App::$strings["Error: order mismatch. Please try again."] = "Ошибка: несоответствие заказа. Пожалуйста, попробуйте ещё раз";
+App::$strings["Manual payments are not enabled."] = "Ручные платежи не подключены.";
+App::$strings["Finished"] = "Завершено";
+App::$strings["This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> analytics tool."] = "Этот сайт отслеживается с помощью инструментов аналитики <a href='http://www.piwik.org'>Piwik</a>.";
+App::$strings["If you do not want that your visits are logged this way you <a href='%s'>can set a cookie to prevent Piwik from tracking further visits of the site</a> (opt-out)."] = "Если вы не хотите, чтобы ваши визиты регистрировались таким образом, вы <a href='%s'>можете отключить cookie с тем, чтобы Piwik не отслеживал дальнейшие посещения сайта</a>.";
+App::$strings["Piwik Base URL"] = "Базовый URL Piwik";
+App::$strings["Absolute path to your Piwik installation. (without protocol (http/s), with trailing slash)"] = "Абсолютный путь к вашей установке Piwik (без типа протокола, с начальным слэшем)";
+App::$strings["Site ID"] = "ID сайта";
+App::$strings["Show opt-out cookie link?"] = "Показывать ссылку на отказ от использования cookies?";
+App::$strings["Asynchronous tracking"] = "Асинхронное отслеживание";
+App::$strings["Enable frontend JavaScript error tracking"] = "Включить отслеживание ошибок JavaScript на фронтенде.";
+App::$strings["This feature requires Piwik >= 2.2.0"] = "Эта функция требует версию Piwik >= 2.2.0";
+App::$strings["Edit your profile and change settings."] = "Отредактировать ваш профиль и изменить настройки.";
+App::$strings["Click here to see activity from your connections."] = "Нажмите сюда для отображения активности ваши контактов.";
+App::$strings["Click here to see your channel home."] = "Нажмите сюда чтобы увидеть главную страницу вашего канала.";
+App::$strings["You can access your private messages from here."] = "Вы можете получить доступ с личной переписке здесь.";
+App::$strings["Create new events here."] = "Создать новое событие здесь.";
+App::$strings["You can accept new connections and change permissions for existing ones here. You can also e.g. create groups of contacts."] = "Вы можете подключать новые контакты и менять разрешения для существующих здесь. Также вы можете создавать их группы.";
+App::$strings["System notifications will arrive here"] = "Системные оповещения будут показываться здесь";
+App::$strings["Search for content and users"] = "Поиск пользователей и содержимого";
+App::$strings["Browse for new contacts"] = "Поиск новых контактов";
+App::$strings["Launch installed apps"] = "Запустить установленные приложения";
+App::$strings["Looking for help? Click here."] = "Нужна помощь? Нажмите сюда.";
+App::$strings["New events have occurred in your network. Click here to see what has happened!"] = "Новые события произошли в вашей сети. Нажмите здесь для того, чтобы знать что случилось!";
+App::$strings["You have received a new private message. Click here to see from who!"] = "Вы получили новое личное сообщение. Нажмите чтобы увидеть от кого!";
+App::$strings["There are events this week. Click here too see which!"] = "На этой неделе есть события. Нажмите здесь чтобы увидеть какие!";
+App::$strings["You have received a new introduction. Click here to see who!"] = "Вы были представлены. Нажмите чтобы увидеть кому!";
+App::$strings["There is a new system notification. Click here to see what has happened!"] = "Это новое системное уведомление. Нажмите чтобы посмотреть что случилось!";
+App::$strings["Click here to share text, images, videos and sound."] = "Нажмите сюда чтобы поделиться текстом, изображениями, видео или треком.";
+App::$strings["You can write an optional title for your update (good for long posts)."] = "Вы можете написать необязательный заголовок для вашей публикации (желательно для больших публикаций).";
+App::$strings["Entering some categories here makes it easier to find your post later."] = "Введите категории здесь чтобы было проще найти вашу публикацию позднее.";
+App::$strings["Share photos, links, location, etc."] = "Поделиться фотографией, ссылками, местоположение и т.п.";
+App::$strings["Only want to share content for a while? Make it expire at a certain date."] = "Хотите только поделиться временным содержимым? Установите срок его действия.";
+App::$strings["You can password protect content."] = "Вы можете защитить содержимое паролем.";
+App::$strings["Choose who you share with."] = "Выбрать с кем поделиться.";
+App::$strings["Click here when you are done."] = "Нажмите здесь когда закончите.";
+App::$strings["Adjust from which channels posts should be displayed."] = "Настройте из каких каналов должны отображаться публикации.";
+App::$strings["Only show posts from channels in the specified privacy group."] = "Показывать только публикации из определённой группы безопасности.";
+App::$strings["Easily find posts containing tags (keywords preceded by the \"#\" symbol)."] = "Лёгкий поиск сообщения, содержащего теги (ключевые слова, которым предшествует символ #).";
+App::$strings["Easily find posts in given category."] = "Лёгкий поиск публикаций в данной категории.";
+App::$strings["Easily find posts by date."] = "Лёгкий поиск публикаций по дате.";
+App::$strings["Suggested users who have volounteered to be shown as suggestions, and who we think you might find interesting."] = "Рекомендуемые пользователи, которые были представлены в качестве предложений, и которые, по нашему мнению, могут оказаться интересными.";
+App::$strings["Here you see channels you have connected to."] = "Здесь вы видите каналы, к которым вы подключились.";
+App::$strings["Save your search so you can repeat it at a later date."] = "Сохраните ваш поиск с тем, чтобы повторить его позже.";
+App::$strings["If you see this icon you can be sure that the sender is who it say it is. It is normal that it is not always possible to verify the sender, so the icon will be missing sometimes. There is usually no need to worry about that."] = "Если вы видите этот значок, вы можете быть уверены, что отправитель - это тот, кто это говорит. Это нормально, что не всегда можно проверить отправителя, поэтому значок иногда будет отсутствовать. Обычно об этом не нужно беспокоиться.";
+App::$strings["Danger! It seems someone tried to forge a message! This message is not necessarily from who it says it is from!"] = "Опасность! Кажется, кто-то пытался подделать сообщение! Это сообщение не обязательно от того, от кого оно значится!";
+App::$strings["Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can pause it at any time and continue where you left off by reloading the page, or navigting to another page.</p><p>You can also advance by pressing the return key"] = "Добро пожаловать в Hubzilla! Желаете получить обзор пользовательского интерфейса?</p> <p>Вы можете его приостановаить и в любое время перезагрузив страницу или перейдя на другую.</p><p>Также вы можете нажать клавишу \"Назад\"";
+App::$strings["Send your identity to all websites"] = "Отправить ваши данные на все веб-сайты";
+App::$strings["Sendzid App"] = "Приложение \"Отправить ZID\"";
+App::$strings["Send ZID"] = "Отправить ZID";
App::$strings["Three Dimensional Tic-Tac-Toe"] = "Tic-Tac-Toe в трёх измерениях";
App::$strings["3D Tic-Tac-Toe"] = "";
App::$strings["New game"] = "Новая игра";
@@ -3340,19 +2819,14 @@ App::$strings["I'm going first this time..."] = "На этот раз начин
App::$strings["You won!"] = "Вы выиграли!";
App::$strings["\"Cat\" game!"] = "Ничья!";
App::$strings["I won!"] = "Я выиграл!";
-App::$strings["XMPP settings updated."] = "Настройки XMPP обновлены.";
-App::$strings["Enable Chat"] = "Включить чат";
-App::$strings["Individual credentials"] = "Индивидуальные разрешения";
-App::$strings["Jabber BOSH server"] = "Сервер Jabber BOSH";
-App::$strings["XMPP Settings"] = "Настройки XMPP";
-App::$strings["Jabber BOSH host"] = "Узел Jabber BOSH";
-App::$strings["Use central userbase"] = "Использовать центральную базу данных";
-App::$strings["If enabled, members will automatically login to an ejabberd server that has to be installed on this machine with synchronized credentials via the \"auth_ejabberd.php\" script."] = "Если включено, участники автоматически войдут на сервер ejabberd, который должен быть установлен на этом компьютере с синхронизированными учетными данными через скрипт \"auth_ejabberd.php\".";
-App::$strings["New registration"] = "Новая регистрация";
-App::$strings["Message sent to %s. New account registration: %s"] = "Сообщение отправлено в %s. Регистрация нового аккаунта: %s";
-App::$strings["Send your identity to all websites"] = "Отправить ваши данные на все веб-сайты";
-App::$strings["Send ZID"] = "Отправить ZID";
-App::$strings["Who likes me?"] = "Кому я нравлюсь?";
+App::$strings["pageheader Settings saved."] = "Настройки шапки страницы сохранены.";
+App::$strings["Page Header App"] = "Приложение \"Заголовок страницы\"";
+App::$strings["Inserts a page header"] = "Вставляет заголовок страницы";
+App::$strings["Message to display on every page on this server"] = "Отображаемое сообщение на каждой странице на этом сервере.";
+App::$strings["Page Header"] = "Заголовок страницы";
+App::$strings["Allow magic authentication only to websites of your immediate connections"] = "Разрешить волшебную аутентификацию только на сайтах ваших непосредственных соединений";
+App::$strings["Authchoose App"] = "Приложение Authchoose";
+App::$strings["Authchoose"] = "";
App::$strings["lonely"] = "одинокий";
App::$strings["drunk"] = "пьяный";
App::$strings["horny"] = "возбуждённый";
@@ -3375,82 +2849,671 @@ App::$strings["victorious"] = "победивший";
App::$strings["defeated"] = "проигравший";
App::$strings["envious"] = "завидует";
App::$strings["jealous"] = "ревнует";
-App::$strings["Recent Channel/Profile Viewers"] = "Последние просмотры канала / профиля";
-App::$strings["This plugin/addon has not been configured."] = "Это расширение не было настроено.";
-App::$strings["Please visit the Visage settings on %s"] = "Пожалуйста, посетите настройки Visage на %s";
-App::$strings["your feature settings page"] = "страница ваших установочных параметров";
-App::$strings["No entries."] = "Нет записей.";
-App::$strings["Enable Visage Visitor Logging"] = "Включить журналирование посетителей Visage";
-App::$strings["Visage Settings"] = "Настройки Visage";
-App::$strings["Channels to auto connect"] = "Каналы для автоматического подключения";
-App::$strings["Comma separated list"] = "Список, разделённый запятыми";
-App::$strings["Popular Channels"] = "Популярные каналы";
-App::$strings["IRC Settings"] = "Настройки IRC";
-App::$strings["IRC settings saved."] = "Настройки IRC сохранены";
-App::$strings["IRC Chatroom"] = "Чат IRC";
-App::$strings["This is a fairly comprehensive and complete guitar chord dictionary which will list most of the available ways to play a certain chord, starting from the base of the fingerboard up to a few frets beyond the twelfth fret (beyond which everything repeats). A couple of non-standard tunings are provided for the benefit of slide players, etc."] = "";
-App::$strings["Chord names start with a root note (A-G) and may include sharps (#) and flats (b). This software will parse most of the standard naming conventions such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements."] = "";
-App::$strings["Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..."] = "Примеры действительных включают A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ...";
-App::$strings["Guitar Chords"] = "Гитарные аккорды";
-App::$strings["The complete online chord dictionary"] = "Полный онлайн словарь аккордов";
-App::$strings["Tuning"] = "Настройка";
-App::$strings["Chord name: example: Em7"] = "Наименование аккорда - example: Em7";
-App::$strings["Show for left handed stringing"] = "Показывать струны для левшей";
-App::$strings["Quick Reference"] = "Быстрая ссылка";
-App::$strings["Post to Libertree"] = "Опубликовать в Libertree";
-App::$strings["Enable Libertree Post Plugin"] = "Включить плагин публикаций Libertree";
-App::$strings["Libertree API token"] = "Токен Libertree API";
-App::$strings["Libertree site URL"] = "URL сайта Libertree";
-App::$strings["Post to Libertree by default"] = "Публиковать в Libertree по умолчанию";
-App::$strings["Libertree Post Settings"] = "Настройки публикаций в Libertree";
-App::$strings["Libertree Settings saved."] = "Настройки Libertree сохранены.";
-App::$strings["Post to Red"] = "Опубликовать в Red";
-App::$strings["Channel is required."] = "Необходим канал.";
-App::$strings["redred Settings saved."] = "Настройки RedRed сохранены.";
-App::$strings["Allow posting to another Hubzilla Channel"] = "Разрешить публиковать в другой канал Hubzilla";
-App::$strings["Send public postings to Hubzilla channel by default"] = "Отправлять общедоступные публикации в канал Hubzilla по умолчанию";
-App::$strings["Hubzilla API Path"] = "Путь к Hubzilla API";
-App::$strings["Hubzilla login name"] = "Имя входа Hubzilla";
-App::$strings["Hubzilla channel name"] = "Название канала Hubzilla";
-App::$strings["Hubzilla Crosspost Settings"] = "Настройки перекрёстных публикаций Hubzilla";
-App::$strings["ActivityPub Protocol Settings updated."] = "Настройки протокола ActivityPub обновлены.";
-App::$strings["The activitypub protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "Протокол ActivityPub не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала.";
-App::$strings["Deliver to ActivityPub recipients in privacy groups"] = "Доставить получателям ActivityPub в группах безопасности";
-App::$strings["May result in a large number of mentions and expose all the members of your privacy group"] = "Может привести к большому количеству упоминаний и раскрытию участников группы безопасности";
-App::$strings["Send multi-media HTML articles"] = "Отправить HTML статьи с мультимедиа";
-App::$strings["Not supported by some microblog services such as Mastodon"] = "Не поддерживается некоторыми микроблогами, например Mastodon";
-App::$strings["Activitypub Protocol"] = "Протокол ActivityPub";
-App::$strings["No username found in import file."] = "Имя пользователя не найдено в файле для импорта.";
-App::$strings["Diaspora Protocol Settings updated."] = "Настройки протокола Diaspora обновлены.";
-App::$strings["The diaspora protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "Протокол Diaspora не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала.";
-App::$strings["Allow any Diaspora member to comment on your public posts"] = "Разрешить любому участнику Diaspora комментировать ваши общедоступные публикации";
-App::$strings["Prevent your hashtags from being redirected to other sites"] = "Предотвратить перенаправление тегов на другие сайты";
-App::$strings["Sign and forward posts and comments with no existing Diaspora signature"] = "Подписывать и отправлять публикации и комментарии с несуществующей подписью Diaspora";
-App::$strings["Followed hashtags (comma separated, do not include the #)"] = "Отслеживаемые теги (через запятую, исключая #)";
-App::$strings["Diaspora Protocol"] = "Протокол Diaspora";
-App::$strings["Post to WordPress"] = "Опубликовать в WordPress";
-App::$strings["Wordpress Settings saved."] = "Настройки WordPress сохранены.";
-App::$strings["Post to WordPress or anything else which uses the wordpress XMLRPC API"] = "Опубликовать в WordPress или в чём-то ещё, поддерживающем wordpress XMLRPC API";
-App::$strings["WordPress username"] = "Имя пользователя WordPress";
-App::$strings["WordPress password"] = "Пароль WordPress";
-App::$strings["WordPress API URL"] = "URL API WordPress";
-App::$strings["Typically https://your-blog.tld/xmlrpc.php"] = "Обычно https://your-blog.tld/xmlrpc.php";
-App::$strings["WordPress blogid"] = "";
-App::$strings["For multi-user sites such as wordpress.com, otherwise leave blank"] = "Для многопользовательских сайтов, таких, как wordpress.com. В противном случае оставьте пустым";
-App::$strings["Post to WordPress by default"] = "Публиковать в WordPress по умолчанию";
-App::$strings["Forward comments (requires hubzilla_wp plugin)"] = "Пересылать комментарии (требуется плагин hubzilla_wp)";
-App::$strings["Wordpress Post"] = "Публикация в WordPress";
-App::$strings["Possible adult content"] = "Возможно содержимое для взрослых";
-App::$strings["%s - view"] = "%s - просмотр";
-App::$strings["NSFW Settings saved."] = "Настройки NSFW сохранены.";
-App::$strings["Collapse content that contains predefined words"] = "Свернуть содержимое, содержащее предопределенные слова";
-App::$strings["This app looks in posts for the words/text you specify below, and collapses any content containing those keywords so it is not displayed at inappropriate times, such as sexual innuendo that may be improper in a work setting. It is polite and recommended to tag any content containing nudity with #NSFW. This filter can also match any other word/text you specify, and can thereby be used as a general purpose content filter."] = "Это приложение просматривает публикации для слов / текста, которые вы указываете ниже, и сворачивает любой контент, содержащий эти ключевые слова, поэтому он не отображается в неподходящее время, например, сексуальные инсинуации, которые могут быть неправильными в настройке работы. Например, мы рекомендуем отмечать любой контент, содержащий наготу, тегом #NSFW. Этот фильтр также способен реагировать на любое другое указанное вами слово / текст и может использоваться в качестве фильтра содержимого общего назначения.";
-App::$strings["Comma separated list of keywords to hide"] = "Список ключевых слов для скрытия, через запятую";
-App::$strings["Word, /regular-expression/, lang=xx, lang!=xx"] = "слово, /регулярное_выражение/, lang=xx, lang!=xx";
-App::$strings["NSFW"] = "";
-App::$strings["Some setting"] = "Некоторые настройки";
-App::$strings["A setting"] = "Настройка";
-App::$strings["Skeleton Settings"] = "Настройки скелета";
+App::$strings["XMPP settings updated."] = "Настройки XMPP обновлены.";
+App::$strings["XMPP App"] = "Приложение XMPP";
+App::$strings["Embedded XMPP (Jabber) client"] = "Встренный клиент XMPP (Jabber)";
+App::$strings["Individual credentials"] = "Индивидуальные разрешения";
+App::$strings["Jabber BOSH server"] = "Сервер Jabber BOSH";
+App::$strings["XMPP Settings"] = "Настройки XMPP";
+App::$strings["Jabber BOSH host"] = "Узел Jabber BOSH";
+App::$strings["Use central userbase"] = "Использовать центральную базу данных";
+App::$strings["If enabled, members will automatically login to an ejabberd server that has to be installed on this machine with synchronized credentials via the \"auth_ejabberd.php\" script."] = "Если включено, участники автоматически войдут на сервер ejabberd, который должен быть установлен на этом компьютере с синхронизированными учетными данными через скрипт \"auth_ejabberd.php\".";
+App::$strings["Who likes me?"] = "Кому я нравлюсь?";
+App::$strings["Pump.io Settings saved."] = "Настройки Pump.io сохранены.";
+App::$strings["Pump.io Crosspost Connector App"] = "Приложение \"Пересылка публикаций Pump.io\"";
+App::$strings["Relay public posts to pump.io"] = "Пересылает общедоступные публикации в Pump.io";
+App::$strings["Pump.io servername"] = "Имя сервера Pump.io";
+App::$strings["Without \"http://\" or \"https://\""] = "Без \"http://\" или \"https://\"";
+App::$strings["Pump.io username"] = "Имя пользователя Pump.io";
+App::$strings["Without the servername"] = "без имени сервера";
+App::$strings["You are not authenticated to pumpio"] = "Вы не аутентифицированы на Pump.io";
+App::$strings["(Re-)Authenticate your pump.io connection"] = "Аутентифицировать (повторно) ваше соединение с Pump.io";
+App::$strings["Post to pump.io by default"] = "Публиковать в Pump.io по умолчанию";
+App::$strings["Should posts be public"] = "Публикации должны быть общедоступными";
+App::$strings["Mirror all public posts"] = "Отображать все общедоступные публикации";
+App::$strings["Pump.io Crosspost Connector"] = "Пересылка публикаций Pump.io";
+App::$strings["You are now authenticated to pumpio."] = "Вы аутентифицированы в Pump.io";
+App::$strings["return to the featured settings page"] = "Вернутся к странице настроек";
+App::$strings["Post to Pump.io"] = "Опубликовать в Pump.io";
+App::$strings["An account has been created for you."] = "Учётная запись, которая была для вас создана.";
+App::$strings["Authentication successful but rejected: account creation is disabled."] = "Аутентификация выполнена успешно, но отклонена: создание учетной записи отключено.";
App::$strings["__ctx:opensearch__ Search %1\$s (%2\$s)"] = "Искать %1\$s (%2\$s)";
App::$strings["__ctx:opensearch__ \$Projectname"] = "";
App::$strings["Search \$Projectname"] = "Поиск \$Projectname";
+App::$strings["Redmatrix File Storage Import"] = "Импорт файлового хранилища Redmatrix";
+App::$strings["This will import all your Redmatrix cloud files to this channel."] = "Это позволит импортировать все ваши файлы в Redmatrix в этот канал.";
+App::$strings["file"] = "файл";
+App::$strings["Send email to all members"] = "Отправить email всем участникам";
+App::$strings["%1\$d of %2\$d messages sent."] = "%1\$d из %2\$d сообщений отправлено.";
+App::$strings["Send email to all hub members."] = "Отправить email всем участникам узла.";
+App::$strings["Sender Email address"] = "Адрес электронной почты отправителя";
+App::$strings["Test mode (only send to hub administrator)"] = "Тестовый режим (отправка только администратору узла)";
+App::$strings["Profile to assign new connections"] = "Назначить профиль для новых контактов";
+App::$strings["Frequently"] = "Часто";
+App::$strings["Hourly"] = "Ежечасно";
+App::$strings["Twice daily"] = "Дважды в день";
+App::$strings["Daily"] = "Ежедневно";
+App::$strings["Weekly"] = "Еженедельно";
+App::$strings["Monthly"] = "Ежемесячно";
+App::$strings["Currently Male"] = "В настоящее время мужской";
+App::$strings["Currently Female"] = "В настоящее время женский";
+App::$strings["Mostly Male"] = "В основном мужской";
+App::$strings["Mostly Female"] = "В основном женский";
+App::$strings["Transgender"] = "Трансгендер";
+App::$strings["Intersex"] = "Интерсексуал";
+App::$strings["Transsexual"] = "Транссексуал";
+App::$strings["Hermaphrodite"] = "Гермафродит";
+App::$strings["Neuter"] = "Среднего рода";
+App::$strings["Non-specific"] = "Неспецифический";
+App::$strings["Undecided"] = "Не решил";
+App::$strings["Males"] = "Мужчины";
+App::$strings["Females"] = "Женщины";
+App::$strings["Gay"] = "Гей";
+App::$strings["Lesbian"] = "Лесбиянка";
+App::$strings["No Preference"] = "Без предпочтений";
+App::$strings["Bisexual"] = "Бисексуал";
+App::$strings["Autosexual"] = "Автосексуал";
+App::$strings["Abstinent"] = "Воздержание";
+App::$strings["Virgin"] = "Девственник";
+App::$strings["Deviant"] = "Отклоняющийся от нормы";
+App::$strings["Fetish"] = "Фетишист";
+App::$strings["Oodles"] = "Множественный";
+App::$strings["Nonsexual"] = "Асексуал";
+App::$strings["Single"] = "Одиночка";
+App::$strings["Lonely"] = "Одинокий";
+App::$strings["Available"] = "Свободен";
+App::$strings["Unavailable"] = "Занят";
+App::$strings["Has crush"] = "Влюблён";
+App::$strings["Infatuated"] = "без ума";
+App::$strings["Dating"] = "Встречаюсь";
+App::$strings["Unfaithful"] = "Неверный";
+App::$strings["Sex Addict"] = "Эротоман";
+App::$strings["Friends/Benefits"] = "Друзья / Выгоды";
+App::$strings["Casual"] = "Легкомысленный";
+App::$strings["Engaged"] = "Помолвлен";
+App::$strings["Married"] = "В браке";
+App::$strings["Imaginarily married"] = "В воображаемом браке";
+App::$strings["Partners"] = "Партнёрство";
+App::$strings["Cohabiting"] = "Сожительствующие";
+App::$strings["Common law"] = "Гражданский брак";
+App::$strings["Happy"] = "Счастлив";
+App::$strings["Not looking"] = "Не нуждаюсь";
+App::$strings["Swinger"] = "Свингер";
+App::$strings["Betrayed"] = "Предан";
+App::$strings["Separated"] = "Разделён";
+App::$strings["Unstable"] = "Нестабильно";
+App::$strings["Divorced"] = "В разводе";
+App::$strings["Imaginarily divorced"] = "В воображаемом разводе";
+App::$strings["Widowed"] = "Вдовец / вдова";
+App::$strings["Uncertain"] = "Неопределенный";
+App::$strings["It's complicated"] = "Это сложно";
+App::$strings["Don't care"] = "Всё равно";
+App::$strings["Ask me"] = "Спроси меня";
+App::$strings["likes %1\$s's %2\$s"] = "Нравится %1\$s %2\$s";
+App::$strings["doesn't like %1\$s's %2\$s"] = "Не нравится %1\$s %2\$s";
+App::$strings["%1\$s is now connected with %2\$s"] = "%1\$s теперь в контакте с %2\$s";
+App::$strings["%1\$s poked %2\$s"] = "%1\$s ткнул %2\$s";
+App::$strings["poked"] = "ткнут";
+App::$strings["View %s's profile @ %s"] = "Просмотреть профиль %s @ %s";
+App::$strings["Categories:"] = "Категории:";
+App::$strings["Filed under:"] = "Хранить под:";
+App::$strings["View in context"] = "Показать в контексте";
+App::$strings["remove"] = "удалить";
+App::$strings["Loading..."] = "Загрузка...";
+App::$strings["Delete Selected Items"] = "Удалить выбранные элементы";
+App::$strings["View Source"] = "Просмотреть источник";
+App::$strings["Follow Thread"] = "Следить за темой";
+App::$strings["Unfollow Thread"] = "Прекратить отслеживать тему";
+App::$strings["Edit Connection"] = "Редактировать контакт";
+App::$strings["Message"] = "Сообщение";
+App::$strings["%s likes this."] = "%s нравится это.";
+App::$strings["%s doesn't like this."] = "%s не нравится это.";
+App::$strings["<span %1\$s>%2\$d people</span> like this."] = array(
+ 0 => "<span %1\$s>%2\$d человеку</span> это нравится.",
+ 1 => "<span %1\$s>%2\$d человекам</span> это нравится.",
+ 2 => "<span %1\$s>%2\$d человекам</span> это нравится.",
+);
+App::$strings["<span %1\$s>%2\$d people</span> don't like this."] = array(
+ 0 => "<span %1\$s>%2\$d человеку</span> это не нравится.",
+ 1 => "<span %1\$s>%2\$d человекам</span> это не нравится.",
+ 2 => "<span %1\$s>%2\$d человекам</span> это не нравится.",
+);
+App::$strings["and"] = "и";
+App::$strings[", and %d other people"] = array(
+ 0 => ", и ещё %d человеку",
+ 1 => ", и ещё %d человекам",
+ 2 => ", и ещё %d человекам",
+);
+App::$strings["%s like this."] = "%s нравится это.";
+App::$strings["%s don't like this."] = "%s не нравится это.";
+App::$strings["__ctx:noun__ Attending"] = array(
+ 0 => "Посетит",
+ 1 => "Посетят",
+ 2 => "Посетят",
+);
+App::$strings["__ctx:noun__ Not Attending"] = array(
+ 0 => "Не посетит",
+ 1 => "Не посетят",
+ 2 => "Не посетят",
+);
+App::$strings["__ctx:noun__ Undecided"] = "Не решил";
+App::$strings["__ctx:noun__ Agree"] = array(
+ 0 => "Согласен",
+ 1 => "Согласны",
+ 2 => "Согласны",
+);
+App::$strings["__ctx:noun__ Disagree"] = array(
+ 0 => "Не согласен",
+ 1 => "Не согласны",
+ 2 => "Не согласны",
+);
+App::$strings["__ctx:noun__ Abstain"] = array(
+ 0 => "Воздержался",
+ 1 => "Воздержались",
+ 2 => "Воздержались",
+);
+App::$strings["%1\$s's bookmarks"] = "Закладки пользователя %1\$s";
+App::$strings["Unable to import a removed channel."] = "Невозможно импортировать удалённый канал.";
+App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Не удалось создать дублирующийся идентификатор канала. Импорт невозможен.";
+App::$strings["Cloned channel not found. Import failed."] = "Клон канала не найден. Импорт невозможен.";
+App::$strings["prev"] = "предыдущий";
+App::$strings["first"] = "первый";
+App::$strings["last"] = "последний";
+App::$strings["next"] = "следующий";
+App::$strings["older"] = "старше";
+App::$strings["newer"] = "новее";
+App::$strings["No connections"] = "Нет контактов";
+App::$strings["View all %s connections"] = "Просмотреть все %s контактов";
+App::$strings["Network: %s"] = "Сеть: %s";
+App::$strings["poke"] = "Ткнуть";
+App::$strings["ping"] = "Пингануть";
+App::$strings["pinged"] = "Отпингован";
+App::$strings["prod"] = "Подтолкнуть";
+App::$strings["prodded"] = "Подтолкнут";
+App::$strings["slap"] = "Шлёпнуть";
+App::$strings["slapped"] = "Шлёпнут";
+App::$strings["finger"] = "Указать";
+App::$strings["fingered"] = "Указан";
+App::$strings["rebuff"] = "Дать отпор";
+App::$strings["rebuffed"] = "Дан отпор";
+App::$strings["happy"] = "счастливый";
+App::$strings["sad"] = "грустный";
+App::$strings["mellow"] = "спокойный";
+App::$strings["tired"] = "усталый";
+App::$strings["perky"] = "весёлый";
+App::$strings["angry"] = "сердитый";
+App::$strings["stupefied"] = "отупевший";
+App::$strings["puzzled"] = "недоумевающий";
+App::$strings["interested"] = "заинтересованный";
+App::$strings["bitter"] = "едкий";
+App::$strings["cheerful"] = "бодрый";
+App::$strings["alive"] = "энергичный";
+App::$strings["annoyed"] = "раздражённый";
+App::$strings["anxious"] = "обеспокоенный";
+App::$strings["cranky"] = "капризный";
+App::$strings["disturbed"] = "встревоженный";
+App::$strings["frustrated"] = "разочарованный";
+App::$strings["depressed"] = "подавленный";
+App::$strings["motivated"] = "мотивированный";
+App::$strings["relaxed"] = "расслабленный";
+App::$strings["surprised"] = "удивленный";
+App::$strings["Monday"] = "Понедельник";
+App::$strings["Tuesday"] = "Вторник";
+App::$strings["Wednesday"] = "Среда";
+App::$strings["Thursday"] = "Четверг";
+App::$strings["Friday"] = "Пятница";
+App::$strings["Saturday"] = "Суббота";
+App::$strings["Sunday"] = "Воскресенье";
+App::$strings["January"] = "Январь";
+App::$strings["February"] = "Февраль";
+App::$strings["March"] = "Март";
+App::$strings["April"] = "Апрель";
+App::$strings["May"] = "Май";
+App::$strings["June"] = "Июнь";
+App::$strings["July"] = "Июль";
+App::$strings["August"] = "Август";
+App::$strings["September"] = "Сентябрь";
+App::$strings["October"] = "Октябрь";
+App::$strings["November"] = "Ноябрь";
+App::$strings["December"] = "Декабрь";
+App::$strings["Unknown Attachment"] = "Неизвестное вложение";
+App::$strings["unknown"] = "неизвестный";
+App::$strings["remove category"] = "удалить категорию";
+App::$strings["remove from file"] = "удалить из файла";
+App::$strings["Download binary/encrypted content"] = "Загрузить двоичное / зашифрованное содержимое";
+App::$strings["default"] = "по умолчанию";
+App::$strings["Page layout"] = "Шаблон страницы";
+App::$strings["You can create your own with the layouts tool"] = "Вы можете создать свой собственный с помощью инструмента шаблонов";
+App::$strings["HTML"] = "";
+App::$strings["Comanche Layout"] = "Шаблон Comanche";
+App::$strings["PHP"] = "";
+App::$strings["Page content type"] = "Тип содержимого страницы";
+App::$strings["activity"] = "активность";
+App::$strings["a-z, 0-9, -, and _ only"] = "Только a-z, 0-9, -, и _";
+App::$strings["Design Tools"] = "Инструменты дизайна";
+App::$strings["Pages"] = "Страницы";
+App::$strings["Import website..."] = "Импорт веб-сайта...";
+App::$strings["Select folder to import"] = "Выбрать каталог для импорта";
+App::$strings["Import from a zipped folder:"] = "Импортировать из каталога в zip-архиве:";
+App::$strings["Import from cloud files:"] = "Импортировать из сетевых файлов:";
+App::$strings["/cloud/channel/path/to/folder"] = "";
+App::$strings["Enter path to website files"] = "Введите путь к файлам веб-сайта";
+App::$strings["Select folder"] = "Выбрать каталог";
+App::$strings["Export website..."] = "Экспорт веб-сайта...";
+App::$strings["Export to a zip file"] = "Экспортировать в ZIP файл.";
+App::$strings["website.zip"] = "";
+App::$strings["Enter a name for the zip file."] = "Введите имя для ZIP файла.";
+App::$strings["Export to cloud files"] = "Эскпортировать в сетевые файлы:";
+App::$strings["/path/to/export/folder"] = "";
+App::$strings["Enter a path to a cloud files destination."] = "Введите путь к расположению сетевых файлов.";
+App::$strings["Specify folder"] = "Указать каталог";
+App::$strings["%d invitation available"] = array(
+ 0 => "доступно %d приглашение",
+ 1 => "доступны %d приглашения",
+ 2 => "доступны %d приглашений",
+);
+App::$strings["Find Channels"] = "Поиск каналов";
+App::$strings["Enter name or interest"] = "Впишите имя или интерес";
+App::$strings["Connect/Follow"] = "Подключить / отслеживать";
+App::$strings["Examples: Robert Morgenstein, Fishing"] = "Примеры: Владимир Ильич, Революционер";
+App::$strings["Random Profile"] = "Случайный профиль";
+App::$strings["Invite Friends"] = "Пригласить друзей";
+App::$strings["Advanced example: name=fred and country=iceland"] = "Расширенный пример: name=ivan and country=russia";
+App::$strings["Common Connections"] = "Общие контакты";
+App::$strings["View all %d common connections"] = "Просмотреть все %d общих контактов";
+App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s была создана %2\$s %3\$s";
+App::$strings["Channel is blocked on this site."] = "Канал блокируется на этом сайте.";
+App::$strings["Channel location missing."] = "Местоположение канала отсутствует.";
+App::$strings["Response from remote channel was incomplete."] = "Ответ удаленного канала неполный.";
+App::$strings["Premium channel - please visit:"] = "Премимум-канал - пожалуйста посетите:";
+App::$strings["Channel was deleted and no longer exists."] = "Канал удален и больше не существует.";
+App::$strings["Remote channel or protocol unavailable."] = "Удалённый канал или протокол недоступен.";
+App::$strings["Channel discovery failed."] = "Не удалось обнаружить канал.";
+App::$strings["Protocol disabled."] = "Протокол отключен.";
+App::$strings["Cannot connect to yourself."] = "Нельзя подключиться к самому себе.";
+App::$strings["Delete this item?"] = "Удалить этот элемент?";
+App::$strings["%s show less"] = "%s показать меньше";
+App::$strings["%s expand"] = "%s развернуть";
+App::$strings["%s collapse"] = "%s свернуть";
+App::$strings["Password too short"] = "Пароль слишком короткий";
+App::$strings["Passwords do not match"] = "Пароли не совпадают";
+App::$strings["everybody"] = "все";
+App::$strings["Secret Passphrase"] = "Тайный пароль";
+App::$strings["Passphrase hint"] = "Подсказка для пароля";
+App::$strings["Notice: Permissions have changed but have not yet been submitted."] = "Уведомление: Права доступа изменились, но до сих пор не сохранены.";
+App::$strings["close all"] = "закрыть все";
+App::$strings["Nothing new here"] = "Здесь нет ничего нового";
+App::$strings["Rate This Channel (this is public)"] = "Оценкa этoго канала (общедоступно)";
+App::$strings["Describe (optional)"] = "Охарактеризовать (необязательно)";
+App::$strings["Please enter a link URL"] = "Пожалуйста, введите URL ссылки";
+App::$strings["Unsaved changes. Are you sure you wish to leave this page?"] = "Есть несохраненные изменения. Вы уверены, что хотите покинуть эту страницу?";
+App::$strings["lovely"] = "прекрасно";
+App::$strings["wonderful"] = "замечательно";
+App::$strings["fantastic"] = "фантастично";
+App::$strings["great"] = "отлично";
+App::$strings["Your chosen nickname was either already taken or not valid. Please use our suggestion ("] = "Выбранный вами псевдоним уже используется или недействителен. Попробуйте использовать наше предложение (";
+App::$strings[") or enter a new one."] = ") или введите новый.";
+App::$strings["Thank you, this nickname is valid."] = "Спасибо, этот псевдоним может быть использован.";
+App::$strings["A channel name is required."] = "Требуется название канала.";
+App::$strings["This is a "] = "Это ";
+App::$strings[" channel name"] = " название канала";
+App::$strings["%d minutes"] = array(
+ 0 => "%d минуту",
+ 1 => "%d минуты",
+ 2 => "%d минут",
+);
+App::$strings["about %d hours"] = array(
+ 0 => "около %d часa",
+ 1 => "около %d часов",
+ 2 => "около %d часов",
+);
+App::$strings["%d days"] = array(
+ 0 => "%d день",
+ 1 => "%d дня",
+ 2 => "%d дней",
+);
+App::$strings["%d months"] = array(
+ 0 => "%d месяц",
+ 1 => "%d месяца",
+ 2 => "%d месяцев",
+);
+App::$strings["%d years"] = array(
+ 0 => "%d год",
+ 1 => "%d года",
+ 2 => "%d лет",
+);
+App::$strings["timeago.prefixAgo"] = "";
+App::$strings["timeago.prefixFromNow"] = "через";
+App::$strings["timeago.suffixAgo"] = "назад";
+App::$strings["timeago.suffixFromNow"] = "";
+App::$strings["less than a minute"] = "менее чем одну минуту";
+App::$strings["about a minute"] = "около минуты";
+App::$strings["about an hour"] = "около часа";
+App::$strings["a day"] = "день";
+App::$strings["about a month"] = "около месяца";
+App::$strings["about a year"] = "около года";
+App::$strings[" "] = " ";
+App::$strings["timeago.numbers"] = "";
+App::$strings["__ctx:long__ May"] = "Май";
+App::$strings["Jan"] = "Янв";
+App::$strings["Feb"] = "Фев";
+App::$strings["Mar"] = "Мар";
+App::$strings["Apr"] = "Апр";
+App::$strings["__ctx:short__ May"] = "Май";
+App::$strings["Jun"] = "Июн";
+App::$strings["Jul"] = "Июл";
+App::$strings["Aug"] = "Авг";
+App::$strings["Sep"] = "Сен";
+App::$strings["Oct"] = "Окт";
+App::$strings["Nov"] = "Ноя";
+App::$strings["Dec"] = "Дек";
+App::$strings["Sun"] = "Вск";
+App::$strings["Mon"] = "Пон";
+App::$strings["Tue"] = "Вт";
+App::$strings["Wed"] = "Ср";
+App::$strings["Thu"] = "Чет";
+App::$strings["Fri"] = "Пят";
+App::$strings["Sat"] = "Суб";
+App::$strings["__ctx:calendar__ today"] = "сегодня";
+App::$strings["__ctx:calendar__ month"] = "месяц";
+App::$strings["__ctx:calendar__ week"] = "неделя";
+App::$strings["__ctx:calendar__ day"] = "день";
+App::$strings["__ctx:calendar__ All day"] = "Весь день";
+App::$strings["Unable to determine sender."] = "Невозможно определить отправителя.";
+App::$strings["No recipient provided."] = "Получатель не предоставлен.";
+App::$strings["[no subject]"] = "[без темы]";
+App::$strings["Stored post could not be verified."] = "Сохранённая публикация не может быть проверена.";
+App::$strings[" and "] = " и ";
+App::$strings["public profile"] = "общедоступный профиль";
+App::$strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s изменил %2\$s на &ldquo;%3\$s&rdquo;";
+App::$strings["Visit %1\$s's %2\$s"] = "Посетить %1\$s %2\$s";
+App::$strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s обновлено %2\$s, изменено %3\$s.";
+App::$strings["Item was not found."] = "Элемент не найден.";
+App::$strings["Unknown error."] = "Неизвестная ошибка.";
+App::$strings["No source file."] = "Нет исходного файла.";
+App::$strings["Cannot locate file to replace"] = "Не удается найти файл для замены";
+App::$strings["Cannot locate file to revise/update"] = "Не удается найти файл для пересмотра / обновления";
+App::$strings["File exceeds size limit of %d"] = "Файл превышает предельный размер %d";
+App::$strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Вы достигли предела %1$.0f Мбайт для хранения вложений.";
+App::$strings["File upload failed. Possible system limit or action terminated."] = "Загрузка файла не удалась. Возможно система перегружена или попытка прекращена.";
+App::$strings["Stored file could not be verified. Upload failed."] = "Файл для сохранения не может быть проверен. Загрузка не удалась.";
+App::$strings["Path not available."] = "Путь недоступен.";
+App::$strings["Empty pathname"] = "Пустое имя пути";
+App::$strings["duplicate filename or path"] = "дублирующееся имя файла или пути";
+App::$strings["Path not found."] = "Путь не найден.";
+App::$strings["mkdir failed."] = "mkdir не удался";
+App::$strings["database storage failed."] = "ошибка при записи базы данных.";
+App::$strings["Empty path"] = "Пустое имя пути";
+App::$strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Не верный токен безопасности для формы. Вероятно, это произошло потому, что форма была открыта слишком долго (> 3-х часов) перед его отправкой.";
+App::$strings["(Unknown)"] = "(Неизвестный)";
+App::$strings["Visible to anybody on the internet."] = "Виден всем в интернете.";
+App::$strings["Visible to you only."] = "Видно только вам.";
+App::$strings["Visible to anybody in this network."] = "Видно всем в этой сети.";
+App::$strings["Visible to anybody authenticated."] = "Видно всем аутентифицированным.";
+App::$strings["Visible to anybody on %s."] = "Видно всем в %s.";
+App::$strings["Visible to all connections."] = "Видно всем контактам.";
+App::$strings["Visible to approved connections."] = "Видно только одобренным контактам.";
+App::$strings["Visible to specific connections."] = "Видно указанным контактам.";
+App::$strings["Privacy group is empty."] = "Группа безопасности пуста";
+App::$strings["Privacy group: %s"] = "Группа безопасности: %s";
+App::$strings["Connection not found."] = "Контакт не найден.";
+App::$strings["profile photo"] = "Фотография профиля";
+App::$strings["[Edited %s]"] = "[Отредактировано %s]";
+App::$strings["__ctx:edit_activity__ Post"] = "Публикация";
+App::$strings["__ctx:edit_activity__ Comment"] = "Комментарий";
+App::$strings["Unable to obtain identity information from database"] = "Невозможно получить идентификационную информацию из базы данных";
+App::$strings["Empty name"] = "Пустое имя";
+App::$strings["Name too long"] = "Слишком длинное имя";
+App::$strings["No account identifier"] = "Идентификатор аккаунта отсутствует";
+App::$strings["Nickname is required."] = "Требуется псевдоним.";
+App::$strings["Unable to retrieve created identity"] = "Не удается получить созданный идентификатор";
+App::$strings["Default Profile"] = "Профиль по умолчанию";
+App::$strings["Unable to retrieve modified identity"] = "Не удается найти изменённый идентификатор";
+App::$strings["Create New Profile"] = "Создать новый профиль";
+App::$strings["Visible to everybody"] = "Видно всем";
+App::$strings["Gender:"] = "Пол:";
+App::$strings["Homepage:"] = "Домашняя страница:";
+App::$strings["Online Now"] = "Сейчас в сети";
+App::$strings["Change your profile photo"] = "Изменить фотографию вашего профиля";
+App::$strings["Trans"] = "Трансексуал";
+App::$strings["Like this channel"] = "нравится этот канал";
+App::$strings["j F, Y"] = "";
+App::$strings["j F"] = "";
+App::$strings["Birthday:"] = "День рождения:";
+App::$strings["for %1\$d %2\$s"] = "для %1\$d %2\$s";
+App::$strings["Tags:"] = "Теги:";
+App::$strings["Sexual Preference:"] = "Сексуальные предпочтения:";
+App::$strings["Political Views:"] = "Политические взгляды:";
+App::$strings["Religion:"] = "Религия:";
+App::$strings["Hobbies/Interests:"] = "Хобби / интересы:";
+App::$strings["Likes:"] = "Что вам нравится:";
+App::$strings["Dislikes:"] = "Что вам не нравится:";
+App::$strings["Contact information and Social Networks:"] = "Контактная информация и социальные сети:";
+App::$strings["My other channels:"] = "Мои другие каналы:";
+App::$strings["Musical interests:"] = "Музыкальные интересы:";
+App::$strings["Books, literature:"] = "Книги, литература:";
+App::$strings["Television:"] = "Телевидение:";
+App::$strings["Film/dance/culture/entertainment:"] = "Кино / танцы / культура / развлечения:";
+App::$strings["Love/Romance:"] = "Любовь / романтика:";
+App::$strings["Work/employment:"] = "Работа / занятость:";
+App::$strings["School/education:"] = "Школа / образование:";
+App::$strings["Like this thing"] = "нравится этo";
+App::$strings["l F d, Y \\@ g:i A"] = "";
+App::$strings["Starts:"] = "Начало:";
+App::$strings["Finishes:"] = "Окончание:";
+App::$strings["This event has been added to your calendar."] = "Это событие было добавлено в ваш календарь.";
+App::$strings["Not specified"] = "Не указано";
+App::$strings["Needs Action"] = "Требует действия";
+App::$strings["Completed"] = "Завершено";
+App::$strings["In Process"] = "В процессе";
+App::$strings["Cancelled"] = "Отменено";
+App::$strings["Home, Voice"] = "Дом, голос";
+App::$strings["Home, Fax"] = "Дом, факс";
+App::$strings["Work, Voice"] = "Работа, голос";
+App::$strings["Work, Fax"] = "Работа, факс";
+App::$strings["GNU-Social"] = "";
+App::$strings["RSS/Atom"] = "";
+App::$strings["Facebook"] = "";
+App::$strings["LinkedIn"] = "";
+App::$strings["XMPP/IM"] = "";
+App::$strings["MySpace"] = "";
+App::$strings["Select an alternate language"] = "Выбор дополнительного языка";
+App::$strings["Who can see this?"] = "Кто может это видеть?";
+App::$strings["Custom selection"] = "Настраиваемый выбор";
+App::$strings["Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit the scope of \"Show\"."] = "Нажмите \"Показать\" чтобы разрешить просмотр. \"Не показывать\" позволит вам переопределить и ограничить область показа.";
+App::$strings["Show"] = "Показать";
+App::$strings["Don't show"] = "Не показывать";
+App::$strings["Post permissions %s cannot be changed %s after a post is shared.</br />These permissions set who is allowed to view the post."] = "Разрешения публикации %s не могут быть изменены %s после того, как ею поделились. Эти разрешения устанавливают кому разрешено просматривать эту публикацию.";
+App::$strings["Image/photo"] = "Изображение / фотография";
+App::$strings["Encrypted content"] = "Зашифрованное содержание";
+App::$strings["Install %1\$s element %2\$s"] = "Установить %1\$s элемент %2\$s";
+App::$strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Эта публикация содержит устанавливаемый %s элемент, однако у вас нет разрешений для его установки на этом сайте.";
+App::$strings["card"] = "карточка";
+App::$strings["article"] = "статья";
+App::$strings["Click to open/close"] = "Нажмите, чтобы открыть/закрыть";
+App::$strings["spoiler"] = "спойлер";
+App::$strings["View article"] = "Просмотр статьи";
+App::$strings["View summary"] = "Просмотр резюме";
+App::$strings["$1 wrote:"] = "$1 писал:";
+App::$strings["View PDF"] = "Просмотреть PDF";
+App::$strings[" by "] = " по ";
+App::$strings[" on "] = " на ";
+App::$strings["Embedded content"] = "Встроенное содержимое";
+App::$strings["Embedding disabled"] = "Встраивание отключено";
+App::$strings["OpenWebAuth: %1\$s welcomes %2\$s"] = "OpenWebAuth: %1\$s приветствует %2\$s";
+App::$strings["Start calendar week on Monday"] = "Начинать календарную неделю с понедельника";
+App::$strings["Default is Sunday"] = "По умолчанию - воскресенье";
+App::$strings["Search by Date"] = "Поиск по дате";
+App::$strings["Ability to select posts by date ranges"] = "Возможность выбора сообщений по диапазонам дат";
+App::$strings["Tag Cloud"] = "Облако тегов";
+App::$strings["Provide a personal tag cloud on your channel page"] = "Показывает личное облако тегов на странице канала";
+App::$strings["Use blog/list mode"] = "Использовать режим блога / списка";
+App::$strings["Comments will be displayed separately"] = "Комментарии будут отображаться отдельно";
+App::$strings["Connection Filtering"] = "Фильтрация контактов";
+App::$strings["Filter incoming posts from connections based on keywords/content"] = "Фильтр входящих сообщений от контактов на основе ключевых слов / контента";
+App::$strings["Conversation"] = "Диалоги";
+App::$strings["Community Tagging"] = "Отметки сообщества";
+App::$strings["Ability to tag existing posts"] = "Возможность помечать тегами существующие публикации";
+App::$strings["Emoji Reactions"] = "Реакции Emoji";
+App::$strings["Add emoji reaction ability to posts"] = "Возможность добавлять реакции Emoji к публикациям";
+App::$strings["Dislike Posts"] = "Не нравящиеся публикации";
+App::$strings["Ability to dislike posts/comments"] = "Возможность отмечать не нравящиеся публикации / комментарии";
+App::$strings["Star Posts"] = "Помечать сообщения";
+App::$strings["Ability to mark special posts with a star indicator"] = "Возможность отметить специальные сообщения индикатором-звёздочкой";
+App::$strings["Advanced Directory Search"] = "Расширенный поиск в каталоге";
+App::$strings["Allows creation of complex directory search queries"] = "Позволяет создание сложных поисковых запросов в каталоге";
+App::$strings["Editor"] = "Редактор";
+App::$strings["Post Categories"] = "Категории публикаций";
+App::$strings["Add categories to your posts"] = "Добавить категории для ваших публикаций";
+App::$strings["Large Photos"] = "Большие фотографии";
+App::$strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Включить большие (1024px) миниатюры изображений в публикациях. Если не включено, использовать маленькие (640px) миниатюры.";
+App::$strings["Even More Encryption"] = "Еще больше шифрования";
+App::$strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Разрешить дополнительное end-to-end шифрование содержимого с общим секретным ключом";
+App::$strings["Enable Voting Tools"] = "Включить инструменты голосования";
+App::$strings["Provide a class of post which others can vote on"] = "Предоставь класс публикаций с возможностью голосования";
+App::$strings["Disable Comments"] = "Отключить комментарии";
+App::$strings["Provide the option to disable comments for a post"] = "Предоставить возможность отключать комментарии для публикаций";
+App::$strings["Delayed Posting"] = "Задержанная публикация";
+App::$strings["Allow posts to be published at a later date"] = "Разрешить размешать публикации следующими датами";
+App::$strings["Content Expiration"] = "Истечение срока действия содержимого";
+App::$strings["Remove posts/comments and/or private messages at a future time"] = "Удалять публикации / комментарии и / или личные сообщения";
+App::$strings["Suppress Duplicate Posts/Comments"] = "Подавлять дублирующие публикации / комментарии";
+App::$strings["Prevent posts with identical content to be published with less than two minutes in between submissions."] = "Предотвращает появление публикаций с одинаковым содержимым если интервал между ними менее 2 минут";
+App::$strings["Auto-save drafts of posts and comments"] = "Автоматически сохранять черновики публикаций и комментариев";
+App::$strings["Automatically saves post and comment drafts in local browser storage to help prevent accidental loss of compositions"] = "Автоматически сохраняет черновики публикаций и комментариев в локальном хранилище браузера для предотвращения их случайной утраты";
+App::$strings["Smart Birthdays"] = "\"Умные\" Дни рождений";
+App::$strings["Make birthday events timezone aware in case your friends are scattered across the planet."] = "Сделать уведомления о днях рождения зависимыми от часового пояса в том случае, если ваши друзья разбросаны по планете.";
+App::$strings["Event Timezone Selection"] = "Выбор часового пояса события";
+App::$strings["Allow event creation in timezones other than your own."] = "Разрешить создание события в часовой зоне отличной от вашей";
+App::$strings["Manage"] = "Управление";
+App::$strings["Navigation Channel Select"] = "Выбор канала навигации";
+App::$strings["Change channels directly from within the navigation dropdown menu"] = "Изменить канал напрямую из выпадающего меню";
+App::$strings["Save search terms for re-use"] = "Сохранять результаты поиска для повторного использования";
+App::$strings["Ability to file posts under folders"] = "Возможность размещать публикации в каталогах";
+App::$strings["Alternate Stream Order"] = "Отображение потока";
+App::$strings["Ability to order the stream by last post date, last comment date or unthreaded activities"] = "Возможность показывать поток по дате последнего сообщения, последнего комментария или в порядке поступления";
+App::$strings["Contact Filter"] = "Фильтр контактов";
+App::$strings["Ability to display only posts of a selected contact"] = "Возможность показа публикаций только от выбранных контактов";
+App::$strings["Forum Filter"] = "Фильтр по форумам";
+App::$strings["Ability to display only posts of a specific forum"] = "Возможность показа публикаций только определённого форума";
+App::$strings["Personal Posts Filter"] = "Персональный фильтр публикаций";
+App::$strings["Ability to display only posts that you've interacted on"] = "Возможность показа только тех публикаций с которыми вы взаимодействовали";
+App::$strings["Show friend and connection suggestions"] = "Показать предложения в друзья";
+App::$strings["Photo Location"] = "Местоположение фотографии";
+App::$strings["If location data is available on uploaded photos, link this to a map."] = "Если данные о местоположении доступны на загруженных фотографий, связать их с картой.";
+App::$strings["Advanced Profiles"] = "Расширенные профили";
+App::$strings["Additional profile sections and selections"] = "Дополнительные секции и выборы профиля";
+App::$strings["Profile Import/Export"] = "Импорт / экспорт профиля";
+App::$strings["Save and load profile details across sites/channels"] = "Сохранение и загрузка настроек профиля на всех сайтах / каналах";
+App::$strings["Multiple Profiles"] = "Несколько профилей";
+App::$strings["Ability to create multiple profiles"] = "Возможность создания нескольких профилей";
+App::$strings["Trending"] = "В тренде";
+App::$strings["Keywords"] = "Ключевые слова";
+App::$strings["have"] = "иметь";
+App::$strings["has"] = "есть";
+App::$strings["want"] = "хотеть";
+App::$strings["wants"] = "хотеть";
+App::$strings["likes"] = "нравится";
+App::$strings["dislikes"] = "не нравится";
+App::$strings["Not a valid email address"] = "Недействительный адрес электронной почты";
+App::$strings["Your email domain is not among those allowed on this site"] = "Домен электронной почты не входит в число тех, которые разрешены на этом сайте";
+App::$strings["Your email address is already registered at this site."] = "Ваш адрес электронной почты уже зарегистрирован на этом сайте.";
+App::$strings["An invitation is required."] = "Требуется приглашение.";
+App::$strings["Invitation could not be verified."] = "Не удалось проверить приглашение.";
+App::$strings["Please enter the required information."] = "Пожалуйста, введите необходимую информацию.";
+App::$strings["Failed to store account information."] = "Не удалось сохранить информацию аккаунта.";
+App::$strings["Registration confirmation for %s"] = "Подтверждение регистрации на %s";
+App::$strings["Registration request at %s"] = "Запрос регистрации на %s";
+App::$strings["your registration password"] = "ваш пароль регистрации";
+App::$strings["Registration details for %s"] = "Регистрационные данные для %s";
+App::$strings["Account approved."] = "Аккаунт утвержден.";
+App::$strings["Registration revoked for %s"] = "Регистрация отозвана для %s";
+App::$strings["Click here to upgrade."] = "Нажмите здесь для обновления.";
+App::$strings["This action exceeds the limits set by your subscription plan."] = "Это действие превышает ограничения, установленные в вашем плане.";
+App::$strings["This action is not available under your subscription plan."] = "Это действие невозможно из-за ограничений в вашем плане.";
+App::$strings["Birthday"] = "День рождения";
+App::$strings["Age: "] = "Возраст:";
+App::$strings["YYYY-MM-DD or MM-DD"] = "YYYY-MM-DD или MM-DD";
+App::$strings["less than a second ago"] = "менее чем одну секунду";
+App::$strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "%1\$d %2\$s назад";
+App::$strings["__ctx:relative_date__ year"] = array(
+ 0 => "год",
+ 1 => "года",
+ 2 => "лет",
+);
+App::$strings["__ctx:relative_date__ month"] = array(
+ 0 => "месяц",
+ 1 => "месяца",
+ 2 => "месяцев",
+);
+App::$strings["__ctx:relative_date__ week"] = array(
+ 0 => "неделю",
+ 1 => "недели",
+ 2 => "недель",
+);
+App::$strings["__ctx:relative_date__ day"] = array(
+ 0 => "день",
+ 1 => "дня",
+ 2 => "дней",
+);
+App::$strings["__ctx:relative_date__ hour"] = array(
+ 0 => "час",
+ 1 => "часа",
+ 2 => "часов",
+);
+App::$strings["__ctx:relative_date__ minute"] = array(
+ 0 => "минуту",
+ 1 => "минуты",
+ 2 => "минут",
+);
+App::$strings["__ctx:relative_date__ second"] = array(
+ 0 => "секунду",
+ 1 => "секунды",
+ 2 => "секунд",
+);
+App::$strings["%1\$s's birthday"] = "У %1\$s День рождения";
+App::$strings["Happy Birthday %1\$s"] = "С Днем рождения %1\$s !";
+App::$strings["Remote authentication"] = "Удаленная аутентификация";
+App::$strings["Click to authenticate to your home hub"] = "Нажмите, чтобы аутентифицировать себя на домашнем узле";
+App::$strings["Manage your channels"] = "Управление вашими каналами";
+App::$strings["Manage your privacy groups"] = "Управление вашим группами безопасности";
+App::$strings["Account/Channel Settings"] = "Настройки аккаунта / канала";
+App::$strings["End this session"] = "Закончить эту сессию";
+App::$strings["Your profile page"] = "Страницa вашего профиля";
+App::$strings["Manage/Edit profiles"] = "Управление / редактирование профилей";
+App::$strings["Sign in"] = "Войти";
+App::$strings["Take me home"] = "Домой";
+App::$strings["Log me out of this site"] = "Выйти с этого сайта";
+App::$strings["Create an account"] = "Создать аккаунт";
+App::$strings["Help and documentation"] = "Справочная информация и документация";
+App::$strings["Search site @name, !forum, #tag, ?docs, content"] = "Искать на сайте @имя, !форум, #тег, ?документ, содержимое";
+App::$strings["Site Setup and Configuration"] = "Установка и конфигурация сайта";
+App::$strings["@name, !forum, #tag, ?doc, content"] = "@имя, !форум, #тег, ?документ, содержимое";
+App::$strings["Please wait..."] = "Подождите пожалуйста ...";
+App::$strings["Add Apps"] = "Добавить приложения";
+App::$strings["Arrange Apps"] = "Упорядочить приложения";
+App::$strings["Toggle System Apps"] = "Показать системные приложения";
+App::$strings["Status Messages and Posts"] = "Статусы и публикации";
+App::$strings["Profile Details"] = "Информация о профиле";
+App::$strings["Photo Albums"] = "Фотоальбомы";
+App::$strings["Files and Storage"] = "Файлы и хранилище";
+App::$strings["Saved Bookmarks"] = "Сохранённые закладки";
+App::$strings["View Cards"] = "Просмотреть карточки";
+App::$strings["View Articles"] = "Просмотр статей";
+App::$strings["View Webpages"] = "Просмотр веб-страниц";
+App::$strings["Image exceeds website size limit of %lu bytes"] = "Файл превышает предельный размер для сайта в %lu байт";
+App::$strings["Image file is empty."] = "Файл изображения пуст.";
+App::$strings["Photo storage failed."] = "Ошибка хранилища фотографий.";
+App::$strings["a new photo"] = "новая фотография";
+App::$strings["__ctx:photo_upload__ %1\$s posted %2\$s to %3\$s"] = "%1\$s опубликовал %2\$s в %3\$s";
+App::$strings["Upload New Photos"] = "Загрузить новые фотографии";
+App::$strings["Invalid data packet"] = "Неверный пакет данных";
+App::$strings["invalid target signature"] = "недопустимая целевая подпись";
+App::$strings["New window"] = "Новое окно";
+App::$strings["Open the selected location in a different window or browser tab"] = "Открыть выбранное местоположение в другом окне или вкладке браузера";
+App::$strings["Delegation session ended."] = "Делегированная сессия завершена.";
+App::$strings["Logged out."] = "Вышел из системы.";
+App::$strings["Email validation is incomplete. Please check your email."] = "Проверка email не завершена. Пожалуйста, проверьте вашу почту.";
+App::$strings["Failed authentication"] = "Ошибка аутентификации";
+App::$strings["Help:"] = "Помощь:";
+App::$strings["Not Found"] = "Не найдено";
diff --git a/view/tpl/categories_widget.tpl b/view/tpl/categories_widget.tpl
index 72478aa3d..1341c652c 100755
--- a/view/tpl/categories_widget.tpl
+++ b/view/tpl/categories_widget.tpl
@@ -5,7 +5,7 @@
<ul class="nav nav-pills flex-column">
<li class="nav-item"><a href="{{$base}}" class="nav-link{{if $sel_all}} active{{/if}}">{{$all}}</a></li>
{{foreach $terms as $term}}
- <li class="nav-item"><a href="{{$base}}?f=&cat={{$term.name}}" class="nav-link{{if $term.selected}} active{{/if}}">{{$term.name}}</a></li>
+ <li class="nav-item"><a href="{{$base}}?f=&cat={{$term.name|urlencode}}" class="nav-link{{if $term.selected}} active{{/if}}">{{$term.name}}</a></li>
{{/foreach}}
</ul>
diff --git a/view/tpl/cloud_directory.tpl b/view/tpl/cloud_directory.tpl
index 51178a9ba..90347d274 100644
--- a/view/tpl/cloud_directory.tpl
+++ b/view/tpl/cloud_directory.tpl
@@ -68,7 +68,7 @@
<td class="cloud-index-tool"><a href="#" title="{{$delete}}" onclick="dropItem('{{$item.fileStorageUrl}}/{{$item.attachId}}/delete/json', '#cloud-index-{{$item.attachId}},#cloud-tools-{{$item.attachId}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a></td>
{{else}}
- <td></td><td></td><td></td>{{if $is_admin}}<td class="cloud-index-tool"><a href="#" title="{{$admin_delete}}" onclick="dropItem('{{$item.fileStorageUrl}}/{{$item.attachId}}/delete/json', '#cloud-index-{{$item.attachId}},#cloud-tools-{{$item.attachId}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a>{{else}}<td>{{/if}}</td>
+ <td></td><td></td><td></td>{{if $is_admin || $item.is_creator}}<td class="cloud-index-tool"><a href="#" title="{{if $is_admin}}{{$admin_delete}}{{else}}{{$delete}}{{/if}}" onclick="dropItem('{{$item.fileStorageUrl}}/{{$item.attachId}}/delete/json', '#cloud-index-{{$item.attachId}},#cloud-tools-{{$item.attachId}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a>{{else}}<td>{{/if}}</td>
{{/if}}
<td>{{*{{$item.type}}*}}</td>
<td class="d-none d-md-table-cell">{{$item.sizeFormatted}}</td>
diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl
index 5720a2a5f..428529de2 100755
--- a/view/tpl/conv_item.tpl
+++ b/view/tpl/conv_item.tpl
@@ -9,12 +9,12 @@
<div class="wall-item-outside-wrapper{{if $item.is_comment}} comment{{/if}}{{if $item.previewing}} preview{{/if}}" id="wall-item-outside-wrapper-{{$item.id}}" >
<div class="clearfix wall-item-content-wrapper{{if $item.is_comment}} comment{{/if}}" id="wall-item-content-wrapper-{{$item.id}}">
{{if $item.photo}}
- <div class="wall-photo-item" id="wall-photo-item-{{$item.id}}">
+ <div class="wall-photo-item{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" id="wall-photo-item-{{$item.id}}">
{{$item.photo}}
</div>
{{/if}}
{{if $item.event}}
- <div class="wall-event-item" id="wall-event-item-{{$item.id}}">
+ <div class="wall-event-item{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" id="wall-event-item-{{$item.id}}">
{{$item.event}}
</div>
{{/if}}
@@ -26,7 +26,7 @@
<hr class="m-0">
{{/if}}
{{/if}}
- <div class="p-2 clearfix wall-item-head{{if $item.is_new && !$item.title && !$item.event && !$item.is_comment}} wall-item-head-new rounded-top{{/if}}">
+ <div class="p-2 clearfix wall-item-head{{if $item.is_new && !$item.title && !$item.event && !$item.is_comment && !$item.photo}} wall-item-head-new rounded-top{{/if}}">
<div class="wall-item-info " id="wall-item-info-{{$item.id}}" >
<div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}} h-card p-author" id="wall-item-photo-wrapper-{{$item.id}}">
<img src="{{$item.thumb}}" class="fakelink wall-item-photo{{$item.sparkle}} u-photo p-name" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" data-toggle="dropdown" />
@@ -146,6 +146,9 @@
{{if $item.share}}
<a class="dropdown-item" href="#" onclick="jotShare({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a>
{{/if}}
+ {{if $item.embed}}
+ <a class="dropdown-item" href="#" onclick="jotEmbed({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-share" title="{{$item.embed.0}}"></i>{{$item.embed.0}}</a>
+ {{/if}}
{{if $item.plink}}
<a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a>
{{/if}}
@@ -181,7 +184,7 @@
{{/if}}
{{if $item.edpost && $item.dreport}}
<div class="dropdown-divider"></div>
- <a class="dropdown-item" href="dreport/{{$item.mid}}">{{$item.dreport}}</a>
+ <a class="dropdown-item" href="dreport/{{$item.dreport_link}}">{{$item.dreport}}</a>
{{/if}}
{{if $item.settings}}
<div class="dropdown-divider"></div>
diff --git a/view/tpl/conv_list.tpl b/view/tpl/conv_list.tpl
index c6da3d8a4..63e74b159 100755
--- a/view/tpl/conv_list.tpl
+++ b/view/tpl/conv_list.tpl
@@ -9,12 +9,12 @@
<div class="wall-item-outside-wrapper{{if $item.is_comment}} comment{{/if}}{{if $item.previewing}} preview{{/if}}" id="wall-item-outside-wrapper-{{$item.id}}" >
<div class="clearfix wall-item-content-wrapper{{if $item.is_comment}} comment{{/if}}" id="wall-item-content-wrapper-{{$item.id}}">
{{if $item.photo}}
- <div class="wall-photo-item" id="wall-photo-item-{{$item.id}}">
+ <div class="wall-photo-item{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" id="wall-photo-item-{{$item.id}}">
{{$item.photo}}
</div>
{{/if}}
{{if $item.event}}
- <div class="wall-event-item" id="wall-event-item-{{$item.id}}">
+ <div class="wall-event-item{{if $item.is_new && !$item.title}} wall-item-head-new rounded-top{{/if}}" id="wall-event-item-{{$item.id}}">
{{$item.event}}
</div>
{{/if}}
@@ -26,7 +26,7 @@
<hr class="m-0">
{{/if}}
{{/if}}
- <div class="p-2 clearfix wall-item-head{{if $item.is_new && !$item.title && !$item.event && !$item.is_comment}} wall-item-head-new rounded-top{{/if}}">
+ <div class="p-2 clearfix wall-item-head{{if $item.is_new && !$item.title && !$item.event && !$item.is_comment && !$item.photo}} wall-item-head-new rounded-top{{/if}}">
<div class="wall-item-info" id="wall-item-info-{{$item.id}}" >
<div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}} h-card p-author" id="wall-item-photo-wrapper-{{$item.id}}">
<img src="{{$item.thumb}}" class="fakelink wall-item-photo{{$item.sparkle}} u-photo p-name" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" data-toggle="dropdown" /></a>
@@ -139,6 +139,9 @@
{{if $item.share}}
<a class="dropdown-item" href="#" onclick="jotShare({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a>
{{/if}}
+ {{if $item.embed}}
+ <a class="dropdown-item" href="#" onclick="jotEmbed({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-share" title="{{$item.embed.0}}"></i>{{$item.embed.0}}</a>
+ {{/if}}
{{if $item.plink}}
<a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a>
{{/if}}
diff --git a/view/tpl/group_edit.tpl b/view/tpl/group_edit.tpl
index 88f037abe..60038701e 100755
--- a/view/tpl/group_edit.tpl
+++ b/view/tpl/group_edit.tpl
@@ -13,6 +13,7 @@
<input type='hidden' name='form_security_token' value='{{$form_security_token_edit}}'>
{{include file="field_input.tpl" field=$gname}}
{{include file="field_checkbox.tpl" field=$public}}
+ {{$pgrp_extras}}
<a href="group/drop/{{$gid}}?t={{$form_security_token_drop}}" onclick="return confirmDelete();" class="btn btn-sm btn-danger">
{{$delete}}
</a>
diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl
index b286b6071..afaaa62d9 100755
--- a/view/tpl/jot-header.tpl
+++ b/view/tpl/jot-header.tpl
@@ -198,16 +198,24 @@ var activeCommentText = '';
})
}
-
function jotShare(id,post_type) {
+ $('#like-rotator-' + id).show();
+ $.get('{{$baseurl}}/share/' + id, function(data) {
+ $('#like-rotator-' + id).hide();
+ updateInit();
+ });
+ }
+
+ function jotEmbed(id,post_type) {
if(post_type == 6) {
window.location.href = 'rpost?f=&post_id='+id;
}
else {
+
if ($('#jot-popup').length != 0) $('#jot-popup').show();
$('#like-rotator-' + id).show();
- $.get('{{$baseurl}}/share/' + id, function(data) {
+ $.get('{{$baseurl}}/embed/' + id, function(data) {
if (!editor) $("#profile-jot-text").val("");
initEditor(function(){
addeditortext(data);
@@ -419,7 +427,9 @@ var activeCommentText = '';
var imageparent = document.getElementById($(image).parent()[0].id);
$(imageparent).toggleClass('embed-photo-selected-photo');
var href = $(imageparent).attr('href');
- $.post("embedphotos/photolink", {href: href},
+ $.post(
+ "embedphotos/photolink",
+ {href: href},
function(ddata) {
if (ddata['status']) {
addeditortext(ddata['photolink']);
@@ -429,10 +439,8 @@ var activeCommentText = '';
}
return false;
},
- 'json');
- $('#embedPhotoModalBodyAlbumDialog').html('');
- $('#embedPhotoModalBodyAlbumDialog').off('click');
- $('#embedPhotoModal').modal('hide');
+ 'json'
+ );
}
});
$('#embedPhotoModalBodyAlbumListDialog').addClass('d-none');
diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl
index 4eae33d13..b4616db6d 100755
--- a/view/tpl/jot.tpl
+++ b/view/tpl/jot.tpl
@@ -137,8 +137,11 @@
<i id="profile-nocomment" class="fa fa-comments jot-icons"></i>
</button>
{{/if}}
+ {{if $custommoretoolsbuttons}}
+ {{$custommoretoolsbuttons}}
+ {{/if}}
</div>
- {{if $writefiles || $weblink || $setloc || $clearloc || $feature_expire || $feature_encrypt || $feature_voting}}
+ {{if $writefiles || $weblink || $setloc || $clearloc || $feature_expire || $feature_encrypt || $feature_voting || $custommoretoolsdropdown}}
<div class="btn-group d-lg-none">
<button type="button" id="more-tools" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<i id="more-tools-icon" class="fa fa-cog jot-icons"></i>
@@ -176,6 +179,8 @@
{{if $feature_nocomment}}
<a class="dropdown-item" href="#" onclick="toggleNoComment(); return false;"><i id="profile-nocomment-sub" class="fa fa-comments"></i>&nbsp;{{$nocommenttitlesub}}</a>
{{/if}}
+ <hr />
+ {{$custommoretoolsdropdown}}
</div>
</div>
{{/if}}
@@ -186,6 +191,11 @@
</div>
</div>
<div id="profile-jot-submit-right" class="btn-group float-right">
+ {{foreach $customsubmitright as $csr}}
+ <button class="btn btn-outline-secondary btn-sm" {{$csr.buttonparams}} title="{{$csr.preview}}">
+ {{$csr.buttoncontent}}
+ </button>
+ {{/foreach}}
{{if $preview}}
<button class="btn btn-outline-secondary btn-sm" onclick="preview_post();return false;" title="{{$preview}}">
<i class="fa fa-eye jot-icons" ></i>
@@ -292,7 +302,7 @@
{{if $embedPhotos}}
<div class="modal" id="embedPhotoModal" tabindex="-1" role="dialog" aria-labelledby="embedPhotoLabel" aria-hidden="true">
- <div class="modal-dialog">
+ <div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title" id="embedPhotoModalLabel">{{$embedPhotosModalTitle}}</h3>
diff --git a/view/tpl/notifications_widget.tpl b/view/tpl/notifications_widget.tpl
index 98047f1d9..bc7f80906 100644
--- a/view/tpl/notifications_widget.tpl
+++ b/view/tpl/notifications_widget.tpl
@@ -24,7 +24,7 @@
});
window.onpopstate = function(e) {
- if(e.state !== null)
+ if(e.state !== null && e.state.b64mid !== bParam_mid)
getData(e.state.b64mid, '');
};
});
diff --git a/view/tpl/privacy_groups.tpl b/view/tpl/privacy_groups.tpl
index b4e27ef2c..327a15aee 100644
--- a/view/tpl/privacy_groups.tpl
+++ b/view/tpl/privacy_groups.tpl
@@ -8,6 +8,7 @@
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
{{include file="field_input.tpl" field=$gname}}
{{include file="field_checkbox.tpl" field=$public}}
+ {{$pgrp_extras}}
<button type="submit" name="submit" class="btn btn-sm btn-primary float-right">{{$submit}}</button>
</form>
</div>
diff --git a/view/tpl/remote_friends_common.tpl b/view/tpl/remote_friends_common.tpl
index efc0ab49a..6ef3a7dde 100755
--- a/view/tpl/remote_friends_common.tpl
+++ b/view/tpl/remote_friends_common.tpl
@@ -7,10 +7,9 @@
<div class="contact-block-content">
{{foreach $items as $item}}
<div class="contact-block-div">
- <a class="contact-block-link mpfriend" href="{{$base}}/chanview?f=&url={{$item.xchan_url}}"><img class="contact-block-img mpfriend" src="{{$item.xchan_photo_s}}"alt="{{$item.xchan_name}}" title="{{$item.xchan_name}} [{{$item.xchan_addr}}]" /></a>
+ <a class="contact-block-link mpfriend" href="{{$base}}/chanview?f=&url={{$item.xchan_url}}"><img class="contact-block-img mpfriend" src="{{$item.xchan_photo_s}}" alt="{{$item.xchan_name}}" title="{{$item.xchan_name}} [{{$item.xchan_addr}}]" /></a>
</div>
{{/foreach}}
</div>
{{/if}}
</div>
-