diff options
author | M. Dent <dentm42@gmail.com> | 2019-12-04 03:44:25 +0100 |
---|---|---|
committer | M. Dent <dentm42@gmail.com> | 2019-12-04 03:44:25 +0100 |
commit | b48a9d3f7511bcb7a1b5d5dcec06f170b0f6ac9d (patch) | |
tree | 2c18404f4315d46c8d01fd0f8899062a4f9e50d6 | |
parent | c1aa96ebf70fd5b6426d96bf7d7e771dfc4ca9ab (diff) | |
parent | 21b398252aaf28d9ff8045fbe3e9fcb162a6f447 (diff) | |
download | volse-hubzilla-b48a9d3f7511bcb7a1b5d5dcec06f170b0f6ac9d.tar.gz volse-hubzilla-b48a9d3f7511bcb7a1b5d5dcec06f170b0f6ac9d.tar.bz2 volse-hubzilla-b48a9d3f7511bcb7a1b5d5dcec06f170b0f6ac9d.zip |
Merge branch 'dev' into 'dev'
Add content pinning support
See merge request hubzilla/core!1794
-rw-r--r-- | Zotlabs/Lib/ThreadItem.php | 18 | ||||
-rw-r--r-- | Zotlabs/Module/Channel.php | 7 | ||||
-rw-r--r-- | Zotlabs/Module/Pin.php | 68 | ||||
-rw-r--r-- | Zotlabs/Widget/Pinned.php | 279 | ||||
-rw-r--r-- | doc/hidden_configs.bb | 1 | ||||
-rw-r--r-- | include/js_strings.php | 5 | ||||
-rw-r--r-- | view/js/main.js | 61 | ||||
-rw-r--r-- | view/ru/hmessages.po | 636 | ||||
-rw-r--r-- | view/ru/hstrings.php | 30 | ||||
-rwxr-xr-x | view/tpl/conv_item.tpl | 6 | ||||
-rwxr-xr-x | view/tpl/js_strings.tpl | 5 | ||||
-rw-r--r-- | view/tpl/pinned_item.tpl | 196 |
12 files changed, 968 insertions, 344 deletions
diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php index 32cd52751..301ce1a18 100644 --- a/Zotlabs/Lib/ThreadItem.php +++ b/Zotlabs/Lib/ThreadItem.php @@ -95,7 +95,7 @@ class ThreadItem { $total_children = $this->count_descendants(); $unseen_comments = (($item['real_uid']) ? 0 : $this->count_unseen_descendants()); - $conv = $this->get_conversation(); + $conv = $this->get_conversation(); $observer = $conv->get_observer(); $lock = (((intval($item['item_private'])) || (($item['uid'] == local_channel()) && (strlen($item['allow_cid']) || strlen($item['allow_gid']) @@ -356,7 +356,8 @@ class ThreadItem { call_hooks('dropdown_extras',$dropdown_extras_arr); $dropdown_extras = $dropdown_extras_arr['dropdown_extras']; - $mids = ['b64.' . base64url_encode($item['mid'])]; + $midb64 = 'b64.' . base64url_encode($item['mid']); + $mids = [ $midb64 ]; $response_mids = []; foreach($response_verbs as $v) { if(isset($conv_responses[$v]['mids'][$item['mid']])) { @@ -367,6 +368,11 @@ class ThreadItem { $mids = array_merge($mids, $response_mids); $json_mids = json_encode($mids); + // Pinned item processing + $allowed_type = (in_array($item['item_type'], get_config('system', 'pin_types', [ ITEM_TYPE_POST ])) ? true : false); + $pinned_items = ($allowed_type ? get_pconfig($item['uid'], 'pinned', $item['item_type'], []) : []); + $pinned = ((!empty($pinned_items) && in_array($midb64, $pinned_items)) ? true : false); + $tmp_item = array( 'template' => $this->get_template(), 'mode' => $mode, @@ -380,7 +386,7 @@ class ThreadItem { 'folders' => $body['folders'], 'text' => strip_tags($body['html']), 'id' => $this->get_id(), - 'mid' => 'b64.' . base64url_encode($item['mid']), + 'mid' => $midb64, 'mids' => $json_mids, 'parent' => $item['parent'], 'author_id' => (($item['author']['xchan_addr']) ? $item['author']['xchan_addr'] : $item['author']['xchan_url']), @@ -449,6 +455,9 @@ class ThreadItem { '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') && ($item['item_type'] == ITEM_TYPE_POST)) ? $filer : ''), + 'pinned' => ($pinned ? t('Pinned post') : ''), + 'pinnable' => (($this->is_toplevel() && local_channel() && $item['owner_xchan'] == $observer['xchan_hash'] && $allowed_type && $item['item_private'] == 0) ? '1' : ''), + 'pinme' => ($pinned ? t('Unpin from the top') : t('Pin to the top')), 'bookmark' => (($conv->get_profile_owner() == local_channel() && local_channel() && $has_bookmarks) ? t('Save Bookmarks') : ''), 'addtocal' => (($has_event) ? t('Add to Calendar') : ''), 'drop' => $drop, @@ -874,7 +883,4 @@ class ThreadItem { return $this->visiting; } - - - } diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php index d975ac1bf..20a5418c2 100644 --- a/Zotlabs/Module/Channel.php +++ b/Zotlabs/Module/Channel.php @@ -468,6 +468,13 @@ class Channel extends Controller { ); } } + + // Add pinned content + if(! $decoded && ! $search) { + $pinned = new \Zotlabs\Widget\Pinned; + $r = $pinned->widget(intval(App::$profile['profile_uid']), [ITEM_TYPE_POST]); + $o .= $r['html']; + } $mode = (($search) ? 'search' : 'channel'); diff --git a/Zotlabs/Module/Pin.php b/Zotlabs/Module/Pin.php new file mode 100644 index 000000000..74297aa7c --- /dev/null +++ b/Zotlabs/Module/Pin.php @@ -0,0 +1,68 @@ +<?php +namespace Zotlabs\Module; + +/* + * Pinned post processing + */ + +use App; + +class Pin extends \Zotlabs\Web\Controller { + + + function init() { + + if(argc() !== 2) + http_status_exit(400, 'Bad request'); + } + + + function post() { + + $item_id = intval($_POST['id']); + + if ($item_id <= 0) + http_status_exit(404, 'Not found'); + + $observer = \App::get_observer(); + if(! $observer) + http_status_exit(403, 'Forbidden'); + + $r = q("SELECT * FROM item WHERE id = %d AND id = parent AND item_private = 0 LIMIT 1", + $item_id + ); + if(! $r) { + notice(t('Unable to locate original post.')); + http_status_exit(404, 'Not found'); + } + + $midb64 = 'b64.' . base64url_encode($r[0]['mid']); + $pinned = (in_array($midb64, get_pconfig($r[0]['uid'], 'pinned', $r[0]['item_type'], [])) ? true : false); + + switch(argv(1)) { + + case 'pin': + if(! local_channel() || local_channel() != $r[0]['uid']) + http_status_exit(403, 'Forbidden'); + // Currently allow only one pinned item for each type + set_pconfig($r[0]['uid'], 'pinned', $r[0]['item_type'], ($pinned ? [] : [ $midb64 ])); + if($pinned) + del_pconfig($r[0]['uid'], 'pinned_hide', $midb64); + break; + + case 'hide': + if($pinned) { + $hidden = get_pconfig($r[0]['uid'], 'pinned_hide', $midb64, []); + if(! in_array($observer['xchan_hash'], $hidden)) { + $hidden[] = $observer['xchan_hash']; + set_pconfig($r[0]['uid'], 'pinned_hide', $midb64, $hidden); + } + } + + default: + http_status_exit(404, 'Not found'); + } + + build_sync_packet($r[0]['uid'], [ 'config' ]); + } +} diff --git a/Zotlabs/Widget/Pinned.php b/Zotlabs/Widget/Pinned.php new file mode 100644 index 000000000..0ef724102 --- /dev/null +++ b/Zotlabs/Widget/Pinned.php @@ -0,0 +1,279 @@ +<?php +namespace Zotlabs\Widget; + +/* + * Show pinned content + * + */ + +class Pinned { + + private $allowed_types = 0; + private $uid = 0; + + + /* + * @brief Displays pinned items + * + * @param $uid + * @param $types + * @return array of results: 'html' string, 'ids' array + * + */ + function widget($uid, $types) { + + $ret = [ 'html' => EMPTY_STR, 'ids' => [] ]; + + $this->uid = intval($uid); + if(! $this->uid) + return $ret; + + $this->allowed_types = get_config('system', 'pin_types', [ ITEM_TYPE_POST ]); + + $items = $this->list($types); + + if(empty($items)) + return $ret; + + $ret['ids'] = array_column($items, 'id'); + + $observer = \App::get_observer(); + + foreach($items as $item) { + + $midb64 = 'b64.' . base64url_encode($item['mid']); + + if(in_array($observer['xchan_hash'], get_pconfig($item['uid'], 'pinned_hide', $midb64, []))) + continue; + + $author = channelx_by_hash($item['author_xchan']); + $owner = channelx_by_hash($item['owner_xchan']); + + $profile_avatar = $author['xchan_photo_m']; + $profile_link = chanlink_hash($item['author_xchan']); + $profile_name = $author['xchan_name']; + + $commentable = ($item['item_nocomment'] == 0 && $item['comments_closed'] == NULL_DATE ? true : false); + + $location = format_location($item); + $isevent = false; + $attend = null; + $canvote = false; + + $conv_responses = []; + + if($item['obj_type'] === ACTIVITY_OBJ_EVENT) { + $conv_responses['attendyes'] = [ 'title' => t('Attending','title') ]; + $conv_responses['attendno'] = [ 'title' => t('Not attending','title') ]; + $conv_responses['attendmaybe'] = [ 'title' => t('Might attend','title') ]; + if($commentable && $observer) { + $attend = array( t('I will attend'), t('I will not attend'), t('I might attend')); + $isevent = true; + } + } + + $consensus = (intval($item['item_consensus']) ? true : false); + if($consensus) { + $conv_responses['agree'] = [ 'title' => t('Agree','title') ]; + $conv_responses['disagree'] = [ 'title' => t('Disagree','title') ]; + $conv_responses['abstain'] = [ 'title' => t('Abstain','title') ]; + if($commentable && $observer) { + $conlabels = array( t('I agree'), t('I disagree'), t('I abstain')); + $canvote = true; + } + } + + $this->activity($item, $conv_responses); + + $verified = (intval($item['item_verified']) ? t('Message signature validated') : ''); + $forged = ((! intval($item['item_verified']) && $item['sig']) ? t('Message signature incorrect') : ''); + + $shareable = ((local_channel() && \App::$profile_uid == local_channel() && $item['item_private'] != 1) ? true : false); + 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')); + } + + if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0) + $is_new = true; + + $body = prepare_body($item,true); + + $str = [ + 'item_type' => intval($item['item_type']), + 'body' => $body['html'], + 'tags' => $body['tags'], + 'categories' => $body['categories'], + 'mentions' => $body['mentions'], + 'attachments' => $body['attachments'], + 'folders' => $body['folders'], + 'text' => strip_tags($body['html']), + 'id' => $item['id'], + 'mids' => json_encode([ $midb64 ]), + 'isevent' => $isevent, + 'attend' => $attend, + 'consensus' => $consensus, + 'conlabels' => $conlabels, + 'canvote' => $canvote, + 'linktitle' => sprintf( t('View %s\'s profile - %s'), $profile_name, ($author['xchan_addr'] ? $author['xchan_addr'] : $author['xchan_url']) ), + 'olinktitle' => sprintf( t('View %s\'s profile - %s'), $owner['xchan_name'], ($owner['xchan_addr'] ? $owner['xchan_addr'] : $owner['xchan_url']) ), + 'profile_url' => $profile_link, + 'name' => $profile_name, + 'thumb' => $profile_avatar, + 'via' => t('via'), + 'title' => $item['title'], + 'title_tosource' => get_pconfig($item['uid'],'system','title_tosource'), + 'ago' => relative_date($item['created']), + 'app' => $item['app'], + 'str_app' => sprintf( t('from %s'), $item['app'] ), + 'isotime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'), + 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), + 'editedtime' => (($item['edited'] != $item['created']) ? sprintf( t('last edited: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r') ) : ''), + 'expiretime' => ($item['expires'] > NULL_DATE ? sprintf( t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r') ) : ''), + 'lock' => $lock, + 'verified' => $verified, + 'forged' => $forged, + 'location' => $location, + 'divider' => get_pconfig($item['uid'],'system','item_divider'), + 'attend_title' => t('Attendance Options'), + 'vote_title' => t('Voting Options'), + 'is_new' => $is_new, + 'owner_url' => ($owner['xchan_addr'] != $author['xchan_addr'] ? chanlink_hash($owner['xchan_hash']) : ''), + 'owner_photo'=> $owner['xchan_photo_m'], + 'owner_name' => $owner['xchan_name'], + 'photo' => $body['photo'], + 'event' => $body['event'], + 'has_tags' => (($body['tags'] || $body['categories'] || $body['mentions'] || $body['attachments'] || $body['folders']) ? true : false), + // Item toolbar buttons + 'share' => $share, + 'embed' => $embed, + 'plink' => get_plink($item), + 'pinned' => t('Pinned post'), + 'hide' => (! $is_new && $observer && ($observer['xchan_hash'] != $owner['xchan_hash']) ? t("Don't show") : ''), + // end toolbar buttons + 'modal_dismiss' => t('Close'), + 'responses' => $conv_responses + ]; + + $tpl = get_markup_template('pinned_item.tpl'); + $ret['html'] .= replace_macros($tpl, $str); + } + + return $ret; + } + + + /* + * @brief List pinned items depend on type + * + * @param $types + * @return array of pinned items + * + */ + private function list($types) { + + if(empty($types) || (! is_array($types))) + return []; + + $item_types = array_intersect($this->allowed_types, $types); + if(empty($item_types)) + return []; + + $mids_list = []; + + foreach($item_types as $type) { + + $mids = get_pconfig($this->uid, 'pinned', $type, []); + foreach($mids as $mid) { + if(! empty($mid) && strpos($mid,'b64.') === 0) + $mids_list[] = @base64url_decode(substr($mid,4)); + } + } + if(empty($mids_list)) + return []; + + $r = q("SELECT * FROM item WHERE mid IN ( '%s' ) AND uid = %d AND id = parent AND item_private = 0 ORDER BY created DESC", + dbesc(implode(",", $mids_list)), + intval($this->uid) + ); + if($r) + return $r; + + return []; + } + + + /* + * @brief List activities on item + * + * @param array $item + * @param array $conv_responses + * @return array + * + */ + private function activity($item, &$conv_responses) { + + foreach(array_keys($conv_responses) as $verb) { + + switch($verb) { + case 'like': + $v = ACTIVITY_LIKE; + break; + case 'dislike': + $v = ACTIVITY_DISLIKE; + break; + case 'agree': + $v = ACTIVITY_AGREE; + break; + case 'disagree': + $v = ACTIVITY_DISAGREE; + break; + case 'abstain': + $v = ACTIVITY_ABSTAIN; + break; + case 'attendyes': + $v = ACTIVITY_ATTEND; + break; + case 'attendno': + $v = ACTIVITY_ATTENDNO; + break; + case 'attendmaybe': + $v = ACTIVITY_ATTENDMAYBE; + break; + default: + break; + } + + $r = q("SELECT * FROM item WHERE parent = %d AND id <> parent AND verb = '%s' AND item_deleted = 0", + intval($item['id']), + dbesc($v) + ); + if(! $r) { + unset($conv_responses[$verb]); + continue; + } + + $conv_responses[$verb]['count'] = count($r); + $conv_responses[$verb]['button'] = get_response_button_text($verb, $conv_responses[$verb]['count']); + + foreach($r as $rr) { + + $author = q("SELECT * FROM xchan WHERE xchan_hash = '%s' LIMIT 1", + dbesc($rr['author_xchan']) + ); + $name = ($author[0]['xchan_name'] ? $author[0]['xchan_name'] : t('Unknown')); + $conv_responses[$verb]['list'][] = (($rr['author_xchan'] && $author[0]['xchan_photo_s']) ? + '<a class="dropdown-item" href="' . chanlink_hash($rr['author_xchan']) . '">' . '<img class="menu-img-1" src="' . zid($author[0]['xchan_photo_s']) . '" alt="' . urlencode($name) . '" /> ' . $name . '</a>' : + '<a class="dropdown-item" href="#" class="disabled">' . $name . '</a>' + ); + } + } + + $conv_responses['count'] = count($conv_responses); + } +} diff --git a/doc/hidden_configs.bb b/doc/hidden_configs.bb index 37c2a4cb6..42c9e67b8 100644 --- a/doc/hidden_configs.bb +++ b/doc/hidden_configs.bb @@ -79,6 +79,7 @@ Options are: [*= system.optimize_items ] Runs optimise_table during some tasks to keep your database nice and defragmented. This comes at a performance cost while the operations are running, but also keeps things a bit faster while it's not. There also exist CLI utilities for performing this operation, which you may prefer, especially if you're a large site. [*= system.override_poll_lockfile ] Ignore the lock file in the poller process to allow more than one process to run at a time. [*= system.paranoia ] As the pconfig, but on a site-wide basis. Can be overwritten by member settings. + [*= system.pin_types ] Array of allowed item types for pinning. Defaults depend on module but can be redifined here. [*= system.photo_cache_time ] How long to cache photos, in seconds. Default is 86400 (1 day). Longer time increases performance, but it also means it takes longer for changed permissions to apply. [*= system.platform_name ] What to report as the platform name in webpages and statistics. (*) Must be set in .htconfig.php [*= system.rating_enabled ] Distributed reputation reporting and data collection. This feature is currently being re-worked. diff --git a/include/js_strings.php b/include/js_strings.php index f01fa87ae..6f559f4c4 100644 --- a/include/js_strings.php +++ b/include/js_strings.php @@ -33,7 +33,10 @@ function js_strings() { '$name_empty' => t('A channel name is required.'), '$name_ok1' => t('This is a '), '$name_ok2' => t(' channel name'), - '$to_reply' => t('Back to reply'), + '$to_reply' => t('Back to reply'), + '$pinned' => t('Pinned'), + '$pin_item' => t('Pin to the top'), + '$unpin_item' => t('Unpin from the top'), // translatable prefix and suffix strings for jquery.timeago - // using the defaults set below if left untranslated, empty strings if diff --git a/view/js/main.js b/view/js/main.js index 8dd9d5b80..618436b2a 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -1121,22 +1121,51 @@ function doscrollback(pos) { $(window).scrollTop(pos); } -function dropItem(url, object) { - - var confirm = confirmDelete(); - if(confirm) { - $('body').css('cursor', 'wait'); - $(object).fadeTo('fast', 0.33, function () { - $.get(url).done(function() { - $(object).remove(); - $('body').css('cursor', 'auto'); - }); - }); - return true; - } - else { - return false; - } +function dopin(id) { + id = id.toString(); + $('#like-rotator-' + id).show(); + $.post('pin/pin', { 'id' : id }) + .done(function() { + var i = $('#wall-item-pinned-' + id); + var me = $('#item-pinnable-' + id); + if($('#pinned-wrapper-' + id).length) { + $('html, body').animate({ scrollTop: $('#region_2').offset().top }, 'slow', function() { + $('#pinned-wrapper-' + id).fadeTo('fast', 0.33, function() { this.remove(); }); + }); + }; + if(i.length) + me.html(me.html().replace(aStr['unpin_item'],aStr['pin_item'])); + else { + $('<span class="float-right wall-item-pinned" title="' + aStr['pinned'] + '" id="wall-item-pinned-' + id + '"><i class="fa fa-thumb-tack"> </i></span>').insertBefore('#wall-item-info-' + id); + me.html(me.html().replace(aStr['pin_item'],aStr['unpin_item'])); + }; + }) + .fail(function() { + location.reload(); + }) + .always(function() { + $('#like-rotator-' + id).hide(); + }); +} + +function dropItem(url, object) { + + var confirm = confirmDelete(); + if(confirm) { + var id = url.split('/')[2]; + $('body').css('cursor', 'wait'); + $(object + ', #pinned-wrapper-' + id).fadeTo('fast', 0.33, function () { + $.get(url).done(function() { + $(object + ', #pinned-wrapper-' + id).remove(); + $('body').css('cursor', 'auto'); + }); + }); + $.post('pin/pin', { 'id' : id }); + return true; + } + else { + return false; + } } function dosubthread(ident) { diff --git a/view/ru/hmessages.po b/view/ru/hmessages.po index 40a120e02..3fec17b3b 100644 --- a/view/ru/hmessages.po +++ b/view/ru/hmessages.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: hubzilla\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-25 20:34+0200\n" -"PO-Revision-Date: 2019-11-25 20:39+0200\n" +"POT-Creation-Date: 2019-12-01 00:24+0200\n" +"PO-Revision-Date: 2019-12-01 00:29+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" @@ -39,7 +39,7 @@ msgstr "Фокус (по умолчанию Hubzilla)" #: ../../Zotlabs/Module/Email_validation.php:40 #: ../../Zotlabs/Module/Poke.php:217 ../../Zotlabs/Module/Appman.php:155 #: ../../Zotlabs/Module/Profiles.php:723 ../../Zotlabs/Module/Photos.php:1055 -#: ../../Zotlabs/Module/Photos.php:1096 ../../Zotlabs/Module/Photos.php:1215 +#: ../../Zotlabs/Module/Photos.php:1095 ../../Zotlabs/Module/Photos.php:1213 #: ../../Zotlabs/Module/Oauth.php:111 ../../Zotlabs/Module/Events.php:501 #: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Module/Locs.php:121 #: ../../Zotlabs/Module/Sources.php:125 ../../Zotlabs/Module/Sources.php:162 @@ -82,7 +82,7 @@ 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:807 +#: ../../Zotlabs/Widget/Eventstools.php:16 ../../Zotlabs/Lib/ThreadItem.php:814 #: ../../extend/addon/hzaddons/jappixmini/Mod_Jappixmini.php:261 #: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:115 #: ../../extend/addon/hzaddons/cart/cart.php:1258 @@ -111,7 +111,7 @@ msgstr "Фокус (по умолчанию Hubzilla)" #: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:102 #: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:71 #: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:72 -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:142 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:143 #: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:72 #: ../../extend/addon/hzaddons/fuzzloc/Mod_Fuzzloc.php:56 #: ../../extend/addon/hzaddons/redred/Mod_Redred.php:90 @@ -128,10 +128,10 @@ msgstr "Фокус (по умолчанию Hubzilla)" #: ../../extend/addon/hzaddons/mailtest/mailtest.php:100 #: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:53 #: ../../extend/addon/hzaddons/workflow/Settings/Mod_WorkflowSettings.php:94 -#: ../../extend/addon/hzaddons/workflow/workflow.php:1396 -#: ../../extend/addon/hzaddons/workflow/workflow.php:1442 -#: ../../extend/addon/hzaddons/workflow/workflow.php:1563 -#: ../../extend/addon/hzaddons/workflow/workflow.php:2639 +#: ../../extend/addon/hzaddons/workflow/workflow.php:1404 +#: ../../extend/addon/hzaddons/workflow/workflow.php:1450 +#: ../../extend/addon/hzaddons/workflow/workflow.php:1571 +#: ../../extend/addon/hzaddons/workflow/workflow.php:2647 #: ../../extend/addon/hzaddons/hzfiles/hzfiles.php:86 #: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:55 #: ../../extend/addon/hzaddons/flattrwidget/Mod_Flattrwidget.php:92 @@ -149,7 +149,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:1679 ../../Zotlabs/Storage/Browser.php:411 +#: ../../boot.php:1680 ../../Zotlabs/Storage/Browser.php:411 #: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681 #: ../../Zotlabs/Module/Photos.php:670 ../../Zotlabs/Module/Api.php:99 #: ../../Zotlabs/Module/Events.php:478 ../../Zotlabs/Module/Events.php:479 @@ -201,7 +201,7 @@ msgstr "Узкая панель навигации" #: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:45 #: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:60 #: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:49 -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:110 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:111 #: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:61 #: ../../extend/addon/hzaddons/redred/Mod_Redred.php:63 #: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:82 @@ -217,7 +217,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:1679 ../../Zotlabs/Storage/Browser.php:411 +#: ../../boot.php:1680 ../../Zotlabs/Storage/Browser.php:411 #: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681 #: ../../Zotlabs/Module/Photos.php:670 ../../Zotlabs/Module/Api.php:98 #: ../../Zotlabs/Module/Events.php:478 ../../Zotlabs/Module/Events.php:479 @@ -269,7 +269,7 @@ msgstr "Нет" #: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:45 #: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:60 #: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:49 -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:110 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:111 #: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:61 #: ../../extend/addon/hzaddons/redred/Mod_Redred.php:63 #: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:82 @@ -678,7 +678,7 @@ msgstr "Спроси меня" #: ../../Zotlabs/Module/Editblock.php:67 #: ../../Zotlabs/Module/Service_limits.php:11 #: ../../Zotlabs/Module/Message.php:18 ../../Zotlabs/Module/Channel.php:181 -#: ../../Zotlabs/Module/Channel.php:344 ../../Zotlabs/Module/Channel.php:383 +#: ../../Zotlabs/Module/Channel.php:342 ../../Zotlabs/Module/Channel.php:381 #: ../../Zotlabs/Module/Like.php:187 ../../Zotlabs/Module/Bookmarks.php:70 #: ../../Zotlabs/Module/Viewsrc.php:19 ../../Zotlabs/Module/Menu.php:130 #: ../../Zotlabs/Module/Menu.php:141 ../../Zotlabs/Module/Setup.php:206 @@ -704,7 +704,7 @@ msgstr "Спроси меня" #: ../../Zotlabs/Module/Manage.php:10 ../../Zotlabs/Module/Suggest.php:32 #: ../../Zotlabs/Module/Cards.php:86 ../../Zotlabs/Module/Layouts.php:71 #: ../../Zotlabs/Module/Layouts.php:78 ../../Zotlabs/Module/Layouts.php:89 -#: ../../Zotlabs/Web/WebServer.php:123 ../../Zotlabs/Lib/Chatroom.php:133 +#: ../../Zotlabs/Web/WebServer.php:115 ../../Zotlabs/Lib/Chatroom.php:133 #: ../../extend/addon/hzaddons/pumpio/pumpio.php:44 #: ../../extend/addon/hzaddons/openid/Mod_Id.php:53 #: ../../extend/addon/hzaddons/keepout/keepout.php:36 @@ -744,8 +744,8 @@ msgstr "%1$s опубликовал %2$s в %3$s" msgid "Photo Albums" msgstr "Фотоальбомы" -#: ../../include/photos.php:667 ../../Zotlabs/Module/Photos.php:1347 -#: ../../Zotlabs/Module/Photos.php:1360 ../../Zotlabs/Module/Photos.php:1361 +#: ../../include/photos.php:667 ../../Zotlabs/Module/Photos.php:1345 +#: ../../Zotlabs/Module/Photos.php:1358 ../../Zotlabs/Module/Photos.php:1359 msgid "Recent Photos" msgstr "Последние фотографии" @@ -970,7 +970,7 @@ msgstr "Видно всем" msgid "Edit visibility" msgstr "Редактировать видимость" -#: ../../include/channel.php:1506 ../../include/conversation.php:1058 +#: ../../include/channel.php:1506 ../../include/conversation.php:1059 #: ../../include/connections.php:110 ../../Zotlabs/Module/Directory.php:353 #: ../../Zotlabs/Module/Connections.php:349 ../../Zotlabs/Module/Suggest.php:71 #: ../../Zotlabs/Widget/Suggestions.php:46 ../../Zotlabs/Widget/Follow.php:32 @@ -1015,8 +1015,8 @@ msgstr "Полное имя:" msgid "Like this channel" msgstr "нравится этот канал" -#: ../../include/channel.php:1669 ../../include/conversation.php:1705 -#: ../../include/taxonomy.php:659 ../../Zotlabs/Module/Photos.php:1135 +#: ../../include/channel.php:1669 ../../include/conversation.php:1706 +#: ../../include/taxonomy.php:659 ../../Zotlabs/Module/Photos.php:1133 #: ../../Zotlabs/Lib/ThreadItem.php:236 msgctxt "noun" msgid "Like" @@ -1135,7 +1135,7 @@ msgstr "Экспорт" msgid "cover photo" msgstr "фотография обложки" -#: ../../include/channel.php:2483 ../../boot.php:1675 +#: ../../include/channel.php:2483 ../../boot.php:1676 #: ../../Zotlabs/Module/Rmagic.php:93 msgid "Remote Authentication" msgstr "Удаленная аутентификация" @@ -1192,7 +1192,7 @@ msgstr "спойлер" #: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Like.php:301 #: ../../Zotlabs/Module/Subthread.php:86 ../../Zotlabs/Module/Group.php:98 #: ../../Zotlabs/Module/Cloud.php:119 ../../Zotlabs/Module/Import_items.php:120 -#: ../../Zotlabs/Web/WebServer.php:122 +#: ../../Zotlabs/Web/WebServer.php:114 #: ../../extend/addon/hzaddons/frphotos/frphotos.php:82 #: ../../extend/addon/hzaddons/redphotos/redphotos.php:119 #: ../../extend/addon/hzaddons/redfiles/redfiles.php:109 @@ -1865,47 +1865,47 @@ msgstr "расслабленный" msgid "surprised" msgstr "удивленный" -#: ../../include/text.php:1455 ../../include/js_strings.php:96 +#: ../../include/text.php:1455 ../../include/js_strings.php:99 msgid "Monday" msgstr "Понедельник" -#: ../../include/text.php:1455 ../../include/js_strings.php:97 +#: ../../include/text.php:1455 ../../include/js_strings.php:100 msgid "Tuesday" msgstr "Вторник" -#: ../../include/text.php:1455 ../../include/js_strings.php:98 +#: ../../include/text.php:1455 ../../include/js_strings.php:101 msgid "Wednesday" msgstr "Среда" -#: ../../include/text.php:1455 ../../include/js_strings.php:99 +#: ../../include/text.php:1455 ../../include/js_strings.php:102 msgid "Thursday" msgstr "Четверг" -#: ../../include/text.php:1455 ../../include/js_strings.php:100 +#: ../../include/text.php:1455 ../../include/js_strings.php:103 msgid "Friday" msgstr "Пятница" -#: ../../include/text.php:1455 ../../include/js_strings.php:101 +#: ../../include/text.php:1455 ../../include/js_strings.php:104 msgid "Saturday" msgstr "Суббота" -#: ../../include/text.php:1455 ../../include/js_strings.php:95 +#: ../../include/text.php:1455 ../../include/js_strings.php:98 msgid "Sunday" msgstr "Воскресенье" -#: ../../include/text.php:1459 ../../include/js_strings.php:71 +#: ../../include/text.php:1459 ../../include/js_strings.php:74 msgid "January" msgstr "Январь" -#: ../../include/text.php:1459 ../../include/js_strings.php:72 +#: ../../include/text.php:1459 ../../include/js_strings.php:75 msgid "February" msgstr "Февраль" -#: ../../include/text.php:1459 ../../include/js_strings.php:73 +#: ../../include/text.php:1459 ../../include/js_strings.php:76 msgid "March" msgstr "Март" -#: ../../include/text.php:1459 ../../include/js_strings.php:74 +#: ../../include/text.php:1459 ../../include/js_strings.php:77 msgid "April" msgstr "Апрель" @@ -1913,31 +1913,31 @@ msgstr "Апрель" msgid "May" msgstr "Май" -#: ../../include/text.php:1459 ../../include/js_strings.php:76 +#: ../../include/text.php:1459 ../../include/js_strings.php:79 msgid "June" msgstr "Июнь" -#: ../../include/text.php:1459 ../../include/js_strings.php:77 +#: ../../include/text.php:1459 ../../include/js_strings.php:80 msgid "July" msgstr "Июль" -#: ../../include/text.php:1459 ../../include/js_strings.php:78 +#: ../../include/text.php:1459 ../../include/js_strings.php:81 msgid "August" msgstr "Август" -#: ../../include/text.php:1459 ../../include/js_strings.php:79 +#: ../../include/text.php:1459 ../../include/js_strings.php:82 msgid "September" msgstr "Сентябрь" -#: ../../include/text.php:1459 ../../include/js_strings.php:80 +#: ../../include/text.php:1459 ../../include/js_strings.php:83 msgid "October" msgstr "Октябрь" -#: ../../include/text.php:1459 ../../include/js_strings.php:81 +#: ../../include/text.php:1459 ../../include/js_strings.php:84 msgid "November" msgstr "Ноябрь" -#: ../../include/text.php:1459 ../../include/js_strings.php:82 +#: ../../include/text.php:1459 ../../include/js_strings.php:85 msgid "December" msgstr "Декабрь" @@ -2461,46 +2461,46 @@ msgctxt "mood" msgid "%1$s is %2$s" msgstr "%1$s %2$s" -#: ../../include/conversation.php:483 ../../Zotlabs/Lib/ThreadItem.php:480 +#: ../../include/conversation.php:483 ../../Zotlabs/Lib/ThreadItem.php:489 msgid "This is an unsaved preview" msgstr "Это несохранённый просмотр" -#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1112 +#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1110 msgctxt "title" msgid "Likes" msgstr "Нравится" -#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1112 +#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1110 msgctxt "title" msgid "Dislikes" msgstr "Не нравится" -#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1113 +#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1111 msgctxt "title" msgid "Agree" msgstr "Согласен" -#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1113 +#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1111 msgctxt "title" msgid "Disagree" msgstr "Не согласен" -#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1113 +#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1111 msgctxt "title" msgid "Abstain" msgstr "Воздержался" -#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1114 +#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1112 msgctxt "title" msgid "Attending" msgstr "Посещаю" -#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1114 +#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1112 msgctxt "title" msgid "Not attending" msgstr "Не посещаю" -#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1114 +#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1112 msgctxt "title" msgid "Might attend" msgstr "Возможно посещу" @@ -2512,7 +2512,7 @@ msgstr "Выбрать" #: ../../include/conversation.php:691 ../../include/conversation.php:736 #: ../../Zotlabs/Storage/Browser.php:297 ../../Zotlabs/Module/Cdav.php:1079 #: ../../Zotlabs/Module/Cdav.php:1390 ../../Zotlabs/Module/Profiles.php:800 -#: ../../Zotlabs/Module/Photos.php:1178 ../../Zotlabs/Module/Oauth.php:174 +#: ../../Zotlabs/Module/Photos.php:1176 ../../Zotlabs/Module/Oauth.php:174 #: ../../Zotlabs/Module/Oauth2.php:195 ../../Zotlabs/Module/Editlayout.php:138 #: ../../Zotlabs/Module/Editblock.php:139 #: ../../Zotlabs/Module/Admin/Channels.php:149 @@ -2537,11 +2537,13 @@ msgstr "Переключить статус пометки" msgid "Private Message" msgstr "Личное сообщение" -#: ../../include/conversation.php:707 ../../Zotlabs/Lib/ThreadItem.php:278 +#: ../../include/conversation.php:707 ../../Zotlabs/Widget/Pinned.php:73 +#: ../../Zotlabs/Lib/ThreadItem.php:278 msgid "Message signature validated" msgstr "Подпись сообщения проверена" -#: ../../include/conversation.php:708 ../../Zotlabs/Lib/ThreadItem.php:279 +#: ../../include/conversation.php:708 ../../Zotlabs/Widget/Pinned.php:74 +#: ../../Zotlabs/Lib/ThreadItem.php:279 msgid "Message signature incorrect" msgstr "Подпись сообщения неверная" @@ -2551,103 +2553,106 @@ msgstr "Подпись сообщения неверная" msgid "Approve" msgstr "Утвердить" -#: ../../include/conversation.php:739 +#: ../../include/conversation.php:740 #, php-format msgid "View %s's profile @ %s" msgstr "Просмотреть профиль %s @ %s" -#: ../../include/conversation.php:759 +#: ../../include/conversation.php:760 msgid "Categories:" msgstr "Категории:" -#: ../../include/conversation.php:760 +#: ../../include/conversation.php:761 msgid "Filed under:" msgstr "Хранить под:" -#: ../../include/conversation.php:766 ../../Zotlabs/Lib/ThreadItem.php:413 +#: ../../include/conversation.php:767 ../../Zotlabs/Widget/Pinned.php:117 +#: ../../Zotlabs/Lib/ThreadItem.php:419 #, php-format msgid "from %s" msgstr "от %s" -#: ../../include/conversation.php:769 ../../Zotlabs/Lib/ThreadItem.php:416 +#: ../../include/conversation.php:770 ../../Zotlabs/Widget/Pinned.php:120 +#: ../../Zotlabs/Lib/ThreadItem.php:422 #, php-format msgid "last edited: %s" msgstr "последнее редактирование: %s" -#: ../../include/conversation.php:770 ../../Zotlabs/Lib/ThreadItem.php:417 +#: ../../include/conversation.php:771 ../../Zotlabs/Widget/Pinned.php:121 +#: ../../Zotlabs/Lib/ThreadItem.php:423 #, php-format msgid "Expires: %s" msgstr "Срок действия: %s" -#: ../../include/conversation.php:785 +#: ../../include/conversation.php:786 msgid "View in context" msgstr "Показать в контексте" -#: ../../include/conversation.php:787 ../../Zotlabs/Module/Photos.php:1076 -#: ../../Zotlabs/Lib/ThreadItem.php:481 +#: ../../include/conversation.php:788 ../../Zotlabs/Module/Photos.php:1076 +#: ../../Zotlabs/Lib/ThreadItem.php:490 msgid "Please wait" msgstr "Подождите пожалуйста" -#: ../../include/conversation.php:886 +#: ../../include/conversation.php:887 msgid "remove" msgstr "удалить" -#: ../../include/conversation.php:890 +#: ../../include/conversation.php:891 msgid "Loading..." msgstr "Загрузка..." -#: ../../include/conversation.php:891 ../../Zotlabs/Lib/ThreadItem.php:291 +#: ../../include/conversation.php:892 ../../Zotlabs/Lib/ThreadItem.php:291 msgid "Conversation Tools" msgstr "Инструменты общения" -#: ../../include/conversation.php:892 +#: ../../include/conversation.php:893 msgid "Delete Selected Items" msgstr "Удалить выбранные элементы" -#: ../../include/conversation.php:935 +#: ../../include/conversation.php:936 msgid "View Source" msgstr "Просмотреть источник" -#: ../../include/conversation.php:945 +#: ../../include/conversation.php:946 msgid "Follow Thread" msgstr "Следить за темой" -#: ../../include/conversation.php:954 +#: ../../include/conversation.php:955 msgid "Unfollow Thread" msgstr "Прекратить отслеживать тему" -#: ../../include/conversation.php:1038 ../../include/nav.php:110 +#: ../../include/conversation.php:1039 ../../include/nav.php:110 #: ../../Zotlabs/Module/Connedit.php:608 ../../Zotlabs/Lib/Apps.php:343 #: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:57 msgid "View Profile" msgstr "Просмотреть профиль" -#: ../../include/conversation.php:1048 ../../Zotlabs/Module/Connedit.php:629 +#: ../../include/conversation.php:1049 ../../Zotlabs/Module/Connedit.php:629 msgid "Recent Activity" msgstr "Последние действия" -#: ../../include/conversation.php:1068 +#: ../../include/conversation.php:1069 msgid "Edit Connection" msgstr "Редактировать контакт" -#: ../../include/conversation.php:1078 +#: ../../include/conversation.php:1079 msgid "Message" msgstr "Сообщение" -#: ../../include/conversation.php:1088 ../../Zotlabs/Module/Ratings.php:97 +#: ../../include/conversation.php:1089 ../../Zotlabs/Module/Ratings.php:97 #: ../../Zotlabs/Module/Pubsites.php:35 msgid "Ratings" msgstr "Оценки" -#: ../../include/conversation.php:1098 ../../Zotlabs/Module/Poke.php:199 +#: ../../include/conversation.php:1099 ../../Zotlabs/Module/Poke.php:199 #: ../../Zotlabs/Lib/Apps.php:350 msgid "Poke" msgstr "Ткнуть" -#: ../../include/conversation.php:1166 ../../Zotlabs/Storage/Browser.php:164 +#: ../../include/conversation.php:1167 ../../Zotlabs/Storage/Browser.php:164 #: ../../Zotlabs/Module/Cdav.php:871 ../../Zotlabs/Module/Cdav.php:872 #: ../../Zotlabs/Module/Cdav.php:879 ../../Zotlabs/Module/Photos.php:790 -#: ../../Zotlabs/Module/Photos.php:1254 +#: ../../Zotlabs/Module/Photos.php:1252 #: ../../Zotlabs/Module/Embedphotos.php:174 #: ../../Zotlabs/Widget/Portfolio.php:95 ../../Zotlabs/Widget/Album.php:84 #: ../../Zotlabs/Lib/Apps.php:1114 ../../Zotlabs/Lib/Apps.php:1198 @@ -2656,17 +2661,17 @@ msgstr "Ткнуть" msgid "Unknown" msgstr "Неизвестный" -#: ../../include/conversation.php:1215 +#: ../../include/conversation.php:1216 #, php-format msgid "%s likes this." msgstr "%s нравится это." -#: ../../include/conversation.php:1215 +#: ../../include/conversation.php:1216 #, php-format msgid "%s doesn't like this." msgstr "%s не нравится это." -#: ../../include/conversation.php:1219 +#: ../../include/conversation.php:1220 #, php-format msgid "<span %1$s>%2$d people</span> like this." msgid_plural "<span %1$s>%2$d people</span> like this." @@ -2674,7 +2679,7 @@ msgstr[0] "<span %1$s>%2$d человеку</span> это нравится." msgstr[1] "<span %1$s>%2$d человекам</span> это нравится." msgstr[2] "<span %1$s>%2$d человекам</span> это нравится." -#: ../../include/conversation.php:1221 +#: ../../include/conversation.php:1222 #, php-format msgid "<span %1$s>%2$d people</span> don't like this." msgid_plural "<span %1$s>%2$d people</span> don't like this." @@ -2682,11 +2687,11 @@ msgstr[0] "<span %1$s>%2$d человеку</span> это не нравится msgstr[1] "<span %1$s>%2$d человекам</span> это не нравится." msgstr[2] "<span %1$s>%2$d человекам</span> это не нравится." -#: ../../include/conversation.php:1227 +#: ../../include/conversation.php:1228 msgid "and" msgstr "и" -#: ../../include/conversation.php:1230 +#: ../../include/conversation.php:1231 #, php-format msgid ", and %d other people" msgid_plural ", and %d other people" @@ -2694,27 +2699,27 @@ msgstr[0] ", и ещё %d человеку" msgstr[1] ", и ещё %d человекам" msgstr[2] ", и ещё %d человекам" -#: ../../include/conversation.php:1231 +#: ../../include/conversation.php:1232 #, php-format msgid "%s like this." msgstr "%s нравится это." -#: ../../include/conversation.php:1231 +#: ../../include/conversation.php:1232 #, php-format msgid "%s don't like this." msgstr "%s не нравится это." -#: ../../include/conversation.php:1288 +#: ../../include/conversation.php:1289 #: ../../extend/addon/hzaddons/hsse/hsse.php:82 msgid "Set your location" msgstr "Задать своё местоположение" -#: ../../include/conversation.php:1289 +#: ../../include/conversation.php:1290 #: ../../extend/addon/hzaddons/hsse/hsse.php:83 msgid "Clear browser location" msgstr "Очистить местоположение из браузера" -#: ../../include/conversation.php:1301 ../../Zotlabs/Module/Mail.php:292 +#: ../../include/conversation.php:1302 ../../Zotlabs/Module/Mail.php:292 #: ../../Zotlabs/Module/Mail.php:435 ../../Zotlabs/Module/Chat.php:222 #: ../../Zotlabs/Module/Editblock.php:116 #: ../../Zotlabs/Module/Editwebpage.php:143 @@ -2724,80 +2729,80 @@ msgstr "Очистить местоположение из браузера" msgid "Insert web link" msgstr "Вставить веб-ссылку" -#: ../../include/conversation.php:1305 +#: ../../include/conversation.php:1306 #: ../../extend/addon/hzaddons/hsse/hsse.php:99 msgid "Embed (existing) photo from your photo albums" msgstr "Встроить (существующее) фото из вашего фотоальбома" -#: ../../include/conversation.php:1340 ../../Zotlabs/Module/Mail.php:245 +#: ../../include/conversation.php:1341 ../../Zotlabs/Module/Mail.php:245 #: ../../Zotlabs/Module/Mail.php:366 ../../Zotlabs/Module/Chat.php:220 #: ../../extend/addon/hzaddons/hsse/hsse.php:134 msgid "Please enter a link URL:" msgstr "Пожалуйста введите URL ссылки:" -#: ../../include/conversation.php:1341 +#: ../../include/conversation.php:1342 #: ../../extend/addon/hzaddons/hsse/hsse.php:135 msgid "Tag term:" msgstr "Теги:" -#: ../../include/conversation.php:1342 +#: ../../include/conversation.php:1343 #: ../../extend/addon/hzaddons/hsse/hsse.php:136 msgid "Where are you right now?" msgstr "Где вы сейчас?" -#: ../../include/conversation.php:1345 ../../Zotlabs/Module/Cover_photo.php:436 +#: ../../include/conversation.php:1346 ../../Zotlabs/Module/Cover_photo.php:436 #: ../../Zotlabs/Module/Profile_photo.php:507 ../../Zotlabs/Module/Wiki.php:403 #: ../../extend/addon/hzaddons/hsse/hsse.php:139 msgid "Choose images to embed" msgstr "Выбрать изображения для встраивания" -#: ../../include/conversation.php:1346 ../../Zotlabs/Module/Cover_photo.php:437 +#: ../../include/conversation.php:1347 ../../Zotlabs/Module/Cover_photo.php:437 #: ../../Zotlabs/Module/Profile_photo.php:508 ../../Zotlabs/Module/Wiki.php:404 #: ../../extend/addon/hzaddons/hsse/hsse.php:140 msgid "Choose an album" msgstr "Выбрать альбом" -#: ../../include/conversation.php:1347 +#: ../../include/conversation.php:1348 #: ../../extend/addon/hzaddons/hsse/hsse.php:141 msgid "Choose a different album..." msgstr "Выбрать другой альбом..." -#: ../../include/conversation.php:1348 ../../Zotlabs/Module/Cover_photo.php:439 +#: ../../include/conversation.php:1349 ../../Zotlabs/Module/Cover_photo.php:439 #: ../../Zotlabs/Module/Profile_photo.php:510 ../../Zotlabs/Module/Wiki.php:406 #: ../../extend/addon/hzaddons/hsse/hsse.php:142 msgid "Error getting album list" msgstr "Ошибка получения списка альбомов" -#: ../../include/conversation.php:1349 ../../Zotlabs/Module/Cover_photo.php:440 +#: ../../include/conversation.php:1350 ../../Zotlabs/Module/Cover_photo.php:440 #: ../../Zotlabs/Module/Profile_photo.php:511 ../../Zotlabs/Module/Wiki.php:407 #: ../../extend/addon/hzaddons/hsse/hsse.php:143 msgid "Error getting photo link" msgstr "Ошибка получения ссылки на фотографию" -#: ../../include/conversation.php:1350 ../../Zotlabs/Module/Cover_photo.php:441 +#: ../../include/conversation.php:1351 ../../Zotlabs/Module/Cover_photo.php:441 #: ../../Zotlabs/Module/Profile_photo.php:512 ../../Zotlabs/Module/Wiki.php:408 #: ../../extend/addon/hzaddons/hsse/hsse.php:144 msgid "Error getting album" msgstr "Ошибка получения альбома" -#: ../../include/conversation.php:1351 +#: ../../include/conversation.php:1352 #: ../../extend/addon/hzaddons/hsse/hsse.php:145 msgid "Comments enabled" msgstr "Комментарии включены" -#: ../../include/conversation.php:1352 +#: ../../include/conversation.php:1353 #: ../../extend/addon/hzaddons/hsse/hsse.php:146 msgid "Comments disabled" msgstr "Комментарии отключены" -#: ../../include/conversation.php:1362 ../../Zotlabs/Module/Photos.php:1097 +#: ../../include/conversation.php:1363 ../../Zotlabs/Module/Photos.php:1096 #: ../../Zotlabs/Module/Events.php:486 ../../Zotlabs/Module/Webpages.php:262 -#: ../../Zotlabs/Lib/ThreadItem.php:817 +#: ../../Zotlabs/Lib/ThreadItem.php:824 #: ../../extend/addon/hzaddons/hsse/hsse.php:153 msgid "Preview" msgstr "Предварительный просмотр" -#: ../../include/conversation.php:1395 ../../Zotlabs/Module/Photos.php:1075 +#: ../../include/conversation.php:1396 ../../Zotlabs/Module/Photos.php:1075 #: ../../Zotlabs/Module/Webpages.php:256 ../../Zotlabs/Module/Blocks.php:161 #: ../../Zotlabs/Module/Wiki.php:301 ../../Zotlabs/Module/Layouts.php:194 #: ../../Zotlabs/Widget/Cdav.php:136 @@ -2805,52 +2810,52 @@ msgstr "Предварительный просмотр" msgid "Share" msgstr "Поделиться" -#: ../../include/conversation.php:1404 +#: ../../include/conversation.php:1405 #: ../../extend/addon/hzaddons/hsse/hsse.php:195 msgid "Page link name" msgstr "Название ссылки на страницу " -#: ../../include/conversation.php:1407 +#: ../../include/conversation.php:1408 #: ../../extend/addon/hzaddons/hsse/hsse.php:198 msgid "Post as" msgstr "Опубликовать как" -#: ../../include/conversation.php:1409 ../../Zotlabs/Lib/ThreadItem.php:808 +#: ../../include/conversation.php:1410 ../../Zotlabs/Lib/ThreadItem.php:815 #: ../../extend/addon/hzaddons/hsse/hsse.php:200 msgid "Bold" msgstr "Жирный" -#: ../../include/conversation.php:1410 ../../Zotlabs/Lib/ThreadItem.php:809 +#: ../../include/conversation.php:1411 ../../Zotlabs/Lib/ThreadItem.php:816 #: ../../extend/addon/hzaddons/hsse/hsse.php:201 msgid "Italic" msgstr "Курсив" -#: ../../include/conversation.php:1411 ../../Zotlabs/Lib/ThreadItem.php:810 +#: ../../include/conversation.php:1412 ../../Zotlabs/Lib/ThreadItem.php:817 #: ../../extend/addon/hzaddons/hsse/hsse.php:202 msgid "Underline" msgstr "Подчеркнутый" -#: ../../include/conversation.php:1412 ../../Zotlabs/Lib/ThreadItem.php:811 +#: ../../include/conversation.php:1413 ../../Zotlabs/Lib/ThreadItem.php:818 #: ../../extend/addon/hzaddons/hsse/hsse.php:203 msgid "Quote" msgstr "Цитата" -#: ../../include/conversation.php:1413 ../../Zotlabs/Lib/ThreadItem.php:812 +#: ../../include/conversation.php:1414 ../../Zotlabs/Lib/ThreadItem.php:819 #: ../../extend/addon/hzaddons/hsse/hsse.php:204 msgid "Code" msgstr "Код" -#: ../../include/conversation.php:1414 ../../Zotlabs/Lib/ThreadItem.php:814 +#: ../../include/conversation.php:1415 ../../Zotlabs/Lib/ThreadItem.php:821 #: ../../extend/addon/hzaddons/hsse/hsse.php:205 msgid "Attach/Upload file" msgstr "Прикрепить/загрузить файл" -#: ../../include/conversation.php:1417 ../../Zotlabs/Module/Wiki.php:400 +#: ../../include/conversation.php:1418 ../../Zotlabs/Module/Wiki.php:400 #: ../../extend/addon/hzaddons/hsse/hsse.php:208 msgid "Embed an image from your albums" msgstr "Встроить изображение из ваших альбомов" -#: ../../include/conversation.php:1418 ../../include/conversation.php:1467 +#: ../../include/conversation.php:1419 ../../include/conversation.php:1468 #: ../../Zotlabs/Module/Cdav.php:1081 ../../Zotlabs/Module/Cdav.php:1391 #: ../../Zotlabs/Module/Profiles.php:801 ../../Zotlabs/Module/Tagrm.php:15 #: ../../Zotlabs/Module/Tagrm.php:138 ../../Zotlabs/Module/Oauth.php:112 @@ -2871,7 +2876,7 @@ msgstr "Встроить изображение из ваших альбомов msgid "Cancel" msgstr "Отменить" -#: ../../include/conversation.php:1419 ../../include/conversation.php:1466 +#: ../../include/conversation.php:1420 ../../include/conversation.php:1467 #: ../../Zotlabs/Module/Cover_photo.php:435 #: ../../Zotlabs/Module/Profile_photo.php:506 ../../Zotlabs/Module/Wiki.php:402 #: ../../extend/addon/hzaddons/hsse/hsse.php:210 @@ -2879,22 +2884,22 @@ msgstr "Отменить" msgid "OK" msgstr "" -#: ../../include/conversation.php:1421 +#: ../../include/conversation.php:1422 #: ../../extend/addon/hzaddons/hsse/hsse.php:212 msgid "Toggle voting" msgstr "Подключить голосование" -#: ../../include/conversation.php:1424 +#: ../../include/conversation.php:1425 #: ../../extend/addon/hzaddons/hsse/hsse.php:215 msgid "Disable comments" msgstr "Отключить комментарии" -#: ../../include/conversation.php:1425 +#: ../../include/conversation.php:1426 #: ../../extend/addon/hzaddons/hsse/hsse.php:216 msgid "Toggle comments" msgstr "Переключить комментарии" -#: ../../include/conversation.php:1430 ../../Zotlabs/Module/Photos.php:671 +#: ../../include/conversation.php:1431 ../../Zotlabs/Module/Photos.php:671 #: ../../Zotlabs/Module/Photos.php:1041 ../../Zotlabs/Module/Editblock.php:129 #: ../../Zotlabs/Module/Card_edit.php:117 #: ../../Zotlabs/Module/Article_edit.php:116 @@ -2902,40 +2907,40 @@ msgstr "Переключить комментарии" msgid "Title (optional)" msgstr "Заголовок (необязательно)" -#: ../../include/conversation.php:1433 +#: ../../include/conversation.php:1434 #: ../../extend/addon/hzaddons/hsse/hsse.php:224 msgid "Categories (optional, comma-separated list)" msgstr "Категории (необязательно, список через запятую)" -#: ../../include/conversation.php:1434 ../../Zotlabs/Module/Events.php:487 +#: ../../include/conversation.php:1435 ../../Zotlabs/Module/Events.php:487 #: ../../extend/addon/hzaddons/hsse/hsse.php:225 msgid "Permission settings" msgstr "Настройки разрешений" -#: ../../include/conversation.php:1456 +#: ../../include/conversation.php:1457 #: ../../extend/addon/hzaddons/hsse/hsse.php:247 msgid "Other networks and post services" msgstr "Другие сети и службы публикаций" -#: ../../include/conversation.php:1459 ../../Zotlabs/Module/Mail.php:296 +#: ../../include/conversation.php:1460 ../../Zotlabs/Module/Mail.php:296 #: ../../Zotlabs/Module/Mail.php:439 #: ../../extend/addon/hzaddons/hsse/hsse.php:250 msgid "Set expiration date" msgstr "Установить срок действия" -#: ../../include/conversation.php:1462 +#: ../../include/conversation.php:1463 #: ../../extend/addon/hzaddons/hsse/hsse.php:253 msgid "Set publish date" msgstr "Установить дату публикации" -#: ../../include/conversation.php:1464 ../../Zotlabs/Module/Mail.php:298 +#: ../../include/conversation.php:1465 ../../Zotlabs/Module/Mail.php:298 #: ../../Zotlabs/Module/Mail.php:441 ../../Zotlabs/Module/Chat.php:221 -#: ../../Zotlabs/Lib/ThreadItem.php:821 +#: ../../Zotlabs/Lib/ThreadItem.php:828 #: ../../extend/addon/hzaddons/hsse/hsse.php:255 msgid "Encrypt text" msgstr "Зашифровать текст" -#: ../../include/conversation.php:1708 ../../Zotlabs/Module/Photos.php:1140 +#: ../../include/conversation.php:1709 ../../Zotlabs/Module/Photos.php:1138 #: ../../Zotlabs/Lib/ThreadItem.php:241 msgctxt "noun" msgid "Dislike" @@ -2944,7 +2949,7 @@ msgstr[0] "Не нравится" msgstr[1] "Не нравится" msgstr[2] "Не нравится" -#: ../../include/conversation.php:1711 +#: ../../include/conversation.php:1712 msgctxt "noun" msgid "Attending" msgid_plural "Attending" @@ -2952,7 +2957,7 @@ msgstr[0] "Посетит" msgstr[1] "Посетят" msgstr[2] "Посетят" -#: ../../include/conversation.php:1714 +#: ../../include/conversation.php:1715 msgctxt "noun" msgid "Not Attending" msgid_plural "Not Attending" @@ -2960,13 +2965,13 @@ msgstr[0] "Не посетит" msgstr[1] "Не посетят" msgstr[2] "Не посетят" -#: ../../include/conversation.php:1717 +#: ../../include/conversation.php:1718 msgctxt "noun" msgid "Undecided" msgid_plural "Undecided" msgstr "Не решил" -#: ../../include/conversation.php:1720 +#: ../../include/conversation.php:1721 msgctxt "noun" msgid "Agree" msgid_plural "Agrees" @@ -2974,7 +2979,7 @@ msgstr[0] "Согласен" msgstr[1] "Согласны" msgstr[2] "Согласны" -#: ../../include/conversation.php:1723 +#: ../../include/conversation.php:1724 msgctxt "noun" msgid "Disagree" msgid_plural "Disagrees" @@ -2982,7 +2987,7 @@ msgstr[0] "Не согласен" msgstr[1] "Не согласны" msgstr[2] "Не согласны" -#: ../../include/conversation.php:1726 +#: ../../include/conversation.php:1727 msgctxt "noun" msgid "Abstain" msgid_plural "Abstains" @@ -3043,12 +3048,12 @@ msgstr "Выбор дополнительного языка" msgid "Delete this item?" msgstr "Удалить этот элемент?" -#: ../../include/js_strings.php:6 ../../Zotlabs/Module/Photos.php:1095 -#: ../../Zotlabs/Module/Photos.php:1214 ../../Zotlabs/Lib/ThreadItem.php:806 +#: ../../include/js_strings.php:6 ../../Zotlabs/Module/Photos.php:1094 +#: ../../Zotlabs/Module/Photos.php:1212 ../../Zotlabs/Lib/ThreadItem.php:813 msgid "Comment" msgstr "Комментарий" -#: ../../include/js_strings.php:7 ../../Zotlabs/Lib/ThreadItem.php:513 +#: ../../include/js_strings.php:7 ../../Zotlabs/Lib/ThreadItem.php:522 #, php-format msgid "%s show all" msgstr "%s показать всё" @@ -3174,7 +3179,19 @@ msgstr " название канала" msgid "Back to reply" msgstr "Вернуться к ответу" -#: ../../include/js_strings.php:42 +#: ../../include/js_strings.php:37 +msgid "Pinned" +msgstr "Прикреплено" + +#: ../../include/js_strings.php:38 ../../Zotlabs/Lib/ThreadItem.php:460 +msgid "Pin to the top" +msgstr "Прикрепить сверху" + +#: ../../include/js_strings.php:39 ../../Zotlabs/Lib/ThreadItem.php:460 +msgid "Unpin from the top" +msgstr "Открепить" + +#: ../../include/js_strings.php:45 #, php-format msgid "%d minutes" msgid_plural "%d minutes" @@ -3182,7 +3199,7 @@ msgstr[0] "%d минуту" msgstr[1] "%d минуты" msgstr[2] "%d минут" -#: ../../include/js_strings.php:43 +#: ../../include/js_strings.php:46 #, php-format msgid "about %d hours" msgid_plural "about %d hours" @@ -3190,7 +3207,7 @@ msgstr[0] "около %d часa" msgstr[1] "около %d часов" msgstr[2] "около %d часов" -#: ../../include/js_strings.php:44 +#: ../../include/js_strings.php:47 #, php-format msgid "%d days" msgid_plural "%d days" @@ -3198,7 +3215,7 @@ msgstr[0] "%d день" msgstr[1] "%d дня" msgstr[2] "%d дней" -#: ../../include/js_strings.php:45 +#: ../../include/js_strings.php:48 #, php-format msgid "%d months" msgid_plural "%d months" @@ -3206,7 +3223,7 @@ msgstr[0] "%d месяц" msgstr[1] "%d месяца" msgstr[2] "%d месяцев" -#: ../../include/js_strings.php:46 +#: ../../include/js_strings.php:49 #, php-format msgid "%d years" msgid_plural "%d years" @@ -3214,157 +3231,157 @@ msgstr[0] "%d год" msgstr[1] "%d года" msgstr[2] "%d лет" -#: ../../include/js_strings.php:51 +#: ../../include/js_strings.php:54 msgid "timeago.prefixAgo" msgstr "" -#: ../../include/js_strings.php:52 +#: ../../include/js_strings.php:55 msgid "timeago.prefixFromNow" msgstr "через" -#: ../../include/js_strings.php:53 +#: ../../include/js_strings.php:56 msgid "timeago.suffixAgo" msgstr "назад" -#: ../../include/js_strings.php:54 +#: ../../include/js_strings.php:57 msgid "timeago.suffixFromNow" msgstr "" -#: ../../include/js_strings.php:57 +#: ../../include/js_strings.php:60 msgid "less than a minute" msgstr "менее чем одну минуту" -#: ../../include/js_strings.php:58 +#: ../../include/js_strings.php:61 msgid "about a minute" msgstr "около минуты" -#: ../../include/js_strings.php:60 +#: ../../include/js_strings.php:63 msgid "about an hour" msgstr "около часа" -#: ../../include/js_strings.php:62 +#: ../../include/js_strings.php:65 msgid "a day" msgstr "день" -#: ../../include/js_strings.php:64 +#: ../../include/js_strings.php:67 msgid "about a month" msgstr "около месяца" -#: ../../include/js_strings.php:66 +#: ../../include/js_strings.php:69 msgid "about a year" msgstr "около года" -#: ../../include/js_strings.php:68 +#: ../../include/js_strings.php:71 msgid " " msgstr " " -#: ../../include/js_strings.php:69 +#: ../../include/js_strings.php:72 msgid "timeago.numbers" msgstr "" -#: ../../include/js_strings.php:75 +#: ../../include/js_strings.php:78 msgctxt "long" msgid "May" msgstr "Май" -#: ../../include/js_strings.php:83 +#: ../../include/js_strings.php:86 msgid "Jan" msgstr "Янв" -#: ../../include/js_strings.php:84 +#: ../../include/js_strings.php:87 msgid "Feb" msgstr "Фев" -#: ../../include/js_strings.php:85 +#: ../../include/js_strings.php:88 msgid "Mar" msgstr "Мар" -#: ../../include/js_strings.php:86 +#: ../../include/js_strings.php:89 msgid "Apr" msgstr "Апр" -#: ../../include/js_strings.php:87 +#: ../../include/js_strings.php:90 msgctxt "short" msgid "May" msgstr "Май" -#: ../../include/js_strings.php:88 +#: ../../include/js_strings.php:91 msgid "Jun" msgstr "Июн" -#: ../../include/js_strings.php:89 +#: ../../include/js_strings.php:92 msgid "Jul" msgstr "Июл" -#: ../../include/js_strings.php:90 +#: ../../include/js_strings.php:93 msgid "Aug" msgstr "Авг" -#: ../../include/js_strings.php:91 +#: ../../include/js_strings.php:94 msgid "Sep" msgstr "Сен" -#: ../../include/js_strings.php:92 +#: ../../include/js_strings.php:95 msgid "Oct" msgstr "Окт" -#: ../../include/js_strings.php:93 +#: ../../include/js_strings.php:96 msgid "Nov" msgstr "Ноя" -#: ../../include/js_strings.php:94 +#: ../../include/js_strings.php:97 msgid "Dec" msgstr "Дек" -#: ../../include/js_strings.php:102 +#: ../../include/js_strings.php:105 msgid "Sun" msgstr "Вск" -#: ../../include/js_strings.php:103 +#: ../../include/js_strings.php:106 msgid "Mon" msgstr "Пон" -#: ../../include/js_strings.php:104 +#: ../../include/js_strings.php:107 msgid "Tue" msgstr "Вт" -#: ../../include/js_strings.php:105 +#: ../../include/js_strings.php:108 msgid "Wed" msgstr "Ср" -#: ../../include/js_strings.php:106 +#: ../../include/js_strings.php:109 msgid "Thu" msgstr "Чет" -#: ../../include/js_strings.php:107 +#: ../../include/js_strings.php:110 msgid "Fri" msgstr "Пят" -#: ../../include/js_strings.php:108 +#: ../../include/js_strings.php:111 msgid "Sat" msgstr "Суб" -#: ../../include/js_strings.php:109 +#: ../../include/js_strings.php:112 msgctxt "calendar" msgid "today" msgstr "сегодня" -#: ../../include/js_strings.php:110 +#: ../../include/js_strings.php:113 msgctxt "calendar" msgid "month" msgstr "месяц" -#: ../../include/js_strings.php:111 +#: ../../include/js_strings.php:114 msgctxt "calendar" msgid "week" msgstr "неделя" -#: ../../include/js_strings.php:112 +#: ../../include/js_strings.php:115 msgctxt "calendar" msgid "day" msgstr "день" -#: ../../include/js_strings.php:113 +#: ../../include/js_strings.php:116 msgctxt "calendar" msgid "All day" msgstr "Весь день" @@ -3595,9 +3612,9 @@ msgstr "Не показывать" msgid "Permissions" msgstr "Разрешения" -#: ../../include/acl_selectors.php:125 ../../Zotlabs/Module/Photos.php:1274 -#: ../../Zotlabs/Lib/ThreadItem.php:475 -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:230 +#: ../../include/acl_selectors.php:125 ../../Zotlabs/Module/Photos.php:1272 +#: ../../Zotlabs/Lib/ThreadItem.php:484 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:233 msgid "Close" msgstr "Закрыть" @@ -3757,7 +3774,7 @@ msgid "Account/Channel Settings" msgstr "Настройки аккаунта / канала" #: ../../include/nav.php:107 ../../include/nav.php:136 -#: ../../include/nav.php:155 ../../boot.php:1673 +#: ../../include/nav.php:155 ../../boot.php:1674 msgid "Logout" msgstr "Выход" @@ -3777,7 +3794,7 @@ msgstr "Управление / редактирование профилей" msgid "Edit your profile" msgstr "Редактировать профиль" -#: ../../include/nav.php:122 ../../include/nav.php:126 ../../boot.php:1674 +#: ../../include/nav.php:122 ../../include/nav.php:126 ../../boot.php:1675 #: ../../Zotlabs/Lib/Apps.php:335 msgid "Login" msgstr "Войти" @@ -3794,7 +3811,7 @@ msgstr "Домой" msgid "Log me out of this site" msgstr "Выйти с этого сайта" -#: ../../include/nav.php:160 ../../boot.php:1654 +#: ../../include/nav.php:160 ../../boot.php:1655 #: ../../Zotlabs/Module/Register.php:293 msgid "Register" msgstr "Регистрация" @@ -3998,27 +4015,27 @@ msgstr "Пустое имя пути" msgid "Profile Photos" msgstr "Фотографии профиля" -#: ../../boot.php:1653 +#: ../../boot.php:1654 msgid "Create an account to access services and applications" msgstr "Создайте аккаунт для доступа к службам и приложениям" -#: ../../boot.php:1677 +#: ../../boot.php:1678 msgid "Login/Email" msgstr "Пользователь / email" -#: ../../boot.php:1678 +#: ../../boot.php:1679 msgid "Password" msgstr "Пароль" -#: ../../boot.php:1679 +#: ../../boot.php:1680 msgid "Remember me" msgstr "Запомнить меня" -#: ../../boot.php:1682 +#: ../../boot.php:1683 msgid "Forgot your password?" msgstr "Забыли пароль или логин?" -#: ../../boot.php:1683 ../../Zotlabs/Module/Lostpass.php:91 +#: ../../boot.php:1684 ../../Zotlabs/Module/Lostpass.php:91 msgid "Password Reset" msgstr "Сбросить пароль" @@ -4278,7 +4295,7 @@ msgid "" "Warning: Changing some settings could render your channel inoperable. Please " "leave this page unless you are comfortable with and knowledgeable about how " "to correctly use this feature." -msgstr "Предупреждение. Изменение некоторых настроек может привести к неработоспособности вашего канала. Пожалуйста, покиньте эту страницу, если вы точно не значете, как правильно использовать эту функцию." +msgstr "Предупреждение. Изменение некоторых настроек может привести к неработоспособности вашего канала. Пожалуйста, покиньте эту страницу, если вы точно не знаете, как правильно использовать эту функцию." #: ../../Zotlabs/Module/Defperms.php:67 ../../Zotlabs/Module/Connedit.php:81 msgid "Could not access contact record." @@ -4531,12 +4548,12 @@ msgstr "Нет такой группы" msgid "No such channel" msgstr "Нет такого канала" -#: ../../Zotlabs/Module/Network.php:173 ../../Zotlabs/Module/Channel.php:195 +#: ../../Zotlabs/Module/Network.php:173 ../../Zotlabs/Module/Channel.php:194 msgid "Search Results For:" msgstr "Результаты поиска для:" #: ../../Zotlabs/Module/Network.php:203 ../../Zotlabs/Module/Display.php:80 -#: ../../Zotlabs/Module/Pubstream.php:94 ../../Zotlabs/Module/Channel.php:230 +#: ../../Zotlabs/Module/Pubstream.php:94 ../../Zotlabs/Module/Channel.php:228 #: ../../Zotlabs/Module/Hq.php:134 msgid "Reset form" msgstr "Очистить форму" @@ -4595,7 +4612,7 @@ msgstr "Просмотр общий контактов" msgid "network" msgstr "сеть" -#: ../../Zotlabs/Module/Item.php:382 +#: ../../Zotlabs/Module/Item.php:382 ../../Zotlabs/Module/Pin.php:38 msgid "Unable to locate original post." msgstr "Не удалось найти оригинальную публикацию." @@ -4640,7 +4657,7 @@ msgstr "Некоторые предложения о том, что делать msgid "Public access denied." msgstr "Публичный доступ запрещен." -#: ../../Zotlabs/Module/Display.php:379 ../../Zotlabs/Module/Channel.php:485 +#: ../../Zotlabs/Module/Display.php:379 ../../Zotlabs/Module/Channel.php:488 msgid "" "You must enable javascript for your browser to be able to view this content." msgstr "Для просмотра этого содержимого в вашем браузере должен быть включён JavaScript" @@ -4681,11 +4698,11 @@ msgstr "событие опубликовано" msgid "shared a file with you" msgstr "с вами поделились файлом" -#: ../../Zotlabs/Module/Ping.php:672 ../../Zotlabs/Module/Sse_bs.php:407 +#: ../../Zotlabs/Module/Ping.php:672 ../../Zotlabs/Module/Sse_bs.php:408 msgid "Private forum" msgstr "Частный форум" -#: ../../Zotlabs/Module/Ping.php:672 ../../Zotlabs/Module/Sse_bs.php:407 +#: ../../Zotlabs/Module/Ping.php:672 ../../Zotlabs/Module/Sse_bs.php:408 msgid "Public forum" msgstr "Публичный форум" @@ -4980,8 +4997,8 @@ msgid "Organisation" msgstr "Организация" #: ../../Zotlabs/Module/Cdav.php:1375 ../../Zotlabs/Module/Connedit.php:925 -#: ../../extend/addon/hzaddons/workflow/workflow.php:2519 -#: ../../extend/addon/hzaddons/workflow/workflow.php:2574 +#: ../../extend/addon/hzaddons/workflow/workflow.php:2527 +#: ../../extend/addon/hzaddons/workflow/workflow.php:2582 msgid "Title" msgstr "Наименование" @@ -5611,7 +5628,7 @@ msgstr "Показать новые первыми" msgid "Show Oldest First" msgstr "Показать старые первыми" -#: ../../Zotlabs/Module/Photos.php:784 ../../Zotlabs/Module/Photos.php:1332 +#: ../../Zotlabs/Module/Photos.php:784 ../../Zotlabs/Module/Photos.php:1330 #: ../../Zotlabs/Module/Embedphotos.php:168 #: ../../Zotlabs/Widget/Portfolio.php:87 ../../Zotlabs/Widget/Album.php:78 msgid "View Photo" @@ -5622,7 +5639,7 @@ msgstr "Посмотреть фотографию" msgid "Edit Album" msgstr "Редактировать Фотоальбом" -#: ../../Zotlabs/Module/Photos.php:817 ../../Zotlabs/Module/Photos.php:1363 +#: ../../Zotlabs/Module/Photos.php:817 ../../Zotlabs/Module/Photos.php:1361 msgid "Add Photos" msgstr "Добавить фотографии" @@ -5702,34 +5719,34 @@ msgstr "мне это нравится (переключение)" msgid "I don't like this (toggle)" msgstr "мне это не нравится (переключение)" -#: ../../Zotlabs/Module/Photos.php:1093 ../../Zotlabs/Module/Photos.php:1212 -#: ../../Zotlabs/Lib/ThreadItem.php:804 +#: ../../Zotlabs/Module/Photos.php:1092 ../../Zotlabs/Module/Photos.php:1210 +#: ../../Zotlabs/Lib/ThreadItem.php:811 msgid "This is you" msgstr "Это вы" -#: ../../Zotlabs/Module/Photos.php:1131 ../../Zotlabs/Module/Photos.php:1143 +#: ../../Zotlabs/Module/Photos.php:1129 ../../Zotlabs/Module/Photos.php:1141 #: ../../Zotlabs/Lib/ThreadItem.php:232 ../../Zotlabs/Lib/ThreadItem.php:244 msgid "View all" msgstr "Просмотреть все" -#: ../../Zotlabs/Module/Photos.php:1246 +#: ../../Zotlabs/Module/Photos.php:1244 msgid "Photo Tools" msgstr "Фото-Инструменты" -#: ../../Zotlabs/Module/Photos.php:1255 +#: ../../Zotlabs/Module/Photos.php:1253 msgid "In This Photo:" msgstr "На этой фотографии:" -#: ../../Zotlabs/Module/Photos.php:1260 +#: ../../Zotlabs/Module/Photos.php:1258 msgid "Map" msgstr "Карта" -#: ../../Zotlabs/Module/Photos.php:1268 ../../Zotlabs/Lib/ThreadItem.php:469 +#: ../../Zotlabs/Module/Photos.php:1266 ../../Zotlabs/Lib/ThreadItem.php:478 msgctxt "noun" msgid "Likes" msgstr "Нравится" -#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:470 +#: ../../Zotlabs/Module/Photos.php:1267 ../../Zotlabs/Lib/ThreadItem.php:479 msgctxt "noun" msgid "Dislikes" msgstr "Не нравится" @@ -6496,7 +6513,7 @@ msgid "Manage Channel Locations" msgstr "Управление местоположением канала" #: ../../Zotlabs/Module/Locs.php:119 -#: ../../extend/addon/hzaddons/workflow/workflow.php:275 +#: ../../extend/addon/hzaddons/workflow/workflow.php:282 msgid "Primary" msgstr "Основной" @@ -9539,7 +9556,7 @@ msgid "Their Settings" msgstr "Их настройки" #: ../../Zotlabs/Module/Notifications.php:60 -#: ../../Zotlabs/Lib/ThreadItem.php:462 +#: ../../Zotlabs/Lib/ThreadItem.php:471 msgid "Mark all seen" msgstr "Отметить как просмотренное" @@ -11067,7 +11084,7 @@ msgid "Forums" msgstr "Форумы" #: ../../Zotlabs/Widget/Notes.php:21 ../../Zotlabs/Lib/Apps.php:369 -#: ../../extend/addon/hzaddons/workflow/workflow.php:2527 +#: ../../extend/addon/hzaddons/workflow/workflow.php:2535 msgid "Notes" msgstr "Заметки" @@ -11429,6 +11446,60 @@ msgstr "Wiki страницы" msgid "Page name" msgstr "Название страницы" +#: ../../Zotlabs/Widget/Pinned.php:58 ../../Zotlabs/Lib/ThreadItem.php:203 +msgid "I will attend" +msgstr "Я буду участвовать" + +#: ../../Zotlabs/Widget/Pinned.php:58 ../../Zotlabs/Lib/ThreadItem.php:203 +msgid "I will not attend" +msgstr "Я не буду участвовать" + +#: ../../Zotlabs/Widget/Pinned.php:58 ../../Zotlabs/Lib/ThreadItem.php:203 +msgid "I might attend" +msgstr "Я возможно буду присутствовать" + +#: ../../Zotlabs/Widget/Pinned.php:68 ../../Zotlabs/Lib/ThreadItem.php:213 +msgid "I agree" +msgstr "Я согласен" + +#: ../../Zotlabs/Widget/Pinned.php:68 ../../Zotlabs/Lib/ThreadItem.php:213 +msgid "I disagree" +msgstr "Я не согласен" + +#: ../../Zotlabs/Widget/Pinned.php:68 ../../Zotlabs/Lib/ThreadItem.php:213 +msgid "I abstain" +msgstr "Я воздержался" + +#: ../../Zotlabs/Widget/Pinned.php:84 ../../Zotlabs/Lib/ThreadItem.php:319 +msgid "Share This" +msgstr "Поделиться этим" + +#: ../../Zotlabs/Widget/Pinned.php:84 ../../Zotlabs/Lib/ThreadItem.php:319 +msgid "share" +msgstr "поделиться" + +#: ../../Zotlabs/Widget/Pinned.php:107 ../../Zotlabs/Widget/Pinned.php:108 +#: ../../Zotlabs/Lib/ThreadItem.php:398 ../../Zotlabs/Lib/ThreadItem.php:399 +#, php-format +msgid "View %s's profile - %s" +msgstr "Просмотр профиля %s - %s" + +#: ../../Zotlabs/Widget/Pinned.php:112 ../../Zotlabs/Lib/ThreadItem.php:403 +msgid "via" +msgstr "через" + +#: ../../Zotlabs/Widget/Pinned.php:127 ../../Zotlabs/Lib/ThreadItem.php:432 +msgid "Attendance Options" +msgstr "Параметры посещаемости" + +#: ../../Zotlabs/Widget/Pinned.php:128 ../../Zotlabs/Lib/ThreadItem.php:434 +msgid "Voting Options" +msgstr "Параметры голосования" + +#: ../../Zotlabs/Widget/Pinned.php:140 ../../Zotlabs/Lib/ThreadItem.php:458 +msgid "Pinned post" +msgstr "Прикреплённая заметка" + #: ../../Zotlabs/Widget/Eventstools.php:13 msgid "Events Tools" msgstr "Инструменты для событий" @@ -12279,30 +12350,6 @@ msgstr "Удалить с панели навигации" msgid "Privacy conflict. Discretion advised." msgstr "Конфиликт настроек конфиденциальности." -#: ../../Zotlabs/Lib/ThreadItem.php:203 -msgid "I will attend" -msgstr "Я буду участвовать" - -#: ../../Zotlabs/Lib/ThreadItem.php:203 -msgid "I will not attend" -msgstr "Я не буду участвовать" - -#: ../../Zotlabs/Lib/ThreadItem.php:203 -msgid "I might attend" -msgstr "Я возможно буду присутствовать" - -#: ../../Zotlabs/Lib/ThreadItem.php:213 -msgid "I agree" -msgstr "Я согласен" - -#: ../../Zotlabs/Lib/ThreadItem.php:213 -msgid "I disagree" -msgstr "Я не согласен" - -#: ../../Zotlabs/Lib/ThreadItem.php:213 -msgid "I abstain" -msgstr "Я воздержался" - #: ../../Zotlabs/Lib/ThreadItem.php:287 msgid "Add Tag" msgstr "Добавить тег" @@ -12319,14 +12366,6 @@ msgstr "ответить" msgid "Reply to" msgstr "Ответить" -#: ../../Zotlabs/Lib/ThreadItem.php:319 -msgid "Share This" -msgstr "Поделиться этим" - -#: ../../Zotlabs/Lib/ThreadItem.php:319 -msgid "share" -msgstr "поделиться" - #: ../../Zotlabs/Lib/ThreadItem.php:329 msgid "Delivery Report" msgstr "Отчёт о доставке" @@ -12339,77 +12378,60 @@ msgstr[0] "%d комментарий" msgstr[1] "%d комментария" msgstr[2] "%d комментариев" -#: ../../Zotlabs/Lib/ThreadItem.php:392 ../../Zotlabs/Lib/ThreadItem.php:393 -#, php-format -msgid "View %s's profile - %s" -msgstr "Просмотр профиля %s - %s" - -#: ../../Zotlabs/Lib/ThreadItem.php:396 +#: ../../Zotlabs/Lib/ThreadItem.php:402 msgid "to" msgstr "к" -#: ../../Zotlabs/Lib/ThreadItem.php:397 -msgid "via" -msgstr "через" - -#: ../../Zotlabs/Lib/ThreadItem.php:398 +#: ../../Zotlabs/Lib/ThreadItem.php:404 msgid "Wall-to-Wall" msgstr "Стена-к-Стене" -#: ../../Zotlabs/Lib/ThreadItem.php:399 +#: ../../Zotlabs/Lib/ThreadItem.php:405 msgid "via Wall-To-Wall:" msgstr "через Стена-к-Стене:" -#: ../../Zotlabs/Lib/ThreadItem.php:425 +#: ../../Zotlabs/Lib/ThreadItem.php:431 msgid "Attend" msgstr "Посетить" -#: ../../Zotlabs/Lib/ThreadItem.php:426 -msgid "Attendance Options" -msgstr "Параметры посещаемости" - -#: ../../Zotlabs/Lib/ThreadItem.php:427 +#: ../../Zotlabs/Lib/ThreadItem.php:433 msgid "Vote" msgstr "Голосовать" -#: ../../Zotlabs/Lib/ThreadItem.php:428 -msgid "Voting Options" -msgstr "Параметры голосования" - -#: ../../Zotlabs/Lib/ThreadItem.php:443 +#: ../../Zotlabs/Lib/ThreadItem.php:449 msgid "Go to previous comment" msgstr "Перейти к предыдущему комментарию" -#: ../../Zotlabs/Lib/ThreadItem.php:452 +#: ../../Zotlabs/Lib/ThreadItem.php:461 #: ../../extend/addon/hzaddons/bookmarker/bookmarker.php:38 msgid "Save Bookmarks" msgstr "Сохранить закладки" -#: ../../Zotlabs/Lib/ThreadItem.php:453 +#: ../../Zotlabs/Lib/ThreadItem.php:462 msgid "Add to Calendar" msgstr "Добавить в календарь" -#: ../../Zotlabs/Lib/ThreadItem.php:813 +#: ../../Zotlabs/Lib/ThreadItem.php:820 msgid "Image" msgstr "Изображение" -#: ../../Zotlabs/Lib/ThreadItem.php:815 +#: ../../Zotlabs/Lib/ThreadItem.php:822 msgid "Insert Link" msgstr "Вставить ссылку" -#: ../../Zotlabs/Lib/ThreadItem.php:816 +#: ../../Zotlabs/Lib/ThreadItem.php:823 msgid "Video" msgstr "Видео" -#: ../../Zotlabs/Lib/ThreadItem.php:826 +#: ../../Zotlabs/Lib/ThreadItem.php:833 msgid "Your full name (required)" msgstr "Ваше полное имя (требуется)" -#: ../../Zotlabs/Lib/ThreadItem.php:827 +#: ../../Zotlabs/Lib/ThreadItem.php:834 msgid "Your email address (required)" msgstr "Ваш адрес электронной почты (требуется)" -#: ../../Zotlabs/Lib/ThreadItem.php:828 +#: ../../Zotlabs/Lib/ThreadItem.php:835 msgid "Your website URL (optional)" msgstr "URL вашего вебсайта (необязательно)" @@ -13061,8 +13083,8 @@ msgstr "Доступ запрещён." #: ../../extend/addon/hzaddons/cart/myshop.php:259 #: ../../extend/addon/hzaddons/cart/myshop.php:294 #: ../../extend/addon/hzaddons/cart/myshop.php:317 -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:100 #: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:101 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:102 msgid "Access Denied" msgstr "Доступ запрещён" @@ -14489,77 +14511,77 @@ msgstr "Спонсор" msgid "Special thanks to: " msgstr "Особые благодарности:" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:108 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:109 msgid "Enable Community Moderation" msgstr "Включить модерацию сообщества" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:116 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:117 msgid "Reputation automatically given to new members" msgstr "Репутация автоматически предоставляемая новым участникам" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:117 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:118 msgid "Reputation will never fall below this value" msgstr "Репутация никогда не упадёт ниже этого значения" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:118 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:119 msgid "Minimum reputation before posting is allowed" msgstr "Минимальная репутация для разрешения возможности размещать публикации" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:119 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:120 msgid "Minimum reputation before commenting is allowed" msgstr "Минимальная репутация для разрешения комментирования" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:120 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:121 msgid "Minimum reputation before a member is able to moderate other posts" msgstr "Минимальная репутация для возможности модерирования участником чужих публикаций" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:121 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:122 msgid "" "Max ratio of moderator's reputation that can be added to/deducted from " "reputation of person being moderated" msgstr "Максимальное соотношение репутации модератора, которое может быть добавлено / вычтено из репутации модерируемого участника" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:122 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:123 msgid "Reputation \"cost\" to post" msgstr "\"Стоимость\" репутации для публикации" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:123 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:124 msgid "Reputation \"cost\" to comment" msgstr "\"Стоимость\" репутации для комментирования" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:124 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:125 msgid "" "Reputation automatically recovers at this rate per hour until it reaches " "minimum_to_post" msgstr "Репутация автоматически восстанавливается с этой скоростью в час пока не достигает значения minimum_to_post" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:125 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:126 msgid "" "When minimum_to_moderate > reputation > minimum_to_post reputation recovers " "at this rate per hour" msgstr "При minimum_to_moderate > репутация > minimum_to_post репутация восстанавливается с этой скоростью в час" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:139 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:140 msgid "Community Moderation Settings" msgstr "Настройки модерирования сообщества" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:229 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:232 msgid "Channel Reputation" msgstr "Репутация канала" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:233 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:236 msgid "An Error has occurred." msgstr "Произошла ошибка." -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:251 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:254 msgid "Upvote" msgstr "За" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:252 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:255 msgid "Downvote" msgstr "Против" -#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:374 +#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:414 msgid "Can moderate reputation on my channel." msgstr "Может модерировать репутацию на моём канале" @@ -15341,52 +15363,52 @@ msgstr "Отключить Federation" msgid "Workflow Settings" msgstr "Настройки \"Рабочего процесса\"" -#: ../../extend/addon/hzaddons/workflow/workflow.php:215 +#: ../../extend/addon/hzaddons/workflow/workflow.php:222 msgid "Workflow user." msgstr "Пользователь \"Рабочего процесса\"." -#: ../../extend/addon/hzaddons/workflow/workflow.php:262 +#: ../../extend/addon/hzaddons/workflow/workflow.php:269 msgid "This channel" msgstr "Этот канал" -#: ../../extend/addon/hzaddons/workflow/workflow.php:512 -#: ../../extend/addon/hzaddons/workflow/workflow.php:1372 -#: ../../extend/addon/hzaddons/workflow/workflow.php:1391 +#: ../../extend/addon/hzaddons/workflow/workflow.php:510 +#: ../../extend/addon/hzaddons/workflow/workflow.php:1380 +#: ../../extend/addon/hzaddons/workflow/workflow.php:1399 msgid "Workflow" msgstr "Рабочий процесс" -#: ../../extend/addon/hzaddons/workflow/workflow.php:1360 +#: ../../extend/addon/hzaddons/workflow/workflow.php:1368 msgid "No Workflows Available" msgstr "Нет доступных рабочих процессов" -#: ../../extend/addon/hzaddons/workflow/workflow.php:1390 +#: ../../extend/addon/hzaddons/workflow/workflow.php:1398 msgid "Add item to which workflow" msgstr "Подключить рабочий процесс к элементу" -#: ../../extend/addon/hzaddons/workflow/workflow.php:1437 -#: ../../extend/addon/hzaddons/workflow/workflow.php:1558 +#: ../../extend/addon/hzaddons/workflow/workflow.php:1445 +#: ../../extend/addon/hzaddons/workflow/workflow.php:1566 msgid "Create Workflow Item" msgstr "Создать элемент рабочего процесса" -#: ../../extend/addon/hzaddons/workflow/workflow.php:2498 +#: ../../extend/addon/hzaddons/workflow/workflow.php:2506 msgid "Link" msgstr "Ссылка" -#: ../../extend/addon/hzaddons/workflow/workflow.php:2500 +#: ../../extend/addon/hzaddons/workflow/workflow.php:2508 msgid "Web link." msgstr "Веб-ссылка." -#: ../../extend/addon/hzaddons/workflow/workflow.php:2521 -#: ../../extend/addon/hzaddons/workflow/workflow.php:2576 +#: ../../extend/addon/hzaddons/workflow/workflow.php:2529 +#: ../../extend/addon/hzaddons/workflow/workflow.php:2584 msgid "Brief description or title" msgstr "Подробное описание или заголовок" -#: ../../extend/addon/hzaddons/workflow/workflow.php:2529 -#: ../../extend/addon/hzaddons/workflow/workflow.php:2584 +#: ../../extend/addon/hzaddons/workflow/workflow.php:2537 +#: ../../extend/addon/hzaddons/workflow/workflow.php:2592 msgid "Notes and Info" msgstr "Замечания и информация" -#: ../../extend/addon/hzaddons/workflow/workflow.php:2582 +#: ../../extend/addon/hzaddons/workflow/workflow.php:2590 msgid "Body" msgstr "Текст" diff --git a/view/ru/hstrings.php b/view/ru/hstrings.php index f2781e874..5dc136e3d 100644 --- a/view/ru/hstrings.php +++ b/view/ru/hstrings.php @@ -665,6 +665,9 @@ App::$strings["A channel name is required."] = "Требуется назван App::$strings["This is a "] = "Это "; App::$strings[" channel name"] = " название канала"; App::$strings["Back to reply"] = "Вернуться к ответу"; +App::$strings["Pinned"] = "Прикреплено"; +App::$strings["Pin to the top"] = "Прикрепить сверху"; +App::$strings["Unpin from the top"] = "Открепить"; App::$strings["%d minutes"] = array( 0 => "%d минуту", 1 => "%d минуты", @@ -949,7 +952,7 @@ App::$strings["Send Reply"] = "Отправить ответ"; App::$strings["Your message for %s (%s):"] = "Ваше сообщение для %s (%s):"; App::$strings["This setting requires special processing and editing has been blocked."] = "Этот параметр требует специальной обработки и редактирования и был заблокирован."; App::$strings["Configuration Editor"] = "Редактор конфигурации"; -App::$strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Предупреждение. Изменение некоторых настроек может привести к неработоспособности вашего канала. Пожалуйста, покиньте эту страницу, если вы точно не значете, как правильно использовать эту функцию."; +App::$strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Предупреждение. Изменение некоторых настроек может привести к неработоспособности вашего канала. Пожалуйста, покиньте эту страницу, если вы точно не знаете, как правильно использовать эту функцию."; App::$strings["Could not access contact record."] = "Не удалось получить доступ к записи контакта."; App::$strings["Settings updated."] = "Настройки обновлены."; App::$strings["Default Permissions App"] = "Приложение \"Разрешения по умолчанию\""; @@ -2586,6 +2589,19 @@ App::$strings["New Message"] = "Новое сообщение"; App::$strings["Add new page"] = "Добавить новую страницу"; App::$strings["Wiki Pages"] = "Wiki страницы"; App::$strings["Page name"] = "Название страницы"; +App::$strings["I will attend"] = "Я буду участвовать"; +App::$strings["I will not attend"] = "Я не буду участвовать"; +App::$strings["I might attend"] = "Я возможно буду присутствовать"; +App::$strings["I agree"] = "Я согласен"; +App::$strings["I disagree"] = "Я не согласен"; +App::$strings["I abstain"] = "Я воздержался"; +App::$strings["Share This"] = "Поделиться этим"; +App::$strings["share"] = "поделиться"; +App::$strings["View %s's profile - %s"] = "Просмотр профиля %s - %s"; +App::$strings["via"] = "через"; +App::$strings["Attendance Options"] = "Параметры посещаемости"; +App::$strings["Voting Options"] = "Параметры голосования"; +App::$strings["Pinned post"] = "Прикреплённая заметка"; App::$strings["Events Tools"] = "Инструменты для событий"; App::$strings["Export Calendar"] = "Экспортировать календарь"; App::$strings["Import Calendar"] = "Импортировать календарь"; @@ -2780,33 +2796,21 @@ 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"] = "Я возможно буду присутствовать"; -App::$strings["I agree"] = "Я согласен"; -App::$strings["I disagree"] = "Я не согласен"; -App::$strings["I abstain"] = "Я воздержался"; App::$strings["Add Tag"] = "Добавить тег"; App::$strings["Reply on this comment"] = "Ответить на этот комментарий"; App::$strings["reply"] = "ответить"; App::$strings["Reply to"] = "Ответить"; -App::$strings["Share This"] = "Поделиться этим"; -App::$strings["share"] = "поделиться"; App::$strings["Delivery Report"] = "Отчёт о доставке"; App::$strings["%d comment"] = array( 0 => "%d комментарий", 1 => "%d комментария", 2 => "%d комментариев", ); -App::$strings["View %s's profile - %s"] = "Просмотр профиля %s - %s"; App::$strings["to"] = "к"; -App::$strings["via"] = "через"; App::$strings["Wall-to-Wall"] = "Стена-к-Стене"; App::$strings["via Wall-To-Wall:"] = "через Стена-к-Стене:"; App::$strings["Attend"] = "Посетить"; -App::$strings["Attendance Options"] = "Параметры посещаемости"; App::$strings["Vote"] = "Голосовать"; -App::$strings["Voting Options"] = "Параметры голосования"; App::$strings["Go to previous comment"] = "Перейти к предыдущему комментарию"; App::$strings["Save Bookmarks"] = "Сохранить закладки"; App::$strings["Add to Calendar"] = "Добавить в календарь"; diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl index 6ae24a487..484554971 100755 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -30,6 +30,9 @@ {{if $item.thr_parent}} <a href="javascript:doscroll('{{$item.thr_parent}}',{{$item.parent}});" title="{{$item.top_hint}}" class="float-right"><i class="fa fa-angle-double-up"> </i></a> {{/if}} + {{if $item.pinned}} + <span class="float-right wall-item-pinned" title="{{$item.pinned}}" id="wall-item-pinned-{{$item.id}}"><i class="fa fa-thumb-tack"> </i></span> + {{/if}} <div class="wall-item-info" id="wall-item-info-{{$item.id}}" > <div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}} h-card p-author" id="wall-item-photo-wrapper-{{$item.id}}"> <img src="{{$item.thumb}}" class="fakelink wall-item-photo{{$item.sparkle}} u-photo p-name" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" data-toggle="dropdown" /> @@ -168,6 +171,9 @@ {{if $item.filer}} <a class="dropdown-item" href="#" onclick="itemFiler({{$item.id}}); return false;"><i id="filer-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-folder-open" title="{{$item.filer}}"></i>{{$item.filer}}</a> {{/if}} + {{if $item.pinnable}} + <a class="dropdown-item dropdown-item-pinnable" href="#" onclick="dopin({{$item.id}}); return false;" title="{{$item.pinme}}" id="item-pinnable-{{$item.id}}"><i class="generic-icons-nav fa fa-fw fa-thumb-tack"></i>{{$item.pinme}}</a> + {{/if}} {{if $item.bookmark}} <a class="dropdown-item" href="#" onclick="itemBookmark({{$item.id}}); return false;"><i id="bookmarker-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-bookmark" title="{{$item.bookmark}}"></i>{{$item.bookmark}}</a> {{/if}} diff --git a/view/tpl/js_strings.tpl b/view/tpl/js_strings.tpl index 440676dee..58426e20c 100755 --- a/view/tpl/js_strings.tpl +++ b/view/tpl/js_strings.tpl @@ -33,7 +33,10 @@ 'name_empty' : "{{$name_empty}}", 'name_ok1' : "{{$name_ok1}}", 'name_ok2' : "{{$name_ok2}}", - 'to_reply' : "{{$to_reply}}", + 'to_reply' : "{{$to_reply}}", + 'pinned' : "{{$pinned}}", + 'pin_item' : "{{$pin_item}}", + 'unpin_item' : "{{$unpin_item}}", 'plural_func' : "{{$plural_func}}", diff --git a/view/tpl/pinned_item.tpl b/view/tpl/pinned_item.tpl new file mode 100644 index 000000000..0dad276d0 --- /dev/null +++ b/view/tpl/pinned_item.tpl @@ -0,0 +1,196 @@ +{{if $hide}} +<script> + function dopinhide(id) { + id = id.toString(); + if($('#pinned-wrapper-' + id).length) { + $('#pinned-wrapper-' + id).fadeTo('fast', 0.33, function() { this.remove(); }); + $.post('pin/hide', { 'id' : id }); + } + } +</script> +{{/if}} +<div id="pinned-wrapper-{{$id}}" class="thread-wrapper toplevel_item generic-content-wrapper h-entry" data-b64mids='{{$mids}}'> + <div class="wall-item-outside-wrapper" id="pinned-item-outside-wrapper-{{$id}}"> + <div class="clearfix wall-item-content-wrapper" id="pinned-item-content-wrapper-{{$id}}"> + {{if $photo}} + <div class="wall-photo-item" id="pinned-photo-item-{{$id}}"> + {{$photo}} + </div> + {{/if}} + {{if $event}} + <div class="wall-event-item" id="pinned-event-item-{{$id}}"> + {{$event}} + </div> + {{/if}} + {{if $title && !$event}} + <div class="p-2{{if $is_new}} bg-primary text-white{{/if}} wall-item-title h3{{if !$photo}} rounded-top{{/if}}" id="pinned-item-title-{{$id}}"> + {{if $title_tosource}} + {{if $plink}} + <a href="{{$plink.href}}" title="{{$title}} ({{$plink.title}})" rel="nofollow"> + {{/if}} + {{/if}} + {{$title}} + {{if $title_tosource}} + {{if $plink}} + </a> + {{/if}} + {{/if}} + </div> + {{if ! $is_new}} + <hr class="m-0"> + {{/if}} + {{/if}} + <div class="p-2 clearfix wall-item-head{{if !$title && !$event && !$photo}} rounded-top{{/if}}{{if $is_new && !$event}} wall-item-head-new{{/if}}"> + <span class="float-right wall-item-pinned" title="{{$pinned}}"><i class="fa fa-thumb-tack"> </i></span> + <div class="wall-item-info" id="pinned-item-info-{{$id}}" > + <div class="wall-item-photo-wrapper{{if $owner_url}} wwfrom{{/if}} h-card p-author" id="pinned-item-photo-wrapper-{{$id}}"> + <img src="{{$thumb}}" class="fakelink wall-item-photo u-photo p-name" id="pinned-item-photo-{{$id}}" alt="{{$name}}" data-toggle="dropdown" /> + {{if $thread_author_menu}} + <i class="fa fa-caret-down wall-item-photo-caret cursor-pointer" data-toggle="dropdown"></i> + <div class="dropdown-menu"> + {{foreach $thread_author_menu as $mitem}} + <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} >{{$mitem.title}}</a> + {{/foreach}} + </div> + {{/if}} + </div> + </div> + <div class="wall-item-author"> + <a href="{{$profile_url}}" title="{{$linktitle}}" class="wall-item-name-link u-url"><span class="wall-item-name" id="pinned-item-name-{{$id}}" >{{$name}}</span></a>{{if $owner_url}} {{$via}} <a href="{{$owner_url}}" title="{{$olinktitle}}" class="wall-item-name-link"><span class="wall-item-name" id="pinned-item-ownername-{{$id}}">{{$owner_name}}</span></a>{{/if}} + </div> + <div class="wall-item-ago" id="pinned-item-ago-{{$id}}"> + {{if $verified}}<i class="fa fa-check item-verified" title="{{$verified}}"></i> {{elseif $forged}}<i class="fa fa-exclamation item-forged" title="{{$forged}}"></i> {{/if}}{{if $location}}<span class="wall-item-location p-location" id="pinned-item-location-{{$id}}">{{$location}}, </span>{{/if}}<span class="autotime" title="{{$isotime}}"><time class="dt-published" datetime="{{$isotime}}">{{$localtime}}</time>{{if $editedtime}} {{$editedtime}}{{/if}}{{if $expiretime}} {{$expiretime}}{{/if}}</span>{{if $editedtime}} <i class="fa fa-pencil"></i>{{/if}} {{if $app}}<span class="item.app">{{$str_app}}</span>{{/if}} + </div> + </div> + {{if $divider}} + <hr class="wall-item-divider"> + {{/if}} + {{if $body}} + <div class="p-2 wall-item-content clearfix" id="pinned-item-content-{{$id}}"> + <div class="wall-item-body e-content" id="pinned-item-body-{{$id}}" > + {{$body}} + </div> + </div> + {{/if}} + {{if $has_tags}} + <div class="p-2 wall-item-tools clearfix"> + <div class="body-tags"> + <span class="tag">{{$mentions}} {{$tags}} {{$categories}} {{$folders}}</span> + </div> + </div> + {{/if}} + <div class="p-2 clearfix wall-item-tools"> + <div class="float-right wall-item-tools-right"> + <div class="btn-group"> + <div id="pinned-rotator-{{$id}}" class="spinner-wrapper"> + <div class="spinner s"></div> + </div> + </div> + <div class="btn-group"> + {{if $isevent}} + <div class="btn-group"> + <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="pinned-item-attend-menu-{{$id}}" title="{{$attend_title}}"> + <i class="fa fa-calendar-check-o"></i> + </button> + <div class="dropdown-menu dropdown-menu-right"> + <a class="dropdown-item" href="#" title="{{$attend.0}}" onclick="itemAddToCal({{$id}}); dolike({{$id}},'attendyes'); return false;"> + <i class="item-act-list fa fa-check{{if $my_responses.attend}} ivoted{{/if}}" ></i> {{$attend.0}} + </a> + <a class="dropdown-item" href="#" title="{{$attend.1}}" onclick="itemAddToCal({{$id}}), dolike({{$id}},'attendno'); return false;"> + <i class="item-act-list fa fa-times{{if $my_responses.attendno}} ivoted{{/if}}" ></i> {{$attend.1}} + </a> + <a class="dropdown-item" href="#" title="{{$attend.2}}" onclick="itemAddToCal({{$id}}); dolike({{$id}},'attendmaybe'); return false;"> + <i class="item-act-list fa fa-question{{if $my_responses.attendmaybe}} ivoted{{/if}}" ></i> {{$attend.2}} + </a> + </div> + </div> + {{/if}} + {{if $canvote}} + <div class="btn-group"> + <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="pinned-item-consensus-menu-{{$id}}" title="{{$vote_title}}"> + <i class="fa fa-check-square-o"></i> + </button> + <div class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="wall-item-consensus-menu-{{$id}}"> + <a class="dropdown-item" href="#" title="{{$conlabels.0}}" onclick="dolike({{$id}},'agree'); return false;"> + <i class="item-act-list fa fa-check{{if $my_responses.agree}} ivoted{{/if}}" ></i> {{$conlabels.0}} + </a> + <a class="dropdown-item" href="#" title="{{$conlabels.1}}" onclick="dolike({{$id}},'disagree'); return false;"> + <i class="item-act-list fa fa-times{{if $my_responses.disagree}} ivoted{{/if}}" ></i> {{$conlabels.1}} + </a> + <a class="dropdown-item" href="#" title="{{$conlabels.2}}" onclick="dolike({{$id}},'abstain'); return false;"> + <i class="item-act-list fa fa-question{{if $my_responses.abstain}} ivoted{{/if}}" ></i> {{$conlabels.2}} + </a> + </div> + </div> + {{/if}} + <div class="btn-group"> + <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" id="pinned-item-menu-{{$id}}"> + <i class="fa fa-cog"></i> + </button> + <div class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="wall-item-menu-{{$id}}"> + {{if $share}} + <a class="dropdown-item" href="#" onclick="jotShare({{$id}},{{$item_type}}); return false;"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$share.0}}"></i>{{$share.0}}</a> + {{/if}} + {{if $embed}} + <a class="dropdown-item" href="#" onclick="jotEmbed({{$id}},{{$item_type}}); return false;"><i class="generic-icons-nav fa fa-fw fa-share" title="{{$embed.0}}"></i>{{$embed.0}}</a> + {{/if}} + {{if $plink}} + <a class="dropdown-item" href="{{$plink.href}}" title="{{$plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$plink.title}}</a> + {{/if}} + {{if $hide}} + <a class="dropdown-item" href="#" onclick="dopinhide({{$id}}); return false;" class="u-url"><i class="generic-icons-nav fa fa-fw fa-remove"></i>{{$hide}}</a> + {{/if}} + + </div> + </div> + </div> + </div> + {{if $responses || $attachments}} + <div class="wall-item-tools-left btn-group" id="pinned-item-tools-left-{{$id}}"> + {{if $attachments}} + <div class="wall-item-tools-left btn-group" id="pinned-item-tools-left-{{$id}}"> + <div class="btn-group"> + <button type="button" class="btn btn-outline-secondary btn-sm wall-item-like dropdown-toggle" data-toggle="dropdown" id="pinned-attachment-menu-{{$id}}"> + <i class="fa fa-paperclip"></i> + </button> + <div class="dropdown-menu">{{$attachments}}</div> + </div> + </div> + {{/if}} + {{foreach $responses as $verb=>$response}} + {{if $response.count}} + <div class="btn-group"> + <button type="button" class="btn btn-outline-secondary btn-sm wall-item-like dropdown-toggle"{{if $response.modal}} data-toggle="modal" data-target="#{{$verb}}Modal-{{$id}}"{{else}} data-toggle="dropdown"{{/if}} id="pinned-item-{{$verb}}-{{$id}}">{{$response.count}} {{$response.button}}</button> + {{if $response.modal}} + <div class="modal" id="pinned-{{$verb}}Modal-{{$id}}"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <h3 class="modal-title">{{$response.count}} {{$response.button}}</h3> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + </div> + <div class="modal-body response-list"> + <ul class="nav nav-pills flex-column"> + {{foreach $response.list as $liker}}<li class="nav-item">{{$liker}}</li>{{/foreach}} + </ul> + </div> + <div class="modal-footer clear"> + <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">{{$modal_dismiss}}</button> + </div> + </div> + </div> + </div> + {{else}} + <div class="dropdown-menu"> + {{foreach $response.list as $liker}}{{$liker}}{{/foreach}} + </div> + {{/if}} + </div> + {{/if}} + {{/foreach}} + </div> + {{/if}} + </div> + </div> + </div> +</div> |