Compare commits
82 Commits
Author | SHA1 | Date | |
---|---|---|---|
9f83668192 | |||
79e7c2d3e8 | |||
d30ebebd1d | |||
6c4afc7bf4 | |||
|
e28db58c66 | ||
|
bbb4b1eb60 | ||
|
022eec92f1 | ||
|
45371fb4d5 | ||
|
be7029942d | ||
|
fcbf2c0c2b | ||
|
a17210516a | ||
|
a4005b8fa5 | ||
|
7d07dd9861 | ||
|
7f41ca5729 | ||
|
425a114596 | ||
|
face712d60 | ||
|
e61c4e9a76 | ||
|
106e367c11 | ||
|
78021d065e | ||
|
9247defd44 | ||
|
54975015b4 | ||
|
700eebea7c | ||
|
d08934c249 | ||
|
3666f7380e | ||
|
444cce2c3b | ||
|
6866a32026 | ||
|
a9e3c718b7 | ||
|
f13ab7323f | ||
|
035014b531 | ||
|
0eff0c80ff | ||
|
b9de437472 | ||
|
662122af0f | ||
|
60f207aa72 | ||
|
3ea6c031d3 | ||
|
f8e742aaad | ||
|
b21036d42c | ||
|
a167d787d6 | ||
|
35b3e67480 | ||
|
1f27c43401 | ||
|
dc9712b8d7 | ||
|
7db769e2c9 | ||
|
a8e8a4b33b | ||
|
015927621d | ||
|
2f5402adef | ||
|
ef15c7c9c6 | ||
|
8d8ad93a0c | ||
|
e31ee7aac8 | ||
|
6ff41e3153 | ||
|
8b821b79f2 | ||
|
5fa918eeed | ||
|
79f96f0f73 | ||
|
d25b1854c1 | ||
|
0bd31b44e2 | ||
|
a4bdee92e9 | ||
|
cec634f99d | ||
|
25424a9afb | ||
|
1f31150932 | ||
|
155195c529 | ||
|
88d7b5037d | ||
|
bc5f327a86 | ||
|
6afc6a16be | ||
|
7ee2e27bf2 | ||
|
d06790bffc | ||
|
9b7aa477ab | ||
|
9bb193f425 | ||
|
932aa61426 | ||
|
8c73ba372e | ||
|
d4c5c920ce | ||
|
b3f391ee20 | ||
|
f39dc08822 | ||
|
a13500adb0 | ||
|
b989b8ef31 | ||
|
79824422c2 | ||
|
3968aba9c3 | ||
|
a37a4cb9f9 | ||
|
70ab099e2f | ||
|
1cc5fcb5ba | ||
|
a227a393d2 | ||
|
6f6ec5c098 | ||
|
aee1b9ec0f | ||
|
65c18a252c | ||
|
15b9a3b8ca |
|
@ -131,7 +131,7 @@ class QvitterPlugin extends Plugin {
|
|||
}
|
||||
|
||||
|
||||
function onCheckSchema()
|
||||
function onCheckSchema(): bool
|
||||
{
|
||||
$schema = Schema::get();
|
||||
|
||||
|
@ -151,7 +151,7 @@ class QvitterPlugin extends Plugin {
|
|||
return true;
|
||||
}
|
||||
|
||||
public function onBeforePluginCheckSchema()
|
||||
public function onBeforePluginCheckSchema(): bool
|
||||
{
|
||||
QvitterNotification::beforeSchemaUpdate();
|
||||
return true;
|
||||
|
@ -160,6 +160,10 @@ class QvitterPlugin extends Plugin {
|
|||
// route/reroute urls
|
||||
public function onRouterInitialized($m)
|
||||
{
|
||||
|
||||
$m->connect('api/qvitter/statuses/user_timeline.:format',
|
||||
array('action' => 'ApiQvitterTimelineUser',
|
||||
'format' => '(xml|json|rss|atom|as)'));
|
||||
$m->connect(':nickname/mutes',
|
||||
array('action' => 'qvitter',
|
||||
'nickname' => Nickname::INPUT_FMT));
|
||||
|
@ -371,6 +375,10 @@ class QvitterPlugin extends Plugin {
|
|||
array('action' => 'shownotice'),
|
||||
array('notice' => '[0-9]+'),
|
||||
'qvitter');
|
||||
URLMapperOverwrite::overwrite_variable($m, 'user/:id',
|
||||
array('action' => 'userbyid'),
|
||||
array('id' => '[0-9]+'),
|
||||
'qvitter');
|
||||
URLMapperOverwrite::overwrite_variable($m, 'conversation/:id',
|
||||
array('action' => 'conversation'),
|
||||
array('id' => '[0-9]+'),
|
||||
|
@ -397,6 +405,7 @@ class QvitterPlugin extends Plugin {
|
|||
case 'api/favorites.json':
|
||||
case 'api/statuses/friends_timeline.json':
|
||||
case 'api/statuses/user_timeline.json':
|
||||
case 'api/qvitter/statuses/user_timeline.json':
|
||||
|
||||
// add logged in user's user array
|
||||
if (common_logged_in() && !isset($_GET['screen_name']) && !isset($_GET['id'])) {
|
||||
|
@ -409,13 +418,17 @@ class QvitterPlugin extends Plugin {
|
|||
|
||||
if(isset($_GET['screen_name'])) {
|
||||
$user = User::getKV('nickname', $_GET['screen_name']);
|
||||
if($user instanceof User) {
|
||||
$profile = $user->getProfile();
|
||||
}
|
||||
}
|
||||
elseif(isset($_GET['id'])) {
|
||||
$profile = Profile::getKV('id', $_GET['id']);
|
||||
$user = User::getKV('id', $_GET['id']);
|
||||
}
|
||||
|
||||
if($user instanceof User) {
|
||||
header('Qvitter-User-Array: '.json_encode($this->qvitterTwitterUserArray($user->getProfile())));
|
||||
if(isset($profile) && $profile instanceof Profile) {
|
||||
header('Qvitter-User-Array: '.json_encode($this->qvitterTwitterUserArray($profile)));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -472,7 +485,7 @@ class QvitterPlugin extends Plugin {
|
|||
* @return boolean hook return
|
||||
*/
|
||||
|
||||
function onEndAccountSettingsNav($action)
|
||||
function onEndAccountSettingsNav($action): bool
|
||||
{
|
||||
$action_name = $action->trimmed('action');
|
||||
|
||||
|
@ -494,7 +507,7 @@ class QvitterPlugin extends Plugin {
|
|||
* @return boolean hook return
|
||||
*/
|
||||
|
||||
function onEndAdminPanelNav($action)
|
||||
function onEndAdminPanelNav($action): bool
|
||||
{
|
||||
|
||||
$action_name = $action->trimmed('action');
|
||||
|
@ -555,7 +568,7 @@ class QvitterPlugin extends Plugin {
|
|||
$enclosure_o = $attachment->getEnclosure();
|
||||
|
||||
// Oembed
|
||||
if(array_key_exists('Oembed', StatusNet::getActivePlugins())) {
|
||||
if(array_key_exists('Oembed', GNUsocial::getActiveModules())) {
|
||||
$oembed = File_oembed::getKV('file_id',$attachment->id);
|
||||
if($oembed instanceof File_oembed) {
|
||||
$oembed_html = str_replace('<!--//-->','',$oembed->html); // trash left of wordpress' javascript after htmLawed removed the tags
|
||||
|
@ -662,8 +675,8 @@ class QvitterPlugin extends Plugin {
|
|||
|
||||
// if this attachment has an url this might be a notice url
|
||||
if (isset($attachment['url'])) {
|
||||
$noticeurl = common_path('notice/', StatusNet::isHTTPS());
|
||||
$instanceurl = common_path('', StatusNet::isHTTPS());
|
||||
$noticeurl = common_path('notice/', GNUsocial::isHTTPS());
|
||||
$instanceurl = common_path('', GNUsocial::isHTTPS());
|
||||
|
||||
// remove protocol for the comparison below
|
||||
$noticeurl_wo_protocol = preg_replace('(^https?://)', '', $noticeurl);
|
||||
|
@ -816,7 +829,7 @@ class QvitterPlugin extends Plugin {
|
|||
* @return boolean hook return
|
||||
*/
|
||||
|
||||
function onTwitterUserArray($profile, &$twitter_user, $scoped)
|
||||
function onTwitterUserArray($profile, &$twitter_user, $scoped): bool
|
||||
{
|
||||
|
||||
$twitter_user['cover_photo'] = Profile_prefs::getConfigData($profile, 'qvitter', 'cover_photo');
|
||||
|
@ -931,7 +944,7 @@ class QvitterPlugin extends Plugin {
|
|||
/**
|
||||
* Mark single notification as seen
|
||||
*/
|
||||
public function markNotificationAsSeen($notice_id, $to_profile_id, $ntype)
|
||||
public static function markNotificationAsSeen($notice_id, $to_profile_id, $ntype)
|
||||
{
|
||||
$notification_to_mark_as_seen = QvitterNotification::pkeyGet(array(
|
||||
'is_seen' => 0,
|
||||
|
@ -951,7 +964,7 @@ class QvitterPlugin extends Plugin {
|
|||
/**
|
||||
* Remove likes in notification table on dislike
|
||||
*/
|
||||
public function onEndDisfavorNotice($profile, $notice)
|
||||
public function onEndDisfavorNotice($profile, $notice): bool
|
||||
{
|
||||
$notif = new QvitterNotification();
|
||||
$notif->from_profile_id = $profile->id;
|
||||
|
@ -968,7 +981,7 @@ class QvitterPlugin extends Plugin {
|
|||
*
|
||||
* @return boolean hook flag
|
||||
*/
|
||||
function onStartNoticeDistribute($notice) {
|
||||
function onStartNoticeDistribute($notice): bool {
|
||||
|
||||
assert($notice->id > 0); // since we removed tests below
|
||||
|
||||
|
@ -1048,7 +1061,7 @@ class QvitterPlugin extends Plugin {
|
|||
*
|
||||
* @return boolean hook flag
|
||||
*/
|
||||
public function onNoticeDeleteRelated($notice)
|
||||
public function onNoticeDeleteRelated($notice): bool
|
||||
{
|
||||
|
||||
$notif = new QvitterNotification();
|
||||
|
@ -1080,7 +1093,7 @@ class QvitterPlugin extends Plugin {
|
|||
$user_is_deleted = true;
|
||||
}
|
||||
|
||||
if(!$user_is_deleted && class_exists('StatusNet') && !array_key_exists('ActivityModeration', StatusNet::getActivePlugins())) {
|
||||
if(!$user_is_deleted && class_exists('GNUsocial') && !array_key_exists('ActivityModeration', GNUsocial::getActiveModules())) {
|
||||
$rendered = sprintf(_m('<a href="%1$s">%2$s</a> deleted notice <a href="%3$s">{{%4$s}}</a>.'),
|
||||
htmlspecialchars($profile->getUrl()),
|
||||
htmlspecialchars($profile->getBestName()),
|
||||
|
@ -1116,9 +1129,9 @@ class QvitterPlugin extends Plugin {
|
|||
* @return boolean hook flag
|
||||
*/
|
||||
|
||||
public function onEndHandleFeedEntry($activity) {
|
||||
public function onEndHandleFeedEntry($activity): bool {
|
||||
|
||||
if($activity->verb == 'qvitter-delete-notice' && class_exists('StatusNet') && !array_key_exists('ActivityModeration', StatusNet::getActivePlugins())) {
|
||||
if($activity->verb == 'qvitter-delete-notice' && class_exists('GNUsocial') && !array_key_exists('ActivityModeration', GNUsocial::getActiveModules())) {
|
||||
|
||||
$deleter_profile_uri = $activity->actor->id;
|
||||
$deleted_notice_uri = $activity->objects[0]->objects[0]->content;
|
||||
|
@ -1157,7 +1170,7 @@ class QvitterPlugin extends Plugin {
|
|||
*
|
||||
* @return boolean hook flag
|
||||
*/
|
||||
public function onEndSubscribe($subscriber, $other)
|
||||
public function onEndSubscribe($subscriber, $other): bool
|
||||
{
|
||||
if(Subscription::exists($subscriber, $other)) {
|
||||
$this->insertNotification($other->id, $subscriber->id, 'follow', 1);
|
||||
|
@ -1165,7 +1178,7 @@ class QvitterPlugin extends Plugin {
|
|||
|
||||
return true;
|
||||
}
|
||||
public function onEndUnsubscribe($subscriber, $other)
|
||||
public function onEndUnsubscribe($subscriber, $other): bool
|
||||
{
|
||||
if(!Subscription::exists($subscriber, $other)) {
|
||||
$notif = new QvitterNotification();
|
||||
|
@ -1183,7 +1196,7 @@ class QvitterPlugin extends Plugin {
|
|||
*
|
||||
* @return boolean hook flag
|
||||
*/
|
||||
public function onEndLoadDoc($title, &$output)
|
||||
public function onEndLoadDoc($title, &$output): bool
|
||||
{
|
||||
|
||||
if($title == 'faq') {
|
||||
|
@ -1208,7 +1221,7 @@ class QvitterPlugin extends Plugin {
|
|||
*
|
||||
* @return boolean hook flag
|
||||
*/
|
||||
public function onStartPrimaryNav($action)
|
||||
public function onStartPrimaryNav($action): bool
|
||||
{
|
||||
|
||||
$action->menuItem(common_local_url('doc', array('title' => 'faq')),
|
||||
|
@ -1228,7 +1241,7 @@ class QvitterPlugin extends Plugin {
|
|||
*
|
||||
* @return boolean hook flag
|
||||
*/
|
||||
public function onStartUserRegister($profile)
|
||||
public function onStartUserRegister($profile): bool
|
||||
{
|
||||
|
||||
if(is_array(self::settings("blocked_ips"))) {
|
||||
|
@ -1247,7 +1260,7 @@ class QvitterPlugin extends Plugin {
|
|||
*
|
||||
* @return boolean hook flag
|
||||
*/
|
||||
public function onEndFindMentions($sender, $text, &$mentions) {
|
||||
public function onEndFindMentions($sender, $text, &$mentions): bool {
|
||||
|
||||
// get the correct group profiles
|
||||
if(isset($_POST['post_to_groups'])) {
|
||||
|
@ -1285,7 +1298,7 @@ class QvitterPlugin extends Plugin {
|
|||
*
|
||||
* @return boolean hook flag
|
||||
*/
|
||||
public function onEndSetApiUser($user) {
|
||||
public function onEndSetApiUser($user): bool {
|
||||
|
||||
// cleanup sessions, to allow for simultaneous http-requests,
|
||||
// e.g. if posting a notice takes a very long time
|
||||
|
@ -1356,7 +1369,7 @@ class QvitterPlugin extends Plugin {
|
|||
}
|
||||
|
||||
|
||||
function onPluginVersion(array &$versions)
|
||||
function onPluginVersion(array &$versions): bool
|
||||
{
|
||||
$versions[] = array('name' => 'Qvitter',
|
||||
'version' => '5-alpha',
|
||||
|
@ -1404,7 +1417,7 @@ class QvitterPlugin extends Plugin {
|
|||
}
|
||||
}
|
||||
if($largest_avatar['size']>0) {
|
||||
$origurl = common_path('', StatusNet::isHTTPS()).$largest_avatar['name'];
|
||||
$origurl = common_path('', GNUsocial::isHTTPS()).$largest_avatar['name'];
|
||||
} else {
|
||||
$origurl = $twitter_user['profile_image_url_profile_size'];
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
· ·
|
||||
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
|
||||
|
||||
require_once INSTALLDIR . '/lib/util/tempfile.php';
|
||||
|
||||
if (!defined('GNUSOCIAL')) {
|
||||
exit(1);
|
||||
|
@ -93,12 +94,13 @@ class ApiAccountUpdateProfileBannerAction extends ApiAuthAction
|
|||
$this->img = str_replace(' ', '+', $this->img);
|
||||
$this->img = base64_decode($this->img, true);
|
||||
|
||||
$fh = tmpfile();
|
||||
fwrite($fh, $this->img);
|
||||
$fh = new TemporaryFile('gs-mediaupload');
|
||||
fwrite($fh->getResource(), $this->img);
|
||||
unset($this->img);
|
||||
fseek($fh, 0);
|
||||
|
||||
$mediafile = MediaFile::fromFilehandle($fh, $this->scoped);
|
||||
fflush($fh->getResouce());
|
||||
$mediafile = MediaFile::fromFileInfo($fh, $this->scoped);
|
||||
unset($fh);
|
||||
}
|
||||
|
||||
// maybe resize
|
||||
|
|
|
@ -46,15 +46,23 @@ class ApiExternalUserShowAction extends ApiPrivateAuthAction
|
|||
{
|
||||
parent::prepare($args);
|
||||
|
||||
$this->format = 'json';
|
||||
$this->format = 'json';
|
||||
|
||||
$profileurl = urldecode($this->arg('profileurl'));
|
||||
$nickname = urldecode($this->arg('nickname'));
|
||||
|
||||
$this->profile = new stdClass();
|
||||
$this->profile->external = null;
|
||||
$this->profile->external = null;
|
||||
$this->profile->local = null;
|
||||
|
||||
// the user might not exist in our db yet, try to use the Ostatus plugin
|
||||
// to get it in there
|
||||
$validate = new Validate();
|
||||
if ($validate->uri($profileurl)) {
|
||||
$ostatus_profile = Ostatus_profile::ensureProfileURL($profileurl);
|
||||
$local_profile = Profile::getKV('id',$ostatus_profile->profile_id);
|
||||
}
|
||||
|
||||
// we can get urls of two types of urls (1) ://instance/nickname
|
||||
// (2) ://instance/user/1234
|
||||
//
|
||||
|
@ -97,10 +105,14 @@ class ApiExternalUserShowAction extends ApiPrivateAuthAction
|
|||
}
|
||||
|
||||
// case (1)
|
||||
$local_profile = Profile::getKV('profileurl',$profileurl);
|
||||
if(!isset($local_profile)) {
|
||||
$local_profile = Profile::getKV('profileurl',$profileurl);
|
||||
}
|
||||
|
||||
if($local_profile instanceof Profile) {
|
||||
|
||||
$this->profile->local = $this->twitterUserArray($local_profile);
|
||||
|
||||
// if profile url is not ending with nickname, this is probably a single user instance
|
||||
if(!substr($local_profile->profileurl, -strlen($local_profile->nickname))===$local_profile->nickname) {
|
||||
$external_instance_url = $local_profile->profileurl;
|
||||
|
@ -117,7 +129,6 @@ class ApiExternalUserShowAction extends ApiPrivateAuthAction
|
|||
}
|
||||
|
||||
$this->profile->external = $external_profile;
|
||||
$this->profile->local = $this->twitterUserArray($local_profile);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -138,13 +149,9 @@ class ApiExternalUserShowAction extends ApiPrivateAuthAction
|
|||
{
|
||||
parent::handle();
|
||||
|
||||
if(is_null($this->profile->local) && is_null($this->profile->external)) {
|
||||
$this->clientError(_('List not found.'), 404);
|
||||
} else {
|
||||
$this->initDocument('json');
|
||||
$this->showJsonObjects($this->profile);
|
||||
$this->endDocument('json');
|
||||
}
|
||||
$this->initDocument('json');
|
||||
$this->showJsonObjects($this->profile);
|
||||
$this->endDocument('json');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -74,7 +74,7 @@ class ApiQvitterMutesAction extends ApiPrivateAuthAction
|
|||
{
|
||||
parent::handle();
|
||||
|
||||
$this->target = Profile::current();
|
||||
$this->target = $this->scoped;
|
||||
|
||||
if(!$this->target instanceof Profile) {
|
||||
$this->clientError(_('You have to be logged in to view your mutes.'), 403);
|
||||
|
|
|
@ -74,8 +74,8 @@ class ApiQvitterOembedNoticeAction extends ApiAction
|
|||
{
|
||||
parent::handle();
|
||||
|
||||
$noticeurl = common_path('notice/', StatusNet::isHTTPS());
|
||||
$instanceurl = common_path('', StatusNet::isHTTPS());
|
||||
$noticeurl = common_path('notice/', GNUsocial::isHTTPS());
|
||||
$instanceurl = common_path('', GNUsocial::isHTTPS());
|
||||
|
||||
// remove protocol for the comparison below
|
||||
$noticeurl_wo_protocol = preg_replace('(^https?://)', '', $noticeurl);
|
||||
|
|
181
actions/apiqvittertimelineuser.php
Normal file
181
actions/apiqvittertimelineuser.php
Normal file
|
@ -0,0 +1,181 @@
|
|||
<?php
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
· ·
|
||||
· Show timelines for both local and remote users ·
|
||||
· ·
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
· ·
|
||||
· ·
|
||||
· Q V I T T E R ·
|
||||
· ·
|
||||
· https://git.gnu.io/h2p/Qvitter ·
|
||||
· ·
|
||||
· ·
|
||||
· <o) ·
|
||||
· /_//// ·
|
||||
· (____/ ·
|
||||
· (o< ·
|
||||
· o> \\\\_\ ·
|
||||
· \\) \____) ·
|
||||
· ·
|
||||
· ·
|
||||
· ·
|
||||
· Qvitter is free software: you can redistribute it and / or modify it ·
|
||||
· under the terms of the GNU Affero General Public License as published by ·
|
||||
· the Free Software Foundation, either version three of the License or (at ·
|
||||
· your option) any later version. ·
|
||||
· ·
|
||||
· Qvitter is distributed in hope that it will be useful but WITHOUT ANY ·
|
||||
· WARRANTY; without even the implied warranty of MERCHANTABILTY or FITNESS ·
|
||||
· FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for ·
|
||||
· more details. ·
|
||||
· ·
|
||||
· You should have received a copy of the GNU Affero General Public License ·
|
||||
· along with Qvitter. If not, see <http://www.gnu.org/licenses/>. ·
|
||||
· ·
|
||||
· Contact h@nnesmannerhe.im if you have any questions. ·
|
||||
· ·
|
||||
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
|
||||
|
||||
if (!defined('GNUSOCIAL')) { exit(1); }
|
||||
|
||||
class ApiQvitterTimelineUserAction extends ApiBareAuthAction
|
||||
{
|
||||
var $notices = null;
|
||||
|
||||
var $next_id = null;
|
||||
|
||||
/**
|
||||
* Take arguments for running
|
||||
*
|
||||
* @param array $args $_REQUEST args
|
||||
*
|
||||
* @return boolean success flag
|
||||
*/
|
||||
protected function prepare(array $args=array())
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
$this->target = $this->getTargetProfile($this->arg('id'));
|
||||
|
||||
if (!($this->target instanceof Profile)) {
|
||||
// TRANS: Client error displayed requesting most recent notices for a non-existing user.
|
||||
$this->clientError(_('No such user.'), 404);
|
||||
}
|
||||
|
||||
// if (!$this->target->isLocal()) {
|
||||
// $this->serverError(_('Remote user timelines are not available here yet.'), 501);
|
||||
// }
|
||||
|
||||
$this->notices = $this->getNotices();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the request
|
||||
*
|
||||
* Just show the notices
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function handle()
|
||||
{
|
||||
parent::handle();
|
||||
|
||||
$this->showTimeline();
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the timeline of notices
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function showTimeline()
|
||||
{
|
||||
$this->showJsonTimeline($this->notices);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get notices
|
||||
*
|
||||
* @return array notices
|
||||
*/
|
||||
function getNotices()
|
||||
{
|
||||
$notices = array();
|
||||
|
||||
$notice = $this->target->getNotices(($this->page-1) * $this->count,
|
||||
$this->count + 1,
|
||||
$this->since_id,
|
||||
$this->max_id,
|
||||
$this->scoped);
|
||||
|
||||
while ($notice->fetch()) {
|
||||
if (count($notices) < $this->count) {
|
||||
$notices[] = clone($notice);
|
||||
} else {
|
||||
$this->next_id = $notice->id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $notices;
|
||||
}
|
||||
|
||||
/**
|
||||
* We expose AtomPub here, so non-GET/HEAD reqs must be read/write.
|
||||
*
|
||||
* @param array $args other arguments
|
||||
*
|
||||
* @return boolean true
|
||||
*/
|
||||
|
||||
function isReadOnly($args)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* When was this feed last modified?
|
||||
*
|
||||
* @return string datestamp of the latest notice in the stream
|
||||
*/
|
||||
function lastModified()
|
||||
{
|
||||
if (!empty($this->notices) && (count($this->notices) > 0)) {
|
||||
return strtotime($this->notices[0]->created);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* An entity tag for this stream
|
||||
*
|
||||
* Returns an Etag based on the action name, language, user ID, and
|
||||
* timestamps of the first and last notice in the timeline
|
||||
*
|
||||
* @return string etag
|
||||
*/
|
||||
function etag()
|
||||
{
|
||||
if (!empty($this->notices) && (count($this->notices) > 0)) {
|
||||
$last = count($this->notices) - 1;
|
||||
|
||||
return '"' . implode(
|
||||
':',
|
||||
array($this->arg('action'),
|
||||
common_user_cache_hash($this->scoped),
|
||||
common_language(),
|
||||
$this->target->getID(),
|
||||
strtotime($this->notices[0]->created),
|
||||
strtotime($this->notices[$last]->created))
|
||||
)
|
||||
. '"';
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -37,6 +37,7 @@
|
|||
· ·
|
||||
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
|
||||
|
||||
require_once INSTALLDIR . '/lib/util/tempfile.php';
|
||||
|
||||
if (!defined('GNUSOCIAL')) {
|
||||
exit(1);
|
||||
|
@ -90,15 +91,14 @@ class ApiUpdateAvatarAction extends ApiAuthAction
|
|||
|
||||
$imagefile = null;
|
||||
// write the image to a temporary file
|
||||
$fh = tmpfile();
|
||||
fwrite($fh, $this->img);
|
||||
$fh = new TemporaryFile('gs-mediaupload');
|
||||
fwrite($fh->getResource(), $this->img);
|
||||
unset($this->img); // no need to keep it in memory
|
||||
// seek back to position 0, so we don't read EOF directly
|
||||
fseek($fh, 0);
|
||||
// read the temporary file as an uploaded image, will store File object
|
||||
$mediafile = MediaFile::fromFilehandle($fh, $this->scoped);
|
||||
// Deletes the temporary file, if it was needed we stored it in fromFilehandle
|
||||
fclose($fh);
|
||||
fflush($fh->getResource());
|
||||
$mediafile = MediaFile::fromFileInfo($fh, $this->scoped);
|
||||
// Deletes the temporary file, if it was needed we stored it in fromFileInfo
|
||||
unset($fh);
|
||||
|
||||
// Now try to get it as an ImageFile since it has some handy functions
|
||||
$imagefile = ImageFile::fromFileObject($mediafile->fileRecord);
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
· ·
|
||||
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
|
||||
|
||||
require_once INSTALLDIR . '/lib/util/tempfile.php';
|
||||
|
||||
if (!defined('GNUSOCIAL')) {
|
||||
exit(1);
|
||||
|
@ -91,15 +92,15 @@ class ApiUpdateBackgroundImageAction extends ApiAuthAction
|
|||
$imagefile = null;
|
||||
|
||||
// put the image data in a temporary file
|
||||
$fh = tmpfile();
|
||||
fwrite($fh, $this->img);
|
||||
$fh = new TemporaryFile('gs-mediaupload')
|
||||
fwrite($fh->getResource(), $this->img);
|
||||
unset($this->img);
|
||||
fseek($fh, 0); // go to beginning just to be sure the content is read properly
|
||||
|
||||
// We get a MediaFile with a File object using the filehandle
|
||||
$mediafile = MediaFile::fromFilehandle($fh, $this->scoped);
|
||||
fflush($fh->getResource());
|
||||
$mediafile = MediaFile::fromFileInfo($fh, $this->scoped);
|
||||
// and can dispose of the temporary filehandle since we're certain we have a File on disk now
|
||||
fclose($fh);
|
||||
unset($fh);
|
||||
|
||||
$imagefile = ImageFile::fromFileObject($mediafile->fileRecord);
|
||||
unset($mediafile); // No need to keep the MediaFile around anymore, everything we need is in ImageFile
|
||||
|
|
|
@ -45,6 +45,20 @@ class QvitterAction extends ApiAction
|
|||
{
|
||||
parent::prepare($args);
|
||||
|
||||
// redirect user/:id for local users to their nickname url
|
||||
if(substr($_SERVER['REQUEST_URI'],0,6) == '/user/') {
|
||||
$user_id = substr($_SERVER['REQUEST_URI'],6);
|
||||
try {
|
||||
$user = User::getKV('id', $user_id);
|
||||
if($user instanceof User) {
|
||||
$nickname = $user->nickname;
|
||||
common_redirect(common_local_url('showstream',array('nickname'=>$nickname)), 303);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
//
|
||||
}
|
||||
}
|
||||
|
||||
$user = common_current_user();
|
||||
|
||||
return true;
|
||||
|
@ -83,16 +97,34 @@ class QvitterAction extends ApiAction
|
|||
$sitetitle = common_config('site','name');
|
||||
$siterootdomain = common_config('site','server');
|
||||
$qvitterpath = Plugin::staticPath('Qvitter', '');
|
||||
$apiroot = common_path('api/', StatusNet::isHTTPS());
|
||||
$attachmentroot = common_path('attachment/', StatusNet::isHTTPS());
|
||||
$instanceurl = common_path('', StatusNet::isHTTPS());
|
||||
$favicon_path = QvitterPlugin::settings("favicon_path");
|
||||
$apiroot = common_path('api/', GNUsocial::isHTTPS());
|
||||
$instanceurl = common_path('', GNUsocial::isHTTPS());
|
||||
$favicon_path = QvitterPlugin::settings("favicon_path");
|
||||
$attachmentconfig=common_config('attachments');
|
||||
if(GNUsocial::isHTTPS() && $attachmentconfig['sslserver']){
|
||||
$attachmentroot ='https://'.$attachmentconfig['sslserver'].$attachmentconfig['path'];
|
||||
} elseif(!GNUsocial::isHTTPS() && $attachmentconfig['server']) {
|
||||
$attachmentroot ='http://'.$attachmentconfig['server'].$attachmentconfig['path'];
|
||||
} else {
|
||||
$attachmentroot = $instanceurl.$attachmentconfig['path'];
|
||||
}
|
||||
$avatarconfig=common_config('avatar');
|
||||
if($avatarconfig['server']) {
|
||||
if(GNUsocial::isHTTPS() ){
|
||||
$avatarroot ='https://'.$avatarconfig['server'].$avatarconfig['path'];
|
||||
} else {
|
||||
$avatarroot ='http://'.$avatarconfig['server'].$avatarconfig['path'];
|
||||
}
|
||||
} else {
|
||||
$avatarroot = $instanceurl.$avatarconfig['path'];
|
||||
}
|
||||
|
||||
// user's browser's language setting
|
||||
$user_browser_language = 'en'; // use english if we can't find the browser language
|
||||
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
|
||||
$user_browser_language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
|
||||
}
|
||||
|
||||
// user's browser's language setting
|
||||
$user_browser_language = 'en'; // use english if we can't find the browser language
|
||||
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
|
||||
$user_browser_language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
|
||||
}
|
||||
|
||||
|
||||
common_set_returnto(''); // forget this
|
||||
|
@ -174,7 +206,7 @@ class QvitterAction extends ApiAction
|
|||
}
|
||||
|
||||
// maybe openid
|
||||
if (array_key_exists('OpenID', StatusNet::getActivePlugins())) {
|
||||
if (array_key_exists('OpenID', GNUsocial::getActiveModules())) {
|
||||
print ' <link rel="openid2.provider" href="'.common_local_url('openidserver').'"/>'."\n";
|
||||
print ' <link rel="openid2.local_id" href="'.$user->getProfile()->profileurl.'"/>'."\n";
|
||||
print ' <link rel="openid2.server" href="'.common_local_url('openidserver').'"/>'."\n";
|
||||
|
@ -214,7 +246,7 @@ class QvitterAction extends ApiAction
|
|||
// oembed discovery for local notices, and twitter cards
|
||||
if(substr($_SERVER['REQUEST_URI'],0,8) == '/notice/'
|
||||
&& $this->arg('notice')
|
||||
&& array_key_exists('Oembed', StatusNet::getActivePlugins())) {
|
||||
&& array_key_exists('Oembed', GNUsocial::getActiveModules())) {
|
||||
$notice = Notice::getKV('id', $this->arg('notice'));
|
||||
|
||||
if($notice instanceof Notice) {
|
||||
|
@ -280,10 +312,8 @@ class QvitterAction extends ApiAction
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<script>
|
||||
|
||||
/*
|
||||
@licstart The following is the entire license notice for the
|
||||
JavaScript code in this page.
|
||||
|
@ -341,7 +371,7 @@ class QvitterAction extends ApiAction
|
|||
window.timeBetweenPolling = <?php print QvitterPlugin::settings("timebetweenpolling"); ?>;
|
||||
window.apiRoot = <?php
|
||||
|
||||
$api_root = common_path("api/", StatusNet::isHTTPS());
|
||||
$api_root = common_path("api/", GNUsocial::isHTTPS());
|
||||
if($this_site_thinks_it_is_http_but_is_actually_https) {
|
||||
$api_root = str_replace('http://','https://',$api_root);
|
||||
}
|
||||
|
@ -351,6 +381,7 @@ class QvitterAction extends ApiAction
|
|||
window.fullUrlToThisQvitterApp = '<?php print $qvitterpath; ?>';
|
||||
window.siteRootDomain = '<?php print $siterootdomain; ?>';
|
||||
window.siteInstanceURL = '<?php print $instanceurl; ?>';
|
||||
window.avatarServer= <?php print json_encode(common_config('avatar', 'server')) ?>;
|
||||
window.defaultLinkColor = '<?php print QvitterPlugin::settings("defaultlinkcolor"); ?>';
|
||||
window.defaultBackgroundColor = '<?php print QvitterPlugin::settings("defaultbackgroundcolor"); ?>';
|
||||
window.siteBackground = '<?php print QvitterPlugin::settings("sitebackground"); ?>';
|
||||
|
@ -358,15 +389,16 @@ class QvitterAction extends ApiAction
|
|||
window.customWelcomeText = <?php print json_encode(QvitterPlugin::settings("customwelcometext")); ?>;
|
||||
window.urlShortenerAPIURL = '<?php print QvitterPlugin::settings("urlshortenerapiurl"); ?>';
|
||||
window.urlShortenerSignature = '<?php print QvitterPlugin::settings("urlshortenersignature"); ?>';
|
||||
window.urlshortenerFormat = '<?php print QvitterPlugin::settings("urlshortenerformat"); ?>';
|
||||
window.urlshortenerFormat = '<?php print QvitterPlugin::settings("urlshortenerformat"); ?>';
|
||||
window.commonSessionToken = '<?php print common_session_token(); ?>';
|
||||
window.siteMaxThumbnailSize = <?php print common_config('thumbnail', 'maxsize'); ?>;
|
||||
window.siteAttachmentURLBase = '<?php print $attachmentroot; ?>';
|
||||
window.siteAvatarURLBase = '<?php print $avatarroot; ?>';
|
||||
window.siteEmail = '<?php print common_config('site', 'email'); ?>';
|
||||
window.siteLicenseTitle = '<?php print common_config('license', 'title'); ?>';
|
||||
window.siteLicenseURL = '<?php print common_config('license', 'url'); ?>';
|
||||
window.customTermsOfUse = <?php print json_encode(QvitterPlugin::settings("customtermsofuse")); ?>;
|
||||
window.siteLocalOnlyDefaultPath = <?php print (common_config('public', 'localonly') ? 'true' : 'false'); ?>;
|
||||
window.siteLocalOnlyDefaultPath = <?php print (common_config('public', 'localonly') ? 'true' : 'false'); ?>;
|
||||
<?php
|
||||
|
||||
// Get all topics in Qvitter's namespace in Profile_prefs
|
||||
|
@ -398,6 +430,9 @@ class QvitterAction extends ApiAction
|
|||
if($disable_keyboard_shortcuts == '1' || $disable_keyboard_shortcuts == 1) {
|
||||
$disable_keyboard_shortcuts = true;
|
||||
}
|
||||
if (is_null($disable_keyboard_shortcuts)) {
|
||||
$disable_keyboard_shortcuts = false;
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
//
|
||||
}
|
||||
|
@ -613,7 +648,7 @@ class QvitterAction extends ApiAction
|
|||
<input type="hidden" id="token" name="token" value="<?php print common_session_token(); ?>">
|
||||
<?php
|
||||
|
||||
if (array_key_exists('OpenID', StatusNet::getActivePlugins())) {
|
||||
if (array_key_exists('OpenID', GNUsocial::getActiveModules())) {
|
||||
print '<a href="'.$instanceurl.'main/openid" id="openid-login" title="OpenID" donthijack>OpenID</a>';
|
||||
}
|
||||
|
||||
|
@ -686,6 +721,7 @@ class QvitterAction extends ApiAction
|
|||
?>
|
||||
</div>
|
||||
<div class="menu-container" id="bookmark-container"></div>
|
||||
<div id="find-someone"><input id="find-someone-input" placeholder="" data-tooltip=""/></div>
|
||||
<div class="menu-container" id="history-container"></div>
|
||||
<div id="clear-history"></div>
|
||||
<div id="qvitter-notice"><?php print common_config('site', 'qvitternotice'); ?></div><?php
|
||||
|
@ -809,7 +845,8 @@ class QvitterAction extends ApiAction
|
|||
}
|
||||
#user-footer-inner,
|
||||
.inline-reply-queetbox,
|
||||
#popup-faq #faq-container p.indent {
|
||||
#popup-faq #faq-container p.indent,
|
||||
#find-someone {
|
||||
background-color:/*LIGHTERBACKGROUNDCOLORSTART*/rgb(205,230,239)/*LIGHTERBACKGROUNDCOLOREND*/;
|
||||
}
|
||||
#user-footer-inner,
|
||||
|
@ -823,7 +860,8 @@ class QvitterAction extends ApiAction
|
|||
.quoted-notice:hover,
|
||||
.oembed-item:hover,
|
||||
.stream-item:hover:not(.expanded) .quoted-notice:hover,
|
||||
.stream-item:hover:not(.expanded) .oembed-item:hover {
|
||||
.stream-item:hover:not(.expanded) .oembed-item:hover,
|
||||
#find-someone input:focus {
|
||||
border-color:/*LIGHTERBORDERCOLORSTART*/rgb(155,206,224)/*LIGHTERBORDERCOLOREND*/;
|
||||
}
|
||||
span.inline-reply-caret .caret-inner {
|
||||
|
|
|
@ -114,7 +114,7 @@ class NotificationStream
|
|||
|
||||
$all = array_merge($all, $notifications);
|
||||
|
||||
if (count($notifications < count($ids))) {
|
||||
if (count($notifications) < count($ids)) {
|
||||
$offset += $limit;
|
||||
$limit -= count($notifications);
|
||||
}
|
||||
|
|
245
css/qvitter.css
245
css/qvitter.css
|
@ -40,8 +40,11 @@
|
|||
font-style: normal;
|
||||
}
|
||||
|
||||
@import url(https://fonts.bunny.net/css?family=noto-sans-jp:400,500,700);
|
||||
|
||||
|
||||
body {
|
||||
font-family:"Helvetica Neue",Arial,sans-serif;
|
||||
font-family:"Helvetica Neue",Arial,"Noto Sans JP",sans-serif;
|
||||
}
|
||||
|
||||
html {
|
||||
|
@ -239,10 +242,8 @@ body.rtl .discard-error-message {
|
|||
}
|
||||
|
||||
#top-compose {
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border: 1px solid rgba(0, 0, 0, 0.0);
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.15) inset;
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
height: 32px;
|
||||
|
@ -258,7 +259,7 @@ body.rtl .discard-error-message {
|
|||
cursor: pointer;
|
||||
display: block;
|
||||
height: 32px;
|
||||
margin-top: -3px;
|
||||
margin-top: -4px;
|
||||
position: absolute;
|
||||
width: 32px;
|
||||
z-index: 101;
|
||||
|
@ -275,7 +276,6 @@ body.rtl .discard-error-message {
|
|||
background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
|
||||
}
|
||||
.topbar {
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
|
@ -506,7 +506,7 @@ body.rtl .dropdown-menu li:not(.dropdown-caret) {
|
|||
font-weight: normal;
|
||||
line-height: 18px;
|
||||
overflow: hidden;
|
||||
padding: 3px 0 3px 22px;
|
||||
padding: 3px 12px 3px 22px;
|
||||
position: relative;
|
||||
text-decoration: none;
|
||||
text-overflow: ellipsis;
|
||||
|
@ -655,13 +655,12 @@ body.rtl .dropdown-menu .row-type-profile-prefs-toggle::before {
|
|||
|
||||
#site-notice {
|
||||
color: #EEEEEE;
|
||||
font-size: 30px;
|
||||
font-size: 20px;
|
||||
font-weight: 300;
|
||||
line-height: 32px;
|
||||
line-height: 25px;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
text-align: left;
|
||||
text-shadow: 0 1px 2px #000000;
|
||||
display:none;
|
||||
}
|
||||
|
||||
|
@ -812,17 +811,11 @@ body.rtl #login-register-container {
|
|||
}
|
||||
#login-content,
|
||||
.front-signup {
|
||||
font-family: Arial,sans-serif;
|
||||
font-family: Arial,​sans-serif;
|
||||
font-size: 14px;
|
||||
color: #333333;
|
||||
line-height: 18px;
|
||||
background: #ffffff; /* Old browsers */
|
||||
background: -moz-linear-gradient(top, #ffffff 0px, #dddddd 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0px,#ffffff), color-stop(100%,#dddddd)); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, #ffffff 0px,#dddddd 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, #ffffff 0px,#dddddd 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(top, #ffffff 0px,#dddddd 100%); /* IE10+ */
|
||||
background: linear-gradient(to bottom, #ffffff 0px,#dddddd 100%); /* W3C */
|
||||
background-clip: border-box;
|
||||
background-origin: padding-box;
|
||||
background-size: auto auto;
|
||||
|
@ -857,7 +850,7 @@ body.rtl #login-register-container {
|
|||
.front-signup input,
|
||||
#login-content input#nickname,
|
||||
#login-content input#password {
|
||||
font-family: Arial,sans-serif;
|
||||
font-family: Arial,​sans-serif;
|
||||
font-size: 13px;
|
||||
color: #000000;
|
||||
line-height: 15.4333px;
|
||||
|
@ -974,19 +967,7 @@ button#submit-login {
|
|||
font-weight: 700;
|
||||
color: #FFFFFF;
|
||||
line-height: 18px;
|
||||
|
||||
background: -moz-linear-gradient(top, #33bcef 0%, #019ad2 100%); /* FF3.6+ */
|
||||
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#33bcef), color-stop(100%,#019ad2)); /* Chrome,Safari4+ */
|
||||
|
||||
background: -webkit-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* Chrome10+,Safari5.1+ */
|
||||
|
||||
background: -o-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* Opera 11.10+ */
|
||||
|
||||
background: -ms-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* IE10+ */
|
||||
|
||||
background: linear-gradient(to bottom, #33bcef 0%,#019ad2 100%); /* W3C */
|
||||
background-repeat: repeat-x;
|
||||
background: #019ad2;
|
||||
height: 30px;
|
||||
margin-top: 0px;
|
||||
margin-right: 0px;
|
||||
|
@ -996,18 +977,7 @@ button#submit-login {
|
|||
padding-right: 10px;
|
||||
padding-bottom: 5px;
|
||||
padding-left: 10px;
|
||||
border-top-width: 1px;
|
||||
border-right-width: 1px;
|
||||
border-bottom-width: 1px;
|
||||
border-left-width: 1px;
|
||||
border-top-color: #057ED0;
|
||||
border-right-color: #057ED0;
|
||||
border-bottom-color: #057ED0;
|
||||
border-left-color: #057ED0;
|
||||
border-top-style: solid;
|
||||
border-right-style: solid;
|
||||
border-bottom-style: solid;
|
||||
border-left-style: solid;
|
||||
border: none;
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
|
@ -1024,23 +994,11 @@ button#submit-login {
|
|||
border-image-width: 1 1 1 1;
|
||||
border-spacing: 0px 0px;
|
||||
cursor: pointer;
|
||||
text-shadow: rgba(0, 0, 0, 0.25) 0px -1px 1px;
|
||||
transition-duration: 200ms;
|
||||
}
|
||||
button#submit-login:hover {
|
||||
|
||||
background: -moz-linear-gradient(top, #2daddc 0%, #0271bf 100%); /* FF3.6+ */
|
||||
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2daddc), color-stop(100%,#0271bf)); /* Chrome,Safari4+ */
|
||||
|
||||
background: -webkit-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* Chrome10+,Safari5.1+ */
|
||||
|
||||
background: -o-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* Opera 11.10+ */
|
||||
|
||||
background: -ms-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* IE10+ */
|
||||
|
||||
background: linear-gradient(to bottom, #2daddc 0%,#0271bf 100%); /* W3C */
|
||||
background: #0271bf;
|
||||
background-repeat: repeat-x;
|
||||
border-color:#096eb3;
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
|
@ -1095,7 +1053,7 @@ button#submit-login:hover {
|
|||
text-decoration:none;
|
||||
}
|
||||
#remember-forgot #openid-login:before {
|
||||
content: " · ";
|
||||
content: " · ";
|
||||
font-size:11px;
|
||||
}
|
||||
#remember-forgot #openid-login:after {
|
||||
|
@ -1147,16 +1105,9 @@ button#submit-login:hover {
|
|||
}
|
||||
|
||||
.front-signup .signup-btn {
|
||||
background-color: #FD9A0F;
|
||||
background: -moz-linear-gradient(top, rgba(254,233,79,1) 0px, rgba(253,154,15,1) 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0px,rgba(254,233,79,1)), color-stop(100%,rgba(253,154,15,1)));
|
||||
background: -webkit-linear-gradient(top, rgba(254,233,79,1) 0px,rgba(253,154,15,1) 100%);
|
||||
background: -o-linear-gradient(top, rgba(254,233,79,1) 0px,rgba(253,154,15,1) 100%);
|
||||
background: -ms-linear-gradient(top, rgba(254,233,79,1) 0px,rgba(253,154,15,1) 100%);
|
||||
background: linear-gradient(to bottom, rgba(254,233,79,1) 0px,rgba(253,154,15,1) 100%);
|
||||
border: 1px solid #ffaa22;
|
||||
background: #FFAA22;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 1px 0 #ffffff;
|
||||
color: #333333;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
|
@ -1169,17 +1120,10 @@ button#submit-login:hover {
|
|||
padding-right: 12px;
|
||||
position: relative;
|
||||
right: 12px;
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
|
||||
transition-duration: 200ms;
|
||||
}
|
||||
.front-signup .signup-btn:hover, .front-signup .signup-btn:focus {
|
||||
background-color: #FD9512;
|
||||
background: -moz-linear-gradient(top, rgba(254,220,77,1) 0px, rgba(253,149,18,1) 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0px,rgba(254,220,77,1)), color-stop(100%,rgba(253,149,18,1)));
|
||||
background: -webkit-linear-gradient(top, rgba(254,220,77,1) 0px,rgba(253,149,18,1) 100%);
|
||||
background: -o-linear-gradient(top, rgba(254,220,77,1) 0px,rgba(253,149,18,1) 100%);
|
||||
background: -ms-linear-gradient(top, rgba(254,220,77,1) 0px,rgba(253,149,18,1) 100%);
|
||||
background: linear-gradient(to bottom, rgba(254,220,77,1) 0px,rgba(253,149,18,1) 100%);
|
||||
border-color: #EC8B11;
|
||||
background: #EC8B11;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1268,7 +1212,7 @@ button#submit-login:hover {
|
|||
#page-container {
|
||||
width:890px;
|
||||
padding:17px 14px 0 14px;
|
||||
background-color:rgba(0,0,0,0.2);
|
||||
background-color:rgba(0,0,0,0.5);
|
||||
margin-left:-459px;
|
||||
opacity:0;
|
||||
}
|
||||
|
@ -1341,8 +1285,8 @@ body.rtl #footer-spinner-container {
|
|||
position: relative;
|
||||
background-color: #F9F9F9;
|
||||
border-top: 1px solid #E8E8E8;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25) inset;
|
||||
font-size: 14px;
|
||||
transition-duration: 200ms;
|
||||
}
|
||||
.menu-container a:first-child {
|
||||
border-top:0 none;
|
||||
|
@ -1357,6 +1301,47 @@ body.rtl #footer-spinner-container {
|
|||
top: 9px;
|
||||
width: 12px;
|
||||
}
|
||||
|
||||
|
||||
#find-someone {
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
text-shadow: 0 1px 0 #FFFFFF;
|
||||
background-clip: padding-box;
|
||||
border-radius: 6px;
|
||||
line-height: 16px;
|
||||
margin-bottom: 10px;
|
||||
overflow:hidden;
|
||||
position: relative;
|
||||
padding-top: 10px;
|
||||
padding-right: 12px;
|
||||
padding-bottom: 10px;
|
||||
padding-left: 12px;
|
||||
background-color: #F9F9F9;
|
||||
}
|
||||
|
||||
#find-someone input {
|
||||
padding: 6px 8px 5px 8px;
|
||||
position: relative;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #ccc;
|
||||
width: 248px;
|
||||
font-size: 13px;
|
||||
color:#333;
|
||||
line-height: 18px;
|
||||
background-color: #fff;
|
||||
margin:0;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) inset, 0 1px 0 rgba(255, 255, 255, 0.075);
|
||||
outline-color: #aaa;
|
||||
display: block;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#find-someone input[disabled="disabled"] {
|
||||
background-color: #eee;
|
||||
color:#aaa;
|
||||
}
|
||||
|
||||
|
||||
#bookmark-container a:hover .chev-right {
|
||||
background-position:-18px -508px;
|
||||
}
|
||||
|
@ -1864,6 +1849,7 @@ body.rtl .profile-card.user-muted .user-menu-cog::after,
|
|||
list-style-image: none;
|
||||
list-style-position: outside;
|
||||
list-style-type: none;
|
||||
transition-duration: 200ms;
|
||||
height:auto;
|
||||
position:relative;
|
||||
}
|
||||
|
@ -2394,7 +2380,7 @@ body.rtl .queet.rtl .expanded-content {
|
|||
font-style:italic;
|
||||
}
|
||||
.oembed-item-provider-url:not(:empty)::before {
|
||||
content:' · ';
|
||||
content:' · ';
|
||||
}
|
||||
.oembed-item-header,
|
||||
.oembed-item-body,
|
||||
|
@ -2862,7 +2848,7 @@ body.rtl .view-more-container-bottom { direction:rtl; }
|
|||
text-decoration: underline;
|
||||
}
|
||||
.stream-item-header .created-at:before {
|
||||
content: "·";
|
||||
content: "·";
|
||||
display: inline-block;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
@ -3042,6 +3028,7 @@ ul.queet-actions > li .icon:before {
|
|||
text-align: center;
|
||||
vertical-align:text-top;
|
||||
width:21px;
|
||||
transition-duration: 200ms;
|
||||
}
|
||||
.stream-item.temp-post ul.queet-actions > li .icon:before {
|
||||
color:rgba(0,0,0,0.05);
|
||||
|
@ -3230,6 +3217,7 @@ ul.queet-actions > li .icon.is-mine:before {
|
|||
top: 0;
|
||||
width: 30px;
|
||||
outline:none;
|
||||
transition-duration: 200ms;
|
||||
}
|
||||
.queet.rtl .ostatus-link {
|
||||
right:auto;
|
||||
|
@ -4020,9 +4008,8 @@ body.rtl .queet-box-extras {
|
|||
font-weight: 700;
|
||||
color: #FFFFFF;
|
||||
line-height: 16px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border: 1px solid rgba(0, 0, 0, 0.0);
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.15) inset;
|
||||
box-sizing: border-box;
|
||||
margin-top: 0px;
|
||||
margin-right: 0px;
|
||||
|
@ -4040,7 +4027,7 @@ body.rtl .queet-box-extras {
|
|||
border-image-source: none;
|
||||
border-image-width: 1 1 1 1;
|
||||
cursor: pointer;
|
||||
text-shadow: rgba(0, 0, 0, 0.25) 0px -1px 1px;
|
||||
transition-duration: 200ms;
|
||||
}
|
||||
button.signup-btn.disabled:hover,
|
||||
button.signup-btn.disabled:focus,
|
||||
|
@ -4058,7 +4045,7 @@ button.signup-btn.disabled {
|
|||
cursor: default;
|
||||
}
|
||||
.queet-toolbar button.enabled:hover {
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
|
||||
background: #005D7F;
|
||||
}
|
||||
|
||||
#settingslink .dropdown-toggle {
|
||||
|
@ -4096,6 +4083,27 @@ div.nav-session {
|
|||
width: 588px;
|
||||
}
|
||||
|
||||
.profile-card.local-user > .ostatus-link,
|
||||
.profile-card.local-user .username .screen-name-with-server,
|
||||
.profile-card.remote-user .username .screen-name,
|
||||
.profile-card.remote-user ul.stats {
|
||||
display:none;
|
||||
}
|
||||
.profile-card .remote-user-info {
|
||||
background-color: pink;
|
||||
color: #333;
|
||||
text-shadow: none;
|
||||
border: 10px solid #fff;
|
||||
padding: 10px;
|
||||
}
|
||||
.profile-card .remote-user-info a {
|
||||
text-decoration: underline;
|
||||
color:#333;
|
||||
}
|
||||
.hover-card .profile-card .remote-user-info {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.hover-card .profile-card {
|
||||
width:290px;
|
||||
margin-bottom:0;
|
||||
|
@ -4353,7 +4361,7 @@ div.nav-session {
|
|||
float:left;
|
||||
}
|
||||
.profile-banner-footer ul.stats li a {
|
||||
padding: 0 15px 8px 12px;
|
||||
padding: 0 9px 8px 12px;
|
||||
}
|
||||
.hover-card .profile-banner-footer ul.stats li a {
|
||||
padding-bottom: 5px;
|
||||
|
@ -4393,9 +4401,8 @@ div.clearfix {
|
|||
font-weight: 700;
|
||||
color: #333;
|
||||
line-height: 16px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
border: 1px solid rgba(0, 0, 0, 0);
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.15) inset;
|
||||
box-sizing: border-box;
|
||||
margin-top: 0px;
|
||||
margin-right: 0px;
|
||||
|
@ -4413,16 +4420,21 @@ div.clearfix {
|
|||
border-image-source: none;
|
||||
border-image-width: 1 1 1 1;
|
||||
cursor: pointer;
|
||||
text-shadow: rgba(0, 0, 0, 0.15) 0px -1px 1px;
|
||||
transition-duration: 200ms;
|
||||
}
|
||||
.qvitter-follow-button,
|
||||
.edit-profile-button,
|
||||
.abort-edit-profile-button,
|
||||
.member-button {
|
||||
background-color:#e2e2e2;
|
||||
text-shadow: rgba(255, 255, 255, 0.15) 0px -1px 1px;
|
||||
color:#333;
|
||||
}
|
||||
.member-button:not(.disabled):not(.member):hover,
|
||||
.qvitter-follow-button:not(.disabled):not(.following):hover,
|
||||
.edit-profile-button:hover,
|
||||
.abort-edit-profile-button:hover {
|
||||
background-color:#c9c9c9;
|
||||
}
|
||||
.external-member-button.disabled,
|
||||
.member-button.disabled,
|
||||
.external-follow-button.disabled,
|
||||
|
@ -4439,17 +4451,6 @@ div.clearfix {
|
|||
.qvitter-follow-button.disabled i {
|
||||
opacity:0.2;
|
||||
}
|
||||
.external-member-button:not(.disabled):not(.member):hover,
|
||||
.member-button:not(.disabled):not(.member):hover,
|
||||
.external-follow-button:not(.disabled):not(.following):hover,
|
||||
.qvitter-follow-button:not(.disabled):not(.following):hover,
|
||||
.edit-profile-button:hover,
|
||||
.abort-edit-profile-button:hover,
|
||||
button.shorten:not(.disabled):hover,
|
||||
.save-profile-button:not(.disabled):hover,
|
||||
.crop-and-save-button:not(.disabled):hover {
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
|
||||
}
|
||||
.external-member-button:not(.disabled):not(.member):active,
|
||||
.member-button:not(.disabled):not(.member):active,
|
||||
.external-follow-button:not(.disabled):not(.following):active,
|
||||
|
@ -4672,6 +4673,7 @@ body.rtl #feed-header-inner .loader {
|
|||
top:5px;
|
||||
opacity:0.5;
|
||||
cursor:pointer;
|
||||
transition-duration: 200ms;
|
||||
}
|
||||
.reload-stream:hover {
|
||||
opacity:1;
|
||||
|
@ -5009,7 +5011,7 @@ body.rtl .modal-footer button {
|
|||
box-shadow: 0 1px 0 #EEEEEE inset, 0 1px 0 #FFFFFF;
|
||||
color: #000000;
|
||||
display: block;
|
||||
font-family: Arial,sans-serif;
|
||||
font-family: Arial,​sans-serif;
|
||||
font-size: 13px;
|
||||
height: 20px;
|
||||
line-height: 15.4333px;
|
||||
|
@ -5360,11 +5362,8 @@ content:"\f068";
|
|||
}
|
||||
#popup-shortcuts #shortcuts-container span.shortcut {
|
||||
background-color: #eee;
|
||||
background-image: linear-gradient(#fff, #eee);
|
||||
background-repeat: repeat-x;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 1px 0 #fff inset, 0 0.5px 0 #ccc;
|
||||
color: #666;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
|
@ -5672,11 +5671,6 @@ body.rtl #feed-header-inner h2 {
|
|||
}
|
||||
|
||||
@media (max-width: 910px) {
|
||||
|
||||
body {
|
||||
background:none !important;
|
||||
}
|
||||
|
||||
.upload-background-image {
|
||||
display:none;
|
||||
}
|
||||
|
@ -5686,7 +5680,12 @@ body.rtl #feed-header-inner h2 {
|
|||
}
|
||||
|
||||
.topbar .global-nav:before {
|
||||
background:none !important;
|
||||
top: 8px;
|
||||
margin-left: -40px;
|
||||
background-position: 0 0;
|
||||
width: 83px;
|
||||
height: 34px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#site-notice,
|
||||
|
@ -5702,7 +5701,7 @@ body.rtl #feed-header-inner h2 {
|
|||
.language-dropdown {
|
||||
width:170px;
|
||||
right:50%;
|
||||
margin-right:-85px;
|
||||
margin-right:-95px;
|
||||
margin-top:5px;
|
||||
}
|
||||
|
||||
|
@ -5723,7 +5722,7 @@ body.rtl #feed-header-inner h2 {
|
|||
height:35px;
|
||||
}
|
||||
#page-container {
|
||||
margin-top:69px;
|
||||
margin-top:59px;
|
||||
background-color:transparent;
|
||||
}
|
||||
|
||||
|
@ -5762,7 +5761,7 @@ body.rtl #feed-header-inner h2 {
|
|||
outline: 0 none;
|
||||
padding: 6px 27px 6px 12px;
|
||||
position: fixed;
|
||||
right: 60px;
|
||||
right: 45px;
|
||||
top: 0;
|
||||
transition: all 0.2s ease-in-out 0s;
|
||||
width: 60px;
|
||||
|
@ -5806,16 +5805,16 @@ body.rtl #feed-header-inner h2 {
|
|||
|
||||
|
||||
#top-compose {
|
||||
border: 3px solid #fff;
|
||||
border: 2px solid #fff;
|
||||
box-shadow: none;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
height: 41px;
|
||||
height: 35px;
|
||||
margin: 0;
|
||||
position: fixed;
|
||||
right: 6px;
|
||||
top: 5px;
|
||||
width: 41px;
|
||||
width: 35px;
|
||||
z-index: 100;
|
||||
}
|
||||
#top-compose.hidden {
|
||||
|
@ -5823,7 +5822,7 @@ body.rtl #feed-header-inner h2 {
|
|||
}
|
||||
#top-compose:before {
|
||||
font-size:25px;
|
||||
line-height: 41px;
|
||||
line-height: 44px;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
|
@ -5950,7 +5949,7 @@ body.rtl #feed-header-inner h2 {
|
|||
}
|
||||
|
||||
body {
|
||||
background-color:#000 !important;
|
||||
background-color:#fff !important;
|
||||
}
|
||||
#logo {
|
||||
display:none;
|
||||
|
@ -6024,7 +6023,7 @@ body.rtl #feed-header-inner h2 {
|
|||
}
|
||||
.menu-container {
|
||||
margin:0;
|
||||
height:59px;
|
||||
height:47px;
|
||||
border:0 none !important;
|
||||
border-radius:0 0 0 0 !important;
|
||||
box-shadow: 0 25px 55px 0 rgba(255, 255, 255, 0.5) inset;
|
||||
|
@ -6047,7 +6046,7 @@ body.rtl #feed-header-inner h2 {
|
|||
float:left;
|
||||
font-size:0;
|
||||
color:transparent;
|
||||
height:55px;
|
||||
height:47px;
|
||||
padding:0 !important;
|
||||
margin:0;
|
||||
border-radius:0 0 0 0 !important;
|
||||
|
@ -6063,7 +6062,7 @@ body.rtl #feed-header-inner h2 {
|
|||
border:0 none !important;
|
||||
}
|
||||
.menu-container a:not(.current) {
|
||||
height:63px;
|
||||
height:47px;
|
||||
}
|
||||
.menu-container a:after,
|
||||
.menu-container a.current:after {
|
||||
|
@ -6083,7 +6082,7 @@ body.rtl #feed-header-inner h2 {
|
|||
left: 50%;
|
||||
margin-left: -35px;
|
||||
width: 70px;
|
||||
height: 55px;
|
||||
height: 47px;
|
||||
background-size: 500px 1329px;
|
||||
background-color:#ccc;
|
||||
}
|
||||
|
@ -6399,4 +6398,4 @@ body.rtl #feed-header-inner h2 {
|
|||
|
||||
|
||||
|
||||
}
|
||||
}
|
16
doc/ru/shortcuts.html
Normal file
16
doc/ru/shortcuts.html
Normal file
|
@ -0,0 +1,16 @@
|
|||
<h3>Действия</h3>
|
||||
<p><span class="shortcut">n</span><span class="description">Новый квит</span></p>
|
||||
<p><span class="shortcut">f</span><span class="description">Добавить в избранное</span></p>
|
||||
<p><span class="shortcut">r</span><span class="description">Ответить</span></p>
|
||||
<p><span class="shortcut">t</span><span class="description">Реквит</span></p>
|
||||
<p><span class="shortcut">Enter</span><span class="description">Раскрыть квит</span></p>
|
||||
<p><span class="shortcut">Ctrl</span><span class="shortcut">Enter</span>или <span class="shortcut">Cmd ⌘</span><span class="shortcut">Enter</span><span class="description">Опубликовать квит</span></p>
|
||||
<p><span class="shortcut">Esc</span><span class="description">Закрыть все раскрытые квиты</span></p>
|
||||
|
||||
<h3>Навигация</h3>
|
||||
<p><span class="shortcut">?</span><span class="description">Это меню</span></p>
|
||||
<p><span class="shortcut">j</span><span class="description">Следующий квит</span></p>
|
||||
<p><span class="shortcut">k</span><span class="description">Предыдущий квит</span></p>
|
||||
|
||||
<h3>Отключить</h3>
|
||||
<p>Отключить горячие клавиши можно в <a href="{instance-url-with-protocol}settings/qvitter">настройках</a>.</p>
|
5032
img/sprite.ai
5032
img/sprite.ai
File diff suppressed because one or more lines are too long
BIN
img/sprite.png
BIN
img/sprite.png
Binary file not shown.
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 50 KiB |
|
@ -394,6 +394,18 @@ function buildProfileCard(data) {
|
|||
if(isUserMuted(data.id)) {
|
||||
is_muted = ' user-muted';
|
||||
}
|
||||
// local or remote user?
|
||||
var local_or_remote = '';
|
||||
var remote_user_info = '';
|
||||
var serverUrl = guessInstanceUrlWithoutProtocolFromProfileUrlAndNickname(data.statusnet_profile_url, data.screen_name);
|
||||
data.screenNameWithServer = '@' + data.screen_name + '@' + serverUrl;
|
||||
if(data.is_local !== true) {
|
||||
remote_user_info = '<div class="remote-user-info">' + window.sL.thisIsARemoteUser.replace('{remote-profile-url}',data.statusnet_profile_url) + '</div>'
|
||||
local_or_remote = ' remote-user';
|
||||
}
|
||||
else {
|
||||
local_or_remote = ' local-user';
|
||||
}
|
||||
|
||||
var followButton = '';
|
||||
|
||||
|
@ -420,8 +432,9 @@ function buildProfileCard(data) {
|
|||
|
||||
// full card html
|
||||
var profileCardHtml = '\
|
||||
<div class="profile-card' + is_me + logged_in + is_muted + '">\
|
||||
<div class="profile-card' + is_me + logged_in + is_muted + local_or_remote + '">\
|
||||
<script class="profile-json" type="application/json">' + JSON.stringify(data) + '</script>\
|
||||
<a href="' + data.statusnet_profile_url + '" class="ostatus-link" data-tooltip="' + window.sL.goToTheUsersRemoteProfile + '" donthijack></a>\
|
||||
<div class="profile-header-inner' + is_silenced + is_sandboxed + '" style="' + coverPhotoHtml + '" data-user-id="' + data.id + '" data-screen-name="' + data.screen_name + '">\
|
||||
<div class="profile-header-inner-overlay"></div>\
|
||||
<a class="profile-picture" href="' + data.profile_image_url_original + '">\
|
||||
|
@ -432,6 +445,7 @@ function buildProfileCard(data) {
|
|||
<span class="silenced-flag" data-tooltip="' + window.sL.silencedStreamDescription + '">' + window.sL.silenced + '</span>\
|
||||
<span class="sandboxed-flag" data-tooltip="' + window.sL.sandboxedStreamDescription + '">' + window.sL.sandboxed + '</span>\
|
||||
<h2 class="username">\
|
||||
<span class="screen-name-with-server" data-user-id="' + data.id + '">' + data.screenNameWithServer + '</span>\
|
||||
<span class="screen-name" data-user-id="' + data.id + '">@' + data.screen_name + '</span>\
|
||||
' + follows_you + '\
|
||||
</h2>\
|
||||
|
@ -446,6 +460,7 @@ function buildProfileCard(data) {
|
|||
</div>\
|
||||
</div>\
|
||||
<div class="profile-banner-footer">\
|
||||
' + remote_user_info + '\
|
||||
<ul class="stats">\
|
||||
<li class="tweet-num"><a href="' + data.statusnet_profile_url + '" class="tweet-stats">' + window.sL.notices + '<strong>' + data.statuses_count + '</strong></a></li>\
|
||||
<li class="following-num"><a href="' + data.statusnet_profile_url + '/subscriptions" class="following-stats">' + window.sL.following + '<strong>' + data.friends_count + '</strong></a></li>\
|
||||
|
@ -473,7 +488,6 @@ function buildProfileCard(data) {
|
|||
· · · · · · · · · */
|
||||
|
||||
function buildExternalProfileCard(data) {
|
||||
|
||||
// follows me?
|
||||
var follows_you = '';
|
||||
if(data.local !== null && data.local.follows_you === true && window.loggedIn.id != data.local.id) {
|
||||
|
@ -482,7 +496,7 @@ function buildExternalProfileCard(data) {
|
|||
|
||||
// follow button
|
||||
var followButton = '';
|
||||
if(window.loggedIn !== false && typeof data.local != 'undefined' && data.local !== null) {
|
||||
if(window.loggedIn !== false && typeof data.local != 'undefined' && data.local) {
|
||||
var followButton = buildFollowBlockbutton(data.local);
|
||||
}
|
||||
|
||||
|
@ -564,7 +578,7 @@ function buildExternalProfileCard(data) {
|
|||
<span class="sandboxed-flag" data-tooltip="' + window.sL.sandboxedStreamDescription + '">' + window.sL.sandboxed + '</span>\
|
||||
<h2 class="username">\
|
||||
<span class="screen-name">' + data.screenNameWithServer + '</span>\
|
||||
<span class="ostatus-link" data-tooltip="' + window.sL.goToTheUsersRemoteProfile + '">' + window.sL.goToTheUsersRemoteProfile + '</span>\
|
||||
<span class="ostatus-link" data-tooltip="' + window.sL.goToTheUsersRemoteProfile + '" donthijack>' + window.sL.goToTheUsersRemoteProfile + '</span>\
|
||||
' + follows_you + '\
|
||||
</h2>\
|
||||
</a>\
|
||||
|
@ -945,6 +959,13 @@ function setNewCurrentStream(streamObject,setLocation,fallbackId,actionOnSuccess
|
|||
}
|
||||
}
|
||||
|
||||
// local for local users requested by id, we want to go to the nickname-url instead
|
||||
else if(streamObject.name == 'profile by id' && userArray && userArray.is_local === true) {
|
||||
removeHistoryContainerItemByHref(window.siteInstanceURL + 'user/' + userArray.id);
|
||||
setNewCurrentStream(pathToStreamRouter('/' + userArray.screen_name),true,false,actionOnSuccess);
|
||||
|
||||
}
|
||||
|
||||
// getting stream failed, and we don't have a fallback id
|
||||
else if(queet_data === false) {
|
||||
|
||||
|
@ -1014,9 +1035,25 @@ function setNewCurrentStream(streamObject,setLocation,fallbackId,actionOnSuccess
|
|||
setUrlFromStream(streamObject);
|
||||
}
|
||||
|
||||
// add this stream to the history menu
|
||||
addStreamToHistoryMenuAndMarkAsCurrent(streamObject);
|
||||
|
||||
// profile card from user array
|
||||
if(userArray) {
|
||||
addProfileCardToDOM(buildProfileCard(userArray));
|
||||
|
||||
// set remote users username in the browsing history container
|
||||
// (because stream-router can't know username from the URL, that only have id:s)
|
||||
if(userArray.is_local !== true) {
|
||||
var serverUrl = guessInstanceUrlWithoutProtocolFromProfileUrlAndNickname(userArray.statusnet_profile_url, userArray.screen_name);
|
||||
var screenNameWithServer = '@' + userArray.screen_name + '@' + serverUrl;
|
||||
updateHistoryContainerItemByHref(window.siteInstanceURL + 'user/' + userArray.id, screenNameWithServer);
|
||||
updateHistoryContainerItemByHref(userArray.statusnet_profile_url, screenNameWithServer);
|
||||
}
|
||||
// if we for some reason have visited a local user's profile by id, adjust the history container
|
||||
else {
|
||||
updateHistoryContainerItemByHref(window.siteInstanceURL + 'user/' + userArray.id, userArray.screen_name);
|
||||
}
|
||||
}
|
||||
// remove any trailing profile cards
|
||||
else {
|
||||
|
@ -1040,9 +1077,6 @@ function setNewCurrentStream(streamObject,setLocation,fallbackId,actionOnSuccess
|
|||
window.clearInterval(checkForNewQueetsInterval);
|
||||
checkForNewQueetsInterval=window.setInterval(function(){checkForNewQueets()},window.timeBetweenPolling);
|
||||
|
||||
// add this stream to the history menu
|
||||
addStreamToHistoryMenuAndMarkAsCurrent(streamObject);
|
||||
|
||||
remove_spinner();
|
||||
|
||||
// some streams, e.g. /statuses/show/1234.json is not enclosed in an array, make sure it is
|
||||
|
@ -1430,7 +1464,7 @@ function queetBoxPopUpHtml() {
|
|||
}
|
||||
|
||||
var startText = encodeURIComponent(window.sL.compose);
|
||||
return '<div class="inline-reply-queetbox"><div id="pop-up-queet-box" class="queet-box queet-box-syntax" data-start-text="' + startText + '" data-cached-text="' + cachedText + '">' + decodeURIComponent(startText) + '</div><div class="syntax-middle"></div><div class="syntax-two" contenteditable="true"></div><div class="mentions-suggestions"></div><div class="queet-toolbar toolbar-reply"><div class="queet-box-extras"><button data-tooltip="' + window.sL.tooltipAttachImage + '" class="upload-image"></button><button data-tooltip="' + window.sL.tooltipShortenUrls + '" class="shorten disabled">URL</button></div><div class="queet-button"><span class="queet-counter"></span><button>' + window.sL.queetVerb + '</button></div></div></div>';
|
||||
return '<div class="inline-reply-queetbox"><div id="pop-up-queet-box" class="queet-box queet-box-syntax" data-start-text="' + startText + '" data-cached-text="' + cachedText + '">' + decodeURIComponent(startText) + '</div><div class="syntax-middle"></div><div class="syntax-two" contenteditable="true"></div><div class="mentions-suggestions"></div><div class="queet-toolbar toolbar-reply"><div class="queet-box-extras"><button data-tooltip="' + window.sL.tooltipAttachFile + '" class="upload-image"></button><button data-tooltip="' + window.sL.tooltipShortenUrls + '" class="shorten disabled">URL</button></div><div class="queet-button"><span class="queet-counter"></span><button>' + window.sL.queetVerb + '</button></div></div></div>';
|
||||
}
|
||||
|
||||
|
||||
|
@ -1515,7 +1549,7 @@ function replyFormHtml(streamItem,qid) {
|
|||
|
||||
startText = encodeURIComponent(startText);
|
||||
repliesText = encodeURIComponent(repliesText);
|
||||
return '<div class="inline-reply-queetbox"><span class="inline-reply-caret"><span class="caret-inner"></span></span><img class="reply-avatar" src="' + $('#user-avatar').attr('src') + '" /><div class="queet-box queet-box-syntax" id="queet-box-' + qid + '" data-start-text="' + startText + '" data-replies-text="' + repliesText + '" data-cached-text="' + cachedText + '">' + decodeURIComponent(startText) + '</div><div class="syntax-middle"></div><div class="syntax-two" contenteditable="true"></div><div class="mentions-suggestions"></div><div class="queet-toolbar toolbar-reply"><div class="queet-box-extras"><button data-tooltip="' + window.sL.tooltipAttachImage + '" class="upload-image"></button><button data-tooltip="' + window.sL.tooltipShortenUrls + '" class="shorten disabled">URL</button></div><div class="queet-button"><span class="queet-counter"></span><button>' + window.sL.queetVerb + '</button></div></div></div>';
|
||||
return '<div class="inline-reply-queetbox"><span class="inline-reply-caret"><span class="caret-inner"></span></span><img class="reply-avatar" src="' + $('#user-avatar').attr('src') + '" /><div class="queet-box queet-box-syntax" id="queet-box-' + qid + '" data-start-text="' + startText + '" data-replies-text="' + repliesText + '" data-cached-text="' + cachedText + '">' + decodeURIComponent(startText) + '</div><div class="syntax-middle"></div><div class="syntax-two" contenteditable="true"></div><div class="mentions-suggestions"></div><div class="queet-toolbar toolbar-reply"><div class="queet-box-extras"><button data-tooltip="' + window.sL.tooltipAttachFile + '" class="upload-image"></button><button data-tooltip="' + window.sL.tooltipShortenUrls + '" class="shorten disabled">URL</button></div><div class="queet-button"><span class="queet-counter"></span><button>' + window.sL.queetVerb + '</button></div></div></div>';
|
||||
}
|
||||
|
||||
|
||||
|
@ -1781,7 +1815,7 @@ function addToFeed(feed, after, extraClasses) {
|
|||
// external
|
||||
var ostatusHtml = '';
|
||||
if(obj.from_profile.is_local === false) {
|
||||
ostatusHtml = '<a target="_blank" data-tooltip="' + window.sL.goToOriginalNotice + '" class="ostatus-link" href="' + obj.from_profile.statusnet_profile_url + '"></a>';
|
||||
ostatusHtml = '<a target="_blank" data-tooltip="' + window.sL.goToOriginalNotice + '" class="ostatus-link" href="' + obj.from_profile.statusnet_profile_url + '" donthijack></a>';
|
||||
}
|
||||
|
||||
if(obj.ntype == 'like') {
|
||||
|
@ -2027,7 +2061,7 @@ function buildUserStreamItemHtml(obj) {
|
|||
// external
|
||||
var ostatusHtml = '';
|
||||
if(obj.is_local === false) {
|
||||
ostatusHtml = '<a target="_blank" title="' + window.sL.goToTheUsersRemoteProfile + '" class="ostatus-link" href="' + obj.statusnet_profile_url + '"></a>';
|
||||
ostatusHtml = '<a target="_blank" title="' + window.sL.goToTheUsersRemoteProfile + '" class="ostatus-link" href="' + obj.statusnet_profile_url + '" donthijack></a>';
|
||||
}
|
||||
|
||||
// rtl or not
|
||||
|
@ -2274,9 +2308,9 @@ function buildQueetHtml(obj, idInStream, extraClasses, requeeted_by, isConversat
|
|||
});
|
||||
|
||||
// if statusnetHTML is contains <p>:s, unwrap those (diaspora..)
|
||||
statusnetHTML.children('p').each(function(){
|
||||
/*statusnetHTML.children('p').each(function(){
|
||||
$(this).contents().unwrap();
|
||||
});
|
||||
});*/
|
||||
|
||||
// bookmarks created by the bookmark plugin get's a tooltip
|
||||
statusnetHTML.find('.xfolkentry').each(function(){
|
||||
|
@ -2296,7 +2330,7 @@ function buildQueetHtml(obj, idInStream, extraClasses, requeeted_by, isConversat
|
|||
// external
|
||||
var ostatusHtml = '';
|
||||
if(obj.user.is_local === false) {
|
||||
ostatusHtml = '<a target="_blank" data-tooltip="' + window.sL.goToOriginalNotice + '" class="ostatus-link" href="' + obj.external_url + '"></a>';
|
||||
ostatusHtml = '<a target="_blank" data-tooltip="' + window.sL.goToOriginalNotice + '" class="ostatus-link" href="' + obj.external_url + '" donthijack></a>';
|
||||
var qSource = '<a href="' + obj.external_url + '">' + getHost(obj.external_url) + '</a>';
|
||||
}
|
||||
else {
|
||||
|
@ -2581,6 +2615,11 @@ function buildAttachmentHTML(attachments){
|
|||
noCoverClass=' no-cover';
|
||||
}
|
||||
|
||||
// After uploading media, until creating thumbnail, thumbnail url is null.
|
||||
if (!this.url) {
|
||||
this.url = '';
|
||||
}
|
||||
|
||||
// play button for videos and animated gifs
|
||||
var playButtonClass = '';
|
||||
if(typeof this.animated != 'undefined' && this.animated === true
|
||||
|
|
|
@ -726,12 +726,13 @@ function updateAllQueetsTimes() {
|
|||
· · · · · · · · · */
|
||||
|
||||
function isLocalURL(url) {
|
||||
if(url.substring(0,window.siteInstanceURL.length) == window.siteInstanceURL) {
|
||||
if(url.substring(0,window.siteInstanceURL.length) == window.siteInstanceURL // site url
|
||||
|| url.substring(0,window.siteAttachmentURLBase.length) == window.siteAttachmentURLBase // attachment url
|
||||
|| url.substring(0,window.siteAvatarURLBase.length) == window.siteAvatarURLBase // avatar url
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
@ -888,6 +889,7 @@ function cacheSyntaxHighlightingGroups() {
|
|||
window.userArrayCache = new Object();
|
||||
window.convertUriToUserArrayCacheKey = new Object();
|
||||
window.convertStatusnetProfileUrlToUserArrayCacheKey = new Object();
|
||||
window.convertLocalIdToUserArrayCacheKey = new Object();
|
||||
|
||||
function userArrayCacheStore(data) {
|
||||
|
||||
|
@ -944,6 +946,7 @@ function userArrayCacheStore(data) {
|
|||
window.userArrayCache[key].modified = Date.now();
|
||||
|
||||
// easy conversion between URI and statusnet_profile_url and the key we're using in window.userArrayCache
|
||||
window.convertLocalIdToUserArrayCacheKey[parseInt(dataToStore.local.id, 10)] = key;
|
||||
window.convertUriToUserArrayCacheKey[dataToStore.local.ostatus_uri] = key;
|
||||
window.convertStatusnetProfileUrlToUserArrayCacheKey[dataToStore.local.statusnet_profile_url] = key;
|
||||
}
|
||||
|
@ -958,6 +961,7 @@ function userArrayCacheStore(data) {
|
|||
window.userArrayCache[key].local = dataToStore.local;
|
||||
|
||||
// easy conversion between URI and statusnet_profile_url and the key we're using in window.userArrayCache
|
||||
window.convertLocalIdToUserArrayCacheKey[dataToStore.local.id] = key;
|
||||
window.convertUriToUserArrayCacheKey[dataToStore.local.ostatus_uri] = key;
|
||||
window.convertStatusnetProfileUrlToUserArrayCacheKey[dataToStore.local.statusnet_profile_url] = key;
|
||||
}
|
||||
|
@ -988,9 +992,13 @@ function userArrayCacheGetByLocalNickname(localNickname) {
|
|||
}
|
||||
|
||||
function userArrayCacheGetByProfileUrlAndNickname(profileUrl, nickname) {
|
||||
var possibleLocalId = false;
|
||||
if(nickname.substring(0,1) == '@') {
|
||||
nickname = nickname.substring(1);
|
||||
}
|
||||
if(profileUrl.indexOf(window.siteInstanceURL + 'user/') == 0) {
|
||||
possibleLocalId = parseInt(profileUrl.substring(window.siteInstanceURL.length+5),10);
|
||||
}
|
||||
// the url might match a known profile uri
|
||||
if(typeof window.convertUriToUserArrayCacheKey[profileUrl] != 'undefined') {
|
||||
if(typeof window.userArrayCache[window.convertUriToUserArrayCacheKey[profileUrl]] != 'undefined') {
|
||||
|
@ -1003,6 +1011,12 @@ function userArrayCacheGetByProfileUrlAndNickname(profileUrl, nickname) {
|
|||
return window.userArrayCache[window.convertStatusnetProfileUrlToUserArrayCacheKey[profileUrl]];
|
||||
}
|
||||
}
|
||||
// or the local id might match a known id
|
||||
else if(typeof window.convertLocalIdToUserArrayCacheKey[possibleLocalId] != 'undefined') {
|
||||
if(typeof window.userArrayCache[window.convertLocalIdToUserArrayCacheKey[possibleLocalId]] != 'undefined') {
|
||||
return window.userArrayCache[window.convertLocalIdToUserArrayCacheKey[possibleLocalId]];
|
||||
}
|
||||
}
|
||||
// or we try to guess the instance url, and see if we have a match in our cache
|
||||
else if(typeof window.userArrayCache[guessInstanceUrlWithoutProtocolFromProfileUrlAndNickname(profileUrl, nickname) + '/' + nickname] != 'undefined') {
|
||||
return window.userArrayCache[guessInstanceUrlWithoutProtocolFromProfileUrlAndNickname(profileUrl, nickname) + '/' + nickname];
|
||||
|
@ -1034,12 +1048,10 @@ function userArrayCacheGetUserNicknameById(id) {
|
|||
· · · · · · · · · */
|
||||
|
||||
function detectLocalOrExternalUserObject(userObject) {
|
||||
var dataProfileImageUrlWithoutProtocol = removeProtocolFromUrl(userObject.profile_image_url);
|
||||
var siteInstanceURLWithoutProtocol = removeProtocolFromUrl(window.siteInstanceURL);
|
||||
if(dataProfileImageUrlWithoutProtocol.substring(0,siteInstanceURLWithoutProtocol.length) == siteInstanceURLWithoutProtocol){
|
||||
|
||||
if(isLocalURL(userObject.profile_image_url) ) {
|
||||
return 'local';
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return 'external';
|
||||
}
|
||||
}
|
||||
|
@ -1078,6 +1090,11 @@ function guessInstanceUrlWithoutProtocolFromProfileUrlAndNickname(profileUrl, ni
|
|||
guessedInstanceUrl = guessedInstanceUrl.slice(0,-1);
|
||||
}
|
||||
|
||||
// fix new mastodon style profile urls
|
||||
if(guessedInstanceUrl.indexOf('/@') > -1) {
|
||||
guessedInstanceUrl = guessedInstanceUrl.substring(0, guessedInstanceUrl.indexOf('/@'));
|
||||
}
|
||||
|
||||
return guessedInstanceUrl;
|
||||
}
|
||||
|
||||
|
@ -1239,7 +1256,7 @@ function updateUserDataInStream() {
|
|||
// profile urls
|
||||
// try to find the last account group with this id, if the statusnet_profile_url seems to
|
||||
// be changed we replace it wherever we can find it, even in list urls etc that starts with statusnet_profile_url
|
||||
if($('a.account-group[data-user-id="' + userArray.local.id + '"]').last().attr('href') != userArray.local.statusnet_profile_url) {
|
||||
if(userArray.local.is_local === true && $('a.account-group[data-user-id="' + userArray.local.id + '"]').last().attr('href') != userArray.local.statusnet_profile_url) {
|
||||
var oldStatusnetProfileURL = $('a.account-group[data-user-id="' + userArray.local.id + '"]').last().attr('href');
|
||||
// all links with the exact statusnet_profile_url
|
||||
$.each($('[href="' + oldStatusnetProfileURL + '"]'),function(){
|
||||
|
@ -2231,6 +2248,29 @@ function appendAllBookmarks(bookmarkContainer) {
|
|||
}
|
||||
|
||||
|
||||
/* ·
|
||||
·
|
||||
· Change the header of an item in the history container by href attribute
|
||||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
function updateHistoryContainerItemByHref(href, streamHeader) {
|
||||
$('#history-container .stream-selection[href="' + href + '"]').html(streamHeader + '<i class="chev-right" data-tooltip="' + window.sL.tooltipBookmarkStream + '"></i>');
|
||||
updateHistoryLocalStorage();
|
||||
}
|
||||
|
||||
/* ·
|
||||
·
|
||||
· Remove items in the history container by href attribute
|
||||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
function removeHistoryContainerItemByHref(href) {
|
||||
$('#history-container .stream-selection[href="' + href + '"]').remove();
|
||||
updateHistoryLocalStorage();
|
||||
}
|
||||
|
||||
|
||||
/* ·
|
||||
·
|
||||
· Updates the browsing history local storage
|
||||
|
|
349
js/qvitter.js
349
js/qvitter.js
|
@ -50,9 +50,14 @@ checkLocalStorage();
|
|||
window.loggedIn = iterateRecursiveReplaceHtmlSpecialChars(window.loggedIn);
|
||||
|
||||
// hack to supress basic auth popup, e.g. if the user has to tabs open and
|
||||
// log out in one of them. but microsoft browsers doesn't support this
|
||||
if(typeof bowser.msie == 'undefined' && typeof bowser.msedge == 'undefined') {
|
||||
window.apiRoot = window.apiRoot.replace('://','://x:x@');
|
||||
// log out in one of them. but microsoft browsers and chrome 59+ doesn't support this
|
||||
if(typeof bowser != 'undefined') {
|
||||
var bowserIntVersion = parseInt(bowser.version,10);
|
||||
if(typeof bowser.msie == 'undefined'
|
||||
&& typeof bowser.msedge == 'undefined'
|
||||
&& !(typeof bowser.chrome != 'undefined' && bowser.chrome === true && bowserIntVersion <= 59)) {
|
||||
window.apiRoot = window.apiRoot.replace('://','://x:x@');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -280,7 +285,6 @@ $('body').on('mouseover',function (e) {
|
|||
possibleNickname = $(e.target).text();
|
||||
}
|
||||
}
|
||||
|
||||
// see if we have it in cache, otherwise query server
|
||||
getUserArrayData(hrefAttr, possibleNickname, timeNow, targetElement, function(userArray, timeOut){
|
||||
|
||||
|
@ -323,9 +327,8 @@ $('body').on('mouseover',function (e) {
|
|||
// we query it for the lastest data
|
||||
if((typeof window.userArrayLastRetrieved[hrefAttr] == 'undefined') || (timeNow - window.userArrayLastRetrieved[hrefAttr]) > 60000) {
|
||||
window.userArrayLastRetrieved[hrefAttr] = timeNow;
|
||||
|
||||
// local users
|
||||
if(userArray.local !== null && userArray.local.is_local === true) {
|
||||
if(userArray.local && userArray.local.is_local === true) {
|
||||
getFromAPI('users/show.json?id=' + userArray.local.screen_name, function(data){
|
||||
if(data) {
|
||||
var newProfileCard = buildProfileCard(data);
|
||||
|
@ -336,7 +339,7 @@ $('body').on('mouseover',function (e) {
|
|||
}
|
||||
|
||||
// external users
|
||||
else if(userArray.local === null || userArray.local.is_local === false) {
|
||||
else if(!userArray.local || userArray.local.is_local === false) {
|
||||
getFromAPI('qvitter/external_user_show.json?profileurl=' + encodeURIComponent(hrefAttr),function(data){
|
||||
if(data && data.external !== null) {
|
||||
var newProfileCard = buildExternalProfileCard(data);
|
||||
|
@ -383,7 +386,7 @@ function getUserArrayData(maybeProfileUrl,maybeNickname,timeNow,targetElement,ca
|
|||
if((typeof window.userArrayLastRetrieved[maybeProfileUrl] == 'undefined') || (timeNow - window.userArrayLastRetrieved[maybeProfileUrl]) > 60000) {
|
||||
window.userArrayLastRetrieved[maybeProfileUrl] = timeNow;
|
||||
getFromAPI('qvitter/external_user_show.json?profileurl=' + encodeURIComponent(maybeProfileUrl),function(data){
|
||||
if(data && data.external !== null) {
|
||||
if(data) {
|
||||
|
||||
// we want hover cards to appear _at least_ 600ms after hover (see below)
|
||||
var timeAfterServerQuery = new Date().getTime();
|
||||
|
@ -481,6 +484,105 @@ $('body').on('mouseleave','.hover-card', function(e) {
|
|||
});
|
||||
|
||||
|
||||
/* ·
|
||||
·
|
||||
· find someone tool
|
||||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
$('#find-someone input').keyup(function(e){
|
||||
var thisFindSomeoneInput = $(this);
|
||||
if(e.keyCode==13 && !thisFindSomeoneInput.hasClass('submitted')) {
|
||||
thisFindSomeoneInput.addClass('submitted');
|
||||
thisFindSomeoneInput.attr('disabled','disabled');
|
||||
var val = $.trim(thisFindSomeoneInput.val());
|
||||
|
||||
// if this is a simple text input, we assume it is a local user
|
||||
if(val.length>1 && /^(@)?[a-zA-Z0-9]+$/.test(val)) {
|
||||
if(val.indexOf('@') == 0) {
|
||||
val = val.replace('@','');
|
||||
}
|
||||
setNewCurrentStream(pathToStreamRouter(val),true,false,function(){
|
||||
foundSomeone(thisFindSomeoneInput);
|
||||
});
|
||||
}
|
||||
// urls might be a remote user
|
||||
else if(val.length==0 || /^(ftp|http|https):\/\/[^ "]+$/.test(val)) {
|
||||
getFromAPI('qvitter/external_user_show.json?profileurl=' + encodeURIComponent(val),function(data){
|
||||
if(data && data.local !== null) {
|
||||
setNewCurrentStream(pathToStreamRouter('user/' + data.local.id),true,false,function(){
|
||||
foundSomeone(thisFindSomeoneInput);
|
||||
});
|
||||
}
|
||||
else {
|
||||
cantFindSomeone(thisFindSomeoneInput);
|
||||
}
|
||||
});
|
||||
}
|
||||
// @user@instance.domain style syntax
|
||||
else if(val.length==0 || /^(@)?[a-zA-Z0-9]+@[a-zA-Z0-9\-]+(\.)(.*)+$/.test(val)) {
|
||||
|
||||
if(val.indexOf('@') == 0) {
|
||||
val = val.substring(1)
|
||||
}
|
||||
|
||||
var username = val.substring(0, val.indexOf('@'));
|
||||
var domain = val.substring(val.indexOf('@')+1);
|
||||
var urlToTry = 'https://' + domain + '/' + username;
|
||||
var secondUrlToTry = 'http://' + domain + '/' + username;
|
||||
var thirdUrlToTry = 'https://' + domain + '/@' + username; // mastodon
|
||||
|
||||
getFromAPI('qvitter/external_user_show.json?profileurl=' + encodeURIComponent(urlToTry),function(data){
|
||||
if(data && data.local !== null) {
|
||||
setNewCurrentStream(pathToStreamRouter('user/' + data.local.id),true,false,function(){
|
||||
foundSomeone(thisFindSomeoneInput);
|
||||
});
|
||||
}
|
||||
else {
|
||||
getFromAPI('qvitter/external_user_show.json?profileurl=' + encodeURIComponent(secondUrlToTry),function(data){
|
||||
if(data && data.local !== null) {
|
||||
setNewCurrentStream(pathToStreamRouter('user/' + data.local.id),true,false,function(){
|
||||
foundSomeone(thisFindSomeoneInput);
|
||||
});
|
||||
}
|
||||
else {
|
||||
getFromAPI('qvitter/external_user_show.json?profileurl=' + encodeURIComponent(thirdUrlToTry),function(data){
|
||||
if(data && data.local !== null) {
|
||||
setNewCurrentStream(pathToStreamRouter('user/' + data.local.id),true,false,function(){
|
||||
foundSomeone(thisFindSomeoneInput);
|
||||
});
|
||||
}
|
||||
else {
|
||||
cantFindSomeone(thisFindSomeoneInput);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
cantFindSomeone(thisFindSomeoneInput);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function cantFindSomeone(thisFindSomeoneInput) {
|
||||
thisFindSomeoneInput.css('background-color','pink');
|
||||
thisFindSomeoneInput.effect('shake',{distance:5,times:3,duration:700},function(){
|
||||
thisFindSomeoneInput.animate({backgroundColor:'#fff'},1000);
|
||||
thisFindSomeoneInput.removeAttr('disabled');
|
||||
thisFindSomeoneInput.removeClass('submitted');
|
||||
thisFindSomeoneInput.focus();
|
||||
});
|
||||
}
|
||||
function foundSomeone(thisFindSomeoneInput) {
|
||||
thisFindSomeoneInput.removeAttr('disabled');
|
||||
thisFindSomeoneInput.val('');
|
||||
thisFindSomeoneInput.blur();
|
||||
thisFindSomeoneInput.removeClass('submitted');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ·
|
||||
|
@ -877,7 +979,7 @@ function proceedToSetLanguageAndLogin(data){
|
|||
|
||||
// suggest user to help translate if their browsers language does't exist
|
||||
if(typeof window.availableLanguages[window.usersLanguageCode] == 'undefined' && !localStorageObjectCache_GET('languageErrorMessageDiscarded',window.usersLanguageNameInEnglish)) { // but don't nag
|
||||
$('#page-container').prepend('<div class="language-error-message" data-language-name="' + window.usersLanguageNameInEnglish + '">' + window.siteTitle + ' is not availible in your language (' + replaceHtmlSpecialChars(window.usersLanguageNameInEnglish) + '). Visit <a href="https://git.gnu.io/h2p/Qvitter/tree/master/locale">Qvitter\'s repository homepage</a> if you want to help us to translate the interface. <span class="discard-error-message"></span></div>');
|
||||
$('#page-container').prepend('<div class="language-error-message" data-language-name="' + window.usersLanguageNameInEnglish + '">' + window.siteTitle + ' is not availible in your language (' + replaceHtmlSpecialChars(window.usersLanguageNameInEnglish) + '). Visit <a href="https://git.wmsci.com/wamo/Qvitter/src/branch/develop/locale">Qvitter\'s repository homepage</a> if you want to help us to translate the interface. <span class="discard-error-message"></span></div>');
|
||||
}
|
||||
|
||||
// if selected language is too similar to english, we display a message telling people to help with the translation
|
||||
|
@ -959,12 +1061,15 @@ function proceedToSetLanguageAndLogin(data){
|
|||
$('#accessibility-toggle-link').html(window.sL.accessibilityToggleLink);
|
||||
$('#settingslink .nav-session').attr('data-tooltip',window.sL.profileAndSettings);
|
||||
$('#top-compose').attr('data-tooltip',window.sL.compose);
|
||||
$('button.upload-image').attr('data-tooltip',window.sL.tooltipAttachImage);
|
||||
$('button.upload-image').attr('data-tooltip',window.sL.tooltipAttachFile);
|
||||
$('button.shorten').attr('data-tooltip',window.sL.tooltipShortenUrls);
|
||||
$('.reload-stream').attr('data-tooltip',window.sL.tooltipReloadStream);
|
||||
$('#clear-history').html(window.sL.clearHistory);
|
||||
$('#user-screen-name, #user-avatar, #user-name').attr('data-tooltip', window.sL.viewMyProfilePage);
|
||||
$('#top-menu-profile-link-view-profile').html(window.sL.viewMyProfilePage);
|
||||
$('#find-someone input').attr('placeholder',window.sL.findSomeone);
|
||||
$('#find-someone input').attr('data-tooltip',window.sL.findSomeoneTooltip);
|
||||
|
||||
|
||||
// show site body now
|
||||
$('#user-container').css('display','block');
|
||||
|
@ -988,7 +1093,7 @@ function proceedToSetLanguageAndLogin(data){
|
|||
function proceedLoggedOut() {
|
||||
display_spinner();
|
||||
setNewCurrentStream(getStreamFromUrl(),true,false,function(){
|
||||
$('input#nickname').focus();
|
||||
// $('input#nickname').focus(); --> maybe not a good idea on mobile?
|
||||
$('#page-container').css('opacity','1');
|
||||
});
|
||||
}
|
||||
|
@ -1836,42 +1941,34 @@ $('body').on('click','a', function(e) {
|
|||
}
|
||||
// hijack link if we find a matching link that qvitter can handle
|
||||
else {
|
||||
var streamObject = URLtoStreamRouter($(this).attr('href'));
|
||||
|
||||
var hrefAttr = $(this).attr('href');
|
||||
|
||||
// this might be a remote profile that we want to reroute to a local instance/user/id url, let's check our cache
|
||||
if(typeof window.convertStatusnetProfileUrlToUserArrayCacheKey[hrefAttr] != 'undefined') {
|
||||
if(typeof window.userArrayCache[window.convertStatusnetProfileUrlToUserArrayCacheKey[hrefAttr]] != 'undefined') {
|
||||
var cachedUserArray = window.userArrayCache[window.convertStatusnetProfileUrlToUserArrayCacheKey[hrefAttr]];
|
||||
if(cachedUserArray.local.is_local === false) {
|
||||
hrefAttr = window.siteInstanceURL + 'user/' + cachedUserArray.local.id;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(typeof window.convertUriToUserArrayCacheKey[hrefAttr] != 'undefined') {
|
||||
if(typeof window.userArrayCache[window.convertUriToUserArrayCacheKey[hrefAttr]] != 'undefined') {
|
||||
var cachedUserArray = window.userArrayCache[window.convertUriToUserArrayCacheKey[hrefAttr]];
|
||||
if(cachedUserArray.local.is_local === false) {
|
||||
hrefAttr = window.siteInstanceURL + 'user/' + cachedUserArray.local.id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var streamObject = URLtoStreamRouter(hrefAttr);
|
||||
if(streamObject && streamObject.stream) {
|
||||
e.preventDefault();
|
||||
|
||||
// if this is a user/{id} type link we want to find the nickname before setting a new stream
|
||||
// the main reason is that we want to update the browsers location bar and the .stream-selecton
|
||||
// links as fast as we can. we rather not wait for the server response
|
||||
if(streamObject.name == 'profile by id') {
|
||||
|
||||
// pathToStreamRouter() might have found a cached nickname
|
||||
if(streamObject.nickname) {
|
||||
setNewCurrentStream(pathToStreamRouter(streamObject.nickname),true,streamObject.id);
|
||||
}
|
||||
// otherwise we might follow the user and thereby already know its nickname
|
||||
else if (typeof window.following != 'undefined' && typeof window.following[streamObject.id] != 'undefined') {
|
||||
setNewCurrentStream(pathToStreamRouter(window.following[streamObject.id].username),true,streamObject.id);
|
||||
}
|
||||
// if the text() of the clicked element looks like a user nickname, use that (but send id to setNewCurrentStream() in case this is bad data)
|
||||
else if(/^@[a-zA-Z0-9]+$/.test($(e.target).text()) || /^[a-zA-Z0-9]+$/.test($(e.target).text())) {
|
||||
var nickname = $(e.target).text();
|
||||
if(nickname.indexOf('@') == 0) {
|
||||
nickname = nickname.substring(1); // remove any starting @
|
||||
}
|
||||
setNewCurrentStream(pathToStreamRouter(nickname),true,streamObject.id);
|
||||
}
|
||||
// if we can't figure out or guess a nickname, query the server for it
|
||||
else {
|
||||
getNicknameByUserIdFromAPI(streamObject.id,function(nickname) {
|
||||
if(nickname) {
|
||||
setNewCurrentStream(pathToStreamRouter(nickname),true,false);
|
||||
}
|
||||
else {
|
||||
alert('user not found');
|
||||
}
|
||||
});
|
||||
}
|
||||
// if this is a user/{id} type link but we know the nickname already
|
||||
if(streamObject.name == 'profile by id' && streamObject.nickname !== false) {
|
||||
setNewCurrentStream(pathToStreamRouter(streamObject.nickname),true,streamObject.id);
|
||||
}
|
||||
// same with group/{id}/id links
|
||||
else if(streamObject.name == 'group notice stream by id') {
|
||||
|
@ -2059,10 +2156,9 @@ function checkForNewQueets() {
|
|||
if(window.loggedIn && (window.currentStreamObject.type == 'notices' || window.currentStreamObject.type == 'notifications')) {
|
||||
var lastId = $('#feed-body').children('.stream-item').not('.temp-post').not('.posted-from-form').attr('data-quitter-id-in-stream');
|
||||
var addThisStream = window.currentStreamObject.stream;
|
||||
var timeNow = new Date().getTime();
|
||||
getFromAPI(addThisStream + qOrAmp(window.currentStreamObject.stream) + 'since_id=' + lastId,function(data){
|
||||
$('body').removeClass('loading-newer');
|
||||
if(data) {
|
||||
$('body').removeClass('loading-newer');
|
||||
if(addThisStream == window.currentStreamObject.stream) {
|
||||
addToFeed(data, false, 'hidden');
|
||||
|
||||
|
@ -2082,7 +2178,6 @@ function checkForNewQueets() {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* ·
|
||||
·
|
||||
· Show hidden queets when user clicks on new-queets-bar
|
||||
|
@ -2753,10 +2848,13 @@ $('body').on('click', '.queet-toolbar button',function () {
|
|||
var queetBoxID = queetBox.attr('id');
|
||||
|
||||
// jquery's .text() function is not consistent in converting <br>:s to \n:s,
|
||||
// so we do this detour to make sure line breaks are preserved
|
||||
queetBox.html(queetBox.html().replace(/<br>/g, '{{{lb}}}'));
|
||||
// so we do this detour to make sure line breaks are preserved.
|
||||
// In firefox (and maybe some other browsers), queetBox.html() may have <div>s
|
||||
// and may or may not have <br> in them.
|
||||
// To deal with this, remove any <br>s right before </div> and then add ones.
|
||||
queetBox.html(queetBox.html().replace(/(<br>)*<\/div>/g, '<br></div>').replace(/({|})/g, '!$1').replace(/<br>/g, '{{{lb}}}'));
|
||||
var queetText = $.trim(queetBox.text().replace(/^\s+|\s+$/g, '').replace(/\n/g, ''));
|
||||
queetText = queetText.replace(/{{{lb}}}/g, "\n");
|
||||
queetText = queetText.replace(/{{{lb}}}/g, "\n").replace(/!({|})/g, '$1');
|
||||
|
||||
var queetTempText = replaceHtmlSpecialChars(queetText.replace(/\n/g,'<br>')); // no xss
|
||||
queetTempText = queetTempText.replace(/<br>/g,'<br>'); // but preserve line breaks
|
||||
|
@ -3115,6 +3213,10 @@ $('body').on('keyup paste input', 'div.queet-box-syntax', function() {
|
|||
currentVal = currentVal.replace(/<br>$/, '').replace(/ $/, '').replace(/ $/, ''); // fix
|
||||
$(this).siblings('.syntax-two').html(currentVal);
|
||||
|
||||
// If user click post area before load finished (top gnu logo), this is undefined.
|
||||
if (!window.syntaxHighlightingRegexps) {
|
||||
window.syntaxHighlightingRegexps = Object();
|
||||
}
|
||||
|
||||
// loop through the regexps and highlight
|
||||
$.each(window.syntaxHighlightingRegexps,function(k,v){
|
||||
|
@ -3279,121 +3381,66 @@ $('body').on('keyup', 'div.queet-box-syntax', function(e) {
|
|||
});
|
||||
});
|
||||
|
||||
// check for user mentions
|
||||
window.lastMention = new Object();
|
||||
$('body').on('keyup', 'div.queet-box-syntax', function(e) {
|
||||
|
||||
var queetBox = $(this);
|
||||
var cursorPosArray = getSelectionInElement(queetBox[0]);
|
||||
var cursorPos = cursorPosArray[0];
|
||||
|
||||
// add space before linebreaks (to separate mentions in beginning of new lines when .text():ing later)
|
||||
if(e.keyCode == '13') {
|
||||
e.preventDefault();
|
||||
var range = createRangeFromCharacterIndices(queetBox[0], cursorPos, cursorPos);
|
||||
range.insertNode(document.createTextNode(" \n"));
|
||||
}
|
||||
else if(e.keyCode != '40' && e.keyCode != '38' && e.keyCode != '13' && e.keyCode != '9') {
|
||||
var contents = queetBox.text().substring(0,cursorPos);
|
||||
var mentionPos = contents.lastIndexOf('@');
|
||||
var check_contents = contents.substring(mentionPos - 1, cursorPos);
|
||||
var regex = /(^|\s|\.|\n)(@)[a-zA-Z0-9]+/;
|
||||
var match = check_contents.match(regex);
|
||||
if (contents.indexOf('@') >= 0 && match) {
|
||||
|
||||
if(contents.lastIndexOf('@') > 1) {
|
||||
match[0] = match[0].substring(1,match[0].length);
|
||||
}
|
||||
if((contents.lastIndexOf('@')+match[0].length) == cursorPos) {
|
||||
|
||||
queetBox.siblings('.mentions-suggestions').children('.user-suggestion').remove();
|
||||
queetBox.siblings('.mentions-suggestions').css('top',(queetBox.height()+20) + 'px');
|
||||
var term = match[0].substring(match[0].lastIndexOf('@')+1, match[0].length).toLowerCase();
|
||||
window.lastMention.mentionPos = mentionPos;
|
||||
window.lastMention.cursorPos = cursorPos;
|
||||
|
||||
|
||||
// see if anyone we're following matches
|
||||
var suggestionsToShow = [];
|
||||
var suggestionsUsernameCount = {};
|
||||
suggestionsUsernameCount[window.loggedIn.screen_name] = 1; // any suggestions with the same screen name as mine will get their server url added
|
||||
$.each(window.following,function(){
|
||||
var userregex = new RegExp(term);
|
||||
if(this.username.toLowerCase().match(userregex) || this.name.toLowerCase().match(userregex)) {
|
||||
suggestionsToShow.push({avatar:this.avatar, name:this.name, username:this.username,url:this.url});
|
||||
|
||||
// count the usernames to see if we need to show the server for any of them
|
||||
if(typeof suggestionsUsernameCount[this.username] != 'undefined') {
|
||||
suggestionsUsernameCount[this.username] = suggestionsUsernameCount[this.username] + 1;
|
||||
}
|
||||
else {
|
||||
suggestionsUsernameCount[this.username] = 1;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// show matches
|
||||
$.each(suggestionsToShow,function(){
|
||||
var serverHtml = '';
|
||||
if(suggestionsUsernameCount[this.username]>1 && this.url !== false) {
|
||||
serverHtml = '@' + this.url;
|
||||
}
|
||||
queetBox.siblings('.mentions-suggestions').append('<div class="user-suggestion" title="@' + this.username + serverHtml + '"><img height="24" width="24" src="' + this.avatar + '" /><strong>' + this.name + '</strong> @<span>' + this.username + serverHtml + '</span></div>')
|
||||
});
|
||||
|
||||
}
|
||||
else {
|
||||
queetBox.siblings('.mentions-suggestions').children('.user-suggestion').remove();
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
queetBox.siblings('.mentions-suggestions').children('.user-suggestion').remove();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// check for user mentions
|
||||
$('body').on('keyup', 'div.queet-box-syntax', function(e) { checkMentions(e, true);});
|
||||
// check for group mentions
|
||||
$('body').on('keyup', 'div.queet-box-syntax', function(e) {
|
||||
$('body').on('keyup', 'div.queet-box-syntax', function(e) { checkMentions(e, false);});
|
||||
|
||||
var queetBox = $(this);
|
||||
/**
|
||||
* check for user/group mentions
|
||||
*
|
||||
* @param {Object} e: Event object
|
||||
* @param {boolean} isUser
|
||||
*/
|
||||
function checkMentions(e, isUser) {
|
||||
var mark = '!';
|
||||
var prefix = 'group';
|
||||
if (isUser) {
|
||||
mark = '@';
|
||||
prefix = 'user';
|
||||
}
|
||||
|
||||
// var queetBox = $(this);
|
||||
var queetBox = $('body div.queet-box-syntax');
|
||||
var cursorPosArray = getSelectionInElement(queetBox[0]);
|
||||
var cursorPos = cursorPosArray[0];
|
||||
|
||||
// add space before linebreaks (to separate mentions in beginning of new lines when .text():ing later)
|
||||
if(e.keyCode == '13') {
|
||||
e.preventDefault();
|
||||
var range = createRangeFromCharacterIndices(queetBox[0], cursorPos, cursorPos);
|
||||
range.insertNode(document.createTextNode(" \n"));
|
||||
}
|
||||
else if(e.keyCode != '40' && e.keyCode != '38' && e.keyCode != '13' && e.keyCode != '9') {
|
||||
if(e.keyCode != '40' && e.keyCode != '38' && e.keyCode != '13' && e.keyCode != '9') {
|
||||
var contents = queetBox.text().substring(0,cursorPos);
|
||||
var mentionPos = contents.lastIndexOf('!');
|
||||
var mentionPos = contents.lastIndexOf(mark);
|
||||
var check_contents = contents.substring(mentionPos - 1, cursorPos);
|
||||
var regex = /(^|\s|\.|\n)(!)[a-zA-Z0-9]+/;
|
||||
var regex = new RegExp('(^|\s|\.|\n)(' + mark + ')[a-zA-Z0-9]+');
|
||||
var match = check_contents.match(regex);
|
||||
if (contents.indexOf('!') >= 0 && match) {
|
||||
if (contents.indexOf(mark) >= 0 && match) {
|
||||
|
||||
if(contents.lastIndexOf('!') > 1) {
|
||||
if(contents.lastIndexOf(mark) > 1) {
|
||||
match[0] = match[0].substring(1,match[0].length);
|
||||
}
|
||||
if((contents.lastIndexOf('!')+match[0].length) == cursorPos) {
|
||||
if((contents.lastIndexOf(mark)+match[0].length) == cursorPos) {
|
||||
|
||||
queetBox.siblings('.mentions-suggestions').children('.group-suggestion').remove();
|
||||
queetBox.siblings('.mentions-suggestions').children('.' + prefix + '-suggestion').remove();
|
||||
queetBox.siblings('.mentions-suggestions').css('top',(queetBox.height()+20) + 'px');
|
||||
var term = match[0].substring(match[0].lastIndexOf('!')+1, match[0].length).toLowerCase();
|
||||
var term = match[0].substring(match[0].lastIndexOf(mark)+1, match[0].length).toLowerCase();
|
||||
window.lastMention.mentionPos = mentionPos;
|
||||
window.lastMention.cursorPos = cursorPos;
|
||||
|
||||
|
||||
// see if any group we're member of matches
|
||||
// see if any user/group we're following matches
|
||||
var suggestionsToShow = [];
|
||||
var suggestionsUsernameCount = {};
|
||||
$.each(window.groupMemberships,function(){
|
||||
if (isUser) {
|
||||
suggestionsUsernameCount[window.loggedIn.screen_name] = 1; // any suggestions with the same screen name as mine will get their server url added
|
||||
}
|
||||
var targets = isUser ? (window.following) : (window.groupMemberships);
|
||||
$.each(targets, function(){
|
||||
var userregex = new RegExp(term);
|
||||
if(this.username.toLowerCase().match(userregex) || this.name.toLowerCase().match(userregex)) {
|
||||
suggestionsToShow.push({id:this.id, avatar:this.avatar, name:this.name, username:this.username,url:this.url});
|
||||
var suggestion = {avatar:this.avatar, name:this.name, username:this.username,url:this.url};
|
||||
if (!isUser) {
|
||||
suggestion.id = this.id;
|
||||
}
|
||||
suggestionsToShow.push(suggestion);
|
||||
|
||||
// count the usernames to see if we need to show the server for any of them
|
||||
if(typeof suggestionsUsernameCount[this.username] != 'undefined') {
|
||||
|
@ -3409,23 +3456,27 @@ $('body').on('keyup', 'div.queet-box-syntax', function(e) {
|
|||
$.each(suggestionsToShow,function(){
|
||||
var serverHtml = '';
|
||||
if(suggestionsUsernameCount[this.username]>1 && this.url !== false) {
|
||||
serverHtml = this.url + '/group/';
|
||||
serverHtml = isUser ? ('@' + this.url) : (this.url + '/group/');
|
||||
}
|
||||
if (isUser) {
|
||||
queetBox.siblings('.mentions-suggestions').append('<div class="user-suggestion" title="@' + this.username + serverHtml + '"><img height="24" width="24" src="' + this.avatar + '" /><strong>' + this.name + '</strong> @<span>' + this.username + serverHtml + '</span></div>')
|
||||
}
|
||||
else {
|
||||
queetBox.siblings('.mentions-suggestions').append('<div class="group-suggestion" title="' + serverHtml + this.username + '" data-group-id="' + this.id + '"><img height="24" width="24" src="' + this.avatar + '" /><strong>' + this.name + '</strong> !<span>' + this.username + '</span></div>')
|
||||
}
|
||||
queetBox.siblings('.mentions-suggestions').append('<div class="group-suggestion" title="' + serverHtml + this.username + '" data-group-id="' + this.id + '"><img height="24" width="24" src="' + this.avatar + '" /><strong>' + this.name + '</strong> !<span>' + this.username + '</span></div>')
|
||||
});
|
||||
|
||||
}
|
||||
else {
|
||||
queetBox.siblings('.mentions-suggestions').children('.group-suggestion').remove();
|
||||
queetBox.siblings('.mentions-suggestions').children('.' + prefix + '-suggestion').remove();
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
queetBox.siblings('.mentions-suggestions').children('.group-suggestion').remove();
|
||||
queetBox.siblings('.mentions-suggestions').children('.' + prefix + '-suggestion').remove();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/* ·
|
||||
·
|
||||
|
|
|
@ -57,7 +57,14 @@ window.pluginStreamObjects = [];
|
|||
· · · · · · · · · */
|
||||
|
||||
function setUrlFromStream(streamObject) {
|
||||
history.pushState({strm:streamObject.path},'','/' + streamObject.path);
|
||||
|
||||
// if we know the nickname for profiles, go with that instead of the id
|
||||
if(streamObject.name == 'profile by id' && streamObject.nickname !== false) {
|
||||
history.pushState({strm:streamObject.nickname},'','/' + streamObject.nickname);
|
||||
}
|
||||
else {
|
||||
history.pushState({strm:streamObject.path},'','/' + streamObject.path);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -387,7 +394,7 @@ function pathToStreamRouter(path) {
|
|||
streamObject.streamSubHeader = window.sL.notices + '<div class="queet-streams">/ <a class="queet-stream mentions" href="' + window.siteInstanceURL + streamObject.nickname + '/replies">' + window.sL.mentions + '</a> / <a class="queet-stream favorites" href="' + window.siteInstanceURL + streamObject.nickname + '/favorites">' + window.sL.favoritesNoun +'</a></div>';
|
||||
}
|
||||
streamObject.id = pathSplit[1];
|
||||
streamObject.stream = 'statuses/user_timeline.json?id=' + streamObject.id + '&withuserarray=1';
|
||||
streamObject.stream = 'qvitter/statuses/user_timeline.json?id=' + streamObject.id + '&withuserarray=1';
|
||||
return streamObject;
|
||||
}
|
||||
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.",
|
||||
"profileAndSettings":"Profile and settings",
|
||||
"profileSettings":"Profile settings",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.",
|
||||
"profileAndSettings":"Profile and settings",
|
||||
"profileSettings":"Profile settings",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -156,46 +156,50 @@
|
|||
"myListWithListName":"La meva llista: {list-name}",
|
||||
"listMembers":"Membres",
|
||||
"listSubscribers":"Subscriptors",
|
||||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"ERRORcouldNotFindList":"La llista no existeix.",
|
||||
"emailAlreadyInUse":"Ja en ús",
|
||||
"addEditLanguageLink":"Ajuda a traduir {site-title} a un altre idioma",
|
||||
"onlyPartlyTranslated":"{site-title} està només traduït parcialment a <em>{language-name}</em> ({percent}%). Tu pots ajudar a completar la traducció a <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant",
|
||||
"hideEmbeddedInTimeline":"Hide embedded content in this timeline",
|
||||
"hideQuotesInTimeline":"Hide quotes in this timeline",
|
||||
"userBlocks":"Accounts you're blocking",
|
||||
"startRant":"Iniciar una conversa",
|
||||
"continueRant":"Continuar la conversa",
|
||||
"hideEmbeddedInTimeline":"Amagar el contingut incrustat en aquesta línia temporal",
|
||||
"hideQuotesInTimeline":"Amagar cites en aquesta línia temporal",
|
||||
"userBlocks":"Usuaris als qui has bloquejat",
|
||||
"buttonBlocked":"Bloquejat",
|
||||
"buttonUnblock":"Desbloqueja",
|
||||
"failedBlockingUser":"Failed to block the user.",
|
||||
"failedUnblockingUser":"Failed to unblock the user.",
|
||||
"failedBlockingUser":"Va fallar el bloqueig a l'usuari.",
|
||||
"failedUnblockingUser":"Va fallar el desbloqueig a l'usuari.",
|
||||
"unblockUser": "Desbloqueja {username}",
|
||||
"tooltipBlocksYou":"Estàs bloquejat de seguir {username}.",
|
||||
"silenced":"Silenciat",
|
||||
"silencedPlural":"Perfils silenciats",
|
||||
"silencedUsersOnThisInstance":"Perfils silenciats a {site-title}",
|
||||
"sandboxed":"Sandboxed",
|
||||
"sandboxedPlural":"Sandboxed profiles",
|
||||
"sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}",
|
||||
"silencedStreamDescription":"Silenced users can't login or post quips and the quips they've already posted are hidden. For local users it's like a delete that can be reversed, for remote users it's like a site wide block.",
|
||||
"sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Apart from that, they can use the site like any other user.",
|
||||
"onlyShowNotificationsFromUsersIFollow":"Only show notifications from users I follow",
|
||||
"userOptions":"More user actions",
|
||||
"silenceThisUser":"Silence {nickname}",
|
||||
"sandboxThisUser":"Sandbox {nickname}",
|
||||
"unSilenceThisUser":"Unsilence {nickname}",
|
||||
"unSandboxThisUser":"Unsandbox {nickname}",
|
||||
"ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user",
|
||||
"ERRORfailedSilencingUser":"Failed silencing/unsilencing the user",
|
||||
"muteUser":"Mute",
|
||||
"unmuteUser":"Unmute",
|
||||
"hideNotificationsFromMutedUsers":"Hide notifications from muted users",
|
||||
"thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.",
|
||||
"userMutes":"Accounts you're muting",
|
||||
"userBlocked":"Blocked accounts",
|
||||
"userMuted":"Muted accounts",
|
||||
"mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.",
|
||||
"profileAndSettings":"Profile and settings",
|
||||
"profileSettings":"Profile settings",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"sandboxed":"Aïllat",
|
||||
"sandboxedPlural":"Perfils aïllats",
|
||||
"sandboxedUsersOnThisInstance":"Perfils aïllats en {site-title}",
|
||||
"silencedStreamDescription":"Els usuaris prohibits no poden iniciar sessió ni publicar queets i els ja publicats s'ocultaran. Per a usuaris locals és com una eliminació reversible; per a usuaris remots és com un bloqueig global.",
|
||||
"sandboxedStreamDescription":"Els queets d'usuaris aïllats estan exclosos de la línia temporal pública i de tota la xarxa coneguda. Els queets publicats durant l'aïllament no s'inclouran en les línies temporals públiques encara que es desactivi l'aïllament a l'usuari.",
|
||||
"onlyShowNotificationsFromUsersIFollow":"Només mostrar notificacions d'usuaris als qui segueixo",
|
||||
"userOptions":"Més opcions d'usuari",
|
||||
"silenceThisUser":"Prohibir a {nickname}",
|
||||
"sandboxThisUser":"Aïllar a {nickname}",
|
||||
"unSilenceThisUser":"Desactivar la prohibició de {nickname}",
|
||||
"unSandboxThisUser":"Desactivar l'aïllament de {nickname}",
|
||||
"ERRORfailedSandboxingUser":"Va fallar l'aïllament o la seva desactivació de l'usuari",
|
||||
"ERRORfailedSilencingUser":"Va fallar la prohibició o la seva desactivació de l'usuari",
|
||||
"muteUser":"Silenciar",
|
||||
"unmuteUser":"Desactivar silenci",
|
||||
"hideNotificationsFromMutedUsers":"Amagar notificacions d'usuaris silenciats",
|
||||
"thisIsANoticeFromAMutedUser":"Has silenciat a l'autor d'aquest queet. Fes clic per mostrar-ho igualment.",
|
||||
"userMutes":"Usuaris que has silenciat",
|
||||
"userBlocked":"Comptes bloquejats",
|
||||
"userMuted":"Comptes silenciats",
|
||||
"mutedStreamDescription":"Has ocultat aquests comptes de la teva línia temporal. Seguiràs rebent notificacions d'aquests comptes tret que seleccions "Amagar notificacions d'usuaris silenciats" des del menú amb forma de roda dentada a la pàgina de notificacions.",
|
||||
"profileAndSettings":"Perfil i ajustos",
|
||||
"profileSettings":"Ajustos del perfil",
|
||||
"thisIsABookmark":"Això és un marcador va crear en l'interfície Clàssic",
|
||||
"thisIsARemoteUser":"<strong>Atenció!</strong>Est és un usuari remot. Aquesta pàgina és només una còpia en caché del seu perfil, i inclou només dades conegudes per aquesta instància social de GNU.Aneu a la <a href=\"{remote-profile-url}\" donthijack>perfil de l'usuari en el seu servidor</a> per veure el seu perfil complet.",
|
||||
"findSomeone":"Troba a algú",
|
||||
"findSomeoneTooltip":"Introdueixi un nom d'usuari o una adreça URL de perfil, per exemple @localuser o https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Adjuntar un arxiu"
|
||||
}
|
||||
|
|
|
@ -125,11 +125,11 @@
|
|||
"keyboardShortcuts": "Tastatur-Kürzel",
|
||||
"classicInterface": "Klassische Ansicht: {site-title}",
|
||||
"accessibilityToggleLink": "Nutzer von Screenreadern klicken bitte hier, um zur klassischen Version von {site-title} zu gelangen.",
|
||||
"tooltipBookmarkStream": "Diesen Datenstrom zu den Lesezeichen beifügen",
|
||||
"tooltipBookmarkStream": "Diesen Stream zu den Lesezeichen hinzufügen",
|
||||
"tooltipTopMenu": "Menü und Einstellungen",
|
||||
"tooltipAttachImage": "Bild anfügen",
|
||||
"tooltipShortenUrls": "Alle URLs im Queet kürzen",
|
||||
"tooltipReloadStream": "Diesen Datenstrom aktualisieren",
|
||||
"tooltipReloadStream": "Diesen Stream aktualisieren",
|
||||
"tooltipRemoveBookmark": "Dieses Lesezeichen löschen",
|
||||
"clearHistory": "Verlauf löschen",
|
||||
"ERRORsomethingWentWrong": "Irgendetwas ging da schief.",
|
||||
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"Du hast diese Nutzer in Deiner Timeline ausgeblendet. Benachrichtigungen von diesen Nutzern werden werden weiterhin angezeigt. Um sie ebenfalls zu verbergen, wähle im Zahnradmenu der Benachrichtigungsseite die Option "Benachrichtigungen von ausgeblendeten Benutzern verbergen".",
|
||||
"profileAndSettings":"Profil und Einstellungen",
|
||||
"profileSettings":"Profileinstellungen",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"Dies ist ein Lesezeichen das in der Klassischen Ansicht erstellt wurde",
|
||||
"thisIsARemoteUser":"<strong>Achtung!</strong> Dies ist ein entfernter Nutzer. Diese Seite ist nur eine zwischengespeicherte Kopie des Profils und enthält nur Daten, welcher dieser GNU Social Instanz bekannt sind. Gehe zum <a href=\"{remote-profile-url}\" donthijack>Profil des Nutzers auf seinem Server</a> um das gesamte Profile zu sehen.",
|
||||
"findSomeone":"Suche jemanden",
|
||||
"findSomeoneTooltip":"Gib einen Benutzernamen oder eine Profil-URL ein, z.B. @lokalernutzer oder https://entfernte.instanz/nickname",
|
||||
"tooltipAttachFile":"Datei anhängen"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"You've hidden these accounts from your timeline. You will still receive notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.",
|
||||
"profileAndSettings":"Profile and settings",
|
||||
"profileSettings":"Profile settings",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -187,14 +187,19 @@
|
|||
"unSandboxThisUser":"Malsablokesti {nickname}",
|
||||
"ERRORfailedSandboxingUser":"Malsukcesis sablokestigi/malsablokestigi la uzanton",
|
||||
"ERRORfailedSilencingUser":"Malsukcesis silentigi/malsilentigi la uzanton",
|
||||
"muteUser":"Mute",
|
||||
"unmuteUser":"Unmute",
|
||||
"hideNotificationsFromMutedUsers":"Hide notifications from muted users",
|
||||
"thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.",
|
||||
"userMutes":"Accounts you're muting",
|
||||
"userBlocked":"Blocked accounts",
|
||||
"userMuted":"Muted accounts",
|
||||
"mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.",
|
||||
"profileAndSettings":"Profile and settings",
|
||||
"profileSettings":"Profile settings"
|
||||
"muteUser":"Mutigi",
|
||||
"unmuteUser":"Mlmutigi",
|
||||
"hideNotificationsFromMutedUsers":"Kaŝi sciigojn el mutigitaj uzantoj",
|
||||
"thisIsANoticeFromAMutedUser":"Vi mutigis la verkinton de ĉi tiu mesaĝo. Alklaku ĉi tien por montri ĝi ĉiaokaze.",
|
||||
"userMutes":"Mutigitaj kontoj",
|
||||
"userBlocked":"Blokitaj kontoj",
|
||||
"userMuted":"Mutigitaj kontoj",
|
||||
"mutedStreamDescription":"Vi kaŝis ĉi tiujn kontojn el via tempolinio. Vi ankoraŭ ricevos sciigojn el tiuj kontoj, krom se vi elektu "Kaŝi sciigojn el mutigitaj uzantoj" el la dentorado-menuo en la paĝoj pri sciigoj.",
|
||||
"profileAndSettings":"Profilo kaj agordoj",
|
||||
"profileSettings":"Profilaj agordoj",
|
||||
"thisIsABookmark":"Ĉi tio estas paĝosigno kreita en la klasika interfaco",
|
||||
"thisIsARemoteUser":"<strong>Atentu!</strong> Ĉi tiu estas fora uzanto. Ĉi tiu paĝo estas nur konservita kopio el ĝia profilo, kaj enhavas nur datumojn konatajn de ĉi tiu GNU social-retejo. Vizitu <a href=\"{remote-profile-url}\" donthijack>la uzantprofilon ĉi ĝia servilo</a> por vidi la tutan profilon.",
|
||||
"findSomeone":"Trovu iun",
|
||||
"findSomeoneTooltip":"Enigu uzantnomon aŭ profilo-adreson, ekz. @lokauzanto aŭ https://fora.retejo/kromnomo",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -196,5 +196,9 @@
|
|||
"mutedStreamDescription":"Has ocultado estas cuentas de tu línea temporal. Seguirás recibiendo notificaciones de dichas cuentas a menos que selecciones "Ocultar notificaciones de usuarios silencioados" desde el menú con forma de rueda dentada en la página de notificaciones.",
|
||||
"profileAndSettings":"Perfil y ajustes",
|
||||
"profileSettings":"Ajustes del perfil",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"Este es un marcador creado en la interfaz Classic",
|
||||
"thisIsARemoteUser":"<strong>Atención!</strong> Este es un usuario remoto. Esta página es sólo una copia en caché de su perfil, e incluye sólo datos conocidos por esta instancia social de GNU. Ve a la <a href=\"{remote-profile-url}\" donthijack>perfil de usuario en su servidor</a> para ver su perfil completo.",
|
||||
"findSomeone":"Encuentra a alguien",
|
||||
"findSomeoneTooltip":"Introduzca un nombre de usuario o una dirección URL de perfil, por ejemplo @localuser o https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Adjuntar un archivo"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"Haz ocultado esas cuentas de tu línea temporal. Igualmente recibirás notificaciones de esas cuentas, a menos que selecciones "Hide notifications from muted users" desde el menú de la rueda dentada en la página de notificaciones.",
|
||||
"profileAndSettings":"Perfiles y configuraciones",
|
||||
"profileSettings":"Perfil y configuración",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"Has ocultado estas cuentas de tu línea temporal. Seguirás recibiendo notificaciones de dichas cuentas a menos que selecciones "Ocultar notificaciones de usuarios silencioados" desde el menú con forma de rueda dentada en la página de notificaciones.",
|
||||
"profileAndSettings":"Perfil y ajustes",
|
||||
"profileSettings":"Ajustes del perfil",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.",
|
||||
"profileAndSettings":"Profile and settings",
|
||||
"profileSettings":"Profile settings",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -115,19 +115,19 @@
|
|||
"FAQ": "FAQ",
|
||||
"inviteAFriend": "دعوت از دوستانتان",
|
||||
"goToExternalProfile": "رفتن به نمایه کامل",
|
||||
"cropAndSave": "Crop and save",
|
||||
"cropAndSave": "برش و ذخیره",
|
||||
"showTerms": "Read our Terms of Use",
|
||||
"ellipsisMore": "More",
|
||||
"ellipsisMore": "بیشتر",
|
||||
"blockUser": "Block {username}",
|
||||
"goToOriginalNotice": "Go to original notice",
|
||||
"goToTheUsersRemoteProfile": "Go to the user's remote profile",
|
||||
"clickToDrag":"Click to drag",
|
||||
"keyboardShortcuts":"Keyboard shortcuts",
|
||||
"classicInterface":"Classic {site-title}",
|
||||
"clickToDrag":"کلیک برای کشیدن",
|
||||
"keyboardShortcuts":"میانبرهای کیبورد",
|
||||
"classicInterface":"کلاسیک {site-title}",
|
||||
"accessibilityToggleLink":"For better accessibility, click this link to switch to the classic interface",
|
||||
"tooltipBookmarkStream":"Add this stream to your bookmarks",
|
||||
"tooltipTopMenu":"Menu and settings",
|
||||
"tooltipAttachImage":"Attach an image",
|
||||
"tooltipTopMenu":"منو و تنظیمات",
|
||||
"tooltipAttachImage":"پیوست عکس",
|
||||
"tooltipShortenUrls":"Shorten all URLs in the Queet",
|
||||
"tooltipReloadStream":"Refresh this stream",
|
||||
"tooltipRemoveBookmark":"Remove this bookmark",
|
||||
|
@ -136,7 +136,7 @@
|
|||
"ERRORmustBeLoggedIn":"You must be logged in to view this stream.",
|
||||
"ERRORcouldNotFindUserWithNickname":"Could not find a user with nickname \"{nickname}\" on this server",
|
||||
"ERRORcouldNotFindGroupWithNickname":"Could not find a group with nickname \"{nickname}\" on this server",
|
||||
"ERRORcouldNotFindPage":"Could not find that page.",
|
||||
"ERRORcouldNotFindPage":"برگه پیدا نشد",
|
||||
"ERRORnoticeRemoved": "This notice has been removed.",
|
||||
"ERRORnoContactWithServer": "Can not establish a connection to the server. The server could be overloaded, or there might be a problem with your internet connecton. Please try again later!",
|
||||
"ERRORattachmentUploadFailed": "The upload failed. The format might be unsupported or the size too large.",
|
||||
|
@ -153,7 +153,7 @@
|
|||
"newNotifications": "{new-notice-count} new notifications",
|
||||
"thisIsANoticeFromABlockedUser":"Warning: This is a notice from a user you have blocked. Click to show it.",
|
||||
"nicknamesListWithListName":"{nickname}’s list: {list-name}",
|
||||
"myListWithListName":"My list: {list-name}",
|
||||
"myListWithListName":"لیست من: {list-name}",
|
||||
"listMembers":"Members",
|
||||
"listSubscribers":"Subscribers",
|
||||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.",
|
||||
"profileAndSettings":"Profile and settings",
|
||||
"profileSettings":"Profile settings",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"پیداکردن کسی",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"پیوست فایل"
|
||||
}
|
||||
|
|
|
@ -198,5 +198,9 @@
|
|||
"mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.",
|
||||
"profileAndSettings":"Profile and settings",
|
||||
"profileSettings":"Profile settings",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.",
|
||||
"profileAndSettings":"Profile and settings",
|
||||
"profileSettings":"Profile settings",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"Ocultaches estas contas da túa liña de tempo. Continuarás a recibir notificacións destas contas, a non ser que selecciones "Agochar notificacións de usuarias acaladas" na roda dentada do menú da páxina de notificacións.",
|
||||
"profileAndSettings":"Perfil e axustes",
|
||||
"profileSettings":"Axustes do perfil",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"הסתרת את חשבונות אלה מתוך ציר הזמן שלך. You will still recieve notifications from these accounts, unless you select "הסתר התרעות ממשתמשים מוסתרים" from the cog wheel menu on the notifications page.",
|
||||
"profileAndSettings":"פרופיל והגדרות",
|
||||
"profileSettings":"הגדרות פרופיל",
|
||||
"thisIsABookmark":"זוהי סימנייה שנוצרה בתוך הממשק הקלאסי"
|
||||
"thisIsABookmark":"זוהי סימנייה שנוצרה בתוך הממשק הקלאסי",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -194,5 +194,9 @@
|
|||
"mutedStreamDescription":"Դուք թացրել եք այս օգտատերերին Ձեր հոսքից։ Դուք կշարունակեք ստանալ այս օգտատերերից ծանուցումներ, եթե չընտրեք "Թաքցնել արհամարհվող օգտատերերի ծանուցումները " Ծանուցումների էջի մենյուի կարգավորումներում",
|
||||
"profileAndSettings":"Էջ և կարգավորումներ",
|
||||
"profileSettings":"Էջի կարգավորումներ",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
205
locale/ia.json
Normal file
205
locale/ia.json
Normal file
|
@ -0,0 +1,205 @@
|
|||
{
|
||||
"directionality":"ltr",
|
||||
"languageName": "Interlingua",
|
||||
"loginUsername": "Nomine de usator o adresse de e-mail",
|
||||
"loginPassword": "Contrasigno",
|
||||
"loginSignIn": "Aperir session",
|
||||
"loginRememberMe": "Memorar me",
|
||||
"loginForgotPassword": "Contrasigno oblidate?",
|
||||
"notices": "Granas",
|
||||
"followers": "Sequitores",
|
||||
"following": "Sequente",
|
||||
"groups": "Gruppos",
|
||||
"compose": "Que passa?",
|
||||
"queetVerb": "Inviar",
|
||||
"queetsNounPlural": "Granas",
|
||||
"logout": "Clauder session",
|
||||
"languageSelected": "Lingua:",
|
||||
"viewMyProfilePage": "Vider mi pagina de profilo",
|
||||
"expand": "Displicar",
|
||||
"collapse": "Plicar",
|
||||
"details": "Detalios",
|
||||
"expandFullConversation": "Displicar tote le conversation",
|
||||
"replyVerb": "Responder",
|
||||
"requeetVerb": "Disseminar",
|
||||
"favoriteVerb": "Favorir",
|
||||
"requeetedVerb": "Disseminate",
|
||||
"favoritedVerb": "Favorite",
|
||||
"replyTo": "Responder a",
|
||||
"requeetedBy": "Disseminate per {requeeted-by}",
|
||||
"favoriteNoun": "Favorite",
|
||||
"favoritesNoun": "Favorites",
|
||||
"requeetNoun": "Dissemination",
|
||||
"requeetsNoun": "Disseminationes",
|
||||
"newQueet": "{new-notice-count} nove grana",
|
||||
"newQueets": "{new-notice-count} nove granas",
|
||||
"longmonthsJanuary": "januario",
|
||||
"longmonthsFebruary": "februario",
|
||||
"longmonthsMars": "martio",
|
||||
"longmonthsApril": "april",
|
||||
"longmonthsMay": "mai",
|
||||
"longmonthsJune": "junio",
|
||||
"longmonthsJuly": "julio",
|
||||
"longmonthsAugust": "augusto",
|
||||
"longmonthsSeptember": "septembre",
|
||||
"longmonthsOctober": "octobre",
|
||||
"longmonthsNovember": "novembre",
|
||||
"longmonthsDecember": "decembre",
|
||||
"shortmonthsJanuary": "jan",
|
||||
"shortmonthsFebruary": "feb",
|
||||
"shortmonthsMars": "mar",
|
||||
"shortmonthsApril": "apr",
|
||||
"shortmonthsMay": "mai",
|
||||
"shortmonthsJune": "jun",
|
||||
"shortmonthsJuly": "jul",
|
||||
"shortmonthsAugust": "aug",
|
||||
"shortmonthsSeptember": "sep",
|
||||
"shortmonthsOctober": "oct",
|
||||
"shortmonthsNovember": "nov",
|
||||
"shortmonthsDecember": "dec",
|
||||
"time12am": "{time} am",
|
||||
"time12pm": "{time} pm",
|
||||
"longDateFormat": "{time12} le {day} de {month} {year}",
|
||||
"shortDateFormatSeconds": "{seconds}s",
|
||||
"shortDateFormatMinutes": "{minutes}m",
|
||||
"shortDateFormatHours": "{hours}h",
|
||||
"shortDateFormatDate": "{day} {month}",
|
||||
"shortDateFormatDateAndY": "{day} {month} {year}",
|
||||
"now": "ora",
|
||||
"posting": "entrata",
|
||||
"viewMoreInConvBefore": "← Vider plus in conversation",
|
||||
"viewMoreInConvAfter": "Vider plus in conversation →",
|
||||
"mentions": "Mentiones",
|
||||
"timeline": "Chronologia",
|
||||
"publicTimeline": "Chronologia public",
|
||||
"publicAndExtTimeline": "Tote le rete cognoscite",
|
||||
"searchVerb": "Cercar",
|
||||
"deleteVerb": "Deler",
|
||||
"cancelVerb": "Cancellar",
|
||||
"deleteConfirmation": "Es tu secur de voler deler iste grana?",
|
||||
"userExternalFollow": "Sequer a distantia",
|
||||
"userExternalFollowHelp": "ID de tu conto (p.ex. usator@example.net).",
|
||||
"userFollow": "Sequer",
|
||||
"userFollowing": "Sequente",
|
||||
"userUnfollow": "Non plus sequer",
|
||||
"joinGroup": "Adherer",
|
||||
"joinExternalGroup": "Adherer a distantia",
|
||||
"isMemberOfGroup": "Membro",
|
||||
"leaveGroup": "Quitar",
|
||||
"memberCount": "Membros",
|
||||
"adminCount": "Administratores",
|
||||
"settings": "Configuration",
|
||||
"saveChanges": "Salveguardar",
|
||||
"linkColor": "Color de ligamines",
|
||||
"backgroundColor": "Color de fundo",
|
||||
"newToQuitter": "Nove a {site-title}?",
|
||||
"signUp": "Crear conto",
|
||||
"signUpFullName": "Nomine complete",
|
||||
"signUpEmail": "E-mail",
|
||||
"signUpButtonText": "Crear conto sur {site-title}",
|
||||
"welcomeHeading": "Benvenite a {site-title}.",
|
||||
"welcomeText": "Nos es un <span id=\"federated-tooltip\"><div id=\"what-is-federation\">\"Federation\" vole dicer que non es necessari un conto de {site-title} pro poter sequer, esser sequite per, o interager con usatores de {site-title}. On pote crear un conto sur qualcunque servitor de StatusNet o GNU Social o altere servicio basate sur le protocollo <a href=\"http://www.w3.org/community/ostatus/wiki/Main_Page\">Ostatus</a>! Non mesmo es necessari adherer a un servitor – essaya installar le elegante software <a href=\"http://www.gnu.org/software/social/\">GNU social</a> sur le prorpie servitor! :)</div>federation</span> de microblogatores qui se preoccupa de justitia social e solidaritate e vole quitar le servicios capitalista centralisate.",
|
||||
"registerNickname": "Pseudonymo",
|
||||
"registerHomepage": "Pagina personal",
|
||||
"registerBio": "Biographia",
|
||||
"registerLocation": "Loco",
|
||||
"registerRepeatPassword": "Repete contrasigno",
|
||||
"moreSettings": "Altere parametros",
|
||||
"otherServers": "Alternativemente, crea un conto sur un altere servitor del rete GNU Social. <a href=\"http://federation.skilledtests.com/select_your_server.html\">Comparation</a>",
|
||||
"editMyProfile": "Modificar profilo",
|
||||
"notifications": "Notificationes",
|
||||
"xFavedYourQueet": "ha favorite tu grana",
|
||||
"xRepeatedYourQueet": "ha disseminate tu grana",
|
||||
"xStartedFollowingYou": "ha comenciate a sequer te",
|
||||
"followsYou": "te seque",
|
||||
"FAQ": "FAQ",
|
||||
"inviteAFriend": "Invita un amico!",
|
||||
"goToExternalProfile": "Visitar le profilo complete",
|
||||
"cropAndSave": "Taliar e salveguardar",
|
||||
"showTerms": "Leger nostre conditiones de uso",
|
||||
"ellipsisMore": "Plus",
|
||||
"blockUser": "Blocar",
|
||||
"goToOriginalNotice": "Visitar le grana original",
|
||||
"goToTheUsersRemoteProfile": "Visitar le profilo distante del usator",
|
||||
"clickToDrag":"Clicca pro traher",
|
||||
"keyboardShortcuts":"Claves accelerator",
|
||||
"classicInterface":"{site-title} classic",
|
||||
"accessibilityToggleLink":"Pro melior accessibilitate, clicca sur iste ligamine pro cambiar al interfacie classic",
|
||||
"tooltipBookmarkStream":"Adder iste fluxo a tu marcapaginas",
|
||||
"tooltipTopMenu":"Menu e configuration",
|
||||
"tooltipAttachImage":"Attachar un imagine",
|
||||
"tooltipShortenUrls":"Abbreviar tote le URLs in le grana",
|
||||
"tooltipReloadStream":"Refrescar iste fluxo",
|
||||
"tooltipRemoveBookmark":"Remover iste marcapginas",
|
||||
"clearHistory":"Rader historia de navigation",
|
||||
"ERRORsomethingWentWrong":"Un error ha occurrite.",
|
||||
"ERRORmustBeLoggedIn":"Es necessari aperir session pro vider iste fluxo.",
|
||||
"ERRORcouldNotFindUserWithNickname":"Non se trova un usator con pseudonymo \"{nickname}\" sur iste servitor",
|
||||
"ERRORcouldNotFindGroupWithNickname":"Non se trova un gruppo con pseudonymo \"{nickname}\" sur iste servitor",
|
||||
"ERRORcouldNotFindPage":"Le pagina non ha essite trovate.",
|
||||
"ERRORnoticeRemoved": "Iste grana ha essite removite.",
|
||||
"ERRORnoContactWithServer": "Impossibile establir un connexion al servitor. Le servitor poterea esser supercargate, o il poterea haber un problema con tu connextion a internet. Per favor, reproba plus tarde!",
|
||||
"ERRORattachmentUploadFailed": "Le incargamento ha fallite. Le formato pote esser non supportate o le dimension pote esser troppo grande.",
|
||||
"hideRepliesToPeopleIDoNotFollow":"Celar responsas a personas que io non seque",
|
||||
"markAllNotificationsAsSeen":"Marcar tote le notificationes como vidite",
|
||||
"notifyRepliesAndMentions":"Mentiones e responsas",
|
||||
"notifyFavs":"Favorites",
|
||||
"notifyRepeats":"Disseminationes",
|
||||
"notifyFollows":"Nove sequitores",
|
||||
"timelineOptions":"Optiones de chronologia",
|
||||
"ERRORfailedSavingYourSetting":"Error al salveguardar le configuration",
|
||||
"ERRORfailedMarkingAllNotificationsAsRead":"Error al marcar tote le notificationes como vidite.",
|
||||
"newNotification": "{new-notice-count} nove notification",
|
||||
"newNotifications": "{new-notice-count} nove notificationes",
|
||||
"thisIsANoticeFromABlockedUser":"Nota ben: Iste es un grana de un usator que tu ha blocate. Clicca pro monstrar lo.",
|
||||
"nicknamesListWithListName":"Lista de {nickname}: {list-name}",
|
||||
"myListWithListName":"Mi lista: {list-name}",
|
||||
"listMembers":"Membros",
|
||||
"listSubscribers":"Abonatos",
|
||||
"ERRORcouldNotFindList":"Il non ha tal lista.",
|
||||
"emailAlreadyInUse":"Jam in uso",
|
||||
"addEditLanguageLink":"Adjuta a traducer {site-title} in un altere lingua",
|
||||
"onlyPartlyTranslated":"{site-title} ha essite traducite in <em>{language-name}</em> solmente in parte ({percent}%). Tu pote adjutar a completar le traduction al <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">pagina principal del repositorio de Qvitter</a>",
|
||||
"startRant":"Comenciar un discurso",
|
||||
"continueRant":"Continuar le discurso",
|
||||
"hideEmbeddedInTimeline":"Celar contento incastrate in iste chronologia",
|
||||
"hideQuotesInTimeline":"Celar citatos in iste chronologia",
|
||||
"userBlocks":"Contos que tu ha blocate",
|
||||
"buttonBlocked":"Blocate",
|
||||
"buttonUnblock":"Disblocar",
|
||||
"failedBlockingUser":"Error al blocar le usator.",
|
||||
"failedUnblockingUser":"Error al disblocar le usator.",
|
||||
"unblockUser": "Disblocar",
|
||||
"tooltipBlocksYou":"Tu es blocate de sequer {username}.",
|
||||
"silenced":"Silentiate",
|
||||
"silencedPlural":"Profilos silentiate",
|
||||
"silencedUsersOnThisInstance":"Profilos silentiate sur {site-title}",
|
||||
"sandboxed":"In cassa a sablo",
|
||||
"sandboxedPlural":"Profilos in cassa a sablo",
|
||||
"sandboxedUsersOnThisInstance":"Profilos in cassa a sablo sur {site-title}",
|
||||
"silencedStreamDescription":"Usatores silentiate non pote aperir session ni publicar granas e le granas que illes ha jam publicate es celate. Pro usatores local es como un deletion reversibile, pro usatores remote es como un blocada de tote le sito.",
|
||||
"sandboxedStreamDescription":"Le granas de usatores in cassa a sablo es excludite del Chronologia Public e de Tote Le Rete Cognoscite. Pro le resto, illes pote usar le sito como omne altere usator.",
|
||||
"onlyShowNotificationsFromUsersIFollow":"Solmente monstrar notificationes de usatores que io seque",
|
||||
"userOptions":"Altere actiones de usator",
|
||||
"silenceThisUser":"Silentiar {nickname}",
|
||||
"sandboxThisUser":"Mitter {nickname} in cassa a sablo",
|
||||
"unSilenceThisUser":"Non plus silentiar {nickname}",
|
||||
"unSandboxThisUser":"Liberar {nickname} del cassa a sablo",
|
||||
"ERRORfailedSandboxingUser":"Error al cambiar le stato de cassa a sablo del usator",
|
||||
"ERRORfailedSilencingUser":"Error al cambiar le stato de silentiamento del usator",
|
||||
"muteUser":"Ignorar",
|
||||
"unmuteUser":"Non plus ignorar",
|
||||
"hideNotificationsFromMutedUsers":"Celar notificationes de usatores ignorate",
|
||||
"thisIsANoticeFromAMutedUser":"Tu ha ignorate le autor de iste grana. Clicca hic pro monstrar lo in omne caso.",
|
||||
"userMutes":"Contos que tu ignora",
|
||||
"userBlocked":"Contos blocate",
|
||||
"userMuted":"Contos ignorate",
|
||||
"mutedStreamDescription":"Tu ha celate iste contos de tu chronologia. Tu recipera totevia notificationes de iste contos, excepte si tu selige "Celar notificationes de usatores ignorate" ab le menu de rota dentate sur le pagina de notificationes.",
|
||||
"profileAndSettings":"Profilo e configuration",
|
||||
"profileSettings":"Configuration del profilo",
|
||||
"thisIsABookmark":"Iste es un marcapaginas create in le interfacie Classic",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
|
@ -6,7 +6,7 @@
|
|||
"loginSignIn": "Enirar",
|
||||
"loginRememberMe": "Memorar me",
|
||||
"loginForgotPassword": "Ka vu obliviis vua pasvorto?",
|
||||
"notices": "Pepii",
|
||||
"notices": "Pipii",
|
||||
"followers": "Sequanti",
|
||||
"following": "Vu sequas",
|
||||
"groups": "Grupi",
|
||||
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"Vu celis ca konti de vua tempolineo. Vu recevos ankore notifiki de ca konti, ecepte se vu selektus "Celar notifiki de muta uzeri" per la menuo dentorota en la pagino di notifiki.",
|
||||
"profileAndSettings":"Profilo ed ajusti",
|
||||
"profileSettings":"Ajusti di profilo",
|
||||
"thisIsABookmark":"Ca esas markorubando kreita en la interfacio klasika"
|
||||
"thisIsABookmark":"Ca esas markorubando kreita en la interfacio klasika",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
205
locale/is.json
Normal file
205
locale/is.json
Normal file
|
@ -0,0 +1,205 @@
|
|||
{
|
||||
"directionality": "ltr",
|
||||
"languageName": "Íslenska",
|
||||
"loginUsername": "Notandanafn eða netfang",
|
||||
"loginPassword": "Lykilorð",
|
||||
"loginSignIn": "Skrá inn",
|
||||
"loginRememberMe": "Muna eftir mér",
|
||||
"loginForgotPassword": "Gleymt lykilorð?",
|
||||
"notices": "Umsagnir",
|
||||
"followers": "Fylgjendur",
|
||||
"following": "Fylgist með",
|
||||
"groups": "Hópar",
|
||||
"compose": "Skrifa nýja umsögn",
|
||||
"queetVerb": "Senda",
|
||||
"queetsNounPlural": "Umsagnir",
|
||||
"logout": "Skrá út",
|
||||
"languageSelected": "Tungumál:",
|
||||
"viewMyProfilePage": "Skoða forsíðuna mína",
|
||||
"expand": "Þenja út",
|
||||
"collapse": "Fella saman",
|
||||
"details": "Nánar",
|
||||
"expandFullConversation": "Fletta út öllum samskiptaþræðinum",
|
||||
"replyVerb": "Svara",
|
||||
"requeetVerb": "Endurvarpa",
|
||||
"favoriteVerb": "Eftirlæti",
|
||||
"requeetedVerb": "Endurvarpað",
|
||||
"favoritedVerb": "Sett í eftirlæti",
|
||||
"replyTo": "Svara",
|
||||
"requeetedBy": "Endurvarpað af {requeeted-by}",
|
||||
"favoriteNoun": "Eftirlæti",
|
||||
"favoritesNoun": "Eftirlæti",
|
||||
"requeetNoun": "Endurvarpa",
|
||||
"requeetsNoun": "Endurvarpanir",
|
||||
"newQueet": "{new-notice-count} ný umsögn",
|
||||
"newQueets": "{new-notice-count} nýjar umsagnir",
|
||||
"longmonthsJanuary": "Janúar",
|
||||
"longmonthsFebruary": "Febrúar",
|
||||
"longmonthsMars": "Mars",
|
||||
"longmonthsApril": "Apríl",
|
||||
"longmonthsMay": "Maí",
|
||||
"longmonthsJune": "Júní",
|
||||
"longmonthsJuly": "Júlí",
|
||||
"longmonthsAugust": "Ágúst",
|
||||
"longmonthsSeptember": "September",
|
||||
"longmonthsOctober": "Október",
|
||||
"longmonthsNovember": "Nóvember",
|
||||
"longmonthsDecember": "Desember",
|
||||
"shortmonthsJanuary": "jan",
|
||||
"shortmonthsFebruary": "feb",
|
||||
"shortmonthsMars": "mar",
|
||||
"shortmonthsApril": "apr",
|
||||
"shortmonthsMay": "maí",
|
||||
"shortmonthsJune": "jún",
|
||||
"shortmonthsJuly": "júl",
|
||||
"shortmonthsAugust": "ágú",
|
||||
"shortmonthsSeptember": "sep",
|
||||
"shortmonthsOctober": "okt",
|
||||
"shortmonthsNovember": "nóv",
|
||||
"shortmonthsDecember": "des",
|
||||
"time12am": "{time} fh",
|
||||
"time12pm": "{time} eh",
|
||||
"longDateFormat": "{time24} - {day} {month} {year}",
|
||||
"shortDateFormatSeconds": "{seconds} sek",
|
||||
"shortDateFormatMinutes": "{minutes}m",
|
||||
"shortDateFormatHours": "{hours} klst",
|
||||
"shortDateFormatDate": "{day} {month}",
|
||||
"shortDateFormatDateAndY": "{day} {month} {year}",
|
||||
"now": "núna",
|
||||
"posting": "sendir inn",
|
||||
"viewMoreInConvBefore": "← Skoða meira í samskiptaþræði",
|
||||
"viewMoreInConvAfter": "Skoða meira í samskiptaþræði →",
|
||||
"mentions": "Tilvísanir",
|
||||
"timeline": "Tímalína",
|
||||
"publicTimeline": "Opinber tímalína",
|
||||
"publicAndExtTimeline": "Allt þekkta netkerfið",
|
||||
"searchVerb": "Leita",
|
||||
"deleteVerb": "Eyða",
|
||||
"cancelVerb": "Hætta við",
|
||||
"deleteConfirmation": "Ertu viss um að þú viljir eyða þessari umsögn?",
|
||||
"userExternalFollow": "Fylgjast með fjartengt",
|
||||
"userExternalFollowHelp": "Auðkenni aðgangsins þíns (t.d. notandi@lén.is).",
|
||||
"userFollow": "Fylgja",
|
||||
"userFollowing": "Fylgir",
|
||||
"userUnfollow": "Hætta að fylgja",
|
||||
"joinGroup": "Taka þátt",
|
||||
"joinExternalGroup": "Taka þátt fjartengt",
|
||||
"isMemberOfGroup": "Meðlimur",
|
||||
"leaveGroup": "Ganga úr",
|
||||
"memberCount": "Meðlimir",
|
||||
"adminCount": "Stjórnendur",
|
||||
"settings": "Stillingar",
|
||||
"saveChanges": "Vista breytingar",
|
||||
"linkColor": "Litur tengils",
|
||||
"backgroundColor": "Bakgrunnslitur",
|
||||
"newToQuitter": "Nýr á {site-title}?",
|
||||
"signUp": "Nýskrá",
|
||||
"signUpFullName": "Fullt nafn",
|
||||
"signUpEmail": "Tölvupóstur",
|
||||
"signUpButtonText": "Nýskrá inn á {site-title}",
|
||||
"welcomeHeading": "Velkomin í {site-title}.",
|
||||
"welcomeText": "Við erum <span id=\"federated-tooltip\"><div id=\"what-is-federation\">\"Samband (federation)\" þýðir að þú þarft ekki sérstakan aðgang á {site-title} til að fylgjast með, vera fylgt eða hafa samskipti við notendur á {site-title}. Þú getur verið skráð(ur) á hvaða StatusNet eða GNU samfélagsþjóni sem er, eða í hverja þá þjónustu sem notar <a href=\"http://www.w3.org/community/ostatus/wiki/Main_Page\">Ostatus</a> samskiptamátann! Þú þarft ekki einusinni að skrá þig í neina þjónustu – prófaðu að setja upp hinn ástsamlega <a href=\"http://www.gnu.org/software/social/\">GNU social</a> hugbúnað á þínum eigin vefþjóni! :)</div>samband</span> örbloggara sem er annt um félagslegt réttlæti og samstöðu - fólk sem vill komast undan miðstýrðum kapítalískum þjónustum.",
|
||||
"registerNickname": "Stuttnefni",
|
||||
"registerHomepage": "Heimasíða",
|
||||
"registerBio": "Æviágrip",
|
||||
"registerLocation": "Staðsetning",
|
||||
"registerRepeatPassword": "Endurtaka lykilorð",
|
||||
"moreSettings": "Fleiri stillingar",
|
||||
"otherServers": "Þú getur einnig stofnað aðgang á einhverjum öðrum þjóni á GNU samfélagsmiðlanetinu. <a href=\"http://federation.skilledtests.com/select_your_server.html\">Samanburður</a>",
|
||||
"editMyProfile": "Breyta sniði",
|
||||
"notifications": "Tilkynningar",
|
||||
"xFavedYourQueet": "setti umsögn frá þér í eftirlæti",
|
||||
"xRepeatedYourQueet": "endurvarpaði frá þér",
|
||||
"xStartedFollowingYou": "fylgdi þér",
|
||||
"followsYou": "fylgir þér",
|
||||
"FAQ": "FAQ / Algengar spurningar",
|
||||
"inviteAFriend": "Bjóða vini!",
|
||||
"goToExternalProfile": "Skoða fullt notandasnið",
|
||||
"cropAndSave": "Utanskera og vista",
|
||||
"showTerms": "Lestu notkunarskilmálana okkar",
|
||||
"ellipsisMore": "Meira",
|
||||
"blockUser": "Loka á",
|
||||
"goToOriginalNotice": "Fara á upprunalegu umsögnina",
|
||||
"goToTheUsersRemoteProfile": "Fara á fjartengt upplýsingasnið um notandann",
|
||||
"clickToDrag": "Smelltu til að draga",
|
||||
"keyboardShortcuts": "Flýtilyklar",
|
||||
"classicInterface": "Klassískt {site-title}",
|
||||
"accessibilityToggleLink": "Til að fá aukið aðgengi fyrir notendur, smelltu á þennan tengil til að skipta yfir í klassíska viðmótið",
|
||||
"tooltipBookmarkStream": "Bæta þessu streymi í bókamerkin þín",
|
||||
"tooltipTopMenu": "Valmynd og stillingar",
|
||||
"tooltipAttachImage": "Hengja við myndskrá",
|
||||
"tooltipShortenUrls": "Stytta allar vefslóðir í umsögninni",
|
||||
"tooltipReloadStream": "Uppfæra þetta streymi",
|
||||
"tooltipRemoveBookmark": "Fjarlægja þetta bókamerki",
|
||||
"clearHistory": "Hreinsa vafurferil",
|
||||
"ERRORsomethingWentWrong": "Eitthvað fór úrskeiðis.",
|
||||
"ERRORmustBeLoggedIn": "Þú verður að vera skráður inn til að skoða þetta streymi.",
|
||||
"ERRORcouldNotFindUserWithNickname": "Fann ekki notanda með stuttnefnið \"{nickname}\" á þessum þjóni",
|
||||
"ERRORcouldNotFindGroupWithNickname": "Fann ekki hóp með stuttnefnið \"{nickname}\" á þessum þjóni",
|
||||
"ERRORcouldNotFindPage": "Fann ekki þessa síðu.",
|
||||
"ERRORnoticeRemoved": "Þessi umsögn hefur verið fjarlægð.",
|
||||
"ERRORnoContactWithServer": "Tekst ekki að ná tengingu við þjóninn. Þjónninn gæti verið undir of miklu álagi, eða að vandamál séu með internettenginguna þína. Prófaðu aftur síðar!",
|
||||
"ERRORattachmentUploadFailed": "Innsending skráar mistókst. Annað hvort er hún of stór eða að skráasnið hennar er ekki stutt.",
|
||||
"hideRepliesToPeopleIDoNotFollow": "Fela svör til fólks sem ég fylgist ekki með",
|
||||
"markAllNotificationsAsSeen": "Merkja allar tilkynningar sem séðar",
|
||||
"notifyRepliesAndMentions": "Tilvísanir og svör",
|
||||
"notifyFavs": "Eftirlæti",
|
||||
"notifyRepeats": "Endurvarpanir",
|
||||
"notifyFollows": "Nýir fylgjendur",
|
||||
"timelineOptions": "Valkostir tímalínu",
|
||||
"ERRORfailedSavingYourSetting": "Mistókst að vista stillingarnar þínar",
|
||||
"ERRORfailedMarkingAllNotificationsAsRead": "Tókst ekki að merkja allar tilkynningar sem séðar.",
|
||||
"newNotification": "{new-notice-count} ný tilkynning",
|
||||
"newNotifications": "{new-notice-count} nýjar tilkynningar",
|
||||
"thisIsANoticeFromABlockedUser": "Aðvörun: Þetta er umsögn frá notanda sem þú hefur útilokað. Smelltu til að birta hana.",
|
||||
"nicknamesListWithListName": "Listi eftir {nickname}: {list-name}",
|
||||
"myListWithListName": "Listinn minn: {list-name}",
|
||||
"listMembers": "Meðlimir",
|
||||
"listSubscribers": "Áskrifendur",
|
||||
"ERRORcouldNotFindList": "Það er enginn slíkur listi.",
|
||||
"emailAlreadyInUse": "Þegar í notkun",
|
||||
"addEditLanguageLink": "Hjálpaðu til við að þýða {site-title} á annað tungumál",
|
||||
"onlyPartlyTranslated": "{site-title} er aðeins þýtt af hluta til yfir á <em>{language-name}</em> ({percent}%). Þú getur hjálpað til við að klára þýðinguna á <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">vefsíðu hugbúnaðarsafns Qvitter</a>",
|
||||
"startRant": "Byrja nöldur",
|
||||
"continueRant": "Halda áfram með nöldur",
|
||||
"hideEmbeddedInTimeline": "Fela innbyggt efni í þessari tímalínu",
|
||||
"hideQuotesInTimeline": "Fela tilvitnanir í þessari tímalínu",
|
||||
"userBlocks": "Aðgangar sem þú útilokar",
|
||||
"buttonBlocked": "Útilokaður",
|
||||
"buttonUnblock": "Opna á",
|
||||
"failedBlockingUser": "Tókst ekki að útiloka þennan notanda.",
|
||||
"failedUnblockingUser": "Tókst ekki að opna á þennan notanda.",
|
||||
"unblockUser": "Opna á",
|
||||
"tooltipBlocksYou": "Þú ert útilokaður frá því að fylgja {username}.",
|
||||
"silenced": "Þaggaður",
|
||||
"silencedPlural": "Niðurþögguð notendasnið",
|
||||
"silencedUsersOnThisInstance": "Niðurþögguð notendasnið á {site-title}",
|
||||
"sandboxed": "Einangrað",
|
||||
"sandboxedPlural": "Einangruð notendasnið",
|
||||
"sandboxedUsersOnThisInstance": "Einangruð notendasnið á {site-title}",
|
||||
"silencedStreamDescription": "Þaggaðir notendur geta ekki skráð sig inn eða sent inn umsagnir, og umsagnir sem þeir hafa þegar sent inn eru faldar. Fyrir staðværa notendur er þetta eins og eyðing sem hægt er að afturkalla, fyrir fjartengda notendur er þetta eins og bann á vefsvæðinu.",
|
||||
"sandboxedStreamDescription": "Umsagnir frá einöngruðum notendum eru útilokaðar frá opinberu tímalínunni og frá öllu þekkta netinu. Að þessu undanskildu geta þessir notendur notað vefsvæðið rétt eins og hver annar notandi.",
|
||||
"onlyShowNotificationsFromUsersIFollow": "Einungis birta tilkynningar frá notendum sem ég fylgi",
|
||||
"userOptions": "Fleiri notandaaðgerðir",
|
||||
"silenceThisUser": "Þagga niður í {nickname}",
|
||||
"sandboxThisUser": "Einangra {nickname}",
|
||||
"unSilenceThisUser": "Hætta að þagga niður í {nickname}",
|
||||
"unSandboxThisUser": "Taka {nickname} úr einangrun",
|
||||
"ERRORfailedSandboxingUser": "Tókst ekki að setja þennan notanda í/út einangrun",
|
||||
"ERRORfailedSilencingUser": "Tókst ekki að þagga/afþagga þennan notanda",
|
||||
"muteUser": "Þagga niður",
|
||||
"unmuteUser": "Hætta þöggun",
|
||||
"hideNotificationsFromMutedUsers": "Fela tilkynningar frá þögguðum notendum",
|
||||
"thisIsANoticeFromAMutedUser": "Þú hefur þaggað niður í höfundi þessarar umsagnar. Smelltu hér til að birta hana samt.",
|
||||
"userMutes": "Aðgangar sem þú þaggar niður í",
|
||||
"userBlocked": "Útilokaðir aðgangar",
|
||||
"userMuted": "Þaggaðir aðgangar",
|
||||
"mutedStreamDescription": "Þú hefur falið þessa aðganga á tímalínunni þinni. Þú munt áfram fá tilkynningar frá þessum aðgöngum, nema ef þú velur "Fela tilkynningar frá þögguðum notendum" úr valmyndinni á tilkynningasíðunni.",
|
||||
"profileAndSettings": "Persónusnið og stillingar",
|
||||
"profileSettings": "Sniðstillingar",
|
||||
"thisIsABookmark": "Þetta er bókamerki sem búið var til í klassíska viðmótinu",
|
||||
"thisIsARemoteUser": "<strong>Aðvörun!</strong> Þetta er fjartengdur notandi. Þessi síða er einungis afrit af notandasniði hans og inniheldur einungis þau gögn sem tiltæk eru þessum þjóni á GNU samfélagsnetinu. Farðu á <a href=\"{remote-profile-url}\" donthijack>notandasniðið á þeirra eigin þjóni</a> til að skoða allt notandasniðið.",
|
||||
"findSomeone": "Finna einhvern",
|
||||
"findSomeoneTooltip": "Settu inn notandanafn eða slóð á notandasnið, t.d. @notandi eða https://fjartengt.kerfi/stuttnefni",
|
||||
"tooltipAttachFile": "Hengja við skrá"
|
||||
}
|
|
@ -126,7 +126,7 @@
|
|||
"classicInterface":"Classic {site-title}",
|
||||
"accessibilityToggleLink":"Passare all'interfaccia classica (Accessibilità)",
|
||||
"tooltipBookmarkStream":"Aggiungi ai preferiti",
|
||||
"tooltipTopMenu":"Menu and settings",
|
||||
"tooltipTopMenu":"Menu e impostazioni",
|
||||
"tooltipAttachImage":"Carica un'immagine",
|
||||
"tooltipShortenUrls":"Shorten all URLs in the Queet",
|
||||
"tooltipReloadStream":"Aggiorna",
|
||||
|
@ -162,7 +162,7 @@
|
|||
"onlyPartlyTranslated":"{site-title} è solo parzialmente tradotto in <em>{language-name}</em> ({percent}%). Puoi completare la traduzione sul <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">repository di Qvitter</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant",
|
||||
"hideEmbeddedInTimeline":"Hide embedded content in this timeline",
|
||||
"hideEmbeddedInTimeline":"Nascondi anteprime da questa bacheca",
|
||||
"hideQuotesInTimeline":"Hide quotes in this timeline",
|
||||
"userBlocks":"Account bloccati",
|
||||
"buttonBlocked":"Bloccato",
|
||||
|
@ -170,17 +170,17 @@
|
|||
"failedBlockingUser":"Tentativo di bloccare l'utente non riuscito.",
|
||||
"failedUnblockingUser":"Tentativo di sblocco dell'utente non riuscito.",
|
||||
"unblockUser": "Sblocca {username}",
|
||||
"tooltipBlocksYou":"You are blocked from following {username}.",
|
||||
"tooltipBlocksYou":"Sei stato bloccato da {username}.",
|
||||
"silenced":"Silenziati",
|
||||
"silencedPlural":"Silenziati",
|
||||
"silencedUsersOnThisInstance":"Account silenziati su {site-title}",
|
||||
"sandboxed":"Sandboxati",
|
||||
"sandboxedPlural":"Account sandboxati",
|
||||
"sandboxedUsersOnThisInstance":"Account sandboxati su {site-title}",
|
||||
"silencedStreamDescription":"Utenti silenziati non possono accedere o postare quips e i quips che hanno già postato sono nascosti per gli utenti locali è come una cancellazione reversibile, per gli utenti remoti costituisce un blocco all'intero sito.",
|
||||
"sandboxedStreamDescription":"Quips da utenti sandboxati sono esclusi dalla bacheca pubblica e dal resto del network. a parte questo possono usare il sito come ogni altro utente",
|
||||
"silencedStreamDescription":"Utenti silenziati non possono accedere o postare queet e i queet che hanno già postato sono nascosti per gli utenti locali è come una cancellazione reversibile, per gli utenti remoti costituisce un blocco all'intero sito.",
|
||||
"sandboxedStreamDescription":"Queet da utenti sandboxati sono esclusi dalla bacheca pubblica e dal resto del network. a parte questo possono usare il sito come ogni altro utente",
|
||||
"onlyShowNotificationsFromUsersIFollow":"Mostrami le notifiche solo dagli utenti che seguo",
|
||||
"userOptions":"More user actions",
|
||||
"userOptions":"Mostra più opzioni",
|
||||
"silenceThisUser":"Nascondi notifiche da {nickname}",
|
||||
"sandboxThisUser":"Aggiungi alla sandbox {nickname}",
|
||||
"unSilenceThisUser":"Mostra notifiche da {nickname}",
|
||||
|
@ -190,12 +190,17 @@
|
|||
"muteUser":"Togli voce",
|
||||
"unmuteUser":"Ridai voce",
|
||||
"hideNotificationsFromMutedUsers":"Nascondi notifiche dagli account senza voce",
|
||||
"thisIsANoticeFromAMutedUser":"Hai nascosto dalla bacheca i quip di questo account. Clicca qui per mostrare ugualmente.",
|
||||
"thisIsANoticeFromAMutedUser":"Hai nascosto dalla bacheca i queet di questo account. Clicca qui per mostrare ugualmente.",
|
||||
"userMutes":"Account a cui hai tolto la voce",
|
||||
"userBlocked":"Account bloccati",
|
||||
"userMuted":"Account a cui hai tolto la voce",
|
||||
"mutedStreamDescription":"Hai nascosto questi account dalla tua bacheca. Riceverai comunque le loro notifiche, per disabilitarle seleziona "Nascondi notifiche dagli account senza voce" dal menu delle impostazioni sulla pagina relativa alle notifiche.",
|
||||
"profileAndSettings":"Profilo e impostazioni",
|
||||
"profileSettings":"Impostazioni del profilo",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"Questo è un segnalibro creato nell'interfaccia classica",
|
||||
"thisIsARemoteUser":"<strong>Attenzione!</strong> Questo è un utente remoto. Questa pagina è solo una copia mantenuta nella cache, e include solo i dati presenti al momento dell'operazione di caching effettuata da GNU social. Vai al <a href=\"{remote-profile-url}\" donthijack>profilo dell'utente sul suo server</a> per vedere il profilo completo.",
|
||||
"findSomeone":"Cerca qualcuno",
|
||||
"findSomeoneTooltip":"Inserisci l'username o l'url del profilo, es. @localuser o https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Allega un file"
|
||||
}
|
||||
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"あなたのタイムラインから、選択されたユーザーを隠しました。あなたがお知らせページの歯車のメニューにある"ミュートしたユーザーからのお知らせを隠す"を選択しなかったユーザー以外からは、まだお知らせを受け取ります。",
|
||||
"profileAndSettings":"プロフィールと設定",
|
||||
"profileSettings":"プロフィール設定",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"これはクラシックインターフェースで作られたブックマークです",
|
||||
"thisIsARemoteUser":"<strong>注意!</strong> これはリモートユーザーです。このページはリモートユーザーのプロフィールのキャッシュされている複製であり、このGNU socialインスタンスに保存されたデータのみを含みます。<a href=\"{remote-profile-url}\" donthijack>このユーザーが所属するサーバーのプロフィール</a>で完全なプロフィールを閲覧できます。",
|
||||
"findSomeone":"誰かを検索",
|
||||
"findSomeoneTooltip":"ユーザー名またはプロフィールURLを入力 (例: @localuser または https://remote.instance/nickname)",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"directionality":"ltr",
|
||||
"languageName": "Norsk",
|
||||
"loginUsername": "Brukernavn eller e-Post",
|
||||
"loginUsername": "Brukernavn eller epost",
|
||||
"loginPassword": "Passord",
|
||||
"loginSignIn": "Logg inn",
|
||||
"loginRememberMe": "Husk meg",
|
||||
|
@ -33,18 +33,18 @@
|
|||
"requeetsNoun": "Requeeter",
|
||||
"newQueet": "{new-notice-count} ny Queet",
|
||||
"newQueets": "{new-notice-count} nye Queets",
|
||||
"longmonthsJanuary": "Januar",
|
||||
"longmonthsFebruary": "Februar",
|
||||
"longmonthsMars": "Mars",
|
||||
"longmonthsApril": "April",
|
||||
"longmonthsMay": "Mai",
|
||||
"longmonthsJune": "Juni",
|
||||
"longmonthsJuly": "Juli",
|
||||
"longmonthsAugust": "August",
|
||||
"longmonthsSeptember": "September",
|
||||
"longmonthsOctober": "Oktober",
|
||||
"longmonthsNovember": "November",
|
||||
"longmonthsDecember": "Desember",
|
||||
"longmonthsJanuary": "januar",
|
||||
"longmonthsFebruary": "februar",
|
||||
"longmonthsMars": "mars",
|
||||
"longmonthsApril": "april",
|
||||
"longmonthsMay": "mai",
|
||||
"longmonthsJune": "juni",
|
||||
"longmonthsJuly": "juli",
|
||||
"longmonthsAugust": "august",
|
||||
"longmonthsSeptember": "september",
|
||||
"longmonthsOctober": "oktober",
|
||||
"longmonthsNovember": "november",
|
||||
"longmonthsDecember": "desember",
|
||||
"shortmonthsJanuary": "jan",
|
||||
"shortmonthsFebruary": "feb",
|
||||
"shortmonthsMars": "mar",
|
||||
|
@ -59,7 +59,7 @@
|
|||
"shortmonthsDecember": "des",
|
||||
"time12am": "{time} am",
|
||||
"time12pm": "{time} pm",
|
||||
"longDateFormat": "{time12} - {day} {month} {year}",
|
||||
"longDateFormat": "{time24} - {day} {month} {year}",
|
||||
"shortDateFormatSeconds": "{seconds}s",
|
||||
"shortDateFormatMinutes": "{minutes}m",
|
||||
"shortDateFormatHours": "{hours}t",
|
||||
|
@ -94,8 +94,8 @@
|
|||
"backgroundColor": "Bakgrunds farge",
|
||||
"newToQuitter": "Ny på {site-title}?",
|
||||
"signUp": "Registrere deg",
|
||||
"signUpFullName": "Fult navn",
|
||||
"signUpEmail": "e-Post",
|
||||
"signUpFullName": "Fullt navn",
|
||||
"signUpEmail": "epost",
|
||||
"signUpButtonText": "Registrere deg på {site-title}",
|
||||
"welcomeHeading": "Velkommen til {site-title}.",
|
||||
"welcomeText": "Vi er en <span id=\"federated-tooltip\"><div id=\"what-is-federation\">\"Forenet eller (Federation)\" betyr i denne konteksten at du ikke behøver å ha en {site-title}-konto for å følge eller følges av andre og prate med andre i nettverket. Du kan registrere deg på hvilken som helst instans/server som støtter protokollen <a href=\"http://www.w3.org/community/ostatus/wiki/Main_Page\">Ostatus</a>, eller mikroblogge på en helt egen server, med den frie programvaren <a href=\"http://www.gnu.org/software/social/\">GNU social</a> (som {site-title} bygger på).</div>forenet</span> allmenhet, der du som har hoppet av de sentraliserte tjenestene kan mikroblogge etisk og solidarisk.",
|
||||
|
@ -122,23 +122,23 @@
|
|||
"goToOriginalNotice": "Gå til den opprinnelige queeten",
|
||||
"goToTheUsersRemoteProfile": "Vis brukerens profil",
|
||||
"clickToDrag":"Klikk - dra og slipp",
|
||||
"keyboardShortcuts":"Tastatur snarveier",
|
||||
"keyboardShortcuts":"Tastatursnarveier",
|
||||
"classicInterface":"Klassisk {site-title}",
|
||||
"accessibilityToggleLink":"For bedre synlighet, klikk denne lenken for å bytte til klassisk grensesnitt",
|
||||
"tooltipBookmarkStream":"Legg til denne strømmen til dine bokmerker",
|
||||
"tooltipBookmarkStream":"Legg denne strømmen til i dine bokmerker",
|
||||
"tooltipTopMenu":"Meny og innstillinger",
|
||||
"tooltipAttachImage":"Legg til et bilde",
|
||||
"tooltipShortenUrls":"Krympe alle URLer i din Queet",
|
||||
"tooltipReloadStream":"Laste inn på nytt denne strømmen",
|
||||
"tooltipReloadStream":"Last denne strømmen inn på nytt",
|
||||
"tooltipRemoveBookmark":"Slett dette bokmerket",
|
||||
"clearHistory":"Slett nettleser historie",
|
||||
"clearHistory":"Slett besøkshistorie",
|
||||
"ERRORsomethingWentWrong":"Noe gikk galt.",
|
||||
"ERRORmustBeLoggedIn":"Du må være pålogget for å vise denne strømmen.",
|
||||
"ERRORcouldNotFindUserWithNickname":"Kan ikke finne en bruker med brukerid \"{nickname}\" på denne instansen",
|
||||
"ERRORcouldNotFindGroupWithNickname":"Kan ikke finne en gruppe med gruppenavnet \"{nickname}\" på denne instansen",
|
||||
"ERRORcouldNotFindPage":"Kan ikke finne siden.",
|
||||
"ERRORnoticeRemoved": "Denne notisen er slettet.",
|
||||
"ERRORnoContactWithServer": "Kan ikke etablere en kobling til instansen. Dette kan skyldes at den er overbelastet, eller det er et problem med din internet kobling. Vennligst forsøk senere.",
|
||||
"ERRORnoContactWithServer": "Kan ikke etablere en kobling til instansen. Dette kan skyldes at den er overbelastet, eller det er et problem med din internettt-tilkobling. Vennligst forsøk senere.",
|
||||
"ERRORattachmentUploadFailed": "Opplasting feilet. Formatet er muligens ikke supportert, eller filen er for stor.",
|
||||
"hideRepliesToPeopleIDoNotFollow":"Skjul svar fra profiler jeg ikke følger.",
|
||||
"markAllNotificationsAsSeen":"Marker alle varsler som lest",
|
||||
|
@ -162,7 +162,7 @@
|
|||
"onlyPartlyTranslated":"{site-title} er kun delvis oversatt til <em>{language-name}</em> ({percent}%). Du kan hjelpe å oversette i følgende lenke <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository hjemmeside</a>",
|
||||
"startRant":"Start en utblåsning",
|
||||
"continueRant":"Fortsett utblåsningen",
|
||||
"hideEmbeddedInTimeline":"Skjul inkluderende innhold i denne tidslinjen",
|
||||
"hideEmbeddedInTimeline":"Skjul innebygget innhold i denne tidslinjen",
|
||||
"hideQuotesInTimeline":"Skjul sitater i denne tidslinjen",
|
||||
"userBlocks":"Brukere du blokkerer",
|
||||
"buttonBlocked":"Blokkert",
|
||||
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"Du har skjul disse kontoene fra din tidslinje. Du vil alikevel motta notifikasjoner fra disse kontoene, hvis da du ikke velger "Skjul notifikasjoner fra forstummede brukere" fra tannhjul menyen på notifikasjons siden.",
|
||||
"profileAndSettings":"Profiler og innstillinger",
|
||||
"profileSettings":"Profil innstillinger",
|
||||
"thisIsABookmark":"Dette er et bokmerke som ble laget i det klassiske grensesnittet"
|
||||
"thisIsABookmark":"Dette er et bokmerke som ble laget i det klassiske grensesnittet",
|
||||
"thisIsARemoteUser":"<strong>Advarsel!</strong> Dette er en ekstern bruker. Denne siden er en hurtiglagret versjon av profilen som bare inneholder data kjent for denne GNU social instansen. Gå til <a href=\"{remote-profile-url}\" donthijack>brukerens profil på egen instans</a> for å vise hele profilen.",
|
||||
"findSomeone":"Finn noen",
|
||||
"findSomeoneTooltip":"Skriv inn et brukernavn, eller en profil url, for eksempel. @lokalbruker eller https://ekstern.instans/brukernavn",
|
||||
"tooltipAttachFile":"Legg ved fil"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"Je negeert deze gebruikers in je tijdlijn. Je krijgt wel nog mededelingen van deze gebruikers, tenzij je "Geen mededelingen van genegeerde gebruikers." kiest van het instellingen icoon op de mededelingen pagina.",
|
||||
"profileAndSettings":"Profiel en instellingen",
|
||||
"profileSettings":"Profiel instellingen",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
404
locale/pl.json
404
locale/pl.json
|
@ -1,201 +1,205 @@
|
|||
{
|
||||
"directionality":"ltr",
|
||||
"languageName": "Polish",
|
||||
"loginUsername": "Nazwa użytkownika lub email",
|
||||
"loginPassword": "Hasło",
|
||||
"loginSignIn": "Zaloguj się",
|
||||
"loginRememberMe": "Zapamiętaj mnie",
|
||||
"loginForgotPassword": "Nie pamiętasz hasła?",
|
||||
"notices": "Queety",
|
||||
"followers": "Obserwujący",
|
||||
"following": "Obserwowani",
|
||||
"groups": "Grupy",
|
||||
"compose": "Co się dzieje?",
|
||||
"queetVerb": "Wyślij",
|
||||
"queetsNounPlural": "Queety",
|
||||
"logout": "Wyloguj się",
|
||||
"languageSelected": "Język:",
|
||||
"viewMyProfilePage": "Zobacz swój profil",
|
||||
"expand": "Rozwiń",
|
||||
"collapse": "Zwiń",
|
||||
"details": "Szczegóły",
|
||||
"expandFullConversation": "Rozwiń całą rozmowę",
|
||||
"replyVerb": "Odpowiedź",
|
||||
"requeetVerb": "Podaj dalej",
|
||||
"favoriteVerb": "Ulubiony",
|
||||
"requeetedVerb": "Podany dalej",
|
||||
"favoritedVerb": "Polubione",
|
||||
"replyTo": "Odpowiedz",
|
||||
"requeetedBy": "Podany dalej przez {requeeted-by}",
|
||||
"favoriteNoun": "Ulubiony",
|
||||
"favoritesNoun": "Ulubione",
|
||||
"requeetNoun": "Podaj dalej",
|
||||
"requeetsNoun": "Podane dalej",
|
||||
"newQueet": "{new-notice-count} nowy queet",
|
||||
"newQueets": "{new-notice-count} nowych queetów",
|
||||
"longmonthsJanuary": "styczeń",
|
||||
"longmonthsFebruary": "luty",
|
||||
"longmonthsMars": "marzec",
|
||||
"longmonthsApril": "kwiecień",
|
||||
"longmonthsMay": "maj",
|
||||
"longmonthsJune": "czerwiec",
|
||||
"longmonthsJuly": "lipiec",
|
||||
"longmonthsAugust": "sierpień",
|
||||
"longmonthsSeptember": "wrzesień",
|
||||
"longmonthsOctober": "październik",
|
||||
"longmonthsNovember": "listopad",
|
||||
"longmonthsDecember": "grudzień",
|
||||
"shortmonthsJanuary": "styczeń",
|
||||
"shortmonthsFebruary": "luty",
|
||||
"shortmonthsMars": "marzec",
|
||||
"shortmonthsApril": "kwiecien",
|
||||
"shortmonthsMay": "maj",
|
||||
"shortmonthsJune": "czerwiec",
|
||||
"shortmonthsJuly": "lipiec",
|
||||
"shortmonthsAugust": "sierpień",
|
||||
"shortmonthsSeptember": "wrzesień",
|
||||
"shortmonthsOctober": "październik",
|
||||
"shortmonthsNovember": "listopad",
|
||||
"shortmonthsDecember": "grudzień",
|
||||
"time12am": "{time} am",
|
||||
"time12pm": "{time} pm",
|
||||
"longDateFormat": "{time12} - {day} {month} {year}",
|
||||
"shortDateFormatSeconds": "{seconds}s",
|
||||
"shortDateFormatMinutes": "{minutes}m",
|
||||
"shortDateFormatHours": "{hours}godz.",
|
||||
"shortDateFormatDate": "{day} {month}",
|
||||
"shortDateFormatDateAndY": "{day} {month} {year}",
|
||||
"now": "teraz",
|
||||
"posting": "dodawanie",
|
||||
"viewMoreInConvBefore": " zobacz więcej w rozmowie",
|
||||
"viewMoreInConvAfter": "Zobacz więcej w rozmowie ",
|
||||
"mentions": "Wzmianki",
|
||||
"timeline": "Oś czasu",
|
||||
"publicTimeline": "Publiczna oś czasu",
|
||||
"publicAndExtTimeline": "Cała znana sieć",
|
||||
"searchVerb": "Szukaj",
|
||||
"deleteVerb": "Usuń",
|
||||
"cancelVerb": "Anuluj",
|
||||
"deleteConfirmation": "Czy na pewno chcesz usunąć ten queet?",
|
||||
"userExternalFollow": "Zdalne obserwowanie",
|
||||
"userExternalFollowHelp": "ID Twojego konta (np user@rainbowdash.net).",
|
||||
"userFollow": "Obserwuj",
|
||||
"userFollowing": "Obserwowany",
|
||||
"userUnfollow": "Przestań obserwować",
|
||||
"joinGroup": "Dołącz",
|
||||
"joinExternalGroup": "Dołącz zdalnie",
|
||||
"isMemberOfGroup": "Użytkownik",
|
||||
"leaveGroup": "Opuść",
|
||||
"memberCount": "Członkowie",
|
||||
"adminCount": "Administratorzy",
|
||||
"settings": "Ustawienia",
|
||||
"saveChanges": "Zapisz zmiany",
|
||||
"linkColor": "Kolor linku",
|
||||
"backgroundColor": "Kolor tła",
|
||||
"newToQuitter": "Nowy na {site-title}?",
|
||||
"signUp": "Zarejestruj się",
|
||||
"signUpFullName": "Imię i nazwisko",
|
||||
"signUpEmail": "Email",
|
||||
"signUpButtonText": "Zarejestruj się na {site-title}",
|
||||
"welcomeHeading": "Witamy na {site-title}.",
|
||||
"welcomeText": "Jesteśmy społecznością mikroblogerów, złożoną z globalnej <span id=\"federated-tooltip\"><div id=\"what-is-federation\">Oznacza to, że nie musisz posiadać konta na {site-title} aby komunikować się z użytkownikami {site-title}, obserwować lub aby mieć obserwujących na {site-title}. Możesz się także rejestrować na innych serwerach <a href=\"http://www.gnu.org/software/social/\">GNU social</a> lub na innej usłudze, która obsługuje protokół <a href=\"http://www.w3.org/community/ostatus/wiki/Main_Page\">OStatus</a>. Możesz nawet uczestniczyć bez rejestracji, jeśli zainstalujesz GNU social na własnym serwerze. </div>Sieci</span> niezależnych serwerów Gnu social, znanych również jako StatusNet. Jesteśmy idealnym miejscem dla <strong>ludzi takich jak Ty</strong>, dla których etyka i solidarność coś znaczy, a które nie chcą uczestniczyć w scentralizowanych usługach komercyjnych.",
|
||||
"registerNickname": "Nick",
|
||||
"registerHomepage": "Strona internetowa",
|
||||
"registerBio": "O mnie",
|
||||
"registerLocation": "Lokalizacja",
|
||||
"registerRepeatPassword": "Powtórz hasło",
|
||||
"moreSettings": "Więcej ustawień",
|
||||
"otherServers": "Alternatywnie można utworzyć konto na innym serwerze GNU social <a href=\"http://federation.skilledtests.com/select_your_server.html\">Porównanie</a>",
|
||||
"editMyProfile": "Edytuj profil",
|
||||
"notifications": "Powiadomienia",
|
||||
"xFavedYourQueet": "dodał do ulubionych twój Queet",
|
||||
"xRepeatedYourQueet": "podał dalej Twojego Queeta",
|
||||
"xStartedFollowingYou": "zaczął Cię obserwować",
|
||||
"followsYou": "obserwuje Cię",
|
||||
"FAQ": "FAQ",
|
||||
"inviteAFriend": "Zaproś przyjaciół!",
|
||||
"goToExternalProfile": "Pokaż pełny profil",
|
||||
"cropAndSave": "Przytnij i zapisz",
|
||||
"showTerms": "Przeczytaj nasze Warunki korzystania",
|
||||
"ellipsisMore": "Więcej",
|
||||
"blockUser": "Zablokuj",
|
||||
"goToOriginalNotice": "Idź do pierwotnego queeta",
|
||||
"goToTheUsersRemoteProfile": "Idź do zdalnego profilu użytkownika",
|
||||
"clickToDrag":"Kliknij, aby przeciągnąć",
|
||||
"keyboardShortcuts":"Skróty klawiszowe",
|
||||
"classicInterface":"Klasyczny {site-title}",
|
||||
"accessibilityToggleLink":"Dla lepszej dostępności należy kliknąć ten link, aby przejść do klasycznego interfejsu",
|
||||
"tooltipBookmarkStream":"Dodaj ten strumień do zakładek",
|
||||
"tooltipTopMenu":"Menu i ustawienia",
|
||||
"tooltipAttachImage":"Dodaj zdjęcie",
|
||||
"tooltipShortenUrls":"Skrócić wszystkie adresy URL w tym queecie",
|
||||
"tooltipReloadStream":"Odśwież strumień",
|
||||
"tooltipRemoveBookmark":"Usuń tę zakładkę",
|
||||
"clearHistory":"Wyczyść historię przeglądania",
|
||||
"ERRORsomethingWentWrong":"Coś poszło nie tak.",
|
||||
"ERRORmustBeLoggedIn":"Musisz być zalogowany, aby zobaczyć ten strumień.",
|
||||
"ERRORcouldNotFindUserWithNickname":"Nie można znaleźć użytkownika o nicku \"{nickname}\" na tym serwerze",
|
||||
"ERRORcouldNotFindGroupWithNickname":"Nie można znaleźć grupy o nazie \"{nickname}\" na tym serwerze",
|
||||
"ERRORcouldNotFindPage":"Nie można znaleźć podanej strony.",
|
||||
"ERRORnoticeRemoved": "Ten queet został usunięty.",
|
||||
"ERRORnoContactWithServer": "Nie można nawiązać połączenia z serwerem. Serwer może być przeciążony lub możesz mieć problemy z połączeniem internetowym. Spróbuj ponownie później.",
|
||||
"ERRORattachmentUploadFailed": "Przesyłanie nie powiodło się. Format może być nieobsługiwany lub rozmiar jest zbyt duży.",
|
||||
"hideRepliesToPeopleIDoNotFollow":"Ukryj odpowiedzieci od ludzi, których nie obserwuję",
|
||||
"markAllNotificationsAsSeen":"Oznacz wszystkie powiadomienia jako przeczytane",
|
||||
"notifyRepliesAndMentions":"Wzmianki i odpowiedzi",
|
||||
"notifyFavs":"Ulubione",
|
||||
"notifyRepeats":"Podane dalej",
|
||||
"notifyFollows":"Nowi obserwujący",
|
||||
"timelineOptions":"Ustawienia osi czasu",
|
||||
"ERRORfailedSavingYourSetting":"Błąd podczas zapisywania Twoich ustawień",
|
||||
"ERRORfailedMarkingAllNotificationsAsRead":"Błąd podczas ozanczania powiadomień jako przeczytane.",
|
||||
"newNotification": "{new-notice-count} nowe powiadomienie",
|
||||
"newNotifications": "{new-notice-count} nowych powiadomień",
|
||||
"thisIsANoticeFromABlockedUser":"Ostrzeżenie: To queet od użytkownika, którego zablokowałeś. Kliknij, by zobaczyć.",
|
||||
"nicknamesListWithListName":"Lista użytkownika {nickname}: {list-name}",
|
||||
"myListWithListName":"Moja lista: {list-name}",
|
||||
"listMembers":"Użytkownicy",
|
||||
"listSubscribers":"Subskrybujący",
|
||||
"ERRORcouldNotFindList":"Nie ma takiej listy.",
|
||||
"emailAlreadyInUse":"Już w użyciu",
|
||||
"addEditLanguageLink":"Pomóż przetłumaczyć {site-title} na inny język",
|
||||
"onlyPartlyTranslated":"{site-title} został przetłumaczony częściowo na język <em>{language-name}</em> ({percent}%).Możesz pomóc w ukończeniu tłumaczenia na <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Rozpocznij przemówienie",
|
||||
"continueRant":"Kontynuuj przemówienie",
|
||||
"hideEmbeddedInTimeline":"Ukryj osadzony kontent na tej osi czasu",
|
||||
"hideQuotesInTimeline":"Ukryj cytaty na tej osi czasu",
|
||||
"userBlocks":"Konta, które blokujesz",
|
||||
"buttonBlocked":"Zablokowany",
|
||||
"buttonUnblock":"Odblokuj",
|
||||
"failedBlockingUser":"Nie udało się zablokować użytkownika.",
|
||||
"failedUnblockingUser":"Nie udało się odblokować użytkownika.",
|
||||
"unblockUser": "Odblokuj",
|
||||
"tooltipBlocksYou":"Jesteś zablokowany przez {username}.",
|
||||
"silenced":"Wyciszony",
|
||||
"silencedPlural":"Wyciszone profile",
|
||||
"silencedUsersOnThisInstance":"Wyciszone profile na {site-title}",
|
||||
"sandboxed":"Zsandboksowany",
|
||||
"sandboxedPlural":"Zsandboksowane profile",
|
||||
"sandboxedUsersOnThisInstance":"Zsandboksowane profile na {site-title}",
|
||||
"silencedStreamDescription":"Wyciszeni użytkownicy nie mogą się zalogować ani dodawać nowych queetów, a te, które już dodali, są ukryte. Dla użytkowników lokalnych jest to podobne do usunięcia, które można cofnąć, zaś dla użytkowników zdalnych jest to zablokowanie całej strony.",
|
||||
"sandboxedStreamDescription":"Queety od zsandboksowanych użytkowników są wyłączone z publicznej osi czasu oraz całej sieci. Poza tym mogą oni używać strony jak każdy inny użytkownik.",
|
||||
"onlyShowNotificationsFromUsersIFollow":"Pokazuj tylko powiadomienia od użytkowników, których obserwuję",
|
||||
"userOptions":"Więcej opcji",
|
||||
"silenceThisUser":"Wycisz {nickname}",
|
||||
"sandboxThisUser":"Zsandboksuj użytkownika {nickname}",
|
||||
"unSilenceThisUser":"Odcisz {nickname}",
|
||||
"unSandboxThisUser":"Odsandboksuj użytkownika {nickname}",
|
||||
"ERRORfailedSandboxingUser":"Błąd poczas sandboksowania/odsandboksowywania użytkownika",
|
||||
"ERRORfailedSilencingUser":"Błąd podczas uciszania/odciszania użytkownika",
|
||||
"muteUser":"Wycisz",
|
||||
"unmuteUser":"Odcisz",
|
||||
"hideNotificationsFromMutedUsers":"Ukryj powiadomienia od wycziszonych użytkowników",
|
||||
"thisIsANoticeFromAMutedUser":"Wyciszyłeś autora tego queeta. Kliknij tu, aby go pokazać.",
|
||||
"userMutes":"Użytkownicy, których wyciszyłeś",
|
||||
"userBlocked":"Zablokowani użytkownicy",
|
||||
"userMuted":"Wyciszeni użytkownicy",
|
||||
"mutedStreamDescription":"Ukryłeś te konta na swojej osi czasu. Nadal będziesz otrzymywać powiadomienia od tych użytkowników, chyba że wybierzesz opcję "Ukryj powiadomienia od wyciszonych użytkowników", znajdującą się w rozwijanym menu na stronie powiadomień.",
|
||||
"profileAndSettings":"Profil i ustawienia",
|
||||
"profileSettings":"Ustawienia profilu",
|
||||
"thisIsABookmark":"To jest zakładka stworzona w klasycznym interfejsie"
|
||||
}
|
||||
"directionality":"ltr",
|
||||
"languageName": "Polish",
|
||||
"loginUsername": "Nazwa użytkownika lub email",
|
||||
"loginPassword": "Hasło",
|
||||
"loginSignIn": "Zaloguj się",
|
||||
"loginRememberMe": "Zapamiętaj mnie",
|
||||
"loginForgotPassword": "Nie pamiętasz hasła?",
|
||||
"notices": "Queety",
|
||||
"followers": "Obserwujący",
|
||||
"following": "Obserwowani",
|
||||
"groups": "Grupy",
|
||||
"compose": "Co się dzieje?",
|
||||
"queetVerb": "Wyślij",
|
||||
"queetsNounPlural": "Queety",
|
||||
"logout": "Wyloguj się",
|
||||
"languageSelected": "Język:",
|
||||
"viewMyProfilePage": "Zobacz swój profil",
|
||||
"expand": "Rozwiń",
|
||||
"collapse": "Zwiń",
|
||||
"details": "Szczegóły",
|
||||
"expandFullConversation": "Rozwiń całą rozmowę",
|
||||
"replyVerb": "Odpowiedź",
|
||||
"requeetVerb": "Podaj dalej",
|
||||
"favoriteVerb": "Ulubiony",
|
||||
"requeetedVerb": "Podany dalej",
|
||||
"favoritedVerb": "Polubione",
|
||||
"replyTo": "Odpowiedz",
|
||||
"requeetedBy": "Podany dalej przez {requeeted-by}",
|
||||
"favoriteNoun": "Ulubiony",
|
||||
"favoritesNoun": "Ulubione",
|
||||
"requeetNoun": "Podaj dalej",
|
||||
"requeetsNoun": "Podane dalej",
|
||||
"newQueet": "{new-notice-count} nowy queet",
|
||||
"newQueets": "{new-notice-count} nowych queetów",
|
||||
"longmonthsJanuary": "styczeń",
|
||||
"longmonthsFebruary": "luty",
|
||||
"longmonthsMars": "marzec",
|
||||
"longmonthsApril": "kwiecień",
|
||||
"longmonthsMay": "maj",
|
||||
"longmonthsJune": "czerwiec",
|
||||
"longmonthsJuly": "lipiec",
|
||||
"longmonthsAugust": "sierpień",
|
||||
"longmonthsSeptember": "wrzesień",
|
||||
"longmonthsOctober": "październik",
|
||||
"longmonthsNovember": "listopad",
|
||||
"longmonthsDecember": "grudzień",
|
||||
"shortmonthsJanuary": "styczeń",
|
||||
"shortmonthsFebruary": "luty",
|
||||
"shortmonthsMars": "marzec",
|
||||
"shortmonthsApril": "kwiecien",
|
||||
"shortmonthsMay": "maj",
|
||||
"shortmonthsJune": "czerwiec",
|
||||
"shortmonthsJuly": "lipiec",
|
||||
"shortmonthsAugust": "sierpień",
|
||||
"shortmonthsSeptember": "wrzesień",
|
||||
"shortmonthsOctober": "październik",
|
||||
"shortmonthsNovember": "listopad",
|
||||
"shortmonthsDecember": "grudzień",
|
||||
"time12am": "{time} am",
|
||||
"time12pm": "{time} pm",
|
||||
"longDateFormat": "{time12} - {day} {month} {year}",
|
||||
"shortDateFormatSeconds": "{seconds}s",
|
||||
"shortDateFormatMinutes": "{minutes}m",
|
||||
"shortDateFormatHours": "{hours}godz.",
|
||||
"shortDateFormatDate": "{day} {month}",
|
||||
"shortDateFormatDateAndY": "{day} {month} {year}",
|
||||
"now": "teraz",
|
||||
"posting": "dodawanie",
|
||||
"viewMoreInConvBefore": " zobacz więcej w rozmowie",
|
||||
"viewMoreInConvAfter": "Zobacz więcej w rozmowie ",
|
||||
"mentions": "Wzmianki",
|
||||
"timeline": "Oś czasu",
|
||||
"publicTimeline": "Publiczna oś czasu",
|
||||
"publicAndExtTimeline": "Cała znana sieć",
|
||||
"searchVerb": "Szukaj",
|
||||
"deleteVerb": "Usuń",
|
||||
"cancelVerb": "Anuluj",
|
||||
"deleteConfirmation": "Czy na pewno chcesz usunąć ten queet?",
|
||||
"userExternalFollow": "Zdalne obserwowanie",
|
||||
"userExternalFollowHelp": "ID Twojego konta (np user@rainbowdash.net).",
|
||||
"userFollow": "Obserwuj",
|
||||
"userFollowing": "Obserwowany",
|
||||
"userUnfollow": "Przestań obserwować",
|
||||
"joinGroup": "Dołącz",
|
||||
"joinExternalGroup": "Dołącz zdalnie",
|
||||
"isMemberOfGroup": "Użytkownik",
|
||||
"leaveGroup": "Opuść",
|
||||
"memberCount": "Członkowie",
|
||||
"adminCount": "Administratorzy",
|
||||
"settings": "Ustawienia",
|
||||
"saveChanges": "Zapisz zmiany",
|
||||
"linkColor": "Kolor linku",
|
||||
"backgroundColor": "Kolor tła",
|
||||
"newToQuitter": "Nowy na {site-title}?",
|
||||
"signUp": "Zarejestruj się",
|
||||
"signUpFullName": "Imię i nazwisko",
|
||||
"signUpEmail": "Email",
|
||||
"signUpButtonText": "Zarejestruj się na {site-title}",
|
||||
"welcomeHeading": "Witamy na {site-title}.",
|
||||
"welcomeText": "Jesteśmy społecznością mikroblogerów, złożoną z globalnej <span id=\"federated-tooltip\"><div id=\"what-is-federation\">Oznacza to, że nie musisz posiadać konta na {site-title} aby komunikować się z użytkownikami {site-title}, obserwować lub aby mieć obserwujących na {site-title}. Możesz się także rejestrować na innych serwerach <a href=\"http://www.gnu.org/software/social/\">GNU social</a> lub na innej usłudze, która obsługuje protokół <a href=\"http://www.w3.org/community/ostatus/wiki/Main_Page\">OStatus</a>. Możesz nawet uczestniczyć bez rejestracji, jeśli zainstalujesz GNU social na własnym serwerze. </div>Sieci</span> niezależnych serwerów Gnu social, znanych również jako StatusNet. Jesteśmy idealnym miejscem dla <strong>ludzi takich jak Ty</strong>, dla których etyka i solidarność coś znaczy, a które nie chcą uczestniczyć w scentralizowanych usługach komercyjnych.",
|
||||
"registerNickname": "Nick",
|
||||
"registerHomepage": "Strona internetowa",
|
||||
"registerBio": "O mnie",
|
||||
"registerLocation": "Lokalizacja",
|
||||
"registerRepeatPassword": "Powtórz hasło",
|
||||
"moreSettings": "Więcej ustawień",
|
||||
"otherServers": "Alternatywnie można utworzyć konto na innym serwerze GNU social <a href=\"http://federation.skilledtests.com/select_your_server.html\">Porównanie</a>",
|
||||
"editMyProfile": "Edytuj profil",
|
||||
"notifications": "Powiadomienia",
|
||||
"xFavedYourQueet": "dodał do ulubionych twój Queet",
|
||||
"xRepeatedYourQueet": "podał dalej Twojego Queeta",
|
||||
"xStartedFollowingYou": "zaczął Cię obserwować",
|
||||
"followsYou": "obserwuje Cię",
|
||||
"FAQ": "FAQ",
|
||||
"inviteAFriend": "Zaproś przyjaciół!",
|
||||
"goToExternalProfile": "Pokaż pełny profil",
|
||||
"cropAndSave": "Przytnij i zapisz",
|
||||
"showTerms": "Przeczytaj nasze Warunki korzystania",
|
||||
"ellipsisMore": "Więcej",
|
||||
"blockUser": "Zablokuj",
|
||||
"goToOriginalNotice": "Idź do pierwotnego queeta",
|
||||
"goToTheUsersRemoteProfile": "Idź do zdalnego profilu użytkownika",
|
||||
"clickToDrag":"Kliknij, aby przeciągnąć",
|
||||
"keyboardShortcuts":"Skróty klawiszowe",
|
||||
"classicInterface":"Klasyczny {site-title}",
|
||||
"accessibilityToggleLink":"Dla lepszej dostępności należy kliknąć ten link, aby przejść do klasycznego interfejsu",
|
||||
"tooltipBookmarkStream":"Dodaj ten strumień do zakładek",
|
||||
"tooltipTopMenu":"Menu i ustawienia",
|
||||
"tooltipAttachImage":"Dodaj zdjęcie",
|
||||
"tooltipShortenUrls":"Skrócić wszystkie adresy URL w tym queecie",
|
||||
"tooltipReloadStream":"Odśwież strumień",
|
||||
"tooltipRemoveBookmark":"Usuń tę zakładkę",
|
||||
"clearHistory":"Wyczyść historię przeglądania",
|
||||
"ERRORsomethingWentWrong":"Coś poszło nie tak.",
|
||||
"ERRORmustBeLoggedIn":"Musisz być zalogowany, aby zobaczyć ten strumień.",
|
||||
"ERRORcouldNotFindUserWithNickname":"Nie można znaleźć użytkownika o nicku \"{nickname}\" na tym serwerze",
|
||||
"ERRORcouldNotFindGroupWithNickname":"Nie można znaleźć grupy o nazie \"{nickname}\" na tym serwerze",
|
||||
"ERRORcouldNotFindPage":"Nie można znaleźć podanej strony.",
|
||||
"ERRORnoticeRemoved": "Ten queet został usunięty.",
|
||||
"ERRORnoContactWithServer": "Nie można nawiązać połączenia z serwerem. Serwer może być przeciążony lub możesz mieć problemy z połączeniem internetowym. Spróbuj ponownie później.",
|
||||
"ERRORattachmentUploadFailed": "Przesyłanie nie powiodło się. Format może być nieobsługiwany lub rozmiar jest zbyt duży.",
|
||||
"hideRepliesToPeopleIDoNotFollow":"Ukryj odpowiedzieci od ludzi, których nie obserwuję",
|
||||
"markAllNotificationsAsSeen":"Oznacz wszystkie powiadomienia jako przeczytane",
|
||||
"notifyRepliesAndMentions":"Wzmianki i odpowiedzi",
|
||||
"notifyFavs":"Ulubione",
|
||||
"notifyRepeats":"Podane dalej",
|
||||
"notifyFollows":"Nowi obserwujący",
|
||||
"timelineOptions":"Ustawienia osi czasu",
|
||||
"ERRORfailedSavingYourSetting":"Błąd podczas zapisywania Twoich ustawień",
|
||||
"ERRORfailedMarkingAllNotificationsAsRead":"Błąd podczas ozanczania powiadomień jako przeczytane.",
|
||||
"newNotification": "{new-notice-count} nowe powiadomienie",
|
||||
"newNotifications": "{new-notice-count} nowych powiadomień",
|
||||
"thisIsANoticeFromABlockedUser":"Ostrzeżenie: To queet od użytkownika, którego zablokowałeś. Kliknij, by zobaczyć.",
|
||||
"nicknamesListWithListName":"Lista użytkownika {nickname}: {list-name}",
|
||||
"myListWithListName":"Moja lista: {list-name}",
|
||||
"listMembers":"Użytkownicy",
|
||||
"listSubscribers":"Subskrybujący",
|
||||
"ERRORcouldNotFindList":"Nie ma takiej listy.",
|
||||
"emailAlreadyInUse":"Już w użyciu",
|
||||
"addEditLanguageLink":"Pomóż przetłumaczyć {site-title} na inny język",
|
||||
"onlyPartlyTranslated":"{site-title} został przetłumaczony częściowo na język <em>{language-name}</em> ({percent}%).Możesz pomóc w ukończeniu tłumaczenia na <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Rozpocznij przemówienie",
|
||||
"continueRant":"Kontynuuj przemówienie",
|
||||
"hideEmbeddedInTimeline":"Ukryj osadzony kontent na tej osi czasu",
|
||||
"hideQuotesInTimeline":"Ukryj cytaty na tej osi czasu",
|
||||
"userBlocks":"Konta, które blokujesz",
|
||||
"buttonBlocked":"Zablokowany",
|
||||
"buttonUnblock":"Odblokuj",
|
||||
"failedBlockingUser":"Nie udało się zablokować użytkownika.",
|
||||
"failedUnblockingUser":"Nie udało się odblokować użytkownika.",
|
||||
"unblockUser": "Odblokuj",
|
||||
"tooltipBlocksYou":"Jesteś zablokowany przez {username}.",
|
||||
"silenced":"Wyciszony",
|
||||
"silencedPlural":"Wyciszone profile",
|
||||
"silencedUsersOnThisInstance":"Wyciszone profile na {site-title}",
|
||||
"sandboxed":"Zsandboksowany",
|
||||
"sandboxedPlural":"Zsandboksowane profile",
|
||||
"sandboxedUsersOnThisInstance":"Zsandboksowane profile na {site-title}",
|
||||
"silencedStreamDescription":"Wyciszeni użytkownicy nie mogą się zalogować ani dodawać nowych queetów, a te, które już dodali, są ukryte. Dla użytkowników lokalnych jest to podobne do usunięcia, które można cofnąć, zaś dla użytkowników zdalnych jest to zablokowanie całej strony.",
|
||||
"sandboxedStreamDescription":"Queety od zsandboksowanych użytkowników są wyłączone z publicznej osi czasu oraz całej sieci. Poza tym mogą oni używać strony jak każdy inny użytkownik.",
|
||||
"onlyShowNotificationsFromUsersIFollow":"Pokazuj tylko powiadomienia od użytkowników, których obserwuję",
|
||||
"userOptions":"Więcej opcji",
|
||||
"silenceThisUser":"Wycisz {nickname}",
|
||||
"sandboxThisUser":"Zsandboksuj użytkownika {nickname}",
|
||||
"unSilenceThisUser":"Odcisz {nickname}",
|
||||
"unSandboxThisUser":"Odsandboksuj użytkownika {nickname}",
|
||||
"ERRORfailedSandboxingUser":"Błąd poczas sandboksowania/odsandboksowywania użytkownika",
|
||||
"ERRORfailedSilencingUser":"Błąd podczas uciszania/odciszania użytkownika",
|
||||
"muteUser":"Wycisz",
|
||||
"unmuteUser":"Odcisz",
|
||||
"hideNotificationsFromMutedUsers":"Ukryj powiadomienia od wycziszonych użytkowników",
|
||||
"thisIsANoticeFromAMutedUser":"Wyciszyłeś autora tego queeta. Kliknij tu, aby go pokazać.",
|
||||
"userMutes":"Użytkownicy, których wyciszyłeś",
|
||||
"userBlocked":"Zablokowani użytkownicy",
|
||||
"userMuted":"Wyciszeni użytkownicy",
|
||||
"mutedStreamDescription":"Ukryłeś te konta na swojej osi czasu. Nadal będziesz otrzymywać powiadomienia od tych użytkowników, chyba że wybierzesz opcję "Ukryj powiadomienia od wyciszonych użytkowników", znajdującą się w rozwijanym menu na stronie powiadomień.",
|
||||
"profileAndSettings":"Profil i ustawienia",
|
||||
"profileSettings":"Ustawienia profilu",
|
||||
"thisIsABookmark":"To jest zakładka stworzona w klasycznym interfejsie",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"Você escondeu estas contas da sua linha do tempo. Irá continuar a receber notificações delas, a não ser que selecione a opção \"Esconder notificações de utilizadores calados\" a partir do menu da roldana na página de notificações.",
|
||||
"profileAndSettings":"Perfil e Definições",
|
||||
"profileSettings":"Definições do Perfil",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"Você escondeu estas contas de sua linha do tempo. Você ainda receberá notificações destas contas, a menos que você selecione "Esconder notificações de usuários calados" no menu de engrenagem na página de notificações.",
|
||||
"profileAndSettings":"Perfil e ajustes",
|
||||
"profileSettings":"Ajustes de perfil",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"Este é um favorito criado na interface clássica",
|
||||
"thisIsARemoteUser":"<strong>Atenção!</strong> Este é um usuário remoto. Esta página é apenas uma cópia preservada do perfil do usuário, e inclui apenas dados conhecidos por esta instância do GNU social. Visite <a href=\"{remote-profile-url}\" donthijack>o perfil deste usuário no servidor dele</a> para ver o perfil completo.",
|
||||
"findSomeone":"Encontrar alguém",
|
||||
"findSomeoneTooltip":"Escreva o nome de usuário ou url do perfil, por exemplo @usuariolocal ou https://instancia.remota/apelido",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
"queetsNounPlural": "Квиты",
|
||||
"logout": "Выйти",
|
||||
"languageSelected": "Язык:",
|
||||
"viewMyProfilePage": "Просмотр моего профиля",
|
||||
"viewMyProfilePage": "Мой профиль",
|
||||
"expand": "Развернуть",
|
||||
"collapse": "Свернуть",
|
||||
"details": "Подробно",
|
||||
|
@ -112,18 +112,18 @@
|
|||
"xRepeatedYourQueet": "реквитнули",
|
||||
"xStartedFollowingYou": "теперь читают вас",
|
||||
"followsYou": "читают вас",
|
||||
"FAQ": "FAQ",
|
||||
"FAQ": "ЧаВо",
|
||||
"inviteAFriend": "Пригласите друзей!",
|
||||
"goToExternalProfile": "Перейти к полному профилю",
|
||||
"cropAndSave": "Обрезать и сохранить",
|
||||
"showTerms": "Прочтите наши Условия использования",
|
||||
"showTerms": "Прочтите условия использования",
|
||||
"ellipsisMore": "Больше",
|
||||
"blockUser": "Заблокировать {username}",
|
||||
"goToOriginalNotice": "Перейти к оригинальному квиту",
|
||||
"goToTheUsersRemoteProfile": "Перейти к удалённому профилю пользователя",
|
||||
"clickToDrag":"Нажмите для перетаскивания",
|
||||
"keyboardShortcuts":"Горячие клавиши",
|
||||
"classicInterface":"Классический {site-title}",
|
||||
"classicInterface":"Классический вид: {site-title}",
|
||||
"accessibilityToggleLink":"Для большего удобства, нажмите на эту ссылку, чтобы переключиться на классический интерфейс",
|
||||
"tooltipBookmarkStream":"Добавить эту ленту в закладки",
|
||||
"tooltipTopMenu":"Меню и настройки",
|
||||
|
@ -179,12 +179,12 @@
|
|||
"sandboxedStreamDescription":"Квиты пользователей в \"песочнице\" исключаются из Публичной Ленты и Всей известной сети. В остальном такие пользователи могут пользоваться сайтом так же, как остальные.",
|
||||
"onlyShowNotificationsFromUsersIFollow":"Показывать уведомления от только читаемых мной пользователей",
|
||||
"userOptions":"Пользовательские опции",
|
||||
"silenceThisUser":"Silence {nickname}",
|
||||
"silenceThisUser":"Заблокировать пользователя {nickname}",
|
||||
"sandboxThisUser":"Поместить {nickname} в \"песочницу\"",
|
||||
"unSilenceThisUser":"Разбанить {nickname}",
|
||||
"unSilenceThisUser":"Разблокировать {nickname}",
|
||||
"unSandboxThisUser":"Удалить {nickname} из \"песочницы\"",
|
||||
"ERRORfailedSandboxingUser":"Ошибка при помещении пользователя в \"песочницу\" или удалении из неё",
|
||||
"ERRORfailedSilencingUser":"Ошибка при бане/разбане пользователя.",
|
||||
"ERRORfailedSilencingUser":"Ошибка при блокировки/разблокировки пользователя.",
|
||||
"muteUser":"Игнорировать",
|
||||
"unmuteUser":"Прекратить игнорировать",
|
||||
"hideNotificationsFromMutedUsers":"Скрыть уведомления от игнорируемых пользователей",
|
||||
|
@ -195,5 +195,11 @@
|
|||
"mutedStreamDescription":"Вы скрыли этих пользователей из вашей ленты. Вы будете продолжать получать уведомления от этих пользователей, если не выберете "Скрыть уведомления от игнорируемых пользователей" в меню с шестерёнкой на странице уведомлений",
|
||||
"profileAndSettings":"Профиль и настройки",
|
||||
"profileSettings":"Настройки профиля",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"Это закладка, созданная в классическом интерфейсе",
|
||||
"thisIsARemoteUser":"<strong>Внимание!</strong> Это удаленный пользователь. Эта страница - кешированная копия его профиля, и включает только данные известные этой инстанции GNU social. Перейдите на <a href=\"{remote-profile-url}\" donthijack>профиль пользователя на этом серверсе</a> чтобы просмотреть полный профиль.",
|
||||
"findSomeone":"Найти кого-нибудь",
|
||||
"findSomeoneTooltip":"Введите имя пользователя или url профиля, например @localuser или https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Прикрепить файл",
|
||||
"hideEmbeddedInTimeline": "Не показывать предварительный просмотр встроенного контента",
|
||||
"hideQuotesInTimeline": "Скрыть цитаты"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"Këto llogari i keni fshehur prej rrjedhës suaj kohore. Do të merrni, prapëseprapë, njoftime nga këto llogari, veç në përzgjedhshi "Fshihi njoftimet prej përdorues me zë të hequr", te menuja me ikonën e ingranazhit te faqja e njoftimeve.",
|
||||
"profileAndSettings":"Profil dhe rregullime",
|
||||
"profileSettings":"Rregullime profili",
|
||||
"thisIsABookmark":"Ky është një faqerojtës i krijuar nën ndërfaqen Klasike"
|
||||
"thisIsABookmark":"Ky është një faqerojtës i krijuar nën ndërfaqen Klasike",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"Du har dolt dessa användare från dina flöden. Du kommer fortfarande få notiser från dem, om du inte väljer "Dölj notiser från användare som du ignorerar" från kugghjulsmenyn på notissidan.",
|
||||
"profileAndSettings":"Profil och inställningar",
|
||||
"profileSettings":"Profilinställningar",
|
||||
"thisIsABookmark":"Detta är ett bokmärke som skapats i GNU socials standardgränssnitt"
|
||||
"thisIsABookmark":"Detta är ett bokmärke som skapats i GNU socials standardgränssnitt",
|
||||
"thisIsARemoteUser":"<strong>Obs!</strong> Detta är en extern användare. Den här sidan visar bara en cachad version av deras profil. Gå till <a href=\"{remote-profile-url}\" donthijack>användarens profil på deras server</a> för att se hela deras profil.",
|
||||
"findSomeone":"Hitta en användare",
|
||||
"findSomeoneTooltip":"Skriv in ett användarnamn eller en url till en profil, t ex @anvandarnamn eller https://extern.server/anvandarnamn",
|
||||
"tooltipAttachFile":"Bifoga en fil"
|
||||
}
|
||||
|
|
|
@ -95,17 +95,17 @@
|
|||
"newToQuitter": "{site-title}'da yeni misin?",
|
||||
"signUp": "Kayıt ol",
|
||||
"signUpFullName": "Ad ve soyad",
|
||||
"signUpEmail": "Eposta",
|
||||
"signUpEmail": "E-posta",
|
||||
"signUpButtonText": "{site-title}'a kaydol",
|
||||
"welcomeHeading": "{site-title} a hoşgeldin.",
|
||||
"welcomeText": "We are a <span id=\"federated-tooltip\"><div id=\"what-is-federation\">\"Federation\" means that you don't need a {site-title} account to be able to follow, be followed by or interact with {site-title} users. You can register on any StatusNet or GNU social server or any service based on the the <a href=\"http://www.w3.org/community/ostatus/wiki/Main_Page\">Ostatus</a> protocol! You don't even have to join a service – try installing the lovely <a href=\"http://www.gnu.org/software/social/\">GNU social</a> software on your own server! :)</div>federation</span> of microbloggers who care about ethics and solidarity and want to quit the centralised capitalist services.",
|
||||
"welcomeText": "Biz bir <span id=\"federated-tooltip\"><div id=\"what-is-federation\">\"Federasyon\" bunun anlamı, {site-title} 'yi izleyebilmen için bir hesaba ihtiyacın yok.{site-title}'daki kullanıcılarla iletişim kurabilirsin. Herhangi bir StatusNet veya GNU social sunucusuna üye olabilir, ya da <a href=\"http://www.w3.org/community/ostatus/wiki/Main_Page\">Ostatus</a> tabanlı protokol üyesi olabilirsin! Herhangi bir servise bağlanmadan <a href=\"http://www.gnu.org/software/social/\">GNU social</a> bağlantısında bulunan yazılımı kendi sunucunda deneyebilirsin! :)</div>federation</span> sosyal adalet ve dayanışmaya önem veren ve merkezi kapitalist hizmetleri bırakmak isteyen mikroblogcuların topluluğudur.",
|
||||
"registerNickname": "Kullanıcı adı",
|
||||
"registerHomepage": "İnternet Sitesi",
|
||||
"registerBio": "Kişisel Bilgiler",
|
||||
"registerLocation": "Konum",
|
||||
"registerRepeatPassword": "Şifreni tekrar gir",
|
||||
"moreSettings": "Diğer ayarlar",
|
||||
"otherServers": "Alternatif olarak GNU sosyal networkünde başka bir sunucu da hesap oluşturabilirsiniz. <a href=\"http://federation.skilledtests.com/select_your_server.html\">Karşılaştırın</a>",
|
||||
"otherServers": "Alternatif olarak GNU sosyal ağında başka bir sunucuda hesap oluşturabilirsiniz. <a href=\"http://federation.skilledtests.com/select_your_server.html\">Karşılaştırın</a>",
|
||||
"editMyProfile": "Profili düzenle",
|
||||
"notifications": "Bildirimler",
|
||||
"xFavedYourQueet": "Queet'ini favorilerine ekledi",
|
||||
|
@ -118,11 +118,11 @@
|
|||
"cropAndSave": "Kırp ve kaydet",
|
||||
"showTerms": "Kullanım Şartlarını okuyun",
|
||||
"ellipsisMore": "Daha fazla",
|
||||
"blockUser": "Engelle {username}",
|
||||
"blockUser": "{username}'i engelle",
|
||||
"goToOriginalNotice": "Orijinal iletiye git",
|
||||
"goToTheUsersRemoteProfile": "Kullanıcının uzak profiline git",
|
||||
"clickToDrag":"Sürüklemek için tıklayın",
|
||||
"keyboardShortcuts":"Kılavye kısayolları",
|
||||
"keyboardShortcuts":"Klavye kısayolları",
|
||||
"classicInterface":"Klasik {site-title}",
|
||||
"accessibilityToggleLink":"Daha iyi erişilebilirlik için klasik arayüze geçin.",
|
||||
"tooltipBookmarkStream":"Akışı yer imlerinize ekleyin",
|
||||
|
@ -134,10 +134,10 @@
|
|||
"clearHistory":"Arama geçmişini temizle",
|
||||
"ERRORsomethingWentWrong":"Bir şeyler yanlış gitti.",
|
||||
"ERRORmustBeLoggedIn":"Bu akışı görmek için giriş yapmalısınız.",
|
||||
"ERRORcouldNotFindUserWithNickname":"Sunucuda böyle bir kullanıcı adına sahip \"{nickname}\" kullanıcı yok.",
|
||||
"ERRORcouldNotFindGroupWithNickname":"Sunucuda böyle bir kulanıcı adına sahip \"{nickname}\" grup yok.",
|
||||
"ERRORcouldNotFindPage":"Sayfayı bulamadım.",
|
||||
"ERRORnoticeRemoved": "ileti kaldırıldı.",
|
||||
"ERRORcouldNotFindUserWithNickname":"Sunucuda \"{nickname}\" kullanıcı adına sahip bir kullanıcı yok.",
|
||||
"ERRORcouldNotFindGroupWithNickname":"Sunucuda \"{nickname}\" kullanıcı adına sahip bir grup yok.",
|
||||
"ERRORcouldNotFindPage":"Sayfa bulunamadı.",
|
||||
"ERRORnoticeRemoved": "İleti kaldırıldı.",
|
||||
"ERRORnoContactWithServer": "Sunucuyla bağlantı kurulamıyor. Sunucu aşırı yüklenmiş veya internet bağlantısıyla ilgili bir sorun olabilir. Lütfen daha sonra tekrar deneyin!",
|
||||
"ERRORattachmentUploadFailed": "Yükleme başarısız oldu. Biçimi desteklenmiyor veya boyutu çok büyük olabilir.",
|
||||
"hideRepliesToPeopleIDoNotFollow":"Takip etmediğim kullanıcıların cevaplarını gizle",
|
||||
|
@ -147,7 +147,7 @@
|
|||
"notifyRepeats":"Requeets",
|
||||
"notifyFollows":"Yeni takipçiler",
|
||||
"timelineOptions":"Akış ayarları",
|
||||
"ERRORfailedSavingYourSetting":"Ayarlar kaydedilemedi.",
|
||||
"ERRORfailedSavingYourSetting":"Ayarlar kaydedilirken bir hata oluştu.",
|
||||
"ERRORfailedMarkingAllNotificationsAsRead":"Tüm bildirimler görüntülenemedi.",
|
||||
"newNotification": "{new-notice-count} yeni bildirim",
|
||||
"newNotifications": "{new-notice-count} yeni bildirimler",
|
||||
|
@ -164,38 +164,42 @@
|
|||
"continueRant":"Konuşmaya devam et",
|
||||
"hideEmbeddedInTimeline":"Bu akışta gömülü içeriği gizle",
|
||||
"hideQuotesInTimeline":"Bu akışta alıntıları gizle",
|
||||
"userBlocks":"Hesabın engellendi",
|
||||
"userBlocks":"Engellediğin hesaplar",
|
||||
"buttonBlocked":"Engellenmiş",
|
||||
"buttonUnblock":"Engeli kaldır",
|
||||
"failedBlockingUser":"Kullanıcı engellenemedi.",
|
||||
"failedUnblockingUser":"Kullanıcının engeli kaldırılamadı.",
|
||||
"unblockUser": "{username} engelini kaldır",
|
||||
"tooltipBlocksYou":"{username} kullanıcısını engellediniz.",
|
||||
"silenced":"Susturuldu",
|
||||
"silencedPlural":"Susturulan profiller",
|
||||
"silencedUsersOnThisInstance":"Silenced profiles on {site-title}",
|
||||
"sandboxed":"Sandboxed",
|
||||
"sandboxedPlural":"Sandboxed profiles",
|
||||
"sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}",
|
||||
"silencedStreamDescription":"Silenced users can't login or post quips and the quips they've already posted are hidden. For local users it's like a delete that can be reversed, for remote users it's like a site wide block.",
|
||||
"sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Apart from that, they can use the site like any other user.",
|
||||
"onlyShowNotificationsFromUsersIFollow":"Only show notifications from users I follow",
|
||||
"userOptions":"More user actions",
|
||||
"silenceThisUser":"Silence {nickname}",
|
||||
"sandboxThisUser":"Sandbox {nickname}",
|
||||
"unSilenceThisUser":"Unsilence {nickname}",
|
||||
"unSandboxThisUser":"Unsandbox {nickname}",
|
||||
"ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user",
|
||||
"ERRORfailedSilencingUser":"Failed silencing/unsilencing the user",
|
||||
"muteUser":"Mute",
|
||||
"unmuteUser":"Unmute",
|
||||
"hideNotificationsFromMutedUsers":"Hide notifications from muted users",
|
||||
"thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.",
|
||||
"userMutes":"Accounts you're muting",
|
||||
"userBlocked":"Blocked accounts",
|
||||
"userMuted":"Muted accounts",
|
||||
"mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.",
|
||||
"profileAndSettings":"Profile and settings",
|
||||
"profileSettings":"Profile settings",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"tooltipBlocksYou":"{username} kullanıcısı tarafından engellendiniz",
|
||||
"silenced":"Sessizleştirildi",
|
||||
"silencedPlural":"Sessizleştirilen profiller",
|
||||
"silencedUsersOnThisInstance":"{site-title}'da sessizleştirilen profiller",
|
||||
"sandboxed":"Karantinaya alınmış",
|
||||
"sandboxedPlural":"Karantinaya alınan profiller",
|
||||
"sandboxedUsersOnThisInstance":"{site-title}'da karantinaya alınan profiller",
|
||||
"silencedStreamDescription":"Sessizleştirilen kullanıcılar giriş yapamaz ve quip gönderemezler. Yerel kullanıcılar için bu tersine çevrilebilecek bir silme gibidir, dolaylı kullanıcılar için ise bu site çapında bir blok gibidir.",
|
||||
"sandboxedStreamDescription":"Karantinaya alınan kullanıcılar tarafından gönderiler quipler Herkese açık akış ve bilinen bütün ağlardan kovulurlar. Onun dışında, siteyi diğer kullanıcılar gibi kullanabilirler.",
|
||||
"onlyShowNotificationsFromUsersIFollow":"Sadece takip ettiğim kullanıcılardan gelen bildirimleri göster",
|
||||
"userOptions":"Daha fazla kullanıcı ayarları",
|
||||
"silenceThisUser":"{nickname}'ı sessizleştir",
|
||||
"sandboxThisUser":"{nickname}'ı karantinaya al",
|
||||
"unSilenceThisUser":"{nickname}'in sessizleştirmesini kaldır",
|
||||
"unSandboxThisUser":"{nickname}'i karantinadan çıkar",
|
||||
"ERRORfailedSandboxingUser":"Kullanıcıyı karantinaya almada/karantinadan çıkarmada bir hata oluştu",
|
||||
"ERRORfailedSilencingUser":"Kullanıcıyı sessizleştirme/sessizleştirmesini kaldırmada bir hata oluştu",
|
||||
"muteUser":"Kullanıcıyı sustur",
|
||||
"unmuteUser":"Susturmayı kaldır",
|
||||
"hideNotificationsFromMutedUsers":"Susturulan kullanıcılardan gelen bildirimleri gizle",
|
||||
"thisIsANoticeFromAMutedUser":"Bu quipin yazarını susturmuşsunuz. Yine de görüntülemek için tıklayın",
|
||||
"userMutes":"Susturduğun hesaplar",
|
||||
"userBlocked":"Engellenmiş hesaplar",
|
||||
"userMuted":"Susturulmuş hesaplar",
|
||||
"mutedStreamDescription":"Bu hesapları zaman akışından gizledin. Bildirimler sayfasındaki dişli çark menüsünden "Susturulan kullanıcılardan gelen bildirimleri gizle" seçeneğini seçmediğin sürece bu kullanıcılardan bildirim almaya devam edeceksin.",
|
||||
"profileAndSettings":"Profil ve ayarlar",
|
||||
"profileSettings":"Profil ayarları",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Dikkat!</strong>Bu dolaylı bir kullanıcı. Bu sayfa kullanıcının sadece bir önbellek kopyasını ve sadece bu GNU social örneğinde bilinen verileri içerir. Bu kullanıcının profilinin tamamını görmek için <a href=\"{remote-profile-url}\" donthijack>kendi sunucularındaki profilini</a> ziyaret edin.",
|
||||
"findSomeone":"Bir kullanıcı ara",
|
||||
"findSomeoneTooltip":"Bir kullanıcı adı veya profil URL'si gir (ör. @localuser veya https://remote.instance/nickname)",
|
||||
"tooltipAttachFile":"Dosya ekle"
|
||||
}
|
||||
|
|
|
@ -197,5 +197,9 @@
|
|||
"mutedStreamDescription":"Ви сховали ці облікови записи з вашей стрічкі. Ви будете одержувати оголошення від цих облікових записів, доки Ви не виберіте "Сховати оголошення від корістувачей котрих я ігнорую" в меню з шестернею на сторінкі оголошень.",
|
||||
"profileAndSettings":"Профіль та налаштування",
|
||||
"profileSettings":"Налаштування профіля",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -196,5 +196,9 @@
|
|||
"mutedStreamDescription":"你已从你的时间线中隐藏了这些用户。但你仍将收到这些用户的通知,除非你在设置页的齿轮菜单中选择“隐藏被忽略用户的通知”。",
|
||||
"profileAndSettings":"个人档案及设置",
|
||||
"profileSettings":"个人设置",
|
||||
"thisIsABookmark":"该书签系在旧版视图下创建。"
|
||||
"thisIsABookmark":"该书签系在旧版视图下创建。",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
|
@ -196,5 +196,9 @@
|
|||
"mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.",
|
||||
"profileAndSettings":"Profile and settings",
|
||||
"profileSettings":"Profile settings",
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
||||
"thisIsABookmark":"This is a bookmark created in the Classic interface",
|
||||
"thisIsARemoteUser":"<strong>Attention!</strong> This is a remote user. This page is only a cached copy of their profile, and includes only data known to this GNU social instance. Go to the <a href=\"{remote-profile-url}\" donthijack>user's profile on their server</a> to view their full profile.",
|
||||
"findSomeone":"Find someone",
|
||||
"findSomeoneTooltip":"Input a username or a profile url, e.g. @localuser or https://remote.instance/nickname",
|
||||
"tooltipAttachFile":"Attach a file"
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user