aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG10
-rw-r--r--Zotlabs/Lib/Activity.php9
-rw-r--r--Zotlabs/Lib/Apps.php1
-rw-r--r--Zotlabs/Lib/Libzot.php40
-rw-r--r--Zotlabs/Lib/ThreadItem.php34
-rw-r--r--Zotlabs/Lib/ThreadListener.php53
-rw-r--r--Zotlabs/Module/Admin/Site.php2
-rw-r--r--Zotlabs/Module/Affinity.php94
-rw-r--r--Zotlabs/Module/Connedit.php2
-rw-r--r--Zotlabs/Module/Embed.php22
-rw-r--r--Zotlabs/Module/Events.php4
-rw-r--r--Zotlabs/Module/Item.php151
-rw-r--r--Zotlabs/Module/Mail.php4
-rw-r--r--Zotlabs/Module/Network.php8
-rw-r--r--Zotlabs/Module/Oep.php11
-rw-r--r--Zotlabs/Module/Photos.php2
-rw-r--r--Zotlabs/Module/Profiles.php28
-rw-r--r--Zotlabs/Module/Settings/Featured.php42
-rw-r--r--Zotlabs/Module/Share.php140
-rw-r--r--Zotlabs/Module/Viewsrc.php4
-rw-r--r--Zotlabs/Widget/Affinity.php89
-rw-r--r--Zotlabs/Widget/Settings_menu.php7
-rw-r--r--app/affinity.apd7
-rwxr-xr-xboot.php3
-rw-r--r--doc/hook/jot_header_tpl_filter.bb5
-rw-r--r--doc/hook/jot_tpl_filter.bb5
-rw-r--r--doc/hooklist.bb6
-rw-r--r--include/conversation.php19
-rw-r--r--include/features.php8
-rwxr-xr-xinclude/items.php21
-rw-r--r--include/message.php2
-rw-r--r--include/photos.php2
-rw-r--r--include/text.php164
-rw-r--r--tests/unit/get_tags_test.php17
-rw-r--r--view/js/main.js1
-rw-r--r--view/ru/hmessages.po1125
-rw-r--r--view/ru/hstrings.php121
-rwxr-xr-xview/tpl/conv_item.tpl3
-rwxr-xr-xview/tpl/conv_list.tpl3
-rwxr-xr-xview/tpl/jot-header.tpl12
-rwxr-xr-xview/tpl/jot.tpl12
41 files changed, 1455 insertions, 838 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 5d0f35cc1..0e3e89a9e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,13 @@
+Hubzilla 3.8.9 (2018-02-03)
+ - Fix typos in mod oep
+ - Fix page jumping when liking collapsed/expanded post
+ - Fix failure to import mail in mod import
+ - Fix wrong channel count in mod new_channel
+ - Fix diaspora addon regression
+ - Remove deprecated diaspora addon endpoint
+ - Fix wrong function call in gallery addon
+
+
Hubzilla 3.8.8 (2018-12-22)
- Fix issue with linkinfo
- Fix cURL with HTTP/2
diff --git a/Zotlabs/Lib/Activity.php b/Zotlabs/Lib/Activity.php
index 8cfa18997..bcbe53df7 100644
--- a/Zotlabs/Lib/Activity.php
+++ b/Zotlabs/Lib/Activity.php
@@ -236,7 +236,7 @@ class Activity {
$ret['id'] = ((strpos($i['mid'],'http') === 0) ? $i['mid'] : z_root() . '/item/' . urlencode($i['mid']));
if($i['title'])
- $ret['title'] = bbcode($i['title']);
+ $ret['name'] = $i['title'];
$ret['published'] = datetime_convert('UTC','UTC',$i['created'],ATOM_TIME);
if($i['created'] !== $i['edited'])
@@ -1411,6 +1411,9 @@ class Activity {
$s['owner_xchan'] = $act->actor['id'];
$s['author_xchan'] = $act->actor['id'];
+ // ensure we store the original actor
+ self::actor_store($act->actor['id'],$act->actor);
+
$s['mid'] = $act->obj['id'];
$s['parent_mid'] = $act->parent_id;
@@ -1483,7 +1486,8 @@ class Activity {
$s['verb'] = self::activity_decode_mapper($act->type);
- if($act->type === 'Tombstone') {
+
+ if($act->type === 'Tombstone' || ($act->type === 'Create' && $act->obj['type'] === 'Tombstone')) {
$s['item_deleted'] = 1;
}
@@ -1492,7 +1496,6 @@ class Activity {
$s['obj_type'] = ACTIVITY_OBJ_COMMENT;
}
-
if($act->obj['type'] === 'Event') {
$s['obj'] = [];
$s['obj']['asld'] = $act->obj;
diff --git a/Zotlabs/Lib/Apps.php b/Zotlabs/Lib/Apps.php
index 9edd00667..56283ff76 100644
--- a/Zotlabs/Lib/Apps.php
+++ b/Zotlabs/Lib/Apps.php
@@ -320,6 +320,7 @@ class Apps {
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'),
diff --git a/Zotlabs/Lib/Libzot.php b/Zotlabs/Lib/Libzot.php
index 27502009c..019237568 100644
--- a/Zotlabs/Lib/Libzot.php
+++ b/Zotlabs/Lib/Libzot.php
@@ -1487,8 +1487,31 @@ class Libzot {
$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;
}
@@ -1500,7 +1523,7 @@ class Libzot {
}
}
- logger('item: ' . print_r($arr,true), LOGGER_DATA);
+ // logger('item: ' . print_r($arr,true), LOGGER_DATA);
if($arr['mid'] !== $arr['parent_mid']) {
@@ -1526,19 +1549,11 @@ 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.
-
- if((! get_pconfig($channel['channel_id'],'system','hyperdrive',false)) || (! $arr['verb'] === 'Announce')) {
- continue;
- }
-
if((! $relay) && (! $request) && (! $local_public)
&& perm_is_allowed($channel['channel_id'],$sender,'send_stream')) {
self::fetch_conversation($channel,$arr['parent_mid']);
@@ -1814,6 +1829,7 @@ class Libzot {
$arr['owner_xchan'] = $a['signature']['signer'];
}
+
/// @FIXME - spoofable
if($AS->data['hubloc']) {
$arr['item_verified'] = true;
diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php
index 83d243177..40c0fca4b 100644
--- a/Zotlabs/Lib/ThreadItem.php
+++ b/Zotlabs/Lib/ThreadItem.php
@@ -76,7 +76,7 @@ class ThreadItem {
* _ false on failure
*/
- public function get_template_data($conv_responses, $thread_level=1) {
+ public function get_template_data($conv_responses, $thread_level=1, $conv_flags = []) {
$result = array();
@@ -101,6 +101,7 @@ class ThreadItem {
|| strlen($item['deny_cid']) || strlen($item['deny_gid']))))
? t('Private Message')
: false);
+
$shareable = ((($conv->get_profile_owner() == local_channel() && local_channel()) && ($item['item_private'] != 1)) ? true : false);
// allow an exemption for sharing stuff from your private feeds
@@ -115,6 +116,19 @@ class ThreadItem {
$privacy_warning = true;
}
+ if ($lock) {
+ if (($item['mid'] == $item['parent_mid']) && count(get_terms_oftype($item['term'],TERM_FORUM))) {
+ $privacy_warning = true;
+ $conv_flags['parent_privacy_warning'] = true;
+ }
+ }
+
+ $privacy_warning = (isset($conv_flags['parent_privacy_warning'])) ? $conv_flags['parent_privacy_warning'] : $privacy_warning;
+
+ if ($lock && $privacy_warning) {
+ $lock = t('Privacy conflict. Discretion advised.');
+ }
+
$mode = $conv->get_mode();
switch($item['item_type']) {
@@ -293,8 +307,15 @@ class ThreadItem {
$dislike = array( t("I don't like this \x28toggle\x29"), t("dislike"));
}
- if ($shareable)
- $share = array( t('Share This'), t('share'));
+ if ($shareable) {
+ // This actually turns out not to be possible in some protocol stacks without opening up hundreds of new issues.
+ // Will allow it only for uri resolvable sources.
+ if(strpos($item['mid'],'http') === 0) {
+ $share = []; //Not yet ready for primetime
+ //$share = array( t('Repeat This'), t('repeat'));
+ }
+ $embed = array( t('Share This'), t('share'));
+ }
$dreport = '';
@@ -408,12 +429,13 @@ class ThreadItem {
'like' => $like,
'dislike' => ((feature_enabled($conv->get_profile_owner(),'dislike')) ? $dislike : ''),
'share' => $share,
+ 'embed' => $embed,
'rawmid' => $item['mid'],
'plink' => get_plink($item),
'edpost' => $edpost, // ((feature_enabled($conv->get_profile_owner(),'edit_posts')) ? $edpost : ''),
- 'star' => ((feature_enabled($conv->get_profile_owner(),'star_posts')) ? $star : ''),
+ 'star' => ((feature_enabled($conv->get_profile_owner(),'star_posts') && ($item['item_type'] == ITEM_TYPE_POST)) ? $star : ''),
'tagger' => ((feature_enabled($conv->get_profile_owner(),'commtag')) ? $tagger : ''),
- 'filer' => ((feature_enabled($conv->get_profile_owner(),'filing')) ? $filer : ''),
+ 'filer' => ((feature_enabled($conv->get_profile_owner(),'filing') && ($item['item_type'] == ITEM_TYPE_POST)) ? $filer : ''),
'bookmark' => (($conv->get_profile_owner() == local_channel() && local_channel() && $has_bookmarks) ? t('Save Bookmarks') : ''),
'addtocal' => (($has_event) ? t('Add to Calendar') : ''),
'drop' => $drop,
@@ -470,7 +492,7 @@ class ThreadItem {
if(($this->get_display_mode() === 'normal') && ($nb_children > 0)) {
foreach($children as $child) {
- $result['children'][] = $child->get_template_data($conv_responses, $thread_level + 1);
+ $result['children'][] = $child->get_template_data($conv_responses, $thread_level + 1,$conv_flags);
}
// Collapse
if(($nb_children > $visible_comments) || ($thread_level > 1)) {
diff --git a/Zotlabs/Lib/ThreadListener.php b/Zotlabs/Lib/ThreadListener.php
new file mode 100644
index 000000000..308e02255
--- /dev/null
+++ b/Zotlabs/Lib/ThreadListener.php
@@ -0,0 +1,53 @@
+<?php
+
+namespace Zotlabs\Lib;
+
+class ThreadListener {
+
+ static public function store($target_id,$portable_id,$ltype = 0) {
+ $x = self::fetch($target_id,$portable_id,$ltype = 0);
+ if(! $x) {
+ $r = q("insert into listeners ( target_id, portable_id, ltype ) values ( '%s', '%s' , %d ) ",
+ dbesc($target_id),
+ dbesc($portable_id),
+ intval($ltype)
+ );
+ }
+ }
+
+ static public function fetch($target_id,$portable_id,$ltype = 0) {
+ $x = q("select * from listeners where target_id = '%s' and portable_id = '%s' and ltype = %d limit 1",
+ dbesc($target_id),
+ dbesc($portable_id),
+ intval($ltype)
+ );
+ if($x) {
+ return $x[0];
+ }
+ return false;
+ }
+
+ static public function fetch_by_target($target_id,$ltype = 0) {
+ $x = q("select * from listeners where target_id = '%s' and ltype = %d",
+ dbesc($target_id),
+ intval($ltype)
+ );
+
+ return $x;
+ }
+
+ static public function delete_by_target($target_id, $ltype = 0) {
+ return q("delete from listeners where target_id = '%s' and ltype = %d",
+ dbesc($target_id),
+ intval($ltype)
+ );
+ }
+
+ static public function delete_by_pid($portable_id, $ltype = 0) {
+ return q("delete from listeners where portable_id = '%s' and ltype = %d",
+ dbesc($portable_id),
+ intval($ltype)
+ );
+ }
+
+}
diff --git a/Zotlabs/Module/Admin/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/Connedit.php b/Zotlabs/Module/Connedit.php
index c14bcd0dd..a587324df 100644
--- a/Zotlabs/Module/Connedit.php
+++ b/Zotlabs/Module/Connedit.php
@@ -710,7 +710,7 @@ class Connedit extends \Zotlabs\Web\Controller {
$tpl = get_markup_template("abook_edit.tpl");
- if(feature_enabled(local_channel(),'affinity')) {
+ if(Apps::system_app_installed(local_channel(),'Affinity Tool')) {
$sections['affinity'] = [
'label' => t('Affinity'),
diff --git a/Zotlabs/Module/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/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/Item.php b/Zotlabs/Module/Item.php
index 24949c626..ebcf632ef 100644
--- a/Zotlabs/Module/Item.php
+++ b/Zotlabs/Module/Item.php
@@ -6,6 +6,13 @@ use Zotlabs\Lib\IConfig;
use Zotlabs\Lib\Enotify;
use Zotlabs\Web\Controller;
use Zotlabs\Daemon\Master;
+use Zotlabs\Lib\Activity;
+use Zotlabs\Lib\ActivityStreams;
+use Zotlabs\Lib\LDSignatures;
+use Zotlabs\Zot6\HTTPSig;
+use Zotlabs\Lib\Libzot;
+use Zotlabs\Lib\ThreadListener;
+use App;
require_once('include/crypto.php');
require_once('include/items.php');
@@ -30,6 +37,144 @@ require_once('include/security.php');
class Item extends Controller {
+
+ function init() {
+
+ if(Libzot::is_zot_request()) {
+
+ $conversation = false;
+
+ $item_id = argv(1);
+
+ if(! $item_id)
+ http_status_exit(404, 'Not found');
+
+
+ $portable_id = EMPTY_STR;
+
+ $sigdata = HTTPSig::verify(EMPTY_STR);
+ if($sigdata['portable_id'] && $sigdata['header_valid']) {
+ $portable_id = $sigdata['portable_id'];
+ }
+
+ $item_normal = " and item.item_hidden = 0 and item.item_type = 0 and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_blocked = 0 ";
+
+ $sql_extra = item_permissions_sql(0);
+
+ $r = q("select * from item where mid = '%s' $item_normal $sql_extra limit 1",
+ dbesc(z_root() . '/item/' . $item_id)
+ );
+ if(! $r) {
+
+
+ $r = q("select * from item where mid = '%s' $item_normal limit 1",
+ dbesc(z_root() . '/item/' . $item_id)
+ );
+ if($r) {
+ http_status_exit(403, 'Forbidden');
+ }
+ http_status_exit(404, 'Not found');
+ }
+
+
+ $items = q("select parent as item_id from item where mid = '%s' and uid = %d $item_normal $sql_extra ",
+ dbesc($r[0]['parent_mid']),
+ intval($r[0]['uid'])
+ );
+ if(! $items) {
+ http_status_exit(404, 'Not found');
+ }
+
+ $r = $items;
+
+ $parents_str = ids_to_querystr($r,'item_id');
+
+ $items = q("SELECT item.*, item.id AS item_id FROM item WHERE item.parent IN ( %s ) $item_normal $sql_extra ",
+ dbesc($parents_str)
+ );
+
+ if(! $items) {
+ http_status_exit(404, 'Not found');
+ }
+
+ $r = $items;
+ xchan_query($r,true);
+ $items = fetch_post_tags($r,true);
+
+ $observer = App::get_observer();
+ $parent = $items[0];
+ $recips = (($parent['owner']['xchan_network'] === 'activitypub') ? get_iconfig($parent['id'],'activitypub','recips', []) : []);
+ $to = (($recips && array_key_exists('to',$recips) && is_array($recips['to'])) ? $recips['to'] : null);
+ $nitems = [];
+ foreach($items as $i) {
+
+ $mids = [];
+
+ if(intval($i['item_private'])) {
+ if(! $observer) {
+ continue;
+ }
+ // ignore private reshare, possibly from hubzilla
+ if($i['verb'] === 'Announce') {
+ if(! in_array($i['thr_parent'],$mids)) {
+ $mids[] = $i['thr_parent'];
+ }
+ continue;
+ }
+ // also ignore any children of the private reshares
+ if(in_array($i['thr_parent'],$mids)) {
+ continue;
+ }
+
+ if((! $to) || (! in_array($observer['xchan_url'],$to))) {
+ continue;
+ }
+
+ }
+ $nitems[] = $i;
+ }
+
+ if(! $nitems)
+ http_status_exit(404, 'Not found');
+
+ $chan = channelx_by_n($nitems[0]['uid']);
+
+ if(! $chan)
+ http_status_exit(404, 'Not found');
+
+ if(! perm_is_allowed($chan['channel_id'],get_observer_hash(),'view_stream'))
+ http_status_exit(403, 'Forbidden');
+
+ $i = Activity::encode_item_collection($nitems,'conversation/' . $item_id,'OrderedCollection',( defined('NOMADIC') ? false : true));
+ if($portable_id) {
+ ThreadListener::store(z_root() . '/item/' . $item_id,$portable_id);
+ }
+
+ if(! $i)
+ http_status_exit(404, 'Not found');
+
+ $x = array_merge(['@context' => [
+ ACTIVITYSTREAMS_JSONLD_REV,
+ 'https://w3id.org/security/v1',
+ z_root() . ZOT_APSCHEMA_REV
+ ]], $i);
+
+ $headers = [];
+ $headers['Content-Type'] = 'application/x-zot+json' ;
+ $x['signature'] = LDSignatures::sign($x,$chan);
+ $ret = json_encode($x, JSON_UNESCAPED_SLASHES);
+ $headers['Digest'] = HTTPSig::generate_digest_header($ret);
+ $headers['(request-target)'] = strtolower($_SERVER['REQUEST_METHOD']) . ' ' . $_SERVER['REQUEST_URI'];
+ $h = HTTPSig::create_sig($headers,$chan['channel_prvkey'],channel_url($chan));
+ HTTPSig::set_headers($h);
+ echo $ret;
+ killme();
+
+ }
+ }
+
+
+
function post() {
// This will change. Figure out who the observer is and whether or not
@@ -553,8 +698,8 @@ class Item extends Controller {
// Look for tags and linkify them
- $results = linkify_tags($a, $summary, ($uid) ? $uid : $profile_uid);
- $results = linkify_tags($a, $body, ($uid) ? $uid : $profile_uid);
+ $results = linkify_tags($summary, ($uid) ? $uid : $profile_uid);
+ $results = linkify_tags($body, ($uid) ? $uid : $profile_uid);
if($results) {
@@ -639,9 +784,9 @@ class Item extends Controller {
if(preg_match_all('/(\[share=(.*?)\](.*?)\[\/share\])/',$body,$match)) {
+
// process share by id
- $verb = ACTIVITY_SHARE;
$i = 0;
foreach($match[2] as $mtch) {
$reshare = new \Zotlabs\Lib\Share($mtch);
diff --git a/Zotlabs/Module/Mail.php b/Zotlabs/Module/Mail.php
index d38c1d88c..3202d38a5 100644
--- a/Zotlabs/Module/Mail.php
+++ b/Zotlabs/Module/Mail.php
@@ -34,7 +34,7 @@ class Mail extends \Zotlabs\Web\Controller {
}
else {
$body = cleanup_bbcode($body);
- $results = linkify_tags($a, $body, local_channel());
+ $results = linkify_tags($body, local_channel());
if(preg_match_all('/(\[attachment\](.*?)\[\/attachment\])/',$body,$match)) {
$attachments = array();
@@ -111,7 +111,7 @@ class Mail extends \Zotlabs\Web\Controller {
}
require_once('include/text.php');
- linkify_tags($a, $body, local_channel());
+ linkify_tags($body, local_channel());
if(! $recipient) {
diff --git a/Zotlabs/Module/Network.php b/Zotlabs/Module/Network.php
index d5cc06d09..2019082ed 100644
--- a/Zotlabs/Module/Network.php
+++ b/Zotlabs/Module/Network.php
@@ -1,6 +1,8 @@
<?php
namespace Zotlabs\Module;
+use Zotlabs\Lib\Group;
+use Zotlabs\Lib\Apps;
use App;
require_once('include/items.php');
@@ -114,8 +116,8 @@ class Network extends \Zotlabs\Web\Controller {
$def_acl = array('allow_gid' => '<' . $r[0]['hash'] . '>');
}
- $default_cmin = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmin',0) : (-1));
- $default_cmax = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmax',99) : (-1));
+ $default_cmin = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmin',0) : (-1));
+ $default_cmax = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmax',99) : (-1));
$cid = ((x($_GET,'cid')) ? intval($_GET['cid']) : 0);
$star = ((x($_GET,'star')) ? intval($_GET['star']) : 0);
@@ -132,7 +134,7 @@ class Network extends \Zotlabs\Web\Controller {
$deftag = '';
- if (feature_enabled(local_channel(),'affinity')) {
+ if (Apps::system_app_installed(local_channel(),'Affinity Tool')) {
$affinity_locked = intval(get_pconfig(local_channel(),'affinity','lock',1));
if ($affinity_locked) {
set_pconfig(local_channel(),'affinity','cmin',$cmin);
diff --git a/Zotlabs/Module/Oep.php b/Zotlabs/Module/Oep.php
index 0f20a5f9a..c0d8e15e5 100644
--- a/Zotlabs/Module/Oep.php
+++ b/Zotlabs/Module/Oep.php
@@ -181,7 +181,7 @@ class Oep extends \Zotlabs\Web\Controller {
dbesc($res)
);
if($r) {
- $sql_extra = "and item.id = " . intval($r[0]['iid']) . " ";
+ $sql_extra .= " and item.id = " . intval($r[0]['iid']) . " ";
}
else {
return $ret;
@@ -194,6 +194,9 @@ class Oep extends \Zotlabs\Web\Controller {
intval(ITEM_TYPE_CARD)
);
+ if(! $r)
+ return;
+
$item_normal = " and item.item_hidden = 0 and item.item_type in (0,6) and item.item_deleted = 0
and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_pending_remove = 0
and item.item_blocked = 0 ";
@@ -255,7 +258,6 @@ class Oep extends \Zotlabs\Web\Controller {
if(! $channel)
return $ret;
-
if(! perm_is_allowed($channel['channel_id'],get_observer_hash(),'view_pages'))
return $ret;
@@ -265,7 +267,7 @@ class Oep extends \Zotlabs\Web\Controller {
dbesc($res)
);
if($r) {
- $sql_extra = "and item.id = " . intval($r[0]['iid']) . " ";
+ $sql_extra .= " and item.id = " . intval($r[0]['iid']) . " ";
}
else {
return $ret;
@@ -278,6 +280,9 @@ class Oep extends \Zotlabs\Web\Controller {
intval(ITEM_TYPE_ARTICLE)
);
+ if(! $r)
+ return;
+
$item_normal = " and item.item_hidden = 0 and item.item_type in (0,7) and item.item_deleted = 0
and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_pending_remove = 0
and item.item_blocked = 0 ";
diff --git a/Zotlabs/Module/Photos.php b/Zotlabs/Module/Photos.php
index 3833d5088..a761dbd14 100644
--- a/Zotlabs/Module/Photos.php
+++ b/Zotlabs/Module/Photos.php
@@ -422,7 +422,7 @@ class Photos extends \Zotlabs\Web\Controller {
require_once('include/text.php');
$profile_uid = \App::$profile['profile_uid'];
- $results = linkify_tags($a, $rawtags, (local_channel()) ? local_channel() : $profile_uid);
+ $results = linkify_tags($rawtags, (local_channel()) ? local_channel() : $profile_uid);
$success = $results['success'];
$post_tags = array();
diff --git a/Zotlabs/Module/Profiles.php b/Zotlabs/Module/Profiles.php
index de4075ba9..33e7d8a9d 100644
--- a/Zotlabs/Module/Profiles.php
+++ b/Zotlabs/Module/Profiles.php
@@ -354,20 +354,20 @@ class Profiles extends \Zotlabs\Web\Controller {
require_once('include/text.php');
- linkify_tags($a, $likes, local_channel());
- linkify_tags($a, $dislikes, local_channel());
- linkify_tags($a, $about, local_channel());
- linkify_tags($a, $interest, local_channel());
- linkify_tags($a, $interest, local_channel());
- linkify_tags($a, $contact, local_channel());
- linkify_tags($a, $channels, local_channel());
- linkify_tags($a, $music, local_channel());
- linkify_tags($a, $book, local_channel());
- linkify_tags($a, $tv, local_channel());
- linkify_tags($a, $film, local_channel());
- linkify_tags($a, $romance, local_channel());
- linkify_tags($a, $work, local_channel());
- linkify_tags($a, $education, local_channel());
+ linkify_tags($likes, local_channel());
+ linkify_tags($dislikes, local_channel());
+ linkify_tags($about, local_channel());
+ linkify_tags($interest, local_channel());
+ linkify_tags($interest, local_channel());
+ linkify_tags($contact, local_channel());
+ linkify_tags($channels, local_channel());
+ linkify_tags($music, local_channel());
+ linkify_tags($book, local_channel());
+ linkify_tags($tv, local_channel());
+ linkify_tags($film, local_channel());
+ linkify_tags($romance, local_channel());
+ linkify_tags($work, local_channel());
+ linkify_tags($education, local_channel());
$with = ((x($_POST,'with')) ? escape_tags(trim($_POST['with'])) : '');
diff --git a/Zotlabs/Module/Settings/Featured.php b/Zotlabs/Module/Settings/Featured.php
index 1d903fcf7..d5d740aff 100644
--- a/Zotlabs/Module/Settings/Featured.php
+++ b/Zotlabs/Module/Settings/Featured.php
@@ -10,24 +10,6 @@ class Featured {
call_hooks('feature_settings_post', $_POST);
- if($_POST['affinity_slider-submit']) {
- $cmax = intval($_POST['affinity_cmax']);
- if($cmax < 0 || $cmax > 99)
- $cmax = 99;
- $cmin = intval($_POST['affinity_cmin']);
- if($cmin < 0 || $cmin > 99)
- $cmin = 0;
-
- $lock = ($_POST['affinity_lock']) ? intval($_POST['affinity_lock']) : 1;
-
- set_pconfig(local_channel(),'affinity','cmin',$cmin);
- set_pconfig(local_channel(),'affinity','cmax',$cmax);
- set_pconfig(local_channel(),'affinity','lock',$lock);
-
- info( t('Affinity Slider settings updated.') . EOL);
-
- }
-
build_sync_packet();
return;
}
@@ -41,34 +23,10 @@ class Featured {
if(! $r)
$settings_addons = t('No feature settings configured');
- if(feature_enabled(local_channel(),'affinity')) {
-
- $cmax = intval(get_pconfig(local_channel(),'affinity','cmax'));
- $cmax = (($cmax) ? $cmax : 99);
- $setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array(
- '$field' => array('affinity_cmax', t('Default maximum affinity level'), $cmax, t('0-99 default 99'))
- ));
- $cmin = intval(get_pconfig(local_channel(),'affinity','cmin'));
- $cmin = (($cmin) ? $cmin : 0);
- $setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array(
- '$field' => array('affinity_cmin', t('Default minimum affinity level'), $cmin, t('0-99 - default 0'))
- ));
- $lock = intval(get_pconfig(local_channel(),'affinity','lock',1));
- $setting_fields .= replace_macros(get_markup_template('field_checkbox.tpl'), array(
- '$field' => array('affinity_lock', t('Always reset on new page visit.'), $lock, t('default: yes'), Array('No','Yes'))
- ));
-
- $settings_addons .= replace_macros(get_markup_template('generic_addon_settings.tpl'), array(
- '$addon' => array('affinity_slider', '' . t('Affinity Slider Settings'), '', t('Submit')),
- '$content' => $setting_fields
- ));
- }
-
call_hooks('feature_settings', $settings_addons);
$this->sortpanels($settings_addons);
-
$tpl = get_markup_template("settings_addons.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_featured"),
diff --git a/Zotlabs/Module/Share.php b/Zotlabs/Module/Share.php
index c6d0be051..53a06b072 100644
--- a/Zotlabs/Module/Share.php
+++ b/Zotlabs/Module/Share.php
@@ -1,6 +1,11 @@
<?php
namespace Zotlabs\Module;
+use App;
+use Zotlabs\Daemon\Master;
+use Zotlabs\Lib\Activity;
+
+
require_once('include/security.php');
require_once('include/bbcode.php');
@@ -14,23 +19,23 @@ class Share extends \Zotlabs\Web\Controller {
if(! $post_id)
killme();
- echo '[share=' . $post_id . '][/share]';
- killme();
+ if(! local_channel()) {
+ killme();
+ }
+ $observer = App::get_observer();
- /**
- * The remaining code is deprecated and handled in Zotlabs/Lib/Share.php at post
- * submission time.
- */
+ $channel = App::get_channel();
- if(! (local_channel() || remote_channel()))
- killme();
-
$r = q("SELECT * from item left join xchan on author_xchan = xchan_hash WHERE id = %d LIMIT 1",
intval($post_id)
);
if(! $r)
killme();
+
+
+
+
if(($r[0]['item_private']) && ($r[0]['xchan_network'] !== 'rss'))
killme();
@@ -46,59 +51,86 @@ class Share extends \Zotlabs\Web\Controller {
if($r[0]['mimetype'] !== 'text/bbcode')
killme();
-
- /** @FIXME eventually we want to post remotely via rpost on your home site */
- // When that works remove this next bit:
-
- if(! local_channel())
- killme();
-
+
xchan_query($r);
- $is_photo = (($r[0]['obj_type'] === ACTIVITY_OBJ_PHOTO) ? true : false);
- if($is_photo) {
- $object = json_decode($r[0]['obj'],true);
- $photo_bb = $object['body'];
- }
-
- if (strpos($r[0]['body'], "[/share]") !== false) {
- $pos = strpos($r[0]['body'], "[share");
- $o = substr($r[0]['body'], $pos);
- } else {
- $o = "[share author='" . urlencode($r[0]['author']['xchan_name']) .
- "' profile='" . $r[0]['author']['xchan_url'] .
- "' avatar='" . $r[0]['author']['xchan_photo_s'] .
- "' link='" . $r[0]['plink'] .
- "' auth='" . (($r[0]['author']['network'] === 'zot') ? 'true' : 'false') .
- "' posted='" . $r[0]['created'] .
- "' message_id='" . $r[0]['mid'] .
- "']";
- if($r[0]['title'])
- $o .= '[b]'.$r[0]['title'].'[/b]'."\r\n";
- $o .= (($is_photo) ? $photo_bb . "\r\n" . $r[0]['body'] : $r[0]['body']);
- $o .= "[/share]";
- }
-
- if(local_channel()) {
- echo $o;
+ $arr = [];
+
+ $item = $r[0];
+
+ $owner_uid = $r[0]['uid'];
+ $owner_aid = $r[0]['aid'];
+
+ $can_comment = false;
+ if((array_key_exists('owner',$item)) && intval($item['owner']['abook_self']))
+ $can_comment = perm_is_allowed($item['uid'],$observer['xchan_hash'],'post_comments');
+ else
+ $can_comment = can_comment_on_post($observer['xchan_hash'],$item);
+
+ if(! $can_comment) {
+ notice( t('Permission denied') . EOL);
killme();
}
+
+ $r = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($item['owner_xchan'])
+ );
+
+ if($r)
+ $thread_owner = $r[0];
+ else
+ killme();
- $observer = \App::get_observer();
- $parsed = $observer['xchan_url'];
- if($parsed) {
- $post_url = $parsed['scheme'] . '://' . $parsed['host'] . (($parsed['port']) ? ':' . $parsed['port'] : '')
- . '/rpost';
+ $r = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($item['author_xchan'])
+ );
+ if($r)
+ $item_author = $r[0];
+ else
+ killme();
- /**
- * @FIXME we were probably called from JS so we don't know the return page.
- * In fact we won't be able to load the remote page.
- * we might need an iframe
- */
+
+ $arr['aid'] = $owner_aid;
+ $arr['uid'] = $owner_uid;
+
+ $arr['item_origin'] = 1;
+ $arr['item_wall'] = $item['item_wall'];
+ $arr['uuid'] = item_message_id();
+ $arr['mid'] = z_root() . '/activity/' . $arr['uuid'];
+ $arr['parent_mid'] = $item['mid'];
+
+ $mention = '@[zrl=' . $item['author']['xchan_url'] . ']' . $item['author']['xchan_name'] . '[/zrl]';
+ $arr['body'] = sprintf( t('&#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/Viewsrc.php b/Zotlabs/Module/Viewsrc.php
index 119990b57..b73d81283 100644
--- a/Zotlabs/Module/Viewsrc.php
+++ b/Zotlabs/Module/Viewsrc.php
@@ -28,7 +28,7 @@ class Viewsrc extends \Zotlabs\Web\Controller {
$item_normal = item_normal();
if(local_channel() && $item_id) {
- $r = q("select id, item_flags, mimetype, item_obscured, body, llink, plink from item where uid in (%d , %d) and id = %d $item_normal limit 1",
+ $r = q("select id, mid, item_flags, mimetype, item_obscured, body, llink, plink from item where uid in (%d , %d) and id = %d $item_normal limit 1",
intval(local_channel()),
intval($sys['channel_id']),
intval($item_id)
@@ -53,7 +53,7 @@ class Viewsrc extends \Zotlabs\Web\Controller {
if(is_ajax()) {
echo '<div class="p-1">';
- echo '<div>id: ' . $r[0]['id'] . ' | <a href="' . $r[0]['plink'] . '" target="_blank">plink</a> | <a href="' . $r[0]['llink'] . '" target="_blank">llink</a></div>';
+ echo '<div>id: ' . $r[0]['id'] . ' | <a href="' . $r[0]['plink'] . '" target="_blank">plink</a> | <a href="' . $r[0]['llink'] . '" target="_blank">llink</a><br>mid: ' . $r[0]['mid'] . '</div>';
echo '<hr>';
echo '<pre class="p-1">' . $o . '</pre>';
echo '</div>';
diff --git a/Zotlabs/Widget/Affinity.php b/Zotlabs/Widget/Affinity.php
index 28190e187..572af0503 100644
--- a/Zotlabs/Widget/Affinity.php
+++ b/Zotlabs/Widget/Affinity.php
@@ -2,60 +2,65 @@
namespace Zotlabs\Widget;
+use Zotlabs\Lib\Apps;
+
class Affinity {
function widget($arr) {
if(! local_channel())
- return '';
-
- $default_cmin = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmin',0) : 0);
- $default_cmax = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmax',99) : 99);
+ return;
+
+ if(! Apps::system_app_installed(local_channel(),'Affinity Tool'))
+ return;
+
+ $default_cmin = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmin',0) : 0);
+ $default_cmax = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmax',99) : 99);
$cmin = ((x($_REQUEST,'cmin')) ? intval($_REQUEST['cmin']) : $default_cmin);
$cmax = ((x($_REQUEST,'cmax')) ? intval($_REQUEST['cmax']) : $default_cmax);
- if(feature_enabled(local_channel(),'affinity')) {
-
- $affinity_locked = intval(get_pconfig(local_channel(),'affinity','lock',1));
- if ($affinity_locked) {
- set_pconfig(local_channel(),'affinity','cmin',$cmin);
- set_pconfig(local_channel(),'affinity','cmax',$cmax);
- }
-
- $labels = array(
- t('Me'),
- t('Family'),
- t('Friends'),
- t('Acquaintances'),
- t('All')
- );
- call_hooks('affinity_labels',$labels);
- $label_str = '';
-
- if($labels) {
- foreach($labels as $l) {
- if($label_str) {
- $label_str .= ", '|'";
- $label_str .= ", '" . $l . "'";
- }
- else
- $label_str .= "'" . $l . "'";
+ $affinity_locked = intval(get_pconfig(local_channel(),'affinity','lock',1));
+ if ($affinity_locked) {
+ set_pconfig(local_channel(),'affinity','cmin',$cmin);
+ set_pconfig(local_channel(),'affinity','cmax',$cmax);
+ }
+
+ $labels = array(
+ t('Me'),
+ t('Family'),
+ t('Friends'),
+ t('Acquaintances'),
+ t('All')
+ );
+ call_hooks('affinity_labels',$labels);
+
+ $label_str = '';
+
+ if($labels) {
+ foreach($labels as $l) {
+ if($label_str) {
+ $label_str .= ", '|'";
+ $label_str .= ", '" . $l . "'";
}
+ else
+ $label_str .= "'" . $l . "'";
}
-
- $tpl = get_markup_template('main_slider.tpl');
- $x = replace_macros($tpl,array(
- '$val' => $cmin . ',' . $cmax,
- '$refresh' => t('Refresh'),
- '$labels' => $label_str,
- ));
-
- $arr = array('html' => $x);
- call_hooks('main_slider',$arr);
- return $arr['html'];
}
- return '';
+
+ $tpl = get_markup_template('main_slider.tpl');
+ $x = replace_macros($tpl,array(
+ '$val' => $cmin . ',' . $cmax,
+ '$refresh' => t('Refresh'),
+ '$labels' => $label_str,
+ ));
+
+ $arr = array('html' => $x);
+ call_hooks('main_slider',$arr);
+
+ return $arr['html'];
+
+
}
}
diff --git a/Zotlabs/Widget/Settings_menu.php b/Zotlabs/Widget/Settings_menu.php
index c537c3835..25b80a4b4 100644
--- a/Zotlabs/Widget/Settings_menu.php
+++ b/Zotlabs/Widget/Settings_menu.php
@@ -42,19 +42,12 @@ class Settings_menu {
);
-
$tabs[] = array(
'label' => t('Display settings'),
'url' => z_root().'/settings/display',
'selected' => ((argv(1) === 'display') ? 'active' : ''),
);
- $tabs[] = array(
- 'label' => t('Addon settings'),
- 'url' => z_root().'/settings/featured',
- 'selected' => ((argv(1) === 'featured') ? 'active' : ''),
- );
-
if($hublocs) {
$tabs[] = array(
'label' => t('Manage locations'),
diff --git a/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 14458cd4f..e93e621ce 100755
--- a/boot.php
+++ b/boot.php
@@ -468,7 +468,7 @@ define ( 'NAMESPACE_YMEDIA', 'http://search.yahoo.com/mrss/' );
define ( 'ACTIVITYSTREAMS_JSONLD_REV', 'https://www.w3.org/ns/activitystreams' );
-define ( 'ZOT_APSCHEMA_REV', '/apschema/v1.2' );
+define ( 'ZOT_APSCHEMA_REV', '/apschema/v1.3' );
/**
* activity stream defines
*/
@@ -513,6 +513,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' );
diff --git a/doc/hook/jot_header_tpl_filter.bb b/doc/hook/jot_header_tpl_filter.bb
new file mode 100644
index 000000000..b17d81d03
--- /dev/null
+++ b/doc/hook/jot_header_tpl_filter.bb
@@ -0,0 +1,5 @@
+[h2]jot_header_tpl_filter[/h2]
+
+Allows addon developers to modify the values of replacements fed into jot-header.tpl
+
+cxref: include/conversation.php
diff --git a/doc/hook/jot_tpl_filter.bb b/doc/hook/jot_tpl_filter.bb
new file mode 100644
index 000000000..426da3c56
--- /dev/null
+++ b/doc/hook/jot_tpl_filter.bb
@@ -0,0 +1,5 @@
+[h2]jot_tpl_filter[/h2]
+
+Allows addon developers to alter the macro replacements prior to being fed into jot.tpl
+
+cxref: include/conversation.php
diff --git a/doc/hooklist.bb b/doc/hooklist.bb
index 6d56d5e71..5a804c819 100644
--- a/doc/hooklist.bb
+++ b/doc/hooklist.bb
@@ -370,6 +370,12 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/jot_tool]jot_tool[/zrl]
Deprecated and possibly obsolete. Allows one to add action buttons to the post editor.
+[zrl=[baseurl]/help/hook/jot_tpl_filter]jot_tpl_filter[/zrl]
+ Called to filter template vars before replacement in jot.tpl.
+
+[zrl=[baseurl]/help/hook/jot_header_tpl_filter]jot_header_tpl_filter[/zrl]
+ Called to filter template vars before replacement in jot_header.tpl.
+
[zrl=[baseurl]/help/hook/legal_webbie]legal_webbie[/zrl]
Called to validate a channel address
diff --git a/include/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/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/items.php b/include/items.php
index 1fe98c119..a14e3db3a 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;
@@ -141,6 +142,22 @@ function collect_recipients($item, &$private_envelope,$include_groups = true) {
// $recipients[] = $sys['xchan_hash'];
}
+
+ // Forward to thread listeners, *unless* there is even a remote hint that the item
+ // might have some privacy attached. This could be (for instance) an ActivityPub DM
+ // in the middle of a public thread. Unless we can guarantee beyond all doubt that
+ // this is public, don't allow it to go to thread listeners.
+
+ if(! intval($item['item_private'])) {
+ $r = ThreadListener::fetch_by_target($item['parent_mid']);
+ if($r) {
+ foreach($r as $rv) {
+ $recipients[] = $rv['portable_id'];
+ }
+ }
+ }
+
+
// Add the authors of any posts in this thread, if they are known to us.
// This is specifically designed to forward wall-to-wall posts to the original author,
// in case they aren't a connection but have permission to write on our wall.
@@ -3867,6 +3884,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;
@@ -4561,7 +4580,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'))) {
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/photos.php b/include/photos.php
index ae51703e0..44406e0b0 100644
--- a/include/photos.php
+++ b/include/photos.php
@@ -356,7 +356,7 @@ function photo_upload($channel, $observer, $args) {
$large_photos = feature_enabled($channel['channel_id'], 'large_photos');
- linkify_tags($a, $args['body'], $channel_id);
+ linkify_tags($args['body'], $channel_id);
if($large_photos) {
$scale = 1;
diff --git a/include/text.php b/include/text.php
index 925c8e997..b017b038a 100644
--- a/include/text.php
+++ b/include/text.php
@@ -1107,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);
@@ -2631,8 +2631,9 @@ function extra_query_args() {
* @param boolean $in_network default true
* @return boolean true if replaced, false if not replaced
*/
-function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $in_network = true) {
+function handle_tag(&$body, &$str_tags, $profile_uid, $tag, $in_network = true) {
+ $channel = App::get_channel();
$replaced = false;
$r = null;
$match = array();
@@ -2688,21 +2689,20 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
$str_tags .= $newtag;
}
- return [
- 'replaced' => $replaced,
- 'termtype' => $termtype,
- 'term' => $basetag,
- 'url' => $url,
- 'contact' => []
- ];
-
+ return [ [
+ 'replaced' => $replaced,
+ 'termtype' => $termtype,
+ 'term' => $basetag,
+ 'url' => $url,
+ 'contact' => [],
+ 'access_tag' => '',
+ ]];
}
// END hashtags
// BEGIN mentions
-
if ( in_array($termtype, [ TERM_MENTION, TERM_FORUM ] )) {
// The @! tag and !! tag will alter permissions
@@ -2713,7 +2713,7 @@ 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
@@ -2731,7 +2731,7 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
$newname = substr($name,1);
$newname = substr($newname,0,-1);
- $r = q("select * from xchan where xchan_addr = '%s' or xchan_url = '%s' limit 1",
+ $r = q("select * from xchan where xchan_addr = '%s' or xchan_url = '%s'",
dbesc($newname),
dbesc($newname)
);
@@ -2754,7 +2754,7 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
// select someone from this user's contacts by name
$r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE xchan_name = '%s' AND abook_channel = %d LIMIT 1",
+ WHERE xchan_name = '%s' AND abook_channel = %d ",
dbesc($newname),
intval($profile_uid)
);
@@ -2763,7 +2763,7 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
if((! $r) && strpos($newname,'@')) {
$r = q("SELECT * FROM xchan left join hubloc on xchan_hash = hubloc_hash
- WHERE hubloc_addr = '%s' LIMIT 1",
+ WHERE hubloc_addr = '%s' ",
dbesc($newname)
);
}
@@ -2772,7 +2772,7 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
if(! $r) {
$r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE xchan_addr like ('%s') AND abook_channel = %d LIMIT 1",
+ WHERE xchan_addr like ('%s') AND abook_channel = %d ",
dbesc(((strpos($newname,'@')) ? $newname : $newname . '@%')),
intval($profile_uid)
);
@@ -2780,17 +2780,62 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
}
- // $r is set if we found something
- $channel = App::get_channel();
+
+
+
+ $fn_results = [];
+ $access_tag = EMPTY_STR;
+
+
+ // $r is set if we found something
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 {
@@ -2802,7 +2847,6 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
// weird - as all the other tags are linked to something.
if(local_channel() && local_channel() == $profile_uid) {
- require_once('include/group.php');
$grp = group_byname($profile_uid,$name);
if($grp) {
@@ -2819,58 +2863,62 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i
}
}
}
- }
- // if there is a url for this channel
- if(isset($profile)) {
- $replaced = true;
- //create profile link
- $profile = str_replace(',','%2c',$profile);
- $url = $profile;
- if($termtype === TERM_FORUM) {
- $newtag = '!' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
- $body = str_replace('!' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
- }
- else {
- // ( $termtype === TERM_MENTION )
- $newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
- $body = str_replace('@' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
- }
+ // if there is a url for this channel
- // append tag to str_tags
- if(! stristr($str_tags,$newtag)) {
- if(strlen($str_tags))
- $str_tags .= ',';
- $str_tags .= $newtag;
+ if(isset($profile)) {
+ $replaced = true;
+ //create profile link
+ $profile = str_replace(',','%2c',$profile);
+ $url = $profile;
+ if($termtype === TERM_FORUM) {
+ $newtag = '!' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
+ $body = str_replace('!' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
+ }
+ else {
+ // ( $termtype === TERM_MENTION )
+ $newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
+ $body = str_replace('@' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
+ }
+
+ // append tag to str_tags
+ if(! stristr($str_tags,$newtag)) {
+ if(strlen($str_tags))
+ $str_tags .= ',';
+ $str_tags .= $newtag;
+ }
}
+
+ $fn_results[] = [
+ 'replaced' => $replaced,
+ 'termtype' => $termtype,
+ 'term' => $newname,
+ 'url' => $url,
+ 'access_tag' => $access_tag,
+ 'contact' => [],
+ ];
}
}
+
+ return $fn_results;
- return [
- 'replaced' => $replaced,
- 'termtype' => $termtype,
- 'term' => $newname,
- 'url' => $url,
- 'contact' => (($r) ? $r[0] : [])
- ];
}
-function linkify_tags($a, &$body, $uid, $in_network = true) {
+function linkify_tags(&$body, $uid, $in_network = true) {
$str_tags = EMPTY_STR;
- $tagged = [];
$results = [];
$tags = get_tags($body);
if(count($tags)) {
foreach($tags as $tag) {
- $access_tag = '';
- $success = handle_tag($a, $body, $access_tag, $str_tags, ($uid) ? $uid : App::$profile_uid , $tag, $in_network);
+ $success = handle_tag($body, $str_tags, ($uid) ? $uid : App::$profile_uid , $tag, $in_network);
- $results[] = array('success' => $success, 'access_tag' => $access_tag);
- if($success['replaced']) $tagged[] = $tag;
+ foreach($success as $handled_tag) {
+ $results[] = [ 'success' => $handled_tag ];
+ }
}
}
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/view/js/main.js b/view/js/main.js
index fca9d125d..4718fb98f 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -734,6 +734,7 @@ function updateConvItems(mode,data) {
title.replace(/\s+$/, '');
if (title) {
savedTitle = title + " " + savedTitle;
+ document.title = title;
}
}
}
diff --git a/view/ru/hmessages.po b/view/ru/hmessages.po
index f8c34f95d..68bfc2aa5 100644
--- a/view/ru/hmessages.po
+++ b/view/ru/hmessages.po
@@ -5,14 +5,14 @@
#
# Translators:
# Alex <info@pixelbits.de>, 2016-2017
-# Max Kostikov <max@kostikov.co>, 2018
+# Max Kostikov <max@kostikov.co>, 2018-2019
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: hubzilla\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-01-25 21:03+0200\n"
-"PO-Revision-Date: 2019-01-25 21:07+0200\n"
+"POT-Creation-Date: 2019-02-12 11:46+0200\n"
+"PO-Revision-Date: 2019-02-12 11:52+0200\n"
"Last-Translator: Max Kostikov <max@kostikov.co>\n"
"Language-Team: Russian (http://www.transifex.com/Friendica/hubzilla/language/ru/)\n"
"MIME-Version: 1.0\n"
@@ -25,7 +25,7 @@ msgstr ""
msgid "Source channel not found."
msgstr "Канал-источник не найден."
-#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3162
+#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3210
#: ../../Zotlabs/Module/Admin/Site.php:187
msgid "Default"
msgstr "По умолчанию"
@@ -87,27 +87,25 @@ msgstr "Фокус (по умолчанию Hubzilla)"
#: ../../Zotlabs/Module/Import_items.php:129
#: ../../Zotlabs/Widget/Wiki_pages.php:42
#: ../../Zotlabs/Widget/Wiki_pages.php:99
-#: ../../Zotlabs/Widget/Eventstools.php:16 ../../Zotlabs/Lib/ThreadItem.php:773
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:89
+#: ../../Zotlabs/Widget/Eventstools.php:16 ../../Zotlabs/Lib/ThreadItem.php:791
+#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:71
#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:191
#: ../../extend/addon/hzaddons/redphotos/redphotos.php:136
#: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:72
-#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:73
+#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:72
#: ../../extend/addon/hzaddons/redfiles/redfiles.php:124
-#: ../../extend/addon/hzaddons/twitter/twitter.php:221
-#: ../../extend/addon/hzaddons/twitter/twitter.php:268
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:184
#: ../../extend/addon/hzaddons/logrot/logrot.php:35
#: ../../extend/addon/hzaddons/likebanner/likebanner.php:57
#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:169
#: ../../extend/addon/hzaddons/photocache/Mod_Photocache.php:67
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:371
#: ../../extend/addon/hzaddons/piwik/piwik.php:95
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:237
-#: ../../extend/addon/hzaddons/nsabait/nsabait.php:161
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:115
#: ../../extend/addon/hzaddons/mailtest/mailtest.php:100
#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:53
#: ../../extend/addon/hzaddons/hzfiles/hzfiles.php:84
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:89
+#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:73
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:193
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:251
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:306
@@ -119,24 +117,22 @@ msgstr "Фокус (по умолчанию Hubzilla)"
#: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:640
#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:248
#: ../../extend/addon/hzaddons/cart/cart.php:1264
-#: ../../extend/addon/hzaddons/nofed/nofed.php:80
-#: ../../extend/addon/hzaddons/planets/planets.php:153
-#: ../../extend/addon/hzaddons/pageheader/pageheader.php:48
+#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:53
+#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:54
#: ../../extend/addon/hzaddons/hubwall/hubwall.php:95
-#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:219
+#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:55
#: ../../extend/addon/hzaddons/frphotos/frphotos.php:97
#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:124
#: ../../extend/addon/hzaddons/xmpp/xmpp.php:69
-#: ../../extend/addon/hzaddons/visage/visage.php:170
#: ../../extend/addon/hzaddons/irc/irc.php:53
#: ../../extend/addon/hzaddons/chords/Mod_Chords.php:60
-#: ../../extend/addon/hzaddons/libertree/libertree.php:85
+#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:70
#: ../../extend/addon/hzaddons/redred/Mod_Redred.php:90
#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:63
#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:99
#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:97
#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:61
-#: ../../extend/addon/hzaddons/skeleton/skeleton.php:65
+#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:51
msgid "Submit"
msgstr "Отправить"
@@ -151,7 +147,7 @@ msgstr "Узкая панель навигации"
#: ../../view/theme/redbasic/php/config.php:99
#: ../../view/theme/redbasic/php/config.php:116 ../../include/dir_fns.php:143
#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
-#: ../../boot.php:1634 ../../Zotlabs/Storage/Browser.php:405
+#: ../../boot.php:1635 ../../Zotlabs/Storage/Browser.php:405
#: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Api.php:99
#: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Events.php:473
@@ -169,27 +165,22 @@ msgstr "Узкая панель навигации"
#: ../../Zotlabs/Module/Import.php:563 ../../Zotlabs/Module/Import.php:567
#: ../../Zotlabs/Module/Import.php:568 ../../Zotlabs/Lib/Libzotdir.php:162
#: ../../Zotlabs/Lib/Libzotdir.php:163 ../../Zotlabs/Lib/Libzotdir.php:165
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:73
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:85
+#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:60
#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:178
#: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:49
-#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:62
-#: ../../extend/addon/hzaddons/twitter/twitter.php:246
-#: ../../extend/addon/hzaddons/twitter/twitter.php:255
-#: ../../extend/addon/hzaddons/twitter/twitter.php:264
+#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:61
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:162
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:171
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:309
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:313
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:343
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:351
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:355
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:359
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:219
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:223
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:227
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:231
-#: ../../extend/addon/hzaddons/nsabait/nsabait.php:157
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:73
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:85
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:94
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:98
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:102
+#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:62
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:260
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:282
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:291
@@ -207,16 +198,11 @@ msgstr "Узкая панель навигации"
#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:254
#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:258
#: ../../extend/addon/hzaddons/cart/cart.php:1258
-#: ../../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/nofed/Mod_Nofed.php:42
+#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:44
#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:120
#: ../../extend/addon/hzaddons/xmpp/xmpp.php:53
-#: ../../extend/addon/hzaddons/visage/visage.php:166
-#: ../../extend/addon/hzaddons/libertree/libertree.php:69
-#: ../../extend/addon/hzaddons/libertree/libertree.php:81
+#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:59
#: ../../extend/addon/hzaddons/redred/Mod_Redred.php:63
#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:82
#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:86
@@ -226,7 +212,7 @@ msgstr "Нет"
#: ../../view/theme/redbasic/php/config.php:99
#: ../../view/theme/redbasic/php/config.php:116 ../../include/dir_fns.php:143
#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
-#: ../../boot.php:1634 ../../Zotlabs/Storage/Browser.php:405
+#: ../../boot.php:1635 ../../Zotlabs/Storage/Browser.php:405
#: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Api.php:98
#: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Events.php:473
@@ -244,27 +230,22 @@ msgstr "Нет"
#: ../../Zotlabs/Module/Import.php:567 ../../Zotlabs/Module/Import.php:568
#: ../../Zotlabs/Lib/Libzotdir.php:162 ../../Zotlabs/Lib/Libzotdir.php:163
#: ../../Zotlabs/Lib/Libzotdir.php:165
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:73
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:85
+#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:60
#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:178
#: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:49
-#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:62
-#: ../../extend/addon/hzaddons/twitter/twitter.php:246
-#: ../../extend/addon/hzaddons/twitter/twitter.php:255
-#: ../../extend/addon/hzaddons/twitter/twitter.php:264
+#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:61
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:162
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:171
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:309
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:313
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:343
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:351
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:355
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:359
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:219
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:223
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:227
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:231
-#: ../../extend/addon/hzaddons/nsabait/nsabait.php:157
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:73
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:85
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:94
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:98
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:102
+#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:62
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:260
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:282
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:291
@@ -282,16 +263,11 @@ msgstr "Нет"
#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:254
#: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:258
#: ../../extend/addon/hzaddons/cart/cart.php:1258
-#: ../../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/nofed/Mod_Nofed.php:42
+#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:44
#: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:120
#: ../../extend/addon/hzaddons/xmpp/xmpp.php:53
-#: ../../extend/addon/hzaddons/visage/visage.php:166
-#: ../../extend/addon/hzaddons/libertree/libertree.php:69
-#: ../../extend/addon/hzaddons/libertree/libertree.php:81
+#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:59
#: ../../extend/addon/hzaddons/redred/Mod_Redred.php:63
#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:82
#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:86
@@ -344,7 +320,7 @@ msgstr "Например: 1rem, 100%, 16px"
#: ../../view/theme/redbasic/php/config.php:110
msgid "Set font-color for posts and comments"
-msgstr "Цвет шрифта для постов и комментариев"
+msgstr "Цвет шрифта для публикаций и комментариев"
#: ../../view/theme/redbasic/php/config.php:111
msgid "Set radius of corners"
@@ -655,7 +631,7 @@ msgstr "Всё равно"
msgid "Ask me"
msgstr "Спроси меня"
-#: ../../include/photos.php:27 ../../include/items.php:3750
+#: ../../include/photos.php:27 ../../include/items.php:3779
#: ../../include/attach.php:150 ../../include/attach.php:199
#: ../../include/attach.php:272 ../../include/attach.php:381
#: ../../include/attach.php:395 ../../include/attach.php:402
@@ -663,8 +639,8 @@ msgstr "Спроси меня"
#: ../../include/attach.php:1118 ../../include/attach.php:1283
#: ../../Zotlabs/Module/Mail.php:146 ../../Zotlabs/Module/Defperms.php:181
#: ../../Zotlabs/Module/Network.php:17 ../../Zotlabs/Module/Common.php:38
-#: ../../Zotlabs/Module/Item.php:231 ../../Zotlabs/Module/Item.php:250
-#: ../../Zotlabs/Module/Item.php:260 ../../Zotlabs/Module/Item.php:1136
+#: ../../Zotlabs/Module/Item.php:376 ../../Zotlabs/Module/Item.php:395
+#: ../../Zotlabs/Module/Item.php:405 ../../Zotlabs/Module/Item.php:1281
#: ../../Zotlabs/Module/Achievements.php:34
#: ../../Zotlabs/Module/Display.php:447 ../../Zotlabs/Module/Poke.php:157
#: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101
@@ -721,7 +697,7 @@ msgstr "Спроси меня"
#: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Web/WebServer.php:123
#: ../../Zotlabs/Lib/Chatroom.php:133
#: ../../extend/addon/hzaddons/flashcards/Mod_Flashcards.php:167
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:40
+#: ../../extend/addon/hzaddons/pumpio/pumpio.php:44
#: ../../extend/addon/hzaddons/openid/Mod_Id.php:53
#: ../../extend/addon/hzaddons/keepout/keepout.php:36
msgid "Permission denied."
@@ -851,24 +827,24 @@ msgstr "Расширенный пример: name=ivan and country=russia"
msgid "Saved Folders"
msgstr "Сохранённые каталоги"
-#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:100
-#: ../../include/contact_widgets.php:144 ../../include/contact_widgets.php:189
+#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:99
+#: ../../include/contact_widgets.php:142 ../../include/contact_widgets.php:187
#: ../../Zotlabs/Widget/Filer.php:31 ../../Zotlabs/Widget/Appcategories.php:46
msgid "Everything"
msgstr "Всё"
-#: ../../include/contact_widgets.php:97 ../../include/contact_widgets.php:141
-#: ../../include/contact_widgets.php:186 ../../include/taxonomy.php:409
+#: ../../include/contact_widgets.php:96 ../../include/contact_widgets.php:139
+#: ../../include/contact_widgets.php:184 ../../include/taxonomy.php:409
#: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511
#: ../../include/taxonomy.php:532 ../../Zotlabs/Widget/Appcategories.php:43
msgid "Categories"
msgstr "Категории"
-#: ../../include/contact_widgets.php:223
+#: ../../include/contact_widgets.php:218
msgid "Common Connections"
msgstr "Общие контакты"
-#: ../../include/contact_widgets.php:228
+#: ../../include/contact_widgets.php:222
#, php-format
msgid "View all %d common connections"
msgstr "Просмотреть все %d общих контактов"
@@ -888,8 +864,8 @@ msgstr "Просмотреть все %d общих контактов"
#: ../../Zotlabs/Module/Article_edit.php:99 ../../Zotlabs/Module/Blocks.php:160
#: ../../Zotlabs/Module/Wiki.php:211 ../../Zotlabs/Module/Wiki.php:384
#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Widget/Cdav.php:126
-#: ../../Zotlabs/Widget/Cdav.php:162 ../../Zotlabs/Lib/Apps.php:536
-#: ../../Zotlabs/Lib/ThreadItem.php:133
+#: ../../Zotlabs/Widget/Cdav.php:162 ../../Zotlabs/Lib/Apps.php:555
+#: ../../Zotlabs/Lib/ThreadItem.php:144
msgid "Edit"
msgstr "Изменить"
@@ -1029,9 +1005,9 @@ msgstr "Полное имя:"
msgid "Like this channel"
msgstr "нравится этот канал"
-#: ../../include/channel.php:1595 ../../include/conversation.php:1693
+#: ../../include/channel.php:1595 ../../include/conversation.php:1702
#: ../../include/taxonomy.php:661 ../../Zotlabs/Module/Photos.php:1177
-#: ../../Zotlabs/Lib/ThreadItem.php:221
+#: ../../Zotlabs/Lib/ThreadItem.php:232
msgctxt "noun"
msgid "Like"
msgid_plural "Likes"
@@ -1133,7 +1109,7 @@ msgid "School/education:"
msgstr "Школа / образование:"
#: ../../include/channel.php:1700 ../../Zotlabs/Module/Profperm.php:113
-#: ../../Zotlabs/Lib/Apps.php:339
+#: ../../Zotlabs/Lib/Apps.php:358
msgid "Profile"
msgstr "Профиль"
@@ -1150,7 +1126,7 @@ msgstr "Экспорт"
msgid "cover photo"
msgstr "фотография обложки"
-#: ../../include/channel.php:2405 ../../boot.php:1630
+#: ../../include/channel.php:2405 ../../boot.php:1631
#: ../../Zotlabs/Module/Rmagic.php:93
msgid "Remote Authentication"
msgstr "Удаленная аутентификация"
@@ -1198,11 +1174,11 @@ msgstr "%1$s была создана %2$s %3$s"
msgid "post"
msgstr "публикация"
-#: ../../include/items.php:399 ../../Zotlabs/Module/Dreport.php:10
-#: ../../Zotlabs/Module/Dreport.php:79 ../../Zotlabs/Module/Profperm.php:28
-#: ../../Zotlabs/Module/Like.php:301 ../../Zotlabs/Module/Subthread.php:86
-#: ../../Zotlabs/Module/Group.php:98 ../../Zotlabs/Module/Cloud.php:126
-#: ../../Zotlabs/Module/Import_items.php:120
+#: ../../include/items.php:416 ../../Zotlabs/Module/Dreport.php:10
+#: ../../Zotlabs/Module/Dreport.php:79 ../../Zotlabs/Module/Share.php:71
+#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Like.php:301
+#: ../../Zotlabs/Module/Subthread.php:86 ../../Zotlabs/Module/Group.php:98
+#: ../../Zotlabs/Module/Cloud.php:126 ../../Zotlabs/Module/Import_items.php:120
#: ../../Zotlabs/Web/WebServer.php:122
#: ../../extend/addon/hzaddons/redphotos/redphotos.php:119
#: ../../extend/addon/hzaddons/redfiles/redfiles.php:109
@@ -1211,44 +1187,44 @@ msgstr "публикация"
msgid "Permission denied"
msgstr "Доступ запрещен"
-#: ../../include/items.php:936 ../../include/items.php:996
+#: ../../include/items.php:953 ../../include/items.php:1013
msgid "(Unknown)"
msgstr "(Неизвестный)"
-#: ../../include/items.php:1184
+#: ../../include/items.php:1201
msgid "Visible to anybody on the internet."
msgstr "Виден всем в интернете."
-#: ../../include/items.php:1186
+#: ../../include/items.php:1203
msgid "Visible to you only."
msgstr "Видно только вам."
-#: ../../include/items.php:1188
+#: ../../include/items.php:1205
msgid "Visible to anybody in this network."
msgstr "Видно всем в этой сети."
-#: ../../include/items.php:1190
+#: ../../include/items.php:1207
msgid "Visible to anybody authenticated."
msgstr "Видно всем аутентифицированным."
-#: ../../include/items.php:1192
+#: ../../include/items.php:1209
#, php-format
msgid "Visible to anybody on %s."
msgstr "Видно всем в %s."
-#: ../../include/items.php:1194
+#: ../../include/items.php:1211
msgid "Visible to all connections."
msgstr "Видно всем контактам."
-#: ../../include/items.php:1196
+#: ../../include/items.php:1213
msgid "Visible to approved connections."
msgstr "Видно только одобренным контактам."
-#: ../../include/items.php:1198
+#: ../../include/items.php:1215
msgid "Visible to specific connections."
msgstr "Видно указанным контактам."
-#: ../../include/items.php:3662 ../../Zotlabs/Module/Display.php:45
+#: ../../include/items.php:3691 ../../Zotlabs/Module/Display.php:45
#: ../../Zotlabs/Module/Display.php:451 ../../Zotlabs/Module/Admin.php:62
#: ../../Zotlabs/Module/Filestorage.php:24 ../../Zotlabs/Module/Viewsrc.php:25
#: ../../Zotlabs/Module/Admin/Addons.php:259
@@ -1256,67 +1232,67 @@ msgstr "Видно указанным контактам."
msgid "Item not found."
msgstr "Элемент не найден."
-#: ../../include/items.php:4242 ../../Zotlabs/Module/Group.php:61
+#: ../../include/items.php:4273 ../../Zotlabs/Module/Group.php:61
#: ../../Zotlabs/Module/Group.php:213
msgid "Privacy group not found."
msgstr "Группа безопасности не найдена."
-#: ../../include/items.php:4258
+#: ../../include/items.php:4289
msgid "Privacy group is empty."
msgstr "Группа безопасности пуста"
-#: ../../include/items.php:4265
+#: ../../include/items.php:4296
#, php-format
msgid "Privacy group: %s"
msgstr "Группа безопасности: %s"
-#: ../../include/items.php:4275 ../../Zotlabs/Module/Connedit.php:867
+#: ../../include/items.php:4306 ../../Zotlabs/Module/Connedit.php:867
#, php-format
msgid "Connection: %s"
msgstr "Контакт: %s"
-#: ../../include/items.php:4277
+#: ../../include/items.php:4308
msgid "Connection not found."
msgstr "Контакт не найден."
-#: ../../include/items.php:4619 ../../Zotlabs/Module/Cover_photo.php:269
+#: ../../include/items.php:4650 ../../Zotlabs/Module/Cover_photo.php:269
msgid "female"
msgstr "женщина"
-#: ../../include/items.php:4620 ../../Zotlabs/Module/Cover_photo.php:270
+#: ../../include/items.php:4651 ../../Zotlabs/Module/Cover_photo.php:270
#, php-format
msgid "%1$s updated her %2$s"
msgstr "%1$s обновила её %2$s"
-#: ../../include/items.php:4621 ../../Zotlabs/Module/Cover_photo.php:271
+#: ../../include/items.php:4652 ../../Zotlabs/Module/Cover_photo.php:271
msgid "male"
msgstr "мужчина"
-#: ../../include/items.php:4622 ../../Zotlabs/Module/Cover_photo.php:272
+#: ../../include/items.php:4653 ../../Zotlabs/Module/Cover_photo.php:272
#, php-format
msgid "%1$s updated his %2$s"
msgstr "%1$s обновил его %2$s"
-#: ../../include/items.php:4624 ../../Zotlabs/Module/Cover_photo.php:274
+#: ../../include/items.php:4655 ../../Zotlabs/Module/Cover_photo.php:274
#, php-format
msgid "%1$s updated their %2$s"
msgstr "%1$s обновили их %2$s"
-#: ../../include/items.php:4626
+#: ../../include/items.php:4657
msgid "profile photo"
msgstr "Фотография профиля"
-#: ../../include/items.php:4818
+#: ../../include/items.php:4849
#, php-format
msgid "[Edited %s]"
msgstr "[Отредактировано %s]"
-#: ../../include/items.php:4818
+#: ../../include/items.php:4849
msgctxt "edit_activity"
msgid "Post"
msgstr "Публикация"
-#: ../../include/items.php:4818
+#: ../../include/items.php:4849
msgctxt "edit_activity"
msgid "Comment"
msgstr "Комментарий"
@@ -1356,7 +1332,7 @@ msgstr "Выкл."
msgid "On"
msgstr "Вкл."
-#: ../../include/features.php:82 ../../Zotlabs/Lib/Apps.php:344
+#: ../../include/features.php:82 ../../Zotlabs/Lib/Apps.php:363
msgid "CalDAV"
msgstr ""
@@ -1368,7 +1344,7 @@ msgstr "Начинать календарную неделю с понедель
msgid "Default is Sunday"
msgstr "По умолчанию - воскресенье"
-#: ../../include/features.php:96 ../../Zotlabs/Lib/Apps.php:320
+#: ../../include/features.php:96 ../../Zotlabs/Lib/Apps.php:339
msgid "Channel Home"
msgstr "Главная канала"
@@ -1397,7 +1373,7 @@ msgid "Comments will be displayed separately"
msgstr "Комментарии будут отображаться отдельно"
#: ../../include/features.php:125 ../../include/text.php:991
-#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:310
+#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:329
msgid "Connections"
msgstr "Контакты"
@@ -1445,7 +1421,7 @@ msgstr "Помечать сообщения"
msgid "Ability to mark special posts with a star indicator"
msgstr "Возможность отметить специальные сообщения индикатором-звёздочкой"
-#: ../../include/features.php:176 ../../Zotlabs/Lib/Apps.php:324
+#: ../../include/features.php:176 ../../Zotlabs/Lib/Apps.php:343
msgid "Directory"
msgstr "Каталог"
@@ -1540,7 +1516,7 @@ msgid ""
"prevent accidental loss of compositions"
msgstr "Автоматически сохраняет черновики публикаций и комментариев в локальном хранилище браузера для предотвращения их случайной утраты"
-#: ../../include/features.php:269 ../../Zotlabs/Lib/Apps.php:323
+#: ../../include/features.php:269 ../../Zotlabs/Lib/Apps.php:342
msgid "Events"
msgstr "События"
@@ -1632,7 +1608,7 @@ msgstr "Инструмент сходства / соответствия"
msgid "Filter stream activity by depth of relationships"
msgstr "Фильтровать потоки активности по глубине отношений"
-#: ../../include/features.php:373 ../../Zotlabs/Lib/Apps.php:312
+#: ../../include/features.php:373 ../../Zotlabs/Lib/Apps.php:331
msgid "Suggest Channels"
msgstr "Предлагаемые каналы"
@@ -1641,7 +1617,7 @@ msgid "Show friend and connection suggestions"
msgstr "Показать предложения в друзья"
#: ../../include/features.php:391 ../../include/nav.php:444
-#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:322
+#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:341
msgid "Photos"
msgstr "Фотографии"
@@ -1653,7 +1629,7 @@ msgstr "Местоположение фотографии"
msgid "If location data is available on uploaded photos, link this to a map."
msgstr "Если данные о местоположении доступны на загруженных фотографий, связать их с картой."
-#: ../../include/features.php:405 ../../Zotlabs/Lib/Apps.php:340
+#: ../../include/features.php:405 ../../Zotlabs/Lib/Apps.php:359
msgid "Profiles"
msgstr "Редактировать профиль"
@@ -1723,7 +1699,7 @@ msgstr "Сеть: %s"
#: ../../include/acl_selectors.php:118 ../../include/nav.php:183
#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:338
#: ../../Zotlabs/Widget/Sitesearch.php:31
-#: ../../Zotlabs/Widget/Activity_filter.php:151 ../../Zotlabs/Lib/Apps.php:330
+#: ../../Zotlabs/Widget/Activity_filter.php:151 ../../Zotlabs/Lib/Apps.php:349
msgid "Search"
msgstr "Поиск"
@@ -2020,10 +1996,10 @@ msgstr "Тип содержимого страницы"
#: ../../include/text.php:2091 ../../include/conversation.php:116
#: ../../Zotlabs/Module/Tagger.php:69 ../../Zotlabs/Module/Like.php:392
-#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Lib/Activity.php:1951
+#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Lib/Activity.php:1959
#: ../../extend/addon/hzaddons/redphotos/redphotohelper.php:71
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1494
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1545
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1504
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1551
msgid "photo"
msgstr "фото"
@@ -2035,9 +2011,9 @@ msgstr "событие"
#: ../../include/text.php:2097 ../../include/conversation.php:144
#: ../../Zotlabs/Module/Like.php:392 ../../Zotlabs/Module/Subthread.php:112
-#: ../../Zotlabs/Lib/Activity.php:1951
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1494
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1545
+#: ../../Zotlabs/Lib/Activity.php:1959
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1504
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1551
msgid "status"
msgstr "статус"
@@ -2138,7 +2114,7 @@ msgstr "Введите путь к расположению сетевых фа
msgid "Specify folder"
msgstr "Указать каталог"
-#: ../../include/text.php:2893 ../../Zotlabs/Storage/Browser.php:131
+#: ../../include/text.php:2941 ../../Zotlabs/Storage/Browser.php:131
msgid "Collection"
msgstr "Коллекция"
@@ -2178,7 +2154,7 @@ msgstr "редактировать"
#: ../../include/group.php:320 ../../include/nav.php:95
#: ../../Zotlabs/Module/Group.php:141 ../../Zotlabs/Module/Group.php:153
#: ../../Zotlabs/Widget/Activity_filter.php:41 ../../Zotlabs/Lib/Group.php:324
-#: ../../Zotlabs/Lib/Apps.php:341
+#: ../../Zotlabs/Lib/Apps.php:360
msgid "Privacy Groups"
msgstr "Группы безопасности"
@@ -2230,7 +2206,7 @@ msgstr "Не удалось сохранить информацию аккаун
#: ../../include/account.php:314
#, php-format
msgid "Registration confirmation for %s"
-msgstr "Подтверждение регистрации для %s"
+msgstr "Подтверждение регистрации на %s"
#: ../../include/account.php:385
#, php-format
@@ -2271,7 +2247,7 @@ msgstr "Это действие невозможно из-за ограниче
msgid "Invalid data packet"
msgstr "Неверный пакет данных"
-#: ../../include/zot.php:802 ../../Zotlabs/Lib/Libzot.php:653
+#: ../../include/zot.php:802 ../../Zotlabs/Lib/Libzot.php:652
msgid "Unable to verify channel signature"
msgstr "Невозможно проверить подпись канала"
@@ -2326,7 +2302,7 @@ msgstr "Помощь:"
#: ../../include/help.php:117 ../../include/help.php:125
#: ../../include/nav.php:168 ../../include/nav.php:319
-#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:325
+#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:344
msgid "Help"
msgstr "Помощь"
@@ -2421,16 +2397,16 @@ msgid "channel"
msgstr "канал"
#: ../../include/conversation.php:160 ../../Zotlabs/Module/Like.php:447
-#: ../../Zotlabs/Lib/Activity.php:1986
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1530
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1575
+#: ../../Zotlabs/Lib/Activity.php:1994
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1540
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1491
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "%1$s нравится %3$s %2$s"
#: ../../include/conversation.php:163 ../../Zotlabs/Module/Like.php:449
-#: ../../Zotlabs/Lib/Activity.php:1988
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1532
+#: ../../Zotlabs/Lib/Activity.php:1996
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1542
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "%1$s не нравится %2$s %3$s"
@@ -2461,7 +2437,7 @@ msgctxt "mood"
msgid "%1$s is %2$s"
msgstr "%1$s в %2$s"
-#: ../../include/conversation.php:483 ../../Zotlabs/Lib/ThreadItem.php:446
+#: ../../include/conversation.php:483 ../../Zotlabs/Lib/ThreadItem.php:464
msgid "This is an unsaved preview"
msgstr "Это несохранённый просмотр"
@@ -2505,7 +2481,7 @@ msgctxt "title"
msgid "Might attend"
msgstr "Возможно посещу"
-#: ../../include/conversation.php:690 ../../Zotlabs/Lib/ThreadItem.php:163
+#: ../../include/conversation.php:690 ../../Zotlabs/Lib/ThreadItem.php:174
msgid "Select"
msgstr "Выбрать"
@@ -2524,12 +2500,12 @@ msgstr "Выбрать"
#: ../../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:537
-#: ../../Zotlabs/Lib/ThreadItem.php:153
+#: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Lib/Apps.php:556
+#: ../../Zotlabs/Lib/ThreadItem.php:164
msgid "Delete"
msgstr "Удалить"
-#: ../../include/conversation.php:695 ../../Zotlabs/Lib/ThreadItem.php:252
+#: ../../include/conversation.php:695 ../../Zotlabs/Lib/ThreadItem.php:263
msgid "Toggle Star Status"
msgstr "Переключить статус пометки"
@@ -2537,11 +2513,11 @@ msgstr "Переключить статус пометки"
msgid "Private Message"
msgstr "Личное сообщение"
-#: ../../include/conversation.php:707 ../../Zotlabs/Lib/ThreadItem.php:263
+#: ../../include/conversation.php:707 ../../Zotlabs/Lib/ThreadItem.php:274
msgid "Message signature validated"
msgstr "Подпись сообщения проверена"
-#: ../../include/conversation.php:708 ../../Zotlabs/Lib/ThreadItem.php:264
+#: ../../include/conversation.php:708 ../../Zotlabs/Lib/ThreadItem.php:275
msgid "Message signature incorrect"
msgstr "Подпись сообщения неверная"
@@ -2564,17 +2540,17 @@ msgstr "Категории:"
msgid "Filed under:"
msgstr "Хранить под:"
-#: ../../include/conversation.php:766 ../../Zotlabs/Lib/ThreadItem.php:381
+#: ../../include/conversation.php:766 ../../Zotlabs/Lib/ThreadItem.php:398
#, php-format
msgid "from %s"
msgstr "от %s"
-#: ../../include/conversation.php:769 ../../Zotlabs/Lib/ThreadItem.php:384
+#: ../../include/conversation.php:769 ../../Zotlabs/Lib/ThreadItem.php:401
#, php-format
msgid "last edited: %s"
msgstr "последнее редактирование: %s"
-#: ../../include/conversation.php:770 ../../Zotlabs/Lib/ThreadItem.php:385
+#: ../../include/conversation.php:770 ../../Zotlabs/Lib/ThreadItem.php:402
#, php-format
msgid "Expires: %s"
msgstr "Срок действия: %s"
@@ -2584,7 +2560,7 @@ msgid "View in context"
msgstr "Показать в контексте"
#: ../../include/conversation.php:787 ../../Zotlabs/Module/Photos.php:1118
-#: ../../Zotlabs/Lib/ThreadItem.php:447
+#: ../../Zotlabs/Lib/ThreadItem.php:465
msgid "Please wait"
msgstr "Подождите пожалуйста"
@@ -2596,7 +2572,7 @@ msgstr "удалить"
msgid "Loading..."
msgstr "Загрузка..."
-#: ../../include/conversation.php:891 ../../Zotlabs/Lib/ThreadItem.php:276
+#: ../../include/conversation.php:891 ../../Zotlabs/Lib/ThreadItem.php:287
msgid "Conversation Tools"
msgstr "Инструменты общения"
@@ -2617,7 +2593,7 @@ msgid "Unfollow Thread"
msgstr "Прекратить отслеживать тему"
#: ../../include/conversation.php:1038 ../../include/nav.php:106
-#: ../../Zotlabs/Module/Connedit.php:608 ../../Zotlabs/Lib/Apps.php:321
+#: ../../Zotlabs/Module/Connedit.php:608 ../../Zotlabs/Lib/Apps.php:340
#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:57
msgid "View Profile"
msgstr "Просмотреть профиль"
@@ -2640,7 +2616,7 @@ msgid "Ratings"
msgstr "Оценки"
#: ../../include/conversation.php:1098 ../../Zotlabs/Module/Poke.php:199
-#: ../../Zotlabs/Lib/Apps.php:328
+#: ../../Zotlabs/Lib/Apps.php:347
msgid "Poke"
msgstr "Ткнуть"
@@ -2650,9 +2626,9 @@ msgstr "Ткнуть"
#: ../../Zotlabs/Module/Photos.php:1296
#: ../../Zotlabs/Module/Embedphotos.php:154
#: ../../Zotlabs/Widget/Portfolio.php:95 ../../Zotlabs/Widget/Album.php:84
-#: ../../Zotlabs/Lib/Apps.php:1010 ../../Zotlabs/Lib/Apps.php:1094
-#: ../../Zotlabs/Lib/Activity.php:1006
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:949
+#: ../../Zotlabs/Lib/Apps.php:1112 ../../Zotlabs/Lib/Apps.php:1196
+#: ../../Zotlabs/Lib/Activity.php:1011
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:959
msgid "Unknown"
msgstr "Неизвестный"
@@ -2790,14 +2766,14 @@ msgstr "Комментарии включены"
msgid "Comments disabled"
msgstr "Комментарии отключены"
-#: ../../include/conversation.php:1356 ../../Zotlabs/Module/Photos.php:1139
+#: ../../include/conversation.php:1359 ../../Zotlabs/Module/Photos.php:1139
#: ../../Zotlabs/Module/Events.php:480 ../../Zotlabs/Module/Webpages.php:262
-#: ../../Zotlabs/Lib/ThreadItem.php:783
+#: ../../Zotlabs/Lib/ThreadItem.php:801
#: ../../extend/addon/hzaddons/hsse/hsse.php:153
msgid "Preview"
msgstr "Предварительный просмотр"
-#: ../../include/conversation.php:1389 ../../Zotlabs/Module/Photos.php:1117
+#: ../../include/conversation.php:1392 ../../Zotlabs/Module/Photos.php:1117
#: ../../Zotlabs/Module/Webpages.php:256 ../../Zotlabs/Module/Blocks.php:161
#: ../../Zotlabs/Module/Wiki.php:301 ../../Zotlabs/Module/Layouts.php:194
#: ../../Zotlabs/Widget/Cdav.php:124
@@ -2805,52 +2781,52 @@ msgstr "Предварительный просмотр"
msgid "Share"
msgstr "Поделиться"
-#: ../../include/conversation.php:1398
+#: ../../include/conversation.php:1401
#: ../../extend/addon/hzaddons/hsse/hsse.php:195
msgid "Page link name"
msgstr "Название ссылки на страницу "
-#: ../../include/conversation.php:1401
+#: ../../include/conversation.php:1404
#: ../../extend/addon/hzaddons/hsse/hsse.php:198
msgid "Post as"
msgstr "Опубликовать как"
-#: ../../include/conversation.php:1403 ../../Zotlabs/Lib/ThreadItem.php:774
+#: ../../include/conversation.php:1406 ../../Zotlabs/Lib/ThreadItem.php:792
#: ../../extend/addon/hzaddons/hsse/hsse.php:200
msgid "Bold"
msgstr "Жирный"
-#: ../../include/conversation.php:1404 ../../Zotlabs/Lib/ThreadItem.php:775
+#: ../../include/conversation.php:1407 ../../Zotlabs/Lib/ThreadItem.php:793
#: ../../extend/addon/hzaddons/hsse/hsse.php:201
msgid "Italic"
msgstr "Курсив"
-#: ../../include/conversation.php:1405 ../../Zotlabs/Lib/ThreadItem.php:776
+#: ../../include/conversation.php:1408 ../../Zotlabs/Lib/ThreadItem.php:794
#: ../../extend/addon/hzaddons/hsse/hsse.php:202
msgid "Underline"
msgstr "Подчеркнутый"
-#: ../../include/conversation.php:1406 ../../Zotlabs/Lib/ThreadItem.php:777
+#: ../../include/conversation.php:1409 ../../Zotlabs/Lib/ThreadItem.php:795
#: ../../extend/addon/hzaddons/hsse/hsse.php:203
msgid "Quote"
msgstr "Цитата"
-#: ../../include/conversation.php:1407 ../../Zotlabs/Lib/ThreadItem.php:778
+#: ../../include/conversation.php:1410 ../../Zotlabs/Lib/ThreadItem.php:796
#: ../../extend/addon/hzaddons/hsse/hsse.php:204
msgid "Code"
msgstr "Код"
-#: ../../include/conversation.php:1408 ../../Zotlabs/Lib/ThreadItem.php:780
+#: ../../include/conversation.php:1411 ../../Zotlabs/Lib/ThreadItem.php:798
#: ../../extend/addon/hzaddons/hsse/hsse.php:205
msgid "Attach/Upload file"
msgstr "Прикрепить/загрузить файл"
-#: ../../include/conversation.php:1411 ../../Zotlabs/Module/Wiki.php:400
+#: ../../include/conversation.php:1414 ../../Zotlabs/Module/Wiki.php:400
#: ../../extend/addon/hzaddons/hsse/hsse.php:208
msgid "Embed an image from your albums"
msgstr "Встроить изображение из ваших альбомов"
-#: ../../include/conversation.php:1412 ../../include/conversation.php:1461
+#: ../../include/conversation.php:1415 ../../include/conversation.php:1464
#: ../../Zotlabs/Module/Cdav.php:944 ../../Zotlabs/Module/Cdav.php:1233
#: ../../Zotlabs/Module/Profiles.php:801 ../../Zotlabs/Module/Tagrm.php:15
#: ../../Zotlabs/Module/Tagrm.php:138 ../../Zotlabs/Module/Oauth.php:112
@@ -2871,7 +2847,7 @@ msgstr "Встроить изображение из ваших альбомов
msgid "Cancel"
msgstr "Отменить"
-#: ../../include/conversation.php:1413 ../../include/conversation.php:1460
+#: ../../include/conversation.php:1416 ../../include/conversation.php:1463
#: ../../Zotlabs/Module/Cover_photo.php:400
#: ../../Zotlabs/Module/Profile_photo.php:466 ../../Zotlabs/Module/Wiki.php:402
#: ../../extend/addon/hzaddons/hsse/hsse.php:210
@@ -2879,22 +2855,22 @@ msgstr "Отменить"
msgid "OK"
msgstr ""
-#: ../../include/conversation.php:1415
+#: ../../include/conversation.php:1418
#: ../../extend/addon/hzaddons/hsse/hsse.php:212
msgid "Toggle voting"
msgstr "Подключить голосование"
-#: ../../include/conversation.php:1418
+#: ../../include/conversation.php:1421
#: ../../extend/addon/hzaddons/hsse/hsse.php:215
msgid "Disable comments"
msgstr "Отключить комментарии"
-#: ../../include/conversation.php:1419
+#: ../../include/conversation.php:1422
#: ../../extend/addon/hzaddons/hsse/hsse.php:216
msgid "Toggle comments"
msgstr "Переключить комментарии"
-#: ../../include/conversation.php:1424 ../../Zotlabs/Module/Photos.php:713
+#: ../../include/conversation.php:1427 ../../Zotlabs/Module/Photos.php:713
#: ../../Zotlabs/Module/Photos.php:1083 ../../Zotlabs/Module/Editblock.php:129
#: ../../Zotlabs/Module/Card_edit.php:117
#: ../../Zotlabs/Module/Article_edit.php:117
@@ -2902,41 +2878,41 @@ msgstr "Переключить комментарии"
msgid "Title (optional)"
msgstr "Заголовок (необязательно)"
-#: ../../include/conversation.php:1427
+#: ../../include/conversation.php:1430
#: ../../extend/addon/hzaddons/hsse/hsse.php:224
msgid "Categories (optional, comma-separated list)"
msgstr "Категории (необязательно, список через запятую)"
-#: ../../include/conversation.php:1428 ../../Zotlabs/Module/Events.php:481
+#: ../../include/conversation.php:1431 ../../Zotlabs/Module/Events.php:481
#: ../../extend/addon/hzaddons/hsse/hsse.php:225
msgid "Permission settings"
msgstr "Настройки разрешений"
-#: ../../include/conversation.php:1450
+#: ../../include/conversation.php:1453
#: ../../extend/addon/hzaddons/hsse/hsse.php:247
msgid "Other networks and post services"
msgstr "Другие сети и службы публикаций"
-#: ../../include/conversation.php:1453 ../../Zotlabs/Module/Mail.php:292
+#: ../../include/conversation.php:1456 ../../Zotlabs/Module/Mail.php:292
#: ../../Zotlabs/Module/Mail.php:434
#: ../../extend/addon/hzaddons/hsse/hsse.php:250
msgid "Set expiration date"
msgstr "Установить срок действия"
-#: ../../include/conversation.php:1456
+#: ../../include/conversation.php:1459
#: ../../extend/addon/hzaddons/hsse/hsse.php:253
msgid "Set publish date"
msgstr "Установить дату публикации"
-#: ../../include/conversation.php:1458 ../../Zotlabs/Module/Mail.php:294
+#: ../../include/conversation.php:1461 ../../Zotlabs/Module/Mail.php:294
#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Module/Chat.php:221
-#: ../../Zotlabs/Lib/ThreadItem.php:787
+#: ../../Zotlabs/Lib/ThreadItem.php:805
#: ../../extend/addon/hzaddons/hsse/hsse.php:255
msgid "Encrypt text"
msgstr "Зашифровать текст"
-#: ../../include/conversation.php:1696 ../../Zotlabs/Module/Photos.php:1182
-#: ../../Zotlabs/Lib/ThreadItem.php:226
+#: ../../include/conversation.php:1705 ../../Zotlabs/Module/Photos.php:1182
+#: ../../Zotlabs/Lib/ThreadItem.php:237
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
@@ -2944,7 +2920,7 @@ msgstr[0] "Не нравится"
msgstr[1] "Не нравится"
msgstr[2] "Не нравится"
-#: ../../include/conversation.php:1699
+#: ../../include/conversation.php:1708
msgctxt "noun"
msgid "Attending"
msgid_plural "Attending"
@@ -2952,7 +2928,7 @@ msgstr[0] "Посетит"
msgstr[1] "Посетят"
msgstr[2] "Посетят"
-#: ../../include/conversation.php:1702
+#: ../../include/conversation.php:1711
msgctxt "noun"
msgid "Not Attending"
msgid_plural "Not Attending"
@@ -2960,13 +2936,13 @@ msgstr[0] "Не посетит"
msgstr[1] "Не посетят"
msgstr[2] "Не посетят"
-#: ../../include/conversation.php:1705
+#: ../../include/conversation.php:1714
msgctxt "noun"
msgid "Undecided"
msgid_plural "Undecided"
msgstr "Не решил"
-#: ../../include/conversation.php:1708
+#: ../../include/conversation.php:1717
msgctxt "noun"
msgid "Agree"
msgid_plural "Agrees"
@@ -2974,7 +2950,7 @@ msgstr[0] "Согласен"
msgstr[1] "Согласны"
msgstr[2] "Согласны"
-#: ../../include/conversation.php:1711
+#: ../../include/conversation.php:1720
msgctxt "noun"
msgid "Disagree"
msgid_plural "Disagrees"
@@ -2982,7 +2958,7 @@ msgstr[0] "Не согласен"
msgstr[1] "Не согласны"
msgstr[2] "Не согласны"
-#: ../../include/conversation.php:1714
+#: ../../include/conversation.php:1723
msgctxt "noun"
msgid "Abstain"
msgid_plural "Abstains"
@@ -3019,7 +2995,7 @@ msgstr "хотеть"
msgid "wants"
msgstr "хотеть"
-#: ../../include/taxonomy.php:575 ../../Zotlabs/Lib/ThreadItem.php:292
+#: ../../include/taxonomy.php:575 ../../Zotlabs/Lib/ThreadItem.php:303
msgid "like"
msgstr "нравится"
@@ -3027,7 +3003,7 @@ msgstr "нравится"
msgid "likes"
msgstr "нравится"
-#: ../../include/taxonomy.php:576 ../../Zotlabs/Lib/ThreadItem.php:293
+#: ../../include/taxonomy.php:576 ../../Zotlabs/Lib/ThreadItem.php:304
msgid "dislike"
msgstr "не нравится"
@@ -3044,11 +3020,11 @@ msgid "Delete this item?"
msgstr "Удалить этот элемент?"
#: ../../include/js_strings.php:6 ../../Zotlabs/Module/Photos.php:1137
-#: ../../Zotlabs/Module/Photos.php:1256 ../../Zotlabs/Lib/ThreadItem.php:772
+#: ../../Zotlabs/Module/Photos.php:1256 ../../Zotlabs/Lib/ThreadItem.php:790
msgid "Comment"
msgstr "Комментарий"
-#: ../../include/js_strings.php:7 ../../Zotlabs/Lib/ThreadItem.php:479
+#: ../../include/js_strings.php:7 ../../Zotlabs/Lib/ThreadItem.php:497
#, php-format
msgid "%s show all"
msgstr "%s показать всё"
@@ -3397,11 +3373,11 @@ msgstr ""
msgid "RSS/Atom"
msgstr ""
-#: ../../include/network.php:1720 ../../Zotlabs/Lib/Activity.php:1798
-#: ../../Zotlabs/Lib/Activity.php:1995
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1204
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1359
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1539
+#: ../../include/network.php:1720 ../../Zotlabs/Lib/Activity.php:1806
+#: ../../Zotlabs/Lib/Activity.php:2003
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1214
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1369
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1549
msgid "ActivityPub"
msgstr ""
@@ -3465,7 +3441,7 @@ msgstr "YYYY-MM-DD или MM-DD"
msgid "Required"
msgstr "Требуется"
-#: ../../include/datetime.php:238 ../../boot.php:2562
+#: ../../include/datetime.php:238 ../../boot.php:2561
msgid "never"
msgstr "никогда"
@@ -3591,7 +3567,7 @@ msgid "Permissions"
msgstr "Разрешения"
#: ../../include/acl_selectors.php:125 ../../Zotlabs/Module/Photos.php:1316
-#: ../../Zotlabs/Lib/ThreadItem.php:441
+#: ../../Zotlabs/Lib/ThreadItem.php:459
msgid "Close"
msgstr "Закрыть"
@@ -3715,7 +3691,7 @@ msgid "Click to authenticate to your home hub"
msgstr "Нажмите, чтобы аутентифицировать себя на домашнем узле"
#: ../../include/nav.php:92 ../../Zotlabs/Module/Manage.php:170
-#: ../../Zotlabs/Lib/Apps.php:314
+#: ../../Zotlabs/Lib/Apps.php:333
msgid "Channel Manager"
msgstr "Менеджер каналов"
@@ -3730,7 +3706,7 @@ msgstr "Управление вашим группами безопасност
#: ../../include/nav.php:97 ../../Zotlabs/Module/Admin/Addons.php:344
#: ../../Zotlabs/Module/Admin/Themes.php:125
#: ../../Zotlabs/Widget/Newmember.php:53
-#: ../../Zotlabs/Widget/Settings_menu.php:68 ../../Zotlabs/Lib/Apps.php:316
+#: ../../Zotlabs/Widget/Settings_menu.php:68 ../../Zotlabs/Lib/Apps.php:335
msgid "Settings"
msgstr "Настройки"
@@ -3739,7 +3715,7 @@ msgid "Account/Channel Settings"
msgstr "Настройки аккаунта / канала"
#: ../../include/nav.php:103 ../../include/nav.php:132
-#: ../../include/nav.php:151 ../../boot.php:1628
+#: ../../include/nav.php:151 ../../boot.php:1629
msgid "Logout"
msgstr "Выход"
@@ -3759,8 +3735,8 @@ msgstr "Управление / редактирование профилей"
msgid "Edit your profile"
msgstr "Редактировать профиль"
-#: ../../include/nav.php:118 ../../include/nav.php:122 ../../boot.php:1629
-#: ../../Zotlabs/Lib/Apps.php:313
+#: ../../include/nav.php:118 ../../include/nav.php:122 ../../boot.php:1630
+#: ../../Zotlabs/Lib/Apps.php:332
msgid "Login"
msgstr "Войти"
@@ -3776,7 +3752,7 @@ msgstr "Домой"
msgid "Log me out of this site"
msgstr "Выйти с этого сайта"
-#: ../../include/nav.php:156 ../../boot.php:1609
+#: ../../include/nav.php:156 ../../boot.php:1610
#: ../../Zotlabs/Module/Register.php:289
msgid "Register"
msgstr "Регистрация"
@@ -3846,7 +3822,7 @@ msgid "Profile Details"
msgstr "Информация о профиле"
#: ../../include/nav.php:452 ../../Zotlabs/Storage/Browser.php:272
-#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:317
+#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:336
msgid "Files"
msgstr "Файлы"
@@ -3860,11 +3836,11 @@ msgid "Calendar"
msgstr "Календарь"
#: ../../include/nav.php:477 ../../include/nav.php:480
-#: ../../Zotlabs/Widget/Chatroom_list.php:16 ../../Zotlabs/Lib/Apps.php:309
+#: ../../Zotlabs/Widget/Chatroom_list.php:16 ../../Zotlabs/Lib/Apps.php:328
msgid "Chatrooms"
msgstr "Чаты"
-#: ../../include/nav.php:490 ../../Zotlabs/Lib/Apps.php:308
+#: ../../include/nav.php:490 ../../Zotlabs/Lib/Apps.php:327
msgid "Bookmarks"
msgstr "Закладки"
@@ -3873,7 +3849,7 @@ msgid "Saved Bookmarks"
msgstr "Сохранённые закладки"
#: ../../include/nav.php:501 ../../Zotlabs/Module/Cards.php:207
-#: ../../Zotlabs/Lib/Apps.php:305
+#: ../../Zotlabs/Lib/Apps.php:324
msgid "Cards"
msgstr "Карточки"
@@ -3882,7 +3858,7 @@ msgid "View Cards"
msgstr "Просмотреть карточки"
#: ../../include/nav.php:512 ../../Zotlabs/Module/Articles.php:222
-#: ../../Zotlabs/Lib/Apps.php:304
+#: ../../Zotlabs/Lib/Apps.php:323
msgid "Articles"
msgstr "Статьи"
@@ -3891,7 +3867,7 @@ msgid "View Articles"
msgstr "Просмотр статей"
#: ../../include/nav.php:524 ../../Zotlabs/Module/Webpages.php:252
-#: ../../Zotlabs/Lib/Apps.php:318
+#: ../../Zotlabs/Lib/Apps.php:337
msgid "Webpages"
msgstr "Веб-страницы"
@@ -3904,7 +3880,7 @@ msgstr "Просмотр веб-страниц"
msgid "Wikis"
msgstr ""
-#: ../../include/nav.php:539 ../../Zotlabs/Lib/Apps.php:319
+#: ../../include/nav.php:539 ../../Zotlabs/Lib/Apps.php:338
msgid "Wiki"
msgstr ""
@@ -3985,45 +3961,45 @@ msgstr "Пустое имя пути"
msgid "Profile Photos"
msgstr "Фотографии профиля"
-#: ../../boot.php:1608
+#: ../../boot.php:1609
msgid "Create an account to access services and applications"
msgstr "Создайте аккаунт для доступа к службам и приложениям"
-#: ../../boot.php:1632
+#: ../../boot.php:1633
msgid "Login/Email"
msgstr "Пользователь / email"
-#: ../../boot.php:1633
+#: ../../boot.php:1634
msgid "Password"
msgstr "Пароль"
-#: ../../boot.php:1634
+#: ../../boot.php:1635
msgid "Remember me"
msgstr "Запомнить меня"
-#: ../../boot.php:1637
+#: ../../boot.php:1638
msgid "Forgot your password?"
msgstr "Забыли пароль или логин?"
-#: ../../boot.php:1638 ../../Zotlabs/Module/Lostpass.php:91
+#: ../../boot.php:1639 ../../Zotlabs/Module/Lostpass.php:91
msgid "Password Reset"
msgstr "Сбросить пароль"
-#: ../../boot.php:2435
+#: ../../boot.php:2434
#, php-format
msgid "[$Projectname] Website SSL error for %s"
msgstr "[$Projectname] Ошибка SSL/TLS веб-сайта для %s"
-#: ../../boot.php:2440
+#: ../../boot.php:2439
msgid "Website SSL certificate is not valid. Please correct."
msgstr "SSL/TLS сертификат веб-сайт недействителен. Исправьте это."
-#: ../../boot.php:2556
+#: ../../boot.php:2555
#, php-format
msgid "[$Projectname] Cron tasks not running on %s"
msgstr "[$Projectname] Задания Cron не запущены на %s"
-#: ../../boot.php:2561
+#: ../../boot.php:2560
msgid "Cron/Scheduled tasks not running."
msgstr "Задания Cron / планировщика не запущены."
@@ -4069,7 +4045,7 @@ msgstr "Создать"
msgid "Add Files"
msgstr "Добавить файлы"
-#: ../../Zotlabs/Storage/Browser.php:280 ../../Zotlabs/Lib/ThreadItem.php:157
+#: ../../Zotlabs/Storage/Browser.php:280 ../../Zotlabs/Lib/ThreadItem.php:168
msgid "Admin Delete"
msgstr "Удалено администратором"
@@ -4272,7 +4248,7 @@ msgstr "Не удалось получить доступ к записи кон
#: ../../Zotlabs/Module/Defperms.php:111
#: ../../Zotlabs/Module/Settings/Channel.php:266
-#: ../../extend/addon/hzaddons/twitter/twitter.php:775
+#: ../../extend/addon/hzaddons/twitter/twitter.php:605
#: ../../extend/addon/hzaddons/logrot/logrot.php:54
#: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:185
#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:82
@@ -4293,13 +4269,41 @@ msgstr "Приложение \"Разрешения по умолчанию\""
#: ../../Zotlabs/Module/Chat.php:102 ../../Zotlabs/Module/Oauth2.php:106
#: ../../Zotlabs/Module/Uexport.php:61 ../../Zotlabs/Module/Bookmarks.php:78
#: ../../Zotlabs/Module/Probe.php:18 ../../Zotlabs/Module/Tokens.php:99
-#: ../../Zotlabs/Module/Notes.php:55 ../../Zotlabs/Module/Webpages.php:48
+#: ../../Zotlabs/Module/Notes.php:56 ../../Zotlabs/Module/Webpages.php:48
#: ../../Zotlabs/Module/Group.php:106 ../../Zotlabs/Module/Mood.php:134
#: ../../Zotlabs/Module/Lang.php:17 ../../Zotlabs/Module/Randprof.php:29
#: ../../Zotlabs/Module/Invite.php:110 ../../Zotlabs/Module/Articles.php:51
#: ../../Zotlabs/Module/Connect.php:104 ../../Zotlabs/Module/Pdledit.php:42
#: ../../Zotlabs/Module/Wiki.php:52 ../../Zotlabs/Module/Suggest.php:40
#: ../../Zotlabs/Module/Cards.php:51
+#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:36
+#: ../../extend/addon/hzaddons/authchoose/Mod_Authchoose.php:28
+#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:58
+#: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:36
+#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:35
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:78
+#: ../../extend/addon/hzaddons/superblock/Mod_Superblock.php:20
+#: ../../extend/addon/hzaddons/photocache/Mod_Photocache.php:42
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:53
+#: ../../extend/addon/hzaddons/nsabait/Mod_Nsabait.php:20
+#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:36
+#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:146
+#: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:50
+#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:33
+#: ../../extend/addon/hzaddons/hsse/Mod_Hsse.php:21
+#: ../../extend/addon/hzaddons/planets/Mod_Planets.php:20
+#: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:21
+#: ../../extend/addon/hzaddons/gnusoc/Mod_Gnusoc.php:22
+#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:34
+#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:35
+#: ../../extend/addon/hzaddons/sendzid/Mod_Sendzid.php:20
+#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:35
+#: ../../extend/addon/hzaddons/redred/Mod_Redred.php:50
+#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:40
+#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:55
+#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:41
+#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:33
+#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:32
msgid "Not Installed"
msgstr "не установлено"
@@ -4382,7 +4386,7 @@ msgid ""
"connections."
msgstr "Используйте эту форму для создания правил разрешений для различных групп людей и контактов."
-#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:352
+#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:371
msgid "Permission Categories"
msgstr "Категории разрешений"
@@ -4523,7 +4527,7 @@ msgid ""
"A verification token was sent to your email address [%s]. Enter that token "
"here to complete the account verification step. Please allow a few minutes "
"for delivery, and check your spam folder if you do not see the message."
-msgstr "Проверочный токен был выслн на ваш адрес электронной почты [%s]. Введите этот токен здесь для завершения этапа проверки учётной записи. Пожалуйста, подождите несколько минут для завершения доставки и проверьте вашу папку \"Спам\" если вы не видите письма."
+msgstr "Проверочный токен был отправлен на ваш адрес электронной почты [%s]. Введите этот токен здесь для завершения этапа проверки учётной записи. Пожалуйста, подождите несколько минут для завершения доставки и проверьте вашу папку \"Спам\" если вы не видите письма."
#: ../../Zotlabs/Module/Email_validation.php:38
msgid "Resend Email"
@@ -4549,36 +4553,36 @@ msgstr "Просмотр общий контактов"
msgid "network"
msgstr "сеть"
-#: ../../Zotlabs/Module/Item.php:196
+#: ../../Zotlabs/Module/Item.php:341
msgid "Unable to locate original post."
msgstr "Не удалось найти оригинальную публикацию."
-#: ../../Zotlabs/Module/Item.php:483
+#: ../../Zotlabs/Module/Item.php:628
msgid "Empty post discarded."
msgstr "Пустая публикация отклонена."
-#: ../../Zotlabs/Module/Item.php:892
+#: ../../Zotlabs/Module/Item.php:1037
msgid "Duplicate post suppressed."
msgstr "Подавлена дублирующаяся публикация."
-#: ../../Zotlabs/Module/Item.php:1037
+#: ../../Zotlabs/Module/Item.php:1182
msgid "System error. Post not saved."
msgstr "Системная ошибка. Публикация не сохранена."
-#: ../../Zotlabs/Module/Item.php:1073
+#: ../../Zotlabs/Module/Item.php:1218
msgid "Your comment is awaiting approval."
msgstr "Ваш комментарий ожидает одобрения."
-#: ../../Zotlabs/Module/Item.php:1190
+#: ../../Zotlabs/Module/Item.php:1335
msgid "Unable to obtain post information from database."
msgstr "Невозможно получить информацию о публикации из базы данных"
-#: ../../Zotlabs/Module/Item.php:1197
+#: ../../Zotlabs/Module/Item.php:1342
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr "Вы достигли вашего ограничения в %1$.0f публикаций высокого уровня."
-#: ../../Zotlabs/Module/Item.php:1204
+#: ../../Zotlabs/Module/Item.php:1349
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr "Вы достигли вашего ограничения в %1$.0f страниц."
@@ -4956,7 +4960,7 @@ msgstr "Добавить поле"
#: ../../Zotlabs/Module/Oauth.php:53 ../../Zotlabs/Module/Oauth.php:137
#: ../../Zotlabs/Module/Oauth2.php:58 ../../Zotlabs/Module/Oauth2.php:144
#: ../../Zotlabs/Module/Admin/Addons.php:453
-#: ../../Zotlabs/Module/Connedit.php:939 ../../Zotlabs/Lib/Apps.php:515
+#: ../../Zotlabs/Module/Connedit.php:939 ../../Zotlabs/Lib/Apps.php:534
msgid "Update"
msgstr "Обновить"
@@ -5017,6 +5021,15 @@ msgstr "vCard"
msgid "You must be logged in to see this page."
msgstr "Вы должны авторизоваться, чтобы увидеть эту страницу."
+#: ../../Zotlabs/Module/Share.php:103 ../../Zotlabs/Lib/Activity.php:1473
+#, php-format
+msgid "&#x1f501; Repeated %1$s's %2$s"
+msgstr "&#x1f501; Повторил %1$s %2$s"
+
+#: ../../Zotlabs/Module/Share.php:119
+msgid "Post repeated"
+msgstr "Публикация повторяется"
+
#: ../../Zotlabs/Module/Notify.php:61 ../../Zotlabs/Module/Notifications.php:55
msgid "No more system notifications."
msgstr "Нет новых оповещений системы."
@@ -5620,21 +5633,21 @@ msgstr "Пример: @bob, @Barbara_Jensen, @jim@example.com"
msgid "Flag as adult in album view"
msgstr "Пометить как альбом \"для взрослых\""
-#: ../../Zotlabs/Module/Photos.php:1115 ../../Zotlabs/Lib/ThreadItem.php:292
+#: ../../Zotlabs/Module/Photos.php:1115 ../../Zotlabs/Lib/ThreadItem.php:303
msgid "I like this (toggle)"
msgstr "мне это нравится (переключение)"
-#: ../../Zotlabs/Module/Photos.php:1116 ../../Zotlabs/Lib/ThreadItem.php:293
+#: ../../Zotlabs/Module/Photos.php:1116 ../../Zotlabs/Lib/ThreadItem.php:304
msgid "I don't like this (toggle)"
msgstr "мне это не нравится (переключение)"
#: ../../Zotlabs/Module/Photos.php:1135 ../../Zotlabs/Module/Photos.php:1254
-#: ../../Zotlabs/Lib/ThreadItem.php:770
+#: ../../Zotlabs/Lib/ThreadItem.php:788
msgid "This is you"
msgstr "Это вы"
#: ../../Zotlabs/Module/Photos.php:1173 ../../Zotlabs/Module/Photos.php:1185
-#: ../../Zotlabs/Lib/ThreadItem.php:217 ../../Zotlabs/Lib/ThreadItem.php:229
+#: ../../Zotlabs/Lib/ThreadItem.php:228 ../../Zotlabs/Lib/ThreadItem.php:240
msgid "View all"
msgstr "Просмотреть все"
@@ -5650,12 +5663,12 @@ msgstr "На этой фотографии:"
msgid "Map"
msgstr "Карта"
-#: ../../Zotlabs/Module/Photos.php:1310 ../../Zotlabs/Lib/ThreadItem.php:435
+#: ../../Zotlabs/Module/Photos.php:1310 ../../Zotlabs/Lib/ThreadItem.php:453
msgctxt "noun"
msgid "Likes"
msgstr "Нравится"
-#: ../../Zotlabs/Module/Photos.php:1311 ../../Zotlabs/Lib/ThreadItem.php:436
+#: ../../Zotlabs/Module/Photos.php:1311 ../../Zotlabs/Lib/ThreadItem.php:454
msgctxt "noun"
msgid "Dislikes"
msgstr "Не нравится"
@@ -5812,7 +5825,7 @@ msgid "Name of application"
msgstr "Название приложения"
#: ../../Zotlabs/Module/Oauth.php:114 ../../Zotlabs/Module/Oauth.php:140
-#: ../../extend/addon/hzaddons/twitter/twitter.php:784
+#: ../../extend/addon/hzaddons/twitter/twitter.php:614
#: ../../extend/addon/hzaddons/statusnet/statusnet.php:596
msgid "Consumer Key"
msgstr "Ключ клиента"
@@ -5824,7 +5837,7 @@ msgstr "Сгенерирован автоматические - измените
#: ../../Zotlabs/Module/Oauth.php:115 ../../Zotlabs/Module/Oauth.php:141
#: ../../Zotlabs/Module/Oauth2.php:119 ../../Zotlabs/Module/Oauth2.php:147
-#: ../../extend/addon/hzaddons/twitter/twitter.php:785
+#: ../../extend/addon/hzaddons/twitter/twitter.php:615
#: ../../extend/addon/hzaddons/statusnet/statusnet.php:595
msgid "Consumer Secret"
msgstr "Код клиента"
@@ -6022,7 +6035,7 @@ msgid "The unmoderated public stream of this hub"
msgstr "Немодерируемый публичный поток с этого хаба"
#: ../../Zotlabs/Module/Pubstream.php:109
-#: ../../Zotlabs/Widget/Notifications.php:142 ../../Zotlabs/Lib/Apps.php:354
+#: ../../Zotlabs/Widget/Notifications.php:142 ../../Zotlabs/Lib/Apps.php:373
msgid "Public Stream"
msgstr "Публичный поток"
@@ -6472,7 +6485,7 @@ msgstr "Автоматический импорт контента из друг
msgid "*"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:346
+#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:365
msgid "Channel Sources"
msgstr "Источники канала"
@@ -7525,19 +7538,19 @@ msgid "%1$s abstains from a decision on %2$s's %3$s"
msgstr "%1$s воздерживается от решения по %2$s%3$s"
#: ../../Zotlabs/Module/Like.php:457
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2133
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2137
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr "%1$s посещает %2$s%3$s"
#: ../../Zotlabs/Module/Like.php:459
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2135
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2139
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr "%1$s не посещает %2$s%3$s"
#: ../../Zotlabs/Module/Like.php:461
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2137
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2141
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr "%1$s может посетить %2$s%3$s"
@@ -8675,7 +8688,7 @@ msgstr "Загрузить репозиторий расширений"
msgid "Install new repo"
msgstr "Установить новый репозиторий"
-#: ../../Zotlabs/Module/Admin/Addons.php:422 ../../Zotlabs/Lib/Apps.php:515
+#: ../../Zotlabs/Module/Admin/Addons.php:422 ../../Zotlabs/Lib/Apps.php:534
msgid "Install"
msgstr "Установить"
@@ -9468,7 +9481,7 @@ msgid "Their Settings"
msgstr "Их настройки"
#: ../../Zotlabs/Module/Notifications.php:60
-#: ../../Zotlabs/Lib/ThreadItem.php:428
+#: ../../Zotlabs/Lib/ThreadItem.php:446
msgid "Mark all seen"
msgstr "Отметить как просмотренное"
@@ -9569,11 +9582,11 @@ msgstr "Объекты помечены как: %s"
msgid "Search results for: %s"
msgstr "Результаты поиска для: %s"
-#: ../../Zotlabs/Module/Notes.php:55
+#: ../../Zotlabs/Module/Notes.php:56
msgid "Notes App"
msgstr "Приложение \"Заметки\""
-#: ../../Zotlabs/Module/Notes.php:56
+#: ../../Zotlabs/Module/Notes.php:57
msgid "A simple notes app with a widget (note: notes are not encrypted)"
msgstr "Простое приложение для заметок с виджетом (примечание: заметки не зашифрованы)"
@@ -10184,7 +10197,7 @@ msgstr "Приложение \"Настроение\""
msgid "Set your current mood and tell your friends"
msgstr "Установить текущее настроение и рассказать друзьям"
-#: ../../Zotlabs/Module/Mood.php:154 ../../Zotlabs/Lib/Apps.php:327
+#: ../../Zotlabs/Module/Mood.php:154 ../../Zotlabs/Lib/Apps.php:346
msgid "Mood"
msgstr "Настроение"
@@ -10584,7 +10597,7 @@ msgstr "Введите название каталога"
msgid "or select an existing folder (doubleclick)"
msgstr "или выберите существующий каталог (двойной щелчок)"
-#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:167
+#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:178
msgid "Save to Folder"
msgstr "Сохранить в каталог"
@@ -10938,7 +10951,7 @@ msgstr "Просмотр публичного потока. Предупрежд
msgid "Forums"
msgstr "Форумы"
-#: ../../Zotlabs/Widget/Notes.php:21 ../../Zotlabs/Lib/Apps.php:348
+#: ../../Zotlabs/Widget/Notes.php:21 ../../Zotlabs/Lib/Apps.php:367
msgid "Notes"
msgstr "Заметки"
@@ -11340,7 +11353,7 @@ msgstr "Управление местоположением"
msgid "Member registrations waiting for confirmation"
msgstr "Регистрации участников, ожидающие подверждения"
-#: ../../Zotlabs/Widget/Admin.php:26 ../../Zotlabs/Lib/Apps.php:335
+#: ../../Zotlabs/Widget/Admin.php:26 ../../Zotlabs/Lib/Apps.php:354
msgid "Features"
msgstr "Функции"
@@ -11552,7 +11565,7 @@ msgstr "Может публиковать на моей странице кан
#: ../../Zotlabs/Access/Permissions.php:67
msgid "Can comment on or like my posts"
-msgstr "Может прокомментировать или отмечать как понравившиеся мои посты"
+msgstr "Может прокомментировать или отмечать как понравившиеся мои публикации"
#: ../../Zotlabs/Access/Permissions.php:68
msgid "Can send me private mail messages"
@@ -11658,8 +11671,8 @@ msgstr "Оповещение $Projectname "
#: ../../Zotlabs/Lib/Enotify.php:61
#: ../../extend/addon/hzaddons/diaspora/p.php:48
-#: ../../extend/addon/hzaddons/diaspora/util.php:308
-#: ../../extend/addon/hzaddons/diaspora/util.php:321
+#: ../../extend/addon/hzaddons/diaspora/util.php:313
+#: ../../extend/addon/hzaddons/diaspora/util.php:326
msgid "$projectname"
msgstr ""
@@ -11999,172 +12012,184 @@ msgctxt "permcat"
msgid "publisher"
msgstr "издатель"
-#: ../../Zotlabs/Lib/Apps.php:303
+#: ../../Zotlabs/Lib/Apps.php:322
msgid "Apps"
msgstr "Приложения"
-#: ../../Zotlabs/Lib/Apps.php:306
+#: ../../Zotlabs/Lib/Apps.php:325
msgid "Site Admin"
msgstr "Администратор сайта"
-#: ../../Zotlabs/Lib/Apps.php:307
+#: ../../Zotlabs/Lib/Apps.php:326
#: ../../extend/addon/hzaddons/buglink/buglink.php:16
msgid "Report Bug"
msgstr "Сообщить об ошибке"
-#: ../../Zotlabs/Lib/Apps.php:311
+#: ../../Zotlabs/Lib/Apps.php:330
msgid "Remote Diagnostics"
msgstr "Удалённая диагностика"
-#: ../../Zotlabs/Lib/Apps.php:315
+#: ../../Zotlabs/Lib/Apps.php:334
msgid "Stream"
msgstr "Поток"
-#: ../../Zotlabs/Lib/Apps.php:326
+#: ../../Zotlabs/Lib/Apps.php:345
msgid "Mail"
msgstr "Переписка"
-#: ../../Zotlabs/Lib/Apps.php:329
+#: ../../Zotlabs/Lib/Apps.php:348
msgid "Chat"
msgstr "Чат"
-#: ../../Zotlabs/Lib/Apps.php:331
+#: ../../Zotlabs/Lib/Apps.php:350
msgid "Probe"
msgstr "Проба"
-#: ../../Zotlabs/Lib/Apps.php:332
+#: ../../Zotlabs/Lib/Apps.php:351
msgid "Suggest"
msgstr "Предложить"
-#: ../../Zotlabs/Lib/Apps.php:333
+#: ../../Zotlabs/Lib/Apps.php:352
msgid "Random Channel"
msgstr "Случайный канал"
-#: ../../Zotlabs/Lib/Apps.php:334
+#: ../../Zotlabs/Lib/Apps.php:353
msgid "Invite"
msgstr "Пригласить"
-#: ../../Zotlabs/Lib/Apps.php:336
+#: ../../Zotlabs/Lib/Apps.php:355
#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:69
msgid "Language"
msgstr "Язык"
-#: ../../Zotlabs/Lib/Apps.php:337
+#: ../../Zotlabs/Lib/Apps.php:356
msgid "Post"
msgstr "Публикация"
-#: ../../Zotlabs/Lib/Apps.php:338
+#: ../../Zotlabs/Lib/Apps.php:357
#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:58
#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:59
#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:60
msgid "Profile Photo"
msgstr "Фотография профиля"
-#: ../../Zotlabs/Lib/Apps.php:342
+#: ../../Zotlabs/Lib/Apps.php:361
msgid "Notifications"
msgstr "Оповещения"
-#: ../../Zotlabs/Lib/Apps.php:343
+#: ../../Zotlabs/Lib/Apps.php:362
msgid "Order Apps"
msgstr "Порядок приложений"
-#: ../../Zotlabs/Lib/Apps.php:345
+#: ../../Zotlabs/Lib/Apps.php:364
msgid "CardDAV"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:347
+#: ../../Zotlabs/Lib/Apps.php:366
msgid "Guest Access"
msgstr "Гостевой доступ"
-#: ../../Zotlabs/Lib/Apps.php:349
+#: ../../Zotlabs/Lib/Apps.php:368
msgid "OAuth Apps Manager"
msgstr "Менеджер OAuth"
-#: ../../Zotlabs/Lib/Apps.php:350
+#: ../../Zotlabs/Lib/Apps.php:369
msgid "OAuth2 Apps Manager"
msgstr "Менеджер OAuth2"
-#: ../../Zotlabs/Lib/Apps.php:351
+#: ../../Zotlabs/Lib/Apps.php:370
msgid "PDL Editor"
msgstr "Редактор PDL"
-#: ../../Zotlabs/Lib/Apps.php:353
+#: ../../Zotlabs/Lib/Apps.php:372
msgid "Premium Channel"
msgstr "Премиальный канал"
-#: ../../Zotlabs/Lib/Apps.php:355
+#: ../../Zotlabs/Lib/Apps.php:374
msgid "My Chatrooms"
msgstr "Мои чаты"
-#: ../../Zotlabs/Lib/Apps.php:356
+#: ../../Zotlabs/Lib/Apps.php:375
msgid "Channel Export"
msgstr "Экспорт канала"
-#: ../../Zotlabs/Lib/Apps.php:533
+#: ../../Zotlabs/Lib/Apps.php:552
msgid "Purchase"
msgstr "Купить"
-#: ../../Zotlabs/Lib/Apps.php:538
+#: ../../Zotlabs/Lib/Apps.php:557
msgid "Undelete"
msgstr "Восстановить"
-#: ../../Zotlabs/Lib/Apps.php:547
+#: ../../Zotlabs/Lib/Apps.php:566
msgid "Add to app-tray"
msgstr "Добавить в app-tray"
-#: ../../Zotlabs/Lib/Apps.php:548
+#: ../../Zotlabs/Lib/Apps.php:567
msgid "Remove from app-tray"
msgstr "Удалить из app-tray"
-#: ../../Zotlabs/Lib/Apps.php:549
+#: ../../Zotlabs/Lib/Apps.php:568
msgid "Pin to navbar"
msgstr "Добавить на панель навигации"
-#: ../../Zotlabs/Lib/Apps.php:550
+#: ../../Zotlabs/Lib/Apps.php:569
msgid "Unpin from navbar"
msgstr "Удалить с панели навигации"
-#: ../../Zotlabs/Lib/ThreadItem.php:188
+#: ../../Zotlabs/Lib/ThreadItem.php:126
+msgid "Privacy conflict. Discretion advised."
+msgstr "Конфиликт настроек конфиденциальности."
+
+#: ../../Zotlabs/Lib/ThreadItem.php:199
msgid "I will attend"
msgstr "Я буду участвовать"
-#: ../../Zotlabs/Lib/ThreadItem.php:188
+#: ../../Zotlabs/Lib/ThreadItem.php:199
msgid "I will not attend"
msgstr "Я не буду участвовать"
-#: ../../Zotlabs/Lib/ThreadItem.php:188
+#: ../../Zotlabs/Lib/ThreadItem.php:199
msgid "I might attend"
msgstr "Я возможно буду присутствовать"
-#: ../../Zotlabs/Lib/ThreadItem.php:198
+#: ../../Zotlabs/Lib/ThreadItem.php:209
msgid "I agree"
msgstr "Я согласен"
-#: ../../Zotlabs/Lib/ThreadItem.php:198
+#: ../../Zotlabs/Lib/ThreadItem.php:209
msgid "I disagree"
msgstr "Я не согласен"
-#: ../../Zotlabs/Lib/ThreadItem.php:198
+#: ../../Zotlabs/Lib/ThreadItem.php:209
msgid "I abstain"
msgstr "Я воздержался"
-#: ../../Zotlabs/Lib/ThreadItem.php:272
+#: ../../Zotlabs/Lib/ThreadItem.php:283
msgid "Add Tag"
msgstr "Добавить тег"
-#: ../../Zotlabs/Lib/ThreadItem.php:297
+#: ../../Zotlabs/Lib/ThreadItem.php:311
+msgid "Repeat This"
+msgstr "Повторить это"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:311
+msgid "repeat"
+msgstr "повторение"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:313
msgid "Share This"
msgstr "Поделиться этим"
-#: ../../Zotlabs/Lib/ThreadItem.php:297
+#: ../../Zotlabs/Lib/ThreadItem.php:313
msgid "share"
msgstr "поделиться"
-#: ../../Zotlabs/Lib/ThreadItem.php:306
+#: ../../Zotlabs/Lib/ThreadItem.php:323
msgid "Delivery Report"
msgstr "Отчёт о доставке"
-#: ../../Zotlabs/Lib/ThreadItem.php:326
+#: ../../Zotlabs/Lib/ThreadItem.php:343
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
@@ -12172,73 +12197,73 @@ msgstr[0] "%d комментарий"
msgstr[1] "%d комментария"
msgstr[2] "%d комментариев"
-#: ../../Zotlabs/Lib/ThreadItem.php:360 ../../Zotlabs/Lib/ThreadItem.php:361
+#: ../../Zotlabs/Lib/ThreadItem.php:377 ../../Zotlabs/Lib/ThreadItem.php:378
#, php-format
msgid "View %s's profile - %s"
msgstr "Просмотр %s профиля - %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:364
+#: ../../Zotlabs/Lib/ThreadItem.php:381
msgid "to"
msgstr "к"
-#: ../../Zotlabs/Lib/ThreadItem.php:365
+#: ../../Zotlabs/Lib/ThreadItem.php:382
msgid "via"
msgstr "через"
-#: ../../Zotlabs/Lib/ThreadItem.php:366
+#: ../../Zotlabs/Lib/ThreadItem.php:383
msgid "Wall-to-Wall"
msgstr "Стена-к-Стене"
-#: ../../Zotlabs/Lib/ThreadItem.php:367
+#: ../../Zotlabs/Lib/ThreadItem.php:384
msgid "via Wall-To-Wall:"
msgstr "через Стена-к-Стене:"
-#: ../../Zotlabs/Lib/ThreadItem.php:393
+#: ../../Zotlabs/Lib/ThreadItem.php:410
msgid "Attend"
msgstr "Посетить"
-#: ../../Zotlabs/Lib/ThreadItem.php:394
+#: ../../Zotlabs/Lib/ThreadItem.php:411
msgid "Attendance Options"
msgstr "Параметры посещаемости"
-#: ../../Zotlabs/Lib/ThreadItem.php:395
+#: ../../Zotlabs/Lib/ThreadItem.php:412
msgid "Vote"
msgstr "Голосовать"
-#: ../../Zotlabs/Lib/ThreadItem.php:396
+#: ../../Zotlabs/Lib/ThreadItem.php:413
msgid "Voting Options"
msgstr "Параметры голосования"
-#: ../../Zotlabs/Lib/ThreadItem.php:417
+#: ../../Zotlabs/Lib/ThreadItem.php:435
#: ../../extend/addon/hzaddons/bookmarker/bookmarker.php:38
msgid "Save Bookmarks"
msgstr "Сохранить закладки"
-#: ../../Zotlabs/Lib/ThreadItem.php:418
+#: ../../Zotlabs/Lib/ThreadItem.php:436
msgid "Add to Calendar"
msgstr "Добавить в календарь"
-#: ../../Zotlabs/Lib/ThreadItem.php:779
+#: ../../Zotlabs/Lib/ThreadItem.php:797
msgid "Image"
msgstr "Изображение"
-#: ../../Zotlabs/Lib/ThreadItem.php:781
+#: ../../Zotlabs/Lib/ThreadItem.php:799
msgid "Insert Link"
msgstr "Вставить ссылку"
-#: ../../Zotlabs/Lib/ThreadItem.php:782
+#: ../../Zotlabs/Lib/ThreadItem.php:800
msgid "Video"
msgstr "Видео"
-#: ../../Zotlabs/Lib/ThreadItem.php:792
+#: ../../Zotlabs/Lib/ThreadItem.php:810
msgid "Your full name (required)"
msgstr "Ваше полное имя (требуется)"
-#: ../../Zotlabs/Lib/ThreadItem.php:793
+#: ../../Zotlabs/Lib/ThreadItem.php:811
msgid "Your email address (required)"
msgstr "Ваш адрес электронной почты (требуется)"
-#: ../../Zotlabs/Lib/ThreadItem.php:794
+#: ../../Zotlabs/Lib/ThreadItem.php:812
msgid "Your website URL (optional)"
msgstr "URL вашего вебсайта (необязательно)"
@@ -12315,36 +12340,31 @@ msgstr "Это настройка по умолчанию для тех, кто
msgid "This is your default setting for the audience of your webpages"
msgstr "Это настройка по умолчанию для аудитории ваших веб-страниц"
-#: ../../Zotlabs/Lib/Activity.php:1450
+#: ../../Zotlabs/Lib/Activity.php:1458
#, php-format
msgid "Likes %1$s's %2$s"
msgstr "Нравится %1$s %2$s"
-#: ../../Zotlabs/Lib/Activity.php:1453
+#: ../../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:1456
+#: ../../Zotlabs/Lib/Activity.php:1464
#, php-format
msgid "Will attend %1$s's %2$s"
msgstr "Примет участие %1$s %2$s"
-#: ../../Zotlabs/Lib/Activity.php:1459
+#: ../../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:1462
+#: ../../Zotlabs/Lib/Activity.php:1470
#, php-format
msgid "May attend %1$s's %2$s"
msgstr "Возможно примет участие %1$s %2$s"
-#: ../../Zotlabs/Lib/Activity.php:1465
-#, php-format
-msgid "&#x1f501; Repeated %1$s's %2$s"
-msgstr "&#x1f501; Повторил %1$s %2$s"
-
#: ../../Zotlabs/Lib/Techlevels.php:10
msgid "0. Beginner/Basic"
msgstr "Начинающий / Базовый"
@@ -12381,29 +12401,37 @@ msgstr "Wiki успешно удалена"
msgid "Use markdown for editing posts"
msgstr "Использовать язык разметки Markdown для редактирования публикаций"
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:42
+#: ../../extend/addon/hzaddons/dwpost/dwpost.php:48
msgid "Post to Dreamwidth"
msgstr "Публиковать в Dreamwidth"
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:73
-msgid "Enable Dreamwidth Post Plugin"
-msgstr "Включить плагин публикаций Dreamwidth"
+#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:24
+msgid "Dreamwidth Crosspost Connector Settings saved."
+msgstr "Настройки пересылки публикаций Dreamwidth сохранены."
+
+#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:36
+msgid "Dreamwidth Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Dreamwidth\""
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:77
+#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:37
+msgid "Relay public postings to Dreamwidth"
+msgstr "Пересылает общедоступные публикации в Dreamwidth"
+
+#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:52
msgid "Dreamwidth username"
msgstr "Имя пользователя Dreamwidth"
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:81
+#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:56
msgid "Dreamwidth password"
msgstr "Пароль Dreamwidth"
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:85
+#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:60
msgid "Post to Dreamwidth by default"
msgstr "Публиковать в Dreamwidth по умолчанию"
-#: ../../extend/addon/hzaddons/dwpost/dwpost.php:89
-msgid "Dreamwidth Post Settings"
-msgstr "Настройки публикаций в Dreamwidth"
+#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:68
+msgid "Dreamwidth Crosspost Connector"
+msgstr "Пересылка публикаций Dreamwidth"
#: ../../extend/addon/hzaddons/donate/donate.php:21
msgid "Project Servers and Resources"
@@ -12509,6 +12537,19 @@ msgid ""
"Allow magic authentication only to websites of your immediate connections"
msgstr "Разрешить волшебную аутентификацию только на сайтах ваших непосредственных соединений"
+#: ../../extend/addon/hzaddons/authchoose/Mod_Authchoose.php:28
+#: ../../extend/addon/hzaddons/authchoose/Mod_Authchoose.php:33
+msgid "Authchoose App"
+msgstr "Приложение Authchoose"
+
+#: ../../extend/addon/hzaddons/authchoose/Mod_Authchoose.php:33
+#: ../../extend/addon/hzaddons/nsabait/Mod_Nsabait.php:24
+#: ../../extend/addon/hzaddons/hsse/Mod_Hsse.php:26
+#: ../../extend/addon/hzaddons/planets/Mod_Planets.php:23
+#: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:26
+msgid "Installed"
+msgstr "Установлено"
+
#: ../../extend/addon/hzaddons/authchoose/Mod_Authchoose.php:39
msgid "Authchoose"
msgstr ""
@@ -12556,6 +12597,10 @@ msgstr "Максимальное количество для импорта"
msgid "0 or blank to import all available"
msgstr "0 или пусто для импорта всех доступных"
+#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:58
+msgid "Gallery App"
+msgstr "Приложение \"Галерея\""
+
#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:59
msgid "A simple gallery for your photo albums"
msgstr "Простая галлерея для ваших фотоальбомов"
@@ -12573,9 +12618,13 @@ msgstr "Фотогалерея"
msgid "Friendica Crosspost Connector Settings saved."
msgstr "Настройки пересылки публикаций Friendica сохранены."
+#: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:36
+msgid "Friendica Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Friendica\""
+
#: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:37
msgid "Relay public postings to a connected Friendica account"
-msgstr "Ретранслировать общедоступные публикации на подключённую учётную запись Friendica"
+msgstr "Пересылает общедоступные публикации на подключённую учётную запись Friendica"
#: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:49
msgid "Send public postings to Friendica by default"
@@ -12618,27 +12667,31 @@ msgstr "Аутентификация выполнена успешно, но о
msgid "Post to Insane Journal"
msgstr "Опубликовать в Insane Journal"
-#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:24
+#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:23
msgid "Insane Journal Crosspost Connector Settings saved."
msgstr "Настройки пересылки публикаций Insane Journal сохранены."
-#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:37
+#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:35
+msgid "Insane Journal Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Insane Journal\""
+
+#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:36
msgid "Relay public postings to Insane Journal"
-msgstr "Ретранслировать общедоступные публикации в Insane Journal"
+msgstr "Пересылает общедоступные публикации в Insane Journal"
-#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:54
+#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:53
msgid "InsaneJournal username"
msgstr "Имя пользователя Insane Journal"
-#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:58
+#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:57
msgid "InsaneJournal password"
msgstr "Пароль Insane Journal"
-#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:62
+#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:61
msgid "Post to InsaneJournal by default"
msgstr "Публиковать в Insane Journal по умолчанию"
-#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:70
+#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:69
msgid "Insane Journal Crosspost Connector"
msgstr "Пересылка публикаций Insane Journal"
@@ -12663,21 +12716,34 @@ msgstr "Это позволит импортировать все ваши фа
msgid "file"
msgstr "файл"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:102
+#: ../../extend/addon/hzaddons/twitter/twitter.php:107
msgid "Post to Twitter"
msgstr "Опубликовать в Twitter"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:158
+#: ../../extend/addon/hzaddons/twitter/twitter.php:612
+#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:95
+msgid "Submit Settings"
+msgstr "Отправить настройки"
+
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:65
msgid "Twitter settings updated."
msgstr "Настройки Twitter обновлены"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:187
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:78
+msgid "Twitter Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Twitter\""
+
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:79
+msgid "Relay public posts to Twitter"
+msgstr "Пересылает общедоступные публикации в Twitter"
+
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:103
msgid ""
"No consumer key pair for Twitter found. Please contact your site "
"administrator."
msgstr "Не найдено пары ключей для Twitter. Пожалуйста, свяжитесь с администратором сайта."
-#: ../../extend/addon/hzaddons/twitter/twitter.php:209
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:125
msgid ""
"At this Hubzilla instance the Twitter plugin was enabled but you have not "
"yet connected your account to your Twitter account. To do so click the "
@@ -12686,20 +12752,20 @@ msgid ""
"be posted to Twitter."
msgstr "В этой установке Hubzilla плагин Twitter был включён, однако пока он не подключён к вашему аккаунту в Twitter. Для этого нажмите на кнопку ниже для получения PIN-кода от Twitter который нужно скопировать в поле ввода и отправить форму. Только ваши <strong>общедоступные</strong> публикации будут опубликованы в Twitter."
-#: ../../extend/addon/hzaddons/twitter/twitter.php:211
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:127
msgid "Log in with Twitter"
msgstr "Войти в Twitter"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:214
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:130
msgid "Copy the PIN from Twitter here"
msgstr "Скопируйте PIN-код из Twitter здесь"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:236
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:147
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:272
msgid "Currently connected to: "
msgstr "В настоящее время подключён к:"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:241
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:152
msgid ""
"<strong>Note:</strong> Due your privacy settings (<em>Hide your profile "
"details from unknown viewers?</em>) the link potentially included in public "
@@ -12707,47 +12773,32 @@ msgid ""
"the visitor that the access to your profile has been restricted."
msgstr "<strong>Замечание</strong>: Из-за настроек конфиденциальности (<em>скрыть данные своего профиля от неизвестных зрителей?</em>) cсылка, потенциально включенная в общедоступные публикации, переданные в Twitter, приведет посетителя к пустой странице, информирующей его о том, что доступ к вашему профилю был ограничен."
-#: ../../extend/addon/hzaddons/twitter/twitter.php:246
-msgid "Allow posting to Twitter"
-msgstr "Разрешить публиковать в Twitter"
-
-#: ../../extend/addon/hzaddons/twitter/twitter.php:246
-msgid ""
-"If enabled your public postings can be posted to the associated Twitter "
-"account"
-msgstr "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи Twitter"
-
-#: ../../extend/addon/hzaddons/twitter/twitter.php:250
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:157
msgid "Twitter post length"
msgstr "Длина публикации Twitter"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:250
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:157
msgid "Maximum tweet length"
msgstr "Максимальная длина твита"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:255
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:162
msgid "Send public postings to Twitter by default"
msgstr "Отправлять общедоступные публикации в Twitter по умолчанию"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:255
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:162
msgid ""
"If enabled your public postings will be posted to the associated Twitter "
"account by default"
msgstr "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи Twitter по умолчанию"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:264
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:171
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:291
msgid "Clear OAuth configuration"
msgstr "Очистить конфигурацию OAuth"
-#: ../../extend/addon/hzaddons/twitter/twitter.php:273
-msgid "Twitter Post Settings"
-msgstr "Настройки публикаций в Twitter"
-
-#: ../../extend/addon/hzaddons/twitter/twitter.php:782
-#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:95
-msgid "Submit Settings"
-msgstr "Отправить настройки"
+#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:181
+msgid "Twitter Crosspost Connector"
+msgstr "Пересылка публикаций Twitter"
#: ../../extend/addon/hzaddons/tour/tour.php:76
msgid "Edit your profile and change settings."
@@ -12824,7 +12875,7 @@ msgstr "Нажмите сюда чтобы поделиться текстом,
#: ../../extend/addon/hzaddons/tour/tour.php:95
msgid "You can write an optional title for your update (good for long posts)."
-msgstr "Вы можете написать необязательный заголовок для вашей публикации (желательно для больших постов)."
+msgstr "Вы можете написать необязательный заголовок для вашей публикации (желательно для больших публикаций)."
#: ../../extend/addon/hzaddons/tour/tour.php:96
msgid "Entering some categories here makes it easier to find your post later."
@@ -12911,6 +12962,10 @@ msgstr "Добро пожаловать в Hubzilla! Желаете получи
msgid "Block Completely"
msgstr "Заблокировать полностью"
+#: ../../extend/addon/hzaddons/superblock/Mod_Superblock.php:20
+msgid "Superblock App"
+msgstr "Приложение Superblock"
+
#: ../../extend/addon/hzaddons/superblock/Mod_Superblock.php:21
msgid "Block channels"
msgstr "Заблокировать каналы"
@@ -13178,15 +13233,17 @@ msgid ""
"increase your anonymity in the web."
msgstr "Приложение Photo Cache сохраняет копию изображений с внешних сайтов локально для повышения вашей анонимности в Интернет."
+#: ../../extend/addon/hzaddons/photocache/Mod_Photocache.php:42
+msgid "Photo Cache App"
+msgstr "Приложение Photo Cache"
+
#: ../../extend/addon/hzaddons/photocache/Mod_Photocache.php:53
msgid "Minimal photo size for caching"
msgstr "Минимальный размер фотографии для кэширования"
#: ../../extend/addon/hzaddons/photocache/Mod_Photocache.php:55
-msgid ""
-"In pixels. 0 will be replaced with system default, from 1 up to 1024 (large "
-"images will be scaled to this value)."
-msgstr "В пискелях. 0 будет заменён значением по умолчанию, от 1 до 1024 (большие изображения будут масштабированы до этого значения)."
+msgid "In pixels. From 1 up to 1024, 0 will be replaced with system default."
+msgstr "В пикселях. От 1 до 1024, 0 будет заменён значением по умолчанию."
#: ../../extend/addon/hzaddons/photocache/Mod_Photocache.php:64
msgid "Photo Cache"
@@ -13411,77 +13468,78 @@ msgstr "Включить отслеживание ошибок JavaScript на
msgid "This feature requires Piwik >= 2.2.0"
msgstr "Эта функция требует версию Piwik >= 2.2.0"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:148
-msgid "You are now authenticated to pumpio."
-msgstr "Вы аутентифицированы в Pump.io"
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:40
+msgid "Pump.io Settings saved."
+msgstr "Настройки Pump.io сохранены."
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:149
-msgid "return to the featured settings page"
-msgstr "Вернутся к странице настроек"
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:53
+msgid "Pump.io Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Pump.io\""
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:163
-msgid "Post to Pump.io"
-msgstr "Опубликовать в Pump.io"
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:54
+msgid "Relay public posts to pump.io"
+msgstr "Пересылает общедоступные публикации в Pump.io"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:198
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:73
msgid "Pump.io servername"
msgstr "Имя сервера Pump.io"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:198
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:73
msgid "Without \"http://\" or \"https://\""
msgstr "Без \"http://\" или \"https://\""
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:202
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:77
msgid "Pump.io username"
msgstr "Имя пользователя Pump.io"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:202
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:77
msgid "Without the servername"
msgstr "без имени сервера"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:213
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:88
msgid "You are not authenticated to pumpio"
msgstr "Вы не аутентифицированы на Pump.io"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:215
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:90
msgid "(Re-)Authenticate your pump.io connection"
msgstr "Аутентифицировать (повторно) ваше соединение с Pump.io"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:219
-msgid "Enable pump.io Post Plugin"
-msgstr "Включить плагин публикаций Pump.io"
-
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:223
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:94
msgid "Post to pump.io by default"
msgstr "Публиковать в Pump.io по умолчанию"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:227
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:98
msgid "Should posts be public"
msgstr "Публикации должны быть общедоступными"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:231
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:102
msgid "Mirror all public posts"
msgstr "Отображать все общедоступные публикации"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:237
-msgid "Pump.io Post Settings"
-msgstr "Настройки публикаций в Pump.io"
+#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:112
+msgid "Pump.io Crosspost Connector"
+msgstr "Пересылка публикаций Pump.io"
+
+#: ../../extend/addon/hzaddons/pumpio/pumpio.php:152
+msgid "You are now authenticated to pumpio."
+msgstr "Вы аутентифицированы в Pump.io"
-#: ../../extend/addon/hzaddons/pumpio/pumpio.php:266
-msgid "PumpIO Settings saved."
-msgstr "Настройки публикаций в Pump.io сохранены."
+#: ../../extend/addon/hzaddons/pumpio/pumpio.php:153
+msgid "return to the featured settings page"
+msgstr "Вернутся к странице настроек"
-#: ../../extend/addon/hzaddons/nsabait/nsabait.php:125
-msgid "Nsabait Settings updated."
-msgstr "Настройки Nsabait обновлены"
+#: ../../extend/addon/hzaddons/pumpio/pumpio.php:168
+msgid "Post to Pump.io"
+msgstr "Опубликовать в Pump.io"
-#: ../../extend/addon/hzaddons/nsabait/nsabait.php:157
-msgid "Enable NSAbait Plugin"
-msgstr "Включить плагин NSAbait"
+#: ../../extend/addon/hzaddons/nsabait/Mod_Nsabait.php:20
+#: ../../extend/addon/hzaddons/nsabait/Mod_Nsabait.php:24
+msgid "NSA Bait App"
+msgstr "Приложение NSA Bait"
-#: ../../extend/addon/hzaddons/nsabait/nsabait.php:161
-msgid "NSAbait Settings"
-msgstr "Настройки Nsabait"
+#: ../../extend/addon/hzaddons/nsabait/Mod_Nsabait.php:26
+msgid "Make yourself a political target"
+msgstr "Сделать себя политической мишенью"
#: ../../extend/addon/hzaddons/mailtest/mailtest.php:19
msgid "Send test email"
@@ -13648,29 +13706,33 @@ msgstr "Начиная с даты изменений yyyy-mm-dd"
msgid "Until modified date yyyy-mm-dd"
msgstr "Заканчивая датой изменений yyyy-mm-dd"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:42
+#: ../../extend/addon/hzaddons/ljpost/ljpost.php:45
msgid "Post to Livejournal"
msgstr "Опубликовать в Livejournal"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:73
-msgid "Enable Livejournal Post Plugin"
-msgstr "Включить раширение публикаций в Livejournal"
+#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:36
+msgid "Livejournal Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Livejournal\""
+
+#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:37
+msgid "Relay public posts to Livejournal"
+msgstr "Пересылает общедоступные публикации в Livejournal"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:77
+#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:54
msgid "Livejournal username"
msgstr "Имя пользователя Livejournal"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:81
+#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:58
msgid "Livejournal password"
msgstr "Пароль Livejournal"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:85
+#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:62
msgid "Post to Livejournal by default"
msgstr "Публиковать в Livejournal по умолчанию"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:89
-msgid "Livejournal Post Settings"
-msgstr "Настройки публикации в Livejournal"
+#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:70
+msgid "Livejournal Crosspost Connector"
+msgstr "Пересылка публикаций Livejournal"
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:61
msgid ""
@@ -13686,10 +13748,15 @@ msgstr "Нам не удалось установить контакт с GNU So
msgid "GNU social settings updated."
msgstr "Настройки GNU Social обновлены."
+#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:146
+#: ../../extend/addon/hzaddons/redred/Mod_Redred.php:50
+msgid "Hubzilla Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Hubzilla\""
+
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:147
msgid ""
"Relay public postings to a connected GNU social account (formerly StatusNet)"
-msgstr "Ретранслировать общедоступные публикации на подключённую учётную запись GNU social (бывшая StatusNet)"
+msgstr "Пересылает общедоступные публикации на подключённую учётную запись GNU social (бывшая StatusNet)"
#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:181
msgid "Globally Available GNU social OAuthKeys"
@@ -13956,9 +14023,13 @@ msgstr "Сообщение об ошибке было:"
msgid "OpenID protocol error. No ID returned."
msgstr "Ошибка протокола OpenID. Идентификатор не возвращён."
+#: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:50
+msgid "Startpage App"
+msgstr "Приложение \"Стартовая страница\""
+
#: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:51
msgid "Set a preferred page to load on login from home page"
-msgstr "Установить предпочтительную страницу для загрузки при входе с домашней страницы"
+msgstr "Устанавливает предпочтительную страницу для загрузки при входе с домашней страницы"
#: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:62
msgid "Page to load after login"
@@ -14287,25 +14358,31 @@ msgstr "Недействительный тип платежа. Пожалуйс
msgid "Order not found"
msgstr "Заказ не найден"
-#: ../../extend/addon/hzaddons/nofed/nofed.php:42
+#: ../../extend/addon/hzaddons/nofed/nofed.php:47
msgid "Federate"
msgstr ""
-#: ../../extend/addon/hzaddons/nofed/nofed.php:56
+#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:21
msgid "nofed Settings saved."
msgstr "Настройки nofed сохранены."
-#: ../../extend/addon/hzaddons/nofed/nofed.php:72
-msgid "Allow Federation Toggle"
-msgstr "Разрешить переключение федерации"
+#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:33
+msgid "No Federation App"
+msgstr "Приложение No Federation"
-#: ../../extend/addon/hzaddons/nofed/nofed.php:76
+#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:34
+msgid ""
+"Prevent posting from being federated to anybody. It will exist only on your "
+"channel page."
+msgstr "Запрещает федеративные функций для публикаций. Они будут существовать только на странице вашего канала."
+
+#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:42
msgid "Federate posts by default"
msgstr "Разрешить федерацию публикаций по умолчанию"
-#: ../../extend/addon/hzaddons/nofed/nofed.php:80
-msgid "NoFed Settings"
-msgstr "Настройки NoFed"
+#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:50
+msgid "No Federation"
+msgstr ""
#: ../../extend/addon/hzaddons/upgrade_info/upgrade_info.php:43
msgid "Your channel has been upgraded to the latest $Projectname version."
@@ -14402,26 +14479,34 @@ msgstr "Настройки Gravatar обновлены."
msgid "WYSIWYG status editor"
msgstr "WYSIWYG редактор статуса "
+#: ../../extend/addon/hzaddons/hsse/Mod_Hsse.php:21
+#: ../../extend/addon/hzaddons/hsse/Mod_Hsse.php:26
+msgid "WYSIWYG Status App"
+msgstr "Приложение \"WYSIWYG статус\""
+
#: ../../extend/addon/hzaddons/hsse/Mod_Hsse.php:34
msgid "WYSIWYG Status"
msgstr "WYSIWYG статус"
-#: ../../extend/addon/hzaddons/planets/planets.php:121
-msgid "Planets Settings updated."
-msgstr "Настройки Planets обновлены."
+#: ../../extend/addon/hzaddons/planets/Mod_Planets.php:20
+#: ../../extend/addon/hzaddons/planets/Mod_Planets.php:23
+msgid "Random Planet App"
+msgstr "Приложение \"Случайная планета\""
-#: ../../extend/addon/hzaddons/planets/planets.php:149
-msgid "Enable Planets Plugin"
-msgstr "Включить плагин Planets"
-
-#: ../../extend/addon/hzaddons/planets/planets.php:153
-msgid "Planets Settings"
-msgstr "Настройки Planets"
+#: ../../extend/addon/hzaddons/planets/Mod_Planets.php:25
+msgid ""
+"Set a random planet from the Star Wars Empire as your location when posting"
+msgstr "Установить случайную планету из Империи Звездных Войн в качестве вашего местоположения при публикации"
#: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:15
msgid "Add some colour to tag clouds"
msgstr "Добавить немного цвета для облака тегов"
+#: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:21
+#: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:26
+msgid "Rainbow Tag App"
+msgstr "Приложение \"Радуга тегов\""
+
#: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:34
msgid "Rainbow Tag"
msgstr "Радуга тегов"
@@ -14429,7 +14514,7 @@ msgstr "Радуга тегов"
#: ../../extend/addon/hzaddons/chess/chess.php:353
#: ../../extend/addon/hzaddons/chess/chess.php:542
msgid "Invalid game."
-msgstr "Недействительная игра"
+msgstr "Недействительная игра."
#: ../../extend/addon/hzaddons/chess/chess.php:359
#: ../../extend/addon/hzaddons/chess/chess.php:582
@@ -14476,6 +14561,10 @@ msgid ""
"locations."
msgstr "Протокол GNU-Social не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала."
+#: ../../extend/addon/hzaddons/gnusoc/Mod_Gnusoc.php:22
+msgid "GNU-Social Protocol App"
+msgstr "Приложение \"Протокол GNU-Social\""
+
#: ../../extend/addon/hzaddons/gnusoc/Mod_Gnusoc.php:34
msgid "GNU-Social Protocol"
msgstr "Протокол GNU-Social"
@@ -14563,17 +14652,25 @@ msgstr "Запишите ваш секретный код TOTP и повторн
msgid "TOTP Settings"
msgstr "Настройки TOTP"
-#: ../../extend/addon/hzaddons/pageheader/pageheader.php:43
+#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:22
+msgid "pageheader Settings saved."
+msgstr "Настройки шапки страницы сохранены."
+
+#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:34
+msgid "Page Header App"
+msgstr "Приложение \"Заголовок страницы\""
+
+#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:35
+msgid "Inserts a page header"
+msgstr "Вставляет заголовок страницы"
+
+#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:43
msgid "Message to display on every page on this server"
msgstr "Отображаемое сообщение на каждой странице на этом сервере."
-#: ../../extend/addon/hzaddons/pageheader/pageheader.php:48
-msgid "Pageheader Settings"
-msgstr "Настройки шапки страницы"
-
-#: ../../extend/addon/hzaddons/pageheader/pageheader.php:64
-msgid "pageheader Settings saved."
-msgstr "Настройки шапки страницы сохранены."
+#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:51
+msgid "Page Header"
+msgstr "Заголовок страницы"
#: ../../extend/addon/hzaddons/msgfooter/msgfooter.php:47
msgid "text to include in all outgoing posts from this site"
@@ -14600,17 +14697,21 @@ msgstr "Адрес электронной почты отправителя"
msgid "Test mode (only send to hub administrator)"
msgstr "Тестовый режим (отправка только администратору узла)"
-#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:211
-msgid "Deactivate the feature"
-msgstr "Деактивировать функцию"
+#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:35
+msgid "Smileybutton App"
+msgstr "Приложение \"Кнопка со смайликам\""
-#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:215
+#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:36
+msgid "Adds a smileybutton to the jot editor"
+msgstr "Добавлять кнопку со смайликами в редактор Jot"
+
+#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:44
msgid "Hide the button and show the smilies directly."
msgstr "Скрыть кнопку и сразу показывать смайлики."
-#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:219
+#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:52
msgid "Smileybutton Settings"
-msgstr "Настройки кнопки смайликов"
+msgstr "Настройки кнопки со смайликами"
#: ../../extend/addon/hzaddons/frphotos/frphotos.php:92
msgid "Friendica Photo Album Import"
@@ -14811,6 +14912,10 @@ msgstr "Сообщение отправлено в %s. Регистрация н
msgid "Send your identity to all websites"
msgstr "Отправить ваши данные на все веб-сайты"
+#: ../../extend/addon/hzaddons/sendzid/Mod_Sendzid.php:20
+msgid "Sendzid App"
+msgstr "Приложение \"Отправить ZID\""
+
#: ../../extend/addon/hzaddons/sendzid/Mod_Sendzid.php:32
msgid "Send ZID"
msgstr "Отправить ZID"
@@ -14919,35 +15024,18 @@ msgstr "завидует"
msgid "jealous"
msgstr "ревнует"
-#: ../../extend/addon/hzaddons/visage/visage.php:93
+#: ../../extend/addon/hzaddons/visage/Mod_Visage.php:21
+msgid "Who viewed my channel/profile"
+msgstr "Кто смотрел мой канал / профиль"
+
+#: ../../extend/addon/hzaddons/visage/Mod_Visage.php:25
msgid "Recent Channel/Profile Viewers"
msgstr "Последние просмотры канала / профиля"
-#: ../../extend/addon/hzaddons/visage/visage.php:98
-msgid "This plugin/addon has not been configured."
-msgstr "Это расширение не было настроено."
-
-#: ../../extend/addon/hzaddons/visage/visage.php:99
-#, php-format
-msgid "Please visit the Visage settings on %s"
-msgstr "Пожалуйста, посетите настройки Visage на %s"
-
-#: ../../extend/addon/hzaddons/visage/visage.php:99
-msgid "your feature settings page"
-msgstr "страница ваших установочных параметров"
-
-#: ../../extend/addon/hzaddons/visage/visage.php:112
+#: ../../extend/addon/hzaddons/visage/Mod_Visage.php:36
msgid "No entries."
msgstr "Нет записей."
-#: ../../extend/addon/hzaddons/visage/visage.php:166
-msgid "Enable Visage Visitor Logging"
-msgstr "Включить журналирование посетителей Visage"
-
-#: ../../extend/addon/hzaddons/visage/visage.php:170
-msgid "Visage Settings"
-msgstr "Настройки Visage"
-
#: ../../extend/addon/hzaddons/irc/irc.php:45
msgid "Channels to auto connect"
msgstr "Каналы для автоматического подключения"
@@ -15020,33 +15108,37 @@ msgstr "Показывать струны для левшей"
msgid "Quick Reference"
msgstr "Быстрая ссылка"
-#: ../../extend/addon/hzaddons/libertree/libertree.php:38
+#: ../../extend/addon/hzaddons/libertree/libertree.php:43
msgid "Post to Libertree"
msgstr "Опубликовать в Libertree"
-#: ../../extend/addon/hzaddons/libertree/libertree.php:69
-msgid "Enable Libertree Post Plugin"
-msgstr "Включить плагин публикаций Libertree"
+#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:25
+msgid "Libertree Crosspost Connector Settings saved."
+msgstr "Настройки пересылки публикаций Libertree сохранены."
+
+#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:35
+msgid "Libertree Crosspost Connector App"
+msgstr "Приложение \"Пересылка публикаций Libertree\""
-#: ../../extend/addon/hzaddons/libertree/libertree.php:73
+#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:36
+msgid "Relay public posts to Libertree"
+msgstr "Пересылает общедоступные публикации в Libertree"
+
+#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:51
msgid "Libertree API token"
msgstr "Токен Libertree API"
-#: ../../extend/addon/hzaddons/libertree/libertree.php:77
+#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:55
msgid "Libertree site URL"
msgstr "URL сайта Libertree"
-#: ../../extend/addon/hzaddons/libertree/libertree.php:81
+#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:59
msgid "Post to Libertree by default"
msgstr "Публиковать в Libertree по умолчанию"
-#: ../../extend/addon/hzaddons/libertree/libertree.php:85
-msgid "Libertree Post Settings"
-msgstr "Настройки публикаций в Libertree"
-
-#: ../../extend/addon/hzaddons/libertree/libertree.php:99
-msgid "Libertree Settings saved."
-msgstr "Настройки Libertree сохранены."
+#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:67
+msgid "Libertree Crosspost Connector"
+msgstr "Пересылка публикаций Libertree"
#: ../../extend/addon/hzaddons/redred/Mod_Redred.php:24
msgid "Channel is required."
@@ -15058,7 +15150,7 @@ msgstr "Настройки пересылки публикаций Hubzilla со
#: ../../extend/addon/hzaddons/redred/Mod_Redred.php:51
msgid "Relay public postings to another Hubzilla channel"
-msgstr "Ретранслировать общедоступные публикации в другой канал Hubzilla"
+msgstr "Пересылает общедоступные публикации в другой канал Hubzilla"
#: ../../extend/addon/hzaddons/redred/Mod_Redred.php:63
msgid "Send public postings to Hubzilla channel by default"
@@ -15095,6 +15187,10 @@ msgid ""
"locations."
msgstr "Протокол ActivityPub не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала."
+#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:40
+msgid "Activitypub Protocol App"
+msgstr "Приложение \"Протокол ActivityPub\""
+
#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:48
msgid "Deliver to ActivityPub recipients in privacy groups"
msgstr "Доставить получателям ActivityPub в группах безопасности"
@@ -15132,6 +15228,10 @@ msgid ""
"locations."
msgstr "Протокол Diaspora не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала."
+#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:55
+msgid "Diaspora Protocol App"
+msgstr "Приложение \"Протокол Diaspora\""
+
#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:74
msgid "Allow any Diaspora member to comment on your public posts"
msgstr "Разрешить любому участнику Diaspora комментировать ваши общедоступные публикации"
@@ -15152,6 +15252,11 @@ msgstr "Отслеживаемые теги (через запятую, искл
msgid "Diaspora Protocol"
msgstr "Протокол Diaspora"
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1495
+#, php-format
+msgid "%1$s dislikes %2$s's %3$s"
+msgstr "%1$s не нравится %2$s's %3$s"
+
#: ../../extend/addon/hzaddons/wppost/wppost.php:46
msgid "Post to WordPress"
msgstr "Опубликовать в WordPress"
@@ -15160,6 +15265,10 @@ msgstr "Опубликовать в WordPress"
msgid "Wordpress Settings saved."
msgstr "Настройки WordPress сохранены."
+#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:41
+msgid "Wordpress Post App"
+msgstr "Приложение \"Публикация в Wordpress\""
+
#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:42
msgid "Post to WordPress or anything else which uses the wordpress XMLRPC API"
msgstr "Опубликовать в WordPress или в чём-то ещё, поддерживающем wordpress XMLRPC API"
@@ -15213,6 +15322,10 @@ msgstr "%s - просмотр"
msgid "NSFW Settings saved."
msgstr "Настройки NSFW сохранены."
+#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:33
+msgid "NSFW App"
+msgstr "Приложение NSFW"
+
#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:34
msgid "Collapse content that contains predefined words"
msgstr "Свернуть содержимое, содержащее предопределенные слова"
@@ -15239,15 +15352,23 @@ msgstr "слово, /регулярное_выражение/, lang=xx, lang!=xx
msgid "NSFW"
msgstr ""
-#: ../../extend/addon/hzaddons/skeleton/skeleton.php:59
+#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:32
+msgid "Skeleton App"
+msgstr "Приложение \"Скелет\""
+
+#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:33
+msgid "A skeleton for addons, you can copy/paste"
+msgstr "Скелет для приложений. Вы можете использовать copy/paste"
+
+#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:40
msgid "Some setting"
msgstr "Некоторые настройки"
-#: ../../extend/addon/hzaddons/skeleton/skeleton.php:61
+#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:40
msgid "A setting"
msgstr "Настройка"
-#: ../../extend/addon/hzaddons/skeleton/skeleton.php:64
+#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:48
msgid "Skeleton Settings"
msgstr "Настройки скелета"
diff --git a/view/ru/hstrings.php b/view/ru/hstrings.php
index ee4c31619..c043e011b 100644
--- a/view/ru/hstrings.php
+++ b/view/ru/hstrings.php
@@ -25,7 +25,7 @@ App::$strings["Set the background color of items"] = "Цвет фона элем
App::$strings["Set the background color of comments"] = "Цвет фона комментариев";
App::$strings["Set font-size for the entire application"] = "Установить системный размер шрифта";
App::$strings["Examples: 1rem, 100%, 16px"] = "Например: 1rem, 100%, 16px";
-App::$strings["Set font-color for posts and comments"] = "Цвет шрифта для постов и комментариев";
+App::$strings["Set font-color for posts and comments"] = "Цвет шрифта для публикаций и комментариев";
App::$strings["Set radius of corners"] = "Радиус скруглений";
App::$strings["Example: 4px"] = "Например: 4px";
App::$strings["Set shadow depth of photos"] = "Глубина теней фотографий";
@@ -444,7 +444,7 @@ App::$strings["An invitation is required."] = "Требуется приглаш
App::$strings["Invitation could not be verified."] = "Не удалось проверить приглашение.";
App::$strings["Please enter the required information."] = "Пожалуйста, введите необходимую информацию.";
App::$strings["Failed to store account information."] = "Не удалось сохранить информацию аккаунта.";
-App::$strings["Registration confirmation for %s"] = "Подтверждение регистрации для %s";
+App::$strings["Registration confirmation for %s"] = "Подтверждение регистрации на %s";
App::$strings["Registration request at %s"] = "Запрос регистрации на %s";
App::$strings["your registration password"] = "ваш пароль регистрации";
App::$strings["Registration details for %s"] = "Регистрационные данные для %s";
@@ -998,7 +998,7 @@ App::$strings["Privacy group: "] = "Группа безопасности: ";
App::$strings["Invalid channel."] = "Недействительный канал.";
App::$strings["Token verification failed."] = "Не удалось выполнить проверку токена.";
App::$strings["Email Verification Required"] = "Требуется проверка адреса email";
-App::$strings["A verification token was sent to your email address [%s]. Enter that token here to complete the account verification step. Please allow a few minutes for delivery, and check your spam folder if you do not see the message."] = "Проверочный токен был выслн на ваш адрес электронной почты [%s]. Введите этот токен здесь для завершения этапа проверки учётной записи. Пожалуйста, подождите несколько минут для завершения доставки и проверьте вашу папку \"Спам\" если вы не видите письма.";
+App::$strings["A verification token was sent to your email address [%s]. Enter that token here to complete the account verification step. Please allow a few minutes for delivery, and check your spam folder if you do not see the message."] = "Проверочный токен был отправлен на ваш адрес электронной почты [%s]. Введите этот токен здесь для завершения этапа проверки учётной записи. Пожалуйста, подождите несколько минут для завершения доставки и проверьте вашу папку \"Спам\" если вы не видите письма.";
App::$strings["Resend Email"] = "Выслать повторно";
App::$strings["Validation token"] = "Проверочный токен";
App::$strings["No channel."] = "Канала нет.";
@@ -1116,6 +1116,8 @@ App::$strings["Posts and comments"] = "Публикации и коммента
App::$strings["Only posts"] = "Только публикации";
App::$strings["vcard"] = "vCard";
App::$strings["You must be logged in to see this page."] = "Вы должны авторизоваться, чтобы увидеть эту страницу.";
+App::$strings["&#x1f501; Repeated %1\$s's %2\$s"] = "&#x1f501; Повторил %1\$s %2\$s";
+App::$strings["Post repeated"] = "Публикация повторяется";
App::$strings["No more system notifications."] = "Нет новых оповещений системы.";
App::$strings["System Notifications"] = "Системные оповещения ";
App::$strings["%s element installed"] = "%s элемент установлен";
@@ -2632,7 +2634,7 @@ App::$strings["Can view my wiki pages"] = "Может просматривать
App::$strings["Can create/edit my channel webpages"] = "Может редактировать мои веб-страницы";
App::$strings["Can write to my wiki pages"] = "Может редактировать мои вики-страницы";
App::$strings["Can post on my channel (wall) page"] = "Может публиковать на моей странице канала";
-App::$strings["Can comment on or like my posts"] = "Может прокомментировать или отмечать как понравившиеся мои посты";
+App::$strings["Can comment on or like my posts"] = "Может прокомментировать или отмечать как понравившиеся мои публикации";
App::$strings["Can send me private mail messages"] = "Может отправлять мне личные сообщения по эл. почте";
App::$strings["Can like/dislike profiles and profile things"] = "Может комментировать или отмечать как нравится/ненравится мой профиль";
App::$strings["Can forward to all my channel connections via ! mentions in posts"] = "Может пересылать всем подписчикам моего канала используя ! в публикациях";
@@ -2759,6 +2761,7 @@ 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["Privacy conflict. Discretion advised."] = "Конфиликт настроек конфиденциальности.";
App::$strings["I will attend"] = "Я буду участвовать";
App::$strings["I will not attend"] = "Я не буду участвовать";
App::$strings["I might attend"] = "Я возможно буду присутствовать";
@@ -2766,6 +2769,8 @@ App::$strings["I agree"] = "Я согласен";
App::$strings["I disagree"] = "Я не согласен";
App::$strings["I abstain"] = "Я воздержался";
App::$strings["Add Tag"] = "Добавить тег";
+App::$strings["Repeat This"] = "Повторить это";
+App::$strings["repeat"] = "повторение";
App::$strings["Share This"] = "Поделиться этим";
App::$strings["share"] = "поделиться";
App::$strings["Delivery Report"] = "Отчёт о доставке";
@@ -2813,7 +2818,6 @@ 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["&#x1f501; Repeated %1\$s's %2\$s"] = "&#x1f501; Повторил %1\$s %2\$s";
App::$strings["0. Beginner/Basic"] = "Начинающий / Базовый";
App::$strings["1. Novice - not skilled but willing to learn"] = "1. Новичок - не опытный, но желающий учиться";
App::$strings["2. Intermediate - somewhat comfortable"] = "2. Промежуточный - более удобный";
@@ -2824,11 +2828,13 @@ App::$strings["Wiki updated successfully"] = "Wiki успешно обновле
App::$strings["Wiki files deleted successfully"] = "Wiki успешно удалена";
App::$strings["Use markdown for editing posts"] = "Использовать язык разметки Markdown для редактирования публикаций";
App::$strings["Post to Dreamwidth"] = "Публиковать в Dreamwidth";
-App::$strings["Enable Dreamwidth Post Plugin"] = "Включить плагин публикаций Dreamwidth";
+App::$strings["Dreamwidth Crosspost Connector Settings saved."] = "Настройки пересылки публикаций Dreamwidth сохранены.";
+App::$strings["Dreamwidth Crosspost Connector App"] = "Приложение \"Пересылка публикаций Dreamwidth\"";
+App::$strings["Relay public postings to Dreamwidth"] = "Пересылает общедоступные публикации в Dreamwidth";
App::$strings["Dreamwidth username"] = "Имя пользователя Dreamwidth";
App::$strings["Dreamwidth password"] = "Пароль Dreamwidth";
App::$strings["Post to Dreamwidth by default"] = "Публиковать в Dreamwidth по умолчанию";
-App::$strings["Dreamwidth Post Settings"] = "Настройки публикаций в Dreamwidth";
+App::$strings["Dreamwidth Crosspost Connector"] = "Пересылка публикаций Dreamwidth";
App::$strings["Project Servers and Resources"] = "Серверы и ресурсы проекта";
App::$strings["Project Creator and Tech Lead"] = "Создатель проекта и технический руководитель";
App::$strings["And the hundreds of other people and organisations who helped make the Hubzilla possible."] = "И сотни других людей и организаций которые помогали в создании Hubzilla.";
@@ -2850,6 +2856,8 @@ App::$strings["Minimum offset in meters"] = "Минимальное смещен
App::$strings["Maximum offset in meters"] = "Максимальное смещение в метрах";
App::$strings["Fuzzloc Settings"] = "Настройки Fuzzloc";
App::$strings["Allow magic authentication only to websites of your immediate connections"] = "Разрешить волшебную аутентификацию только на сайтах ваших непосредственных соединений";
+App::$strings["Authchoose App"] = "Приложение Authchoose";
+App::$strings["Installed"] = "Установлено";
App::$strings["Authchoose"] = "";
App::$strings["Photos imported"] = "Фотографии импортированы";
App::$strings["Redmatrix Photo Album Import"] = "Импортировать альбом фотографий Redmatrix";
@@ -2861,11 +2869,13 @@ App::$strings["Import just this album"] = "Импортировать тольк
App::$strings["Leave blank to import all albums"] = "Оставьте пустым для импорта всех альбомов";
App::$strings["Maximum count to import"] = "Максимальное количество для импорта";
App::$strings["0 or blank to import all available"] = "0 или пусто для импорта всех доступных";
+App::$strings["Gallery App"] = "Приложение \"Галерея\"";
App::$strings["A simple gallery for your photo albums"] = "Простая галлерея для ваших фотоальбомов";
App::$strings["Gallery"] = "Галерея";
App::$strings["Photo Gallery"] = "Фотогалерея";
App::$strings["Friendica Crosspost Connector Settings saved."] = "Настройки пересылки публикаций Friendica сохранены.";
-App::$strings["Relay public postings to a connected Friendica account"] = "Ретранслировать общедоступные публикации на подключённую учётную запись Friendica";
+App::$strings["Friendica Crosspost Connector App"] = "Приложение \"Пересылка публикаций Friendica\"";
+App::$strings["Relay public postings to a connected Friendica account"] = "Пересылает общедоступные публикации на подключённую учётную запись Friendica";
App::$strings["Send public postings to Friendica by default"] = "Отправлять общедоступные публикации во Friendica по умолчанию";
App::$strings["Friendica API Path"] = "Путь к Friendica API";
App::$strings["https://{sitename}/api"] = "";
@@ -2877,7 +2887,8 @@ App::$strings["An account has been created for you."] = "Учётная запи
App::$strings["Authentication successful but rejected: account creation is disabled."] = "Аутентификация выполнена успешно, но отклонена: создание учетной записи отключено.";
App::$strings["Post to Insane Journal"] = "Опубликовать в Insane Journal";
App::$strings["Insane Journal Crosspost Connector Settings saved."] = "Настройки пересылки публикаций Insane Journal сохранены.";
-App::$strings["Relay public postings to Insane Journal"] = "Ретранслировать общедоступные публикации в Insane Journal";
+App::$strings["Insane Journal Crosspost Connector App"] = "Приложение \"Пересылка публикаций Insane Journal\"";
+App::$strings["Relay public postings to Insane Journal"] = "Пересылает общедоступные публикации в Insane Journal";
App::$strings["InsaneJournal username"] = "Имя пользователя Insane Journal";
App::$strings["InsaneJournal password"] = "Пароль Insane Journal";
App::$strings["Post to InsaneJournal by default"] = "Публиковать в Insane Journal по умолчанию";
@@ -2888,22 +2899,22 @@ App::$strings["Redmatrix File Storage Import"] = "Импорт файловог
App::$strings["This will import all your Redmatrix cloud files to this channel."] = "Это позволит импортировать все ваши файлы в Redmatrix в этот канал.";
App::$strings["file"] = "файл";
App::$strings["Post to Twitter"] = "Опубликовать в Twitter";
+App::$strings["Submit Settings"] = "Отправить настройки";
App::$strings["Twitter settings updated."] = "Настройки Twitter обновлены";
+App::$strings["Twitter Crosspost Connector App"] = "Приложение \"Пересылка публикаций Twitter\"";
+App::$strings["Relay public posts to Twitter"] = "Пересылает общедоступные публикации в Twitter";
App::$strings["No consumer key pair for Twitter found. Please contact your site administrator."] = "Не найдено пары ключей для Twitter. Пожалуйста, свяжитесь с администратором сайта.";
App::$strings["At this Hubzilla instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter."] = "В этой установке Hubzilla плагин Twitter был включён, однако пока он не подключён к вашему аккаунту в Twitter. Для этого нажмите на кнопку ниже для получения PIN-кода от Twitter который нужно скопировать в поле ввода и отправить форму. Только ваши <strong>общедоступные</strong> публикации будут опубликованы в Twitter.";
App::$strings["Log in with Twitter"] = "Войти в Twitter";
App::$strings["Copy the PIN from Twitter here"] = "Скопируйте PIN-код из Twitter здесь";
App::$strings["Currently connected to: "] = "В настоящее время подключён к:";
App::$strings["<strong>Note:</strong> Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Замечание</strong>: Из-за настроек конфиденциальности (<em>скрыть данные своего профиля от неизвестных зрителей?</em>) cсылка, потенциально включенная в общедоступные публикации, переданные в Twitter, приведет посетителя к пустой странице, информирующей его о том, что доступ к вашему профилю был ограничен.";
-App::$strings["Allow posting to Twitter"] = "Разрешить публиковать в Twitter";
-App::$strings["If enabled your public postings can be posted to the associated Twitter account"] = "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи Twitter";
App::$strings["Twitter post length"] = "Длина публикации Twitter";
App::$strings["Maximum tweet length"] = "Максимальная длина твита";
App::$strings["Send public postings to Twitter by default"] = "Отправлять общедоступные публикации в Twitter по умолчанию";
App::$strings["If enabled your public postings will be posted to the associated Twitter account by default"] = "Если включено, ваши общедоступные публикации будут опубликованы в связанной учётной записи Twitter по умолчанию";
App::$strings["Clear OAuth configuration"] = "Очистить конфигурацию OAuth";
-App::$strings["Twitter Post Settings"] = "Настройки публикаций в Twitter";
-App::$strings["Submit Settings"] = "Отправить настройки";
+App::$strings["Twitter Crosspost Connector"] = "Пересылка публикаций Twitter";
App::$strings["Edit your profile and change settings."] = "Отредактировать ваш профиль и изменить настройки.";
App::$strings["Click here to see activity from your connections."] = "Нажмите сюда для отображения активности ваши контактов.";
App::$strings["Click here to see your channel home."] = "Нажмите сюда чтобы увидеть главную страницу вашего канала.";
@@ -2921,7 +2932,7 @@ App::$strings["There are events this week. Click here too see which!"] = "На
App::$strings["You have received a new introduction. Click here to see who!"] = "Вы были представлены. Нажмите чтобы увидеть кому!";
App::$strings["There is a new system notification. Click here to see what has happened!"] = "Это новое системное уведомление. Нажмите чтобы посмотреть что случилось!";
App::$strings["Click here to share text, images, videos and sound."] = "Нажмите сюда чтобы поделиться текстом, изображениями, видео или треком.";
-App::$strings["You can write an optional title for your update (good for long posts)."] = "Вы можете написать необязательный заголовок для вашей публикации (желательно для больших постов).";
+App::$strings["You can write an optional title for your update (good for long posts)."] = "Вы можете написать необязательный заголовок для вашей публикации (желательно для больших публикаций).";
App::$strings["Entering some categories here makes it easier to find your post later."] = "Введите категории здесь чтобы было проще найти вашу публикацию позднее.";
App::$strings["Share photos, links, location, etc."] = "Поделиться фотографией, ссылками, местоположение и т.п.";
App::$strings["Only want to share content for a while? Make it expire at a certain date."] = "Хотите только поделиться временным содержимым? Установите срок его действия.";
@@ -2940,6 +2951,7 @@ App::$strings["If you see this icon you can be sure that the sender is who it sa
App::$strings["Danger! It seems someone tried to forge a message! This message is not necessarily from who it says it is from!"] = "Опасность! Кажется, кто-то пытался подделать сообщение! Это сообщение не обязательно от того, от кого оно значится!";
App::$strings["Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can pause it at any time and continue where you left off by reloading the page, or navigting to another page.</p><p>You can also advance by pressing the return key"] = "Добро пожаловать в Hubzilla! Желаете получить обзор пользовательского интерфейса?</p> <p>Вы можете его приостановаить и в любое время перезагрузив страницу или перейдя на другую.</p><p>Также вы можете нажать клавишу \"Назад\"";
App::$strings["Block Completely"] = "Заблокировать полностью";
+App::$strings["Superblock App"] = "Приложение Superblock";
App::$strings["Block channels"] = "Заблокировать каналы";
App::$strings["superblock settings updated"] = "Настройки Superblock обновлены.";
App::$strings["Currently blocked"] = "В настоящее время заблокирован";
@@ -3005,8 +3017,9 @@ App::$strings["Include marker on map"] = "Включите маркер на к
App::$strings["Include a marker on the map."] = "Включить маркер на карте";
App::$strings["Photo Cache settings saved."] = "Настройки Photo Cache сохранены.";
App::$strings["Photo Cache addon saves a copy of images from external sites locally to increase your anonymity in the web."] = "Приложение Photo Cache сохраняет копию изображений с внешних сайтов локально для повышения вашей анонимности в Интернет.";
+App::$strings["Photo Cache App"] = "Приложение Photo Cache";
App::$strings["Minimal photo size for caching"] = "Минимальный размер фотографии для кэширования";
-App::$strings["In pixels. 0 will be replaced with system default, from 1 up to 1024 (large images will be scaled to this value)."] = "В пискелях. 0 будет заменён значением по умолчанию, от 1 до 1024 (большие изображения будут масштабированы до этого значения).";
+App::$strings["In pixels. From 1 up to 1024, 0 will be replaced with system default."] = "В пикселях. От 1 до 1024, 0 будет заменён значением по умолчанию.";
App::$strings["Photo Cache"] = "";
App::$strings["Activate addon"] = "Активировать расширение";
App::$strings["Hide Jappixmini Chat-Widget from the webinterface"] = "Скрыть виджет чата Jappixmini из веб-интерфейса";
@@ -3055,24 +3068,24 @@ App::$strings["Show opt-out cookie link?"] = "Показывать ссылку
App::$strings["Asynchronous tracking"] = "Асинхронное отслеживание";
App::$strings["Enable frontend JavaScript error tracking"] = "Включить отслеживание ошибок JavaScript на фронтенде.";
App::$strings["This feature requires Piwik >= 2.2.0"] = "Эта функция требует версию Piwik >= 2.2.0";
-App::$strings["You are now authenticated to pumpio."] = "Вы аутентифицированы в Pump.io";
-App::$strings["return to the featured settings page"] = "Вернутся к странице настроек";
-App::$strings["Post to Pump.io"] = "Опубликовать в Pump.io";
+App::$strings["Pump.io Settings saved."] = "Настройки Pump.io сохранены.";
+App::$strings["Pump.io Crosspost Connector App"] = "Приложение \"Пересылка публикаций Pump.io\"";
+App::$strings["Relay public posts to pump.io"] = "Пересылает общедоступные публикации в Pump.io";
App::$strings["Pump.io servername"] = "Имя сервера Pump.io";
App::$strings["Without \"http://\" or \"https://\""] = "Без \"http://\" или \"https://\"";
App::$strings["Pump.io username"] = "Имя пользователя Pump.io";
App::$strings["Without the servername"] = "без имени сервера";
App::$strings["You are not authenticated to pumpio"] = "Вы не аутентифицированы на Pump.io";
App::$strings["(Re-)Authenticate your pump.io connection"] = "Аутентифицировать (повторно) ваше соединение с Pump.io";
-App::$strings["Enable pump.io Post Plugin"] = "Включить плагин публикаций Pump.io";
App::$strings["Post to pump.io by default"] = "Публиковать в Pump.io по умолчанию";
App::$strings["Should posts be public"] = "Публикации должны быть общедоступными";
App::$strings["Mirror all public posts"] = "Отображать все общедоступные публикации";
-App::$strings["Pump.io Post Settings"] = "Настройки публикаций в Pump.io";
-App::$strings["PumpIO Settings saved."] = "Настройки публикаций в Pump.io сохранены.";
-App::$strings["Nsabait Settings updated."] = "Настройки Nsabait обновлены";
-App::$strings["Enable NSAbait Plugin"] = "Включить плагин NSAbait";
-App::$strings["NSAbait Settings"] = "Настройки Nsabait";
+App::$strings["Pump.io Crosspost Connector"] = "Пересылка публикаций Pump.io";
+App::$strings["You are now authenticated to pumpio."] = "Вы аутентифицированы в Pump.io";
+App::$strings["return to the featured settings page"] = "Вернутся к странице настроек";
+App::$strings["Post to Pump.io"] = "Опубликовать в Pump.io";
+App::$strings["NSA Bait App"] = "Приложение NSA Bait";
+App::$strings["Make yourself a political target"] = "Сделать себя политической мишенью";
App::$strings["Send test email"] = "Отправить тестовый email";
App::$strings["No recipients found."] = "Получателей не найдено.";
App::$strings["Mail sent."] = "Сообщение отправлено";
@@ -3114,15 +3127,17 @@ App::$strings["Hubzilla Server base URL"] = "Базовый URL сервера H
App::$strings["Since modified date yyyy-mm-dd"] = "Начиная с даты изменений yyyy-mm-dd";
App::$strings["Until modified date yyyy-mm-dd"] = "Заканчивая датой изменений yyyy-mm-dd";
App::$strings["Post to Livejournal"] = "Опубликовать в Livejournal";
-App::$strings["Enable Livejournal Post Plugin"] = "Включить раширение публикаций в Livejournal";
+App::$strings["Livejournal Crosspost Connector App"] = "Приложение \"Пересылка публикаций Livejournal\"";
+App::$strings["Relay public posts to Livejournal"] = "Пересылает общедоступные публикации в Livejournal";
App::$strings["Livejournal username"] = "Имя пользователя Livejournal";
App::$strings["Livejournal password"] = "Пароль Livejournal";
App::$strings["Post to Livejournal by default"] = "Публиковать в Livejournal по умолчанию";
-App::$strings["Livejournal Post Settings"] = "Настройки публикации в Livejournal";
+App::$strings["Livejournal Crosspost Connector"] = "Пересылка публикаций Livejournal";
App::$strings["Please contact your site administrator.<br />The provided API URL is not valid."] = "Пожалуйста свяжитесь с администратором сайта. <br />Предоставленный URL API недействителен.";
App::$strings["We could not contact the GNU social API with the Path you entered."] = "Нам не удалось установить контакт с GNU Social API по введённому вами пути";
App::$strings["GNU social settings updated."] = "Настройки GNU Social обновлены.";
-App::$strings["Relay public postings to a connected GNU social account (formerly StatusNet)"] = "Ретранслировать общедоступные публикации на подключённую учётную запись GNU social (бывшая StatusNet)";
+App::$strings["Hubzilla Crosspost Connector App"] = "Приложение \"Пересылка публикаций Hubzilla\"";
+App::$strings["Relay public postings to a connected GNU social account (formerly StatusNet)"] = "Пересылает общедоступные публикации на подключённую учётную запись GNU social (бывшая StatusNet)";
App::$strings["Globally Available GNU social OAuthKeys"] = "Глобально доступные ключи OAuthKeys GNU Social";
App::$strings["There are preconfigured OAuth key pairs for some GNU social servers available. If you are using one of them, please use these credentials.<br />If not feel free to connect to any other GNU social instance (see below)."] = "Существуют предварительно настроенные пары ключей OAuth для некоторых доступных серверов GNU social. Если вы используете один из них, используйте эти учетные данные. <br />Если вы не хотите подключаться к какому-либо другому серверу GNU social (см. ниже).";
App::$strings["Provide your own OAuth Credentials"] = "Предоставьте ваши собственные регистрационные данные OAuth";
@@ -3180,7 +3195,8 @@ App::$strings["Birthdate"] = "Дата рождения";
App::$strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Мы столкнулись с проблемой входа с предоставленным вами OpenID. Пожалуйста, проверьте корректность его написания.";
App::$strings["The error message was:"] = "Сообщение об ошибке было:";
App::$strings["OpenID protocol error. No ID returned."] = "Ошибка протокола OpenID. Идентификатор не возвращён.";
-App::$strings["Set a preferred page to load on login from home page"] = "Установить предпочтительную страницу для загрузки при входе с домашней страницы";
+App::$strings["Startpage App"] = "Приложение \"Стартовая страница\"";
+App::$strings["Set a preferred page to load on login from home page"] = "Устанавливает предпочтительную страницу для загрузки при входе с домашней страницы";
App::$strings["Page to load after login"] = "Страница для загрузки после входа";
App::$strings["Examples: &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"] = "Стартовая страница";
@@ -3258,9 +3274,10 @@ App::$strings["Invalid Payment Type. Please start again."] = "Недейств
App::$strings["Order not found"] = "Заказ не найден";
App::$strings["Federate"] = "";
App::$strings["nofed Settings saved."] = "Настройки nofed сохранены.";
-App::$strings["Allow Federation Toggle"] = "Разрешить переключение федерации";
+App::$strings["No Federation App"] = "Приложение No Federation";
+App::$strings["Prevent posting from being federated to anybody. It will exist only on your channel page."] = "Запрещает федеративные функций для публикаций. Они будут существовать только на странице вашего канала.";
App::$strings["Federate posts by default"] = "Разрешить федерацию публикаций по умолчанию";
-App::$strings["NoFed Settings"] = "Настройки NoFed";
+App::$strings["No Federation"] = "";
App::$strings["Your channel has been upgraded to the latest \$Projectname version."] = "Ваш канал был обновлён на последнюю версию \$Projectname.";
App::$strings["To improve usability, we have converted some features into installable stand-alone apps."] = "Чтобы улучшить удобство использования, некоторые функции теперь доступны в виде устанавливаемых автономных приложений.";
App::$strings["Please visit the \$Projectname"] = "Пожалуйста, посетите \$Projectname";
@@ -3283,13 +3300,14 @@ App::$strings["Rating of images"] = "Оценки изображений";
App::$strings["Select the appropriate avatar rating for your site. See README"] = "Выберите подходящую оценку аватара для вашего сайта (см. README).";
App::$strings["Gravatar settings updated."] = "Настройки Gravatar обновлены.";
App::$strings["WYSIWYG status editor"] = "WYSIWYG редактор статуса ";
+App::$strings["WYSIWYG Status App"] = "Приложение \"WYSIWYG статус\"";
App::$strings["WYSIWYG Status"] = "WYSIWYG статус";
-App::$strings["Planets Settings updated."] = "Настройки Planets обновлены.";
-App::$strings["Enable Planets Plugin"] = "Включить плагин Planets";
-App::$strings["Planets Settings"] = "Настройки Planets";
+App::$strings["Random Planet App"] = "Приложение \"Случайная планета\"";
+App::$strings["Set a random planet from the Star Wars Empire as your location when posting"] = "Установить случайную планету из Империи Звездных Войн в качестве вашего местоположения при публикации";
App::$strings["Add some colour to tag clouds"] = "Добавить немного цвета для облака тегов";
+App::$strings["Rainbow Tag App"] = "Приложение \"Радуга тегов\"";
App::$strings["Rainbow Tag"] = "Радуга тегов";
-App::$strings["Invalid game."] = "Недействительная игра";
+App::$strings["Invalid game."] = "Недействительная игра.";
App::$strings["You are not a player in this game."] = "Вы не играете в эту игру.";
App::$strings["You must be a local channel to create a game."] = "Ваш канал должен быть локальным чтобы создать игру.";
App::$strings["You must select one opponent that is not yourself."] = "Вы должны выбрать противника который не является вами.";
@@ -3300,6 +3318,7 @@ App::$strings["Enable notifications"] = "Включить оповещения";
App::$strings["Follow"] = "Отслеживать";
App::$strings["%1\$s is now following %2\$s"] = "%1\$s сейчас отслеживает %2\$s";
App::$strings["The GNU-Social protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "Протокол GNU-Social не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала.";
+App::$strings["GNU-Social Protocol App"] = "Приложение \"Протокол GNU-Social\"";
App::$strings["GNU-Social Protocol"] = "Протокол GNU-Social";
App::$strings["TOTP Two-Step Verification"] = "Двухэтапная верификация TOTP";
App::$strings["Enter the 2-step verification generated by your authenticator app:"] = "Введите код проверки, созданный вашим приложением для аутентификации";
@@ -3320,18 +3339,21 @@ 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["Message to display on every page on this server"] = "Отображаемое сообщение на каждой странице на этом сервере.";
-App::$strings["Pageheader Settings"] = "Настройки шапки страницы";
App::$strings["pageheader Settings saved."] = "Настройки шапки страницы сохранены.";
+App::$strings["Page Header App"] = "Приложение \"Заголовок страницы\"";
+App::$strings["Inserts a page header"] = "Вставляет заголовок страницы";
+App::$strings["Message to display on every page on this server"] = "Отображаемое сообщение на каждой странице на этом сервере.";
+App::$strings["Page Header"] = "Заголовок страницы";
App::$strings["text to include in all outgoing posts from this site"] = "текст, который будет добавлен во все исходящие публикации с этого сайта";
App::$strings["Send email to all members"] = "Отправить email всем участникам";
App::$strings["%1\$d of %2\$d messages sent."] = "%1\$d из %2\$d сообщений отправлено.";
App::$strings["Send email to all hub members."] = "Отправить email всем участникам узла.";
App::$strings["Sender Email address"] = "Адрес электронной почты отправителя";
App::$strings["Test mode (only send to hub administrator)"] = "Тестовый режим (отправка только администратору узла)";
-App::$strings["Deactivate the feature"] = "Деактивировать функцию";
+App::$strings["Smileybutton App"] = "Приложение \"Кнопка со смайликам\"";
+App::$strings["Adds a smileybutton to the jot editor"] = "Добавлять кнопку со смайликами в редактор Jot";
App::$strings["Hide the button and show the smilies directly."] = "Скрыть кнопку и сразу показывать смайлики.";
-App::$strings["Smileybutton Settings"] = "Настройки кнопки смайликов";
+App::$strings["Smileybutton Settings"] = "Настройки кнопки со смайликами";
App::$strings["Friendica Photo Album Import"] = "Импортировать альбом фотографий Friendica";
App::$strings["This will import all your Friendica photo albums to this Red channel."] = "Это позволит импортировать все ваши альбомы фотографий Friendica в этот канал.";
App::$strings["Friendica Server base URL"] = "Базовый URL сервера Friendica";
@@ -3379,6 +3401,7 @@ App::$strings["If enabled, members will automatically login to an ejabberd serve
App::$strings["New registration"] = "Новая регистрация";
App::$strings["Message sent to %s. New account registration: %s"] = "Сообщение отправлено в %s. Регистрация нового аккаунта: %s";
App::$strings["Send your identity to all websites"] = "Отправить ваши данные на все веб-сайты";
+App::$strings["Sendzid App"] = "Приложение \"Отправить ZID\"";
App::$strings["Send ZID"] = "Отправить ZID";
App::$strings["Who likes me?"] = "Кому я нравлюсь?";
App::$strings["Max queueworker threads"] = "Макс. количество обработчиков очереди";
@@ -3406,13 +3429,9 @@ App::$strings["victorious"] = "победивший";
App::$strings["defeated"] = "проигравший";
App::$strings["envious"] = "завидует";
App::$strings["jealous"] = "ревнует";
+App::$strings["Who viewed my channel/profile"] = "Кто смотрел мой канал / профиль";
App::$strings["Recent Channel/Profile Viewers"] = "Последние просмотры канала / профиля";
-App::$strings["This plugin/addon has not been configured."] = "Это расширение не было настроено.";
-App::$strings["Please visit the Visage settings on %s"] = "Пожалуйста, посетите настройки Visage на %s";
-App::$strings["your feature settings page"] = "страница ваших установочных параметров";
App::$strings["No entries."] = "Нет записей.";
-App::$strings["Enable Visage Visitor Logging"] = "Включить журналирование посетителей Visage";
-App::$strings["Visage Settings"] = "Настройки Visage";
App::$strings["Channels to auto connect"] = "Каналы для автоматического подключения";
App::$strings["Comma separated list"] = "Список, разделённый запятыми";
App::$strings["Popular Channels"] = "Популярные каналы";
@@ -3429,15 +3448,16 @@ App::$strings["Chord name: example: Em7"] = "Наименование аккор
App::$strings["Show for left handed stringing"] = "Показывать струны для левшей";
App::$strings["Quick Reference"] = "Быстрая ссылка";
App::$strings["Post to Libertree"] = "Опубликовать в Libertree";
-App::$strings["Enable Libertree Post Plugin"] = "Включить плагин публикаций Libertree";
+App::$strings["Libertree Crosspost Connector Settings saved."] = "Настройки пересылки публикаций Libertree сохранены.";
+App::$strings["Libertree Crosspost Connector App"] = "Приложение \"Пересылка публикаций Libertree\"";
+App::$strings["Relay public posts to Libertree"] = "Пересылает общедоступные публикации в Libertree";
App::$strings["Libertree API token"] = "Токен Libertree API";
App::$strings["Libertree site URL"] = "URL сайта Libertree";
App::$strings["Post to Libertree by default"] = "Публиковать в Libertree по умолчанию";
-App::$strings["Libertree Post Settings"] = "Настройки публикаций в Libertree";
-App::$strings["Libertree Settings saved."] = "Настройки Libertree сохранены.";
+App::$strings["Libertree Crosspost Connector"] = "Пересылка публикаций Libertree";
App::$strings["Channel is required."] = "Необходим канал.";
App::$strings["Hubzilla Crosspost Connector Settings saved."] = "Настройки пересылки публикаций Hubzilla сохранены.";
-App::$strings["Relay public postings to another Hubzilla channel"] = "Ретранслировать общедоступные публикации в другой канал 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";
@@ -3446,6 +3466,7 @@ App::$strings["Hubzilla Crosspost Connector"] = "Пересылка публик
App::$strings["Post to Hubzilla"] = "Опубликовать в Hubzilla";
App::$strings["ActivityPub Protocol Settings updated."] = "Настройки протокола ActivityPub обновлены.";
App::$strings["The activitypub protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "Протокол ActivityPub не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала.";
+App::$strings["Activitypub Protocol App"] = "Приложение \"Протокол ActivityPub\"";
App::$strings["Deliver to ActivityPub recipients in privacy groups"] = "Доставить получателям ActivityPub в группах безопасности";
App::$strings["May result in a large number of mentions and expose all the members of your privacy group"] = "Может привести к большому количеству упоминаний и раскрытию участников группы безопасности";
App::$strings["Send multi-media HTML articles"] = "Отправить HTML статьи с мультимедиа";
@@ -3454,13 +3475,16 @@ App::$strings["Activitypub Protocol"] = "Протокол ActivityPub";
App::$strings["No username found in import file."] = "Имя пользователя не найдено в файле для импорта.";
App::$strings["Diaspora Protocol Settings updated."] = "Настройки протокола Diaspora обновлены.";
App::$strings["The diaspora protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "Протокол Diaspora не поддерживает независимость от расположения. Ваши контакты установленные в этой сети могут быть недоступны из альтернативных мест размещения канала.";
+App::$strings["Diaspora Protocol App"] = "Приложение \"Протокол Diaspora\"";
App::$strings["Allow any Diaspora member to comment on your public posts"] = "Разрешить любому участнику Diaspora комментировать ваши общедоступные публикации";
App::$strings["Prevent your hashtags from being redirected to other sites"] = "Предотвратить перенаправление тегов на другие сайты";
App::$strings["Sign and forward posts and comments with no existing Diaspora signature"] = "Подписывать и отправлять публикации и комментарии с несуществующей подписью Diaspora";
App::$strings["Followed hashtags (comma separated, do not include the #)"] = "Отслеживаемые теги (через запятую, исключая #)";
App::$strings["Diaspora Protocol"] = "Протокол Diaspora";
+App::$strings["%1\$s dislikes %2\$s's %3\$s"] = "%1\$s не нравится %2\$s's %3\$s";
App::$strings["Post to WordPress"] = "Опубликовать в WordPress";
App::$strings["Wordpress Settings saved."] = "Настройки WordPress сохранены.";
+App::$strings["Wordpress Post App"] = "Приложение \"Публикация в Wordpress\"";
App::$strings["Post to WordPress or anything else which uses the wordpress XMLRPC API"] = "Опубликовать в WordPress или в чём-то ещё, поддерживающем wordpress XMLRPC API";
App::$strings["WordPress username"] = "Имя пользователя WordPress";
App::$strings["WordPress password"] = "Пароль WordPress";
@@ -3474,11 +3498,14 @@ App::$strings["Wordpress Post"] = "Публикация в WordPress";
App::$strings["Possible adult content"] = "Возможно содержимое для взрослых";
App::$strings["%s - view"] = "%s - просмотр";
App::$strings["NSFW Settings saved."] = "Настройки NSFW сохранены.";
+App::$strings["NSFW App"] = "Приложение NSFW";
App::$strings["Collapse content that contains predefined words"] = "Свернуть содержимое, содержащее предопределенные слова";
App::$strings["This app looks in posts for the words/text you specify below, and collapses any content containing those keywords so it is not displayed at inappropriate times, such as sexual innuendo that may be improper in a work setting. It is polite and recommended to tag any content containing nudity with #NSFW. This filter can also match any other word/text you specify, and can thereby be used as a general purpose content filter."] = "Это приложение просматривает публикации для слов / текста, которые вы указываете ниже, и сворачивает любой контент, содержащий эти ключевые слова, поэтому он не отображается в неподходящее время, например, сексуальные инсинуации, которые могут быть неправильными в настройке работы. Например, мы рекомендуем отмечать любой контент, содержащий наготу, тегом #NSFW. Этот фильтр также способен реагировать на любое другое указанное вами слово / текст и может использоваться в качестве фильтра содержимого общего назначения.";
App::$strings["Comma separated list of keywords to hide"] = "Список ключевых слов для скрытия, через запятую";
App::$strings["Word, /regular-expression/, lang=xx, lang!=xx"] = "слово, /регулярное_выражение/, lang=xx, lang!=xx";
App::$strings["NSFW"] = "";
+App::$strings["Skeleton App"] = "Приложение \"Скелет\"";
+App::$strings["A skeleton for addons, you can copy/paste"] = "Скелет для приложений. Вы можете использовать copy/paste";
App::$strings["Some setting"] = "Некоторые настройки";
App::$strings["A setting"] = "Настройка";
App::$strings["Skeleton Settings"] = "Настройки скелета";
diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl
index 69e09b272..428529de2 100755
--- a/view/tpl/conv_item.tpl
+++ b/view/tpl/conv_item.tpl
@@ -146,6 +146,9 @@
{{if $item.share}}
<a class="dropdown-item" href="#" onclick="jotShare({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a>
{{/if}}
+ {{if $item.embed}}
+ <a class="dropdown-item" href="#" onclick="jotEmbed({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-share" title="{{$item.embed.0}}"></i>{{$item.embed.0}}</a>
+ {{/if}}
{{if $item.plink}}
<a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a>
{{/if}}
diff --git a/view/tpl/conv_list.tpl b/view/tpl/conv_list.tpl
index 28e120d17..63e74b159 100755
--- a/view/tpl/conv_list.tpl
+++ b/view/tpl/conv_list.tpl
@@ -139,6 +139,9 @@
{{if $item.share}}
<a class="dropdown-item" href="#" onclick="jotShare({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a>
{{/if}}
+ {{if $item.embed}}
+ <a class="dropdown-item" href="#" onclick="jotEmbed({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-share" title="{{$item.embed.0}}"></i>{{$item.embed.0}}</a>
+ {{/if}}
{{if $item.plink}}
<a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a>
{{/if}}
diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl
index b286b6071..9a44f1a54 100755
--- a/view/tpl/jot-header.tpl
+++ b/view/tpl/jot-header.tpl
@@ -198,16 +198,24 @@ var activeCommentText = '';
})
}
-
function jotShare(id,post_type) {
+ $('#like-rotator-' + id).show();
+ $.get('{{$baseurl}}/share/' + id, function(data) {
+ $('#like-rotator-' + id).hide();
+ updateInit();
+ });
+ }
+
+ function jotEmbed(id,post_type) {
if(post_type == 6) {
window.location.href = 'rpost?f=&post_id='+id;
}
else {
+
if ($('#jot-popup').length != 0) $('#jot-popup').show();
$('#like-rotator-' + id).show();
- $.get('{{$baseurl}}/share/' + id, function(data) {
+ $.get('{{$baseurl}}/embed/' + id, function(data) {
if (!editor) $("#profile-jot-text").val("");
initEditor(function(){
addeditortext(data);
diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl
index 4eae33d13..12509fc59 100755
--- a/view/tpl/jot.tpl
+++ b/view/tpl/jot.tpl
@@ -137,8 +137,11 @@
<i id="profile-nocomment" class="fa fa-comments jot-icons"></i>
</button>
{{/if}}
+ {{if $custommoretoolsbuttons}}
+ {{$custommoretoolsbuttons}}
+ {{/if}}
</div>
- {{if $writefiles || $weblink || $setloc || $clearloc || $feature_expire || $feature_encrypt || $feature_voting}}
+ {{if $writefiles || $weblink || $setloc || $clearloc || $feature_expire || $feature_encrypt || $feature_voting || $custommoretoolsdropdown}}
<div class="btn-group d-lg-none">
<button type="button" id="more-tools" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<i id="more-tools-icon" class="fa fa-cog jot-icons"></i>
@@ -176,6 +179,8 @@
{{if $feature_nocomment}}
<a class="dropdown-item" href="#" onclick="toggleNoComment(); return false;"><i id="profile-nocomment-sub" class="fa fa-comments"></i>&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>