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();
|
$schema = Schema::get();
|
||||||
|
|
||||||
|
@ -151,7 +151,7 @@ class QvitterPlugin extends Plugin {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onBeforePluginCheckSchema()
|
public function onBeforePluginCheckSchema(): bool
|
||||||
{
|
{
|
||||||
QvitterNotification::beforeSchemaUpdate();
|
QvitterNotification::beforeSchemaUpdate();
|
||||||
return true;
|
return true;
|
||||||
|
@ -160,6 +160,10 @@ class QvitterPlugin extends Plugin {
|
||||||
// route/reroute urls
|
// route/reroute urls
|
||||||
public function onRouterInitialized($m)
|
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',
|
$m->connect(':nickname/mutes',
|
||||||
array('action' => 'qvitter',
|
array('action' => 'qvitter',
|
||||||
'nickname' => Nickname::INPUT_FMT));
|
'nickname' => Nickname::INPUT_FMT));
|
||||||
|
@ -371,6 +375,10 @@ class QvitterPlugin extends Plugin {
|
||||||
array('action' => 'shownotice'),
|
array('action' => 'shownotice'),
|
||||||
array('notice' => '[0-9]+'),
|
array('notice' => '[0-9]+'),
|
||||||
'qvitter');
|
'qvitter');
|
||||||
|
URLMapperOverwrite::overwrite_variable($m, 'user/:id',
|
||||||
|
array('action' => 'userbyid'),
|
||||||
|
array('id' => '[0-9]+'),
|
||||||
|
'qvitter');
|
||||||
URLMapperOverwrite::overwrite_variable($m, 'conversation/:id',
|
URLMapperOverwrite::overwrite_variable($m, 'conversation/:id',
|
||||||
array('action' => 'conversation'),
|
array('action' => 'conversation'),
|
||||||
array('id' => '[0-9]+'),
|
array('id' => '[0-9]+'),
|
||||||
|
@ -397,6 +405,7 @@ class QvitterPlugin extends Plugin {
|
||||||
case 'api/favorites.json':
|
case 'api/favorites.json':
|
||||||
case 'api/statuses/friends_timeline.json':
|
case 'api/statuses/friends_timeline.json':
|
||||||
case 'api/statuses/user_timeline.json':
|
case 'api/statuses/user_timeline.json':
|
||||||
|
case 'api/qvitter/statuses/user_timeline.json':
|
||||||
|
|
||||||
// add logged in user's user array
|
// add logged in user's user array
|
||||||
if (common_logged_in() && !isset($_GET['screen_name']) && !isset($_GET['id'])) {
|
if (common_logged_in() && !isset($_GET['screen_name']) && !isset($_GET['id'])) {
|
||||||
|
@ -409,13 +418,17 @@ class QvitterPlugin extends Plugin {
|
||||||
|
|
||||||
if(isset($_GET['screen_name'])) {
|
if(isset($_GET['screen_name'])) {
|
||||||
$user = User::getKV('nickname', $_GET['screen_name']);
|
$user = User::getKV('nickname', $_GET['screen_name']);
|
||||||
|
if($user instanceof User) {
|
||||||
|
$profile = $user->getProfile();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
elseif(isset($_GET['id'])) {
|
elseif(isset($_GET['id'])) {
|
||||||
|
$profile = Profile::getKV('id', $_GET['id']);
|
||||||
$user = User::getKV('id', $_GET['id']);
|
$user = User::getKV('id', $_GET['id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($user instanceof User) {
|
if(isset($profile) && $profile instanceof Profile) {
|
||||||
header('Qvitter-User-Array: '.json_encode($this->qvitterTwitterUserArray($user->getProfile())));
|
header('Qvitter-User-Array: '.json_encode($this->qvitterTwitterUserArray($profile)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -472,7 +485,7 @@ class QvitterPlugin extends Plugin {
|
||||||
* @return boolean hook return
|
* @return boolean hook return
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function onEndAccountSettingsNav($action)
|
function onEndAccountSettingsNav($action): bool
|
||||||
{
|
{
|
||||||
$action_name = $action->trimmed('action');
|
$action_name = $action->trimmed('action');
|
||||||
|
|
||||||
|
@ -494,7 +507,7 @@ class QvitterPlugin extends Plugin {
|
||||||
* @return boolean hook return
|
* @return boolean hook return
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function onEndAdminPanelNav($action)
|
function onEndAdminPanelNav($action): bool
|
||||||
{
|
{
|
||||||
|
|
||||||
$action_name = $action->trimmed('action');
|
$action_name = $action->trimmed('action');
|
||||||
|
@ -555,7 +568,7 @@ class QvitterPlugin extends Plugin {
|
||||||
$enclosure_o = $attachment->getEnclosure();
|
$enclosure_o = $attachment->getEnclosure();
|
||||||
|
|
||||||
// Oembed
|
// Oembed
|
||||||
if(array_key_exists('Oembed', StatusNet::getActivePlugins())) {
|
if(array_key_exists('Oembed', GNUsocial::getActiveModules())) {
|
||||||
$oembed = File_oembed::getKV('file_id',$attachment->id);
|
$oembed = File_oembed::getKV('file_id',$attachment->id);
|
||||||
if($oembed instanceof File_oembed) {
|
if($oembed instanceof File_oembed) {
|
||||||
$oembed_html = str_replace('<!--//-->','',$oembed->html); // trash left of wordpress' javascript after htmLawed removed the tags
|
$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 this attachment has an url this might be a notice url
|
||||||
if (isset($attachment['url'])) {
|
if (isset($attachment['url'])) {
|
||||||
$noticeurl = common_path('notice/', StatusNet::isHTTPS());
|
$noticeurl = common_path('notice/', GNUsocial::isHTTPS());
|
||||||
$instanceurl = common_path('', StatusNet::isHTTPS());
|
$instanceurl = common_path('', GNUsocial::isHTTPS());
|
||||||
|
|
||||||
// remove protocol for the comparison below
|
// remove protocol for the comparison below
|
||||||
$noticeurl_wo_protocol = preg_replace('(^https?://)', '', $noticeurl);
|
$noticeurl_wo_protocol = preg_replace('(^https?://)', '', $noticeurl);
|
||||||
|
@ -816,7 +829,7 @@ class QvitterPlugin extends Plugin {
|
||||||
* @return boolean hook return
|
* @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');
|
$twitter_user['cover_photo'] = Profile_prefs::getConfigData($profile, 'qvitter', 'cover_photo');
|
||||||
|
@ -931,7 +944,7 @@ class QvitterPlugin extends Plugin {
|
||||||
/**
|
/**
|
||||||
* Mark single notification as seen
|
* 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(
|
$notification_to_mark_as_seen = QvitterNotification::pkeyGet(array(
|
||||||
'is_seen' => 0,
|
'is_seen' => 0,
|
||||||
|
@ -951,7 +964,7 @@ class QvitterPlugin extends Plugin {
|
||||||
/**
|
/**
|
||||||
* Remove likes in notification table on dislike
|
* Remove likes in notification table on dislike
|
||||||
*/
|
*/
|
||||||
public function onEndDisfavorNotice($profile, $notice)
|
public function onEndDisfavorNotice($profile, $notice): bool
|
||||||
{
|
{
|
||||||
$notif = new QvitterNotification();
|
$notif = new QvitterNotification();
|
||||||
$notif->from_profile_id = $profile->id;
|
$notif->from_profile_id = $profile->id;
|
||||||
|
@ -968,7 +981,7 @@ class QvitterPlugin extends Plugin {
|
||||||
*
|
*
|
||||||
* @return boolean hook flag
|
* @return boolean hook flag
|
||||||
*/
|
*/
|
||||||
function onStartNoticeDistribute($notice) {
|
function onStartNoticeDistribute($notice): bool {
|
||||||
|
|
||||||
assert($notice->id > 0); // since we removed tests below
|
assert($notice->id > 0); // since we removed tests below
|
||||||
|
|
||||||
|
@ -1048,7 +1061,7 @@ class QvitterPlugin extends Plugin {
|
||||||
*
|
*
|
||||||
* @return boolean hook flag
|
* @return boolean hook flag
|
||||||
*/
|
*/
|
||||||
public function onNoticeDeleteRelated($notice)
|
public function onNoticeDeleteRelated($notice): bool
|
||||||
{
|
{
|
||||||
|
|
||||||
$notif = new QvitterNotification();
|
$notif = new QvitterNotification();
|
||||||
|
@ -1080,7 +1093,7 @@ class QvitterPlugin extends Plugin {
|
||||||
$user_is_deleted = true;
|
$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>.'),
|
$rendered = sprintf(_m('<a href="%1$s">%2$s</a> deleted notice <a href="%3$s">{{%4$s}}</a>.'),
|
||||||
htmlspecialchars($profile->getUrl()),
|
htmlspecialchars($profile->getUrl()),
|
||||||
htmlspecialchars($profile->getBestName()),
|
htmlspecialchars($profile->getBestName()),
|
||||||
|
@ -1116,9 +1129,9 @@ class QvitterPlugin extends Plugin {
|
||||||
* @return boolean hook flag
|
* @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;
|
$deleter_profile_uri = $activity->actor->id;
|
||||||
$deleted_notice_uri = $activity->objects[0]->objects[0]->content;
|
$deleted_notice_uri = $activity->objects[0]->objects[0]->content;
|
||||||
|
@ -1157,7 +1170,7 @@ class QvitterPlugin extends Plugin {
|
||||||
*
|
*
|
||||||
* @return boolean hook flag
|
* @return boolean hook flag
|
||||||
*/
|
*/
|
||||||
public function onEndSubscribe($subscriber, $other)
|
public function onEndSubscribe($subscriber, $other): bool
|
||||||
{
|
{
|
||||||
if(Subscription::exists($subscriber, $other)) {
|
if(Subscription::exists($subscriber, $other)) {
|
||||||
$this->insertNotification($other->id, $subscriber->id, 'follow', 1);
|
$this->insertNotification($other->id, $subscriber->id, 'follow', 1);
|
||||||
|
@ -1165,7 +1178,7 @@ class QvitterPlugin extends Plugin {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
public function onEndUnsubscribe($subscriber, $other)
|
public function onEndUnsubscribe($subscriber, $other): bool
|
||||||
{
|
{
|
||||||
if(!Subscription::exists($subscriber, $other)) {
|
if(!Subscription::exists($subscriber, $other)) {
|
||||||
$notif = new QvitterNotification();
|
$notif = new QvitterNotification();
|
||||||
|
@ -1183,7 +1196,7 @@ class QvitterPlugin extends Plugin {
|
||||||
*
|
*
|
||||||
* @return boolean hook flag
|
* @return boolean hook flag
|
||||||
*/
|
*/
|
||||||
public function onEndLoadDoc($title, &$output)
|
public function onEndLoadDoc($title, &$output): bool
|
||||||
{
|
{
|
||||||
|
|
||||||
if($title == 'faq') {
|
if($title == 'faq') {
|
||||||
|
@ -1208,7 +1221,7 @@ class QvitterPlugin extends Plugin {
|
||||||
*
|
*
|
||||||
* @return boolean hook flag
|
* @return boolean hook flag
|
||||||
*/
|
*/
|
||||||
public function onStartPrimaryNav($action)
|
public function onStartPrimaryNav($action): bool
|
||||||
{
|
{
|
||||||
|
|
||||||
$action->menuItem(common_local_url('doc', array('title' => 'faq')),
|
$action->menuItem(common_local_url('doc', array('title' => 'faq')),
|
||||||
|
@ -1228,7 +1241,7 @@ class QvitterPlugin extends Plugin {
|
||||||
*
|
*
|
||||||
* @return boolean hook flag
|
* @return boolean hook flag
|
||||||
*/
|
*/
|
||||||
public function onStartUserRegister($profile)
|
public function onStartUserRegister($profile): bool
|
||||||
{
|
{
|
||||||
|
|
||||||
if(is_array(self::settings("blocked_ips"))) {
|
if(is_array(self::settings("blocked_ips"))) {
|
||||||
|
@ -1247,7 +1260,7 @@ class QvitterPlugin extends Plugin {
|
||||||
*
|
*
|
||||||
* @return boolean hook flag
|
* @return boolean hook flag
|
||||||
*/
|
*/
|
||||||
public function onEndFindMentions($sender, $text, &$mentions) {
|
public function onEndFindMentions($sender, $text, &$mentions): bool {
|
||||||
|
|
||||||
// get the correct group profiles
|
// get the correct group profiles
|
||||||
if(isset($_POST['post_to_groups'])) {
|
if(isset($_POST['post_to_groups'])) {
|
||||||
|
@ -1285,7 +1298,7 @@ class QvitterPlugin extends Plugin {
|
||||||
*
|
*
|
||||||
* @return boolean hook flag
|
* @return boolean hook flag
|
||||||
*/
|
*/
|
||||||
public function onEndSetApiUser($user) {
|
public function onEndSetApiUser($user): bool {
|
||||||
|
|
||||||
// cleanup sessions, to allow for simultaneous http-requests,
|
// cleanup sessions, to allow for simultaneous http-requests,
|
||||||
// e.g. if posting a notice takes a very long time
|
// 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',
|
$versions[] = array('name' => 'Qvitter',
|
||||||
'version' => '5-alpha',
|
'version' => '5-alpha',
|
||||||
|
@ -1404,7 +1417,7 @@ class QvitterPlugin extends Plugin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if($largest_avatar['size']>0) {
|
if($largest_avatar['size']>0) {
|
||||||
$origurl = common_path('', StatusNet::isHTTPS()).$largest_avatar['name'];
|
$origurl = common_path('', GNUsocial::isHTTPS()).$largest_avatar['name'];
|
||||||
} else {
|
} else {
|
||||||
$origurl = $twitter_user['profile_image_url_profile_size'];
|
$origurl = $twitter_user['profile_image_url_profile_size'];
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
· ·
|
· ·
|
||||||
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
|
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
|
||||||
|
|
||||||
|
require_once INSTALLDIR . '/lib/util/tempfile.php';
|
||||||
|
|
||||||
if (!defined('GNUSOCIAL')) {
|
if (!defined('GNUSOCIAL')) {
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -93,12 +94,13 @@ class ApiAccountUpdateProfileBannerAction extends ApiAuthAction
|
||||||
$this->img = str_replace(' ', '+', $this->img);
|
$this->img = str_replace(' ', '+', $this->img);
|
||||||
$this->img = base64_decode($this->img, true);
|
$this->img = base64_decode($this->img, true);
|
||||||
|
|
||||||
$fh = tmpfile();
|
$fh = new TemporaryFile('gs-mediaupload');
|
||||||
fwrite($fh, $this->img);
|
fwrite($fh->getResource(), $this->img);
|
||||||
unset($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
|
// maybe resize
|
||||||
|
|
|
@ -46,15 +46,23 @@ class ApiExternalUserShowAction extends ApiPrivateAuthAction
|
||||||
{
|
{
|
||||||
parent::prepare($args);
|
parent::prepare($args);
|
||||||
|
|
||||||
$this->format = 'json';
|
$this->format = 'json';
|
||||||
|
|
||||||
$profileurl = urldecode($this->arg('profileurl'));
|
$profileurl = urldecode($this->arg('profileurl'));
|
||||||
$nickname = urldecode($this->arg('nickname'));
|
$nickname = urldecode($this->arg('nickname'));
|
||||||
|
|
||||||
$this->profile = new stdClass();
|
$this->profile = new stdClass();
|
||||||
$this->profile->external = null;
|
$this->profile->external = null;
|
||||||
$this->profile->local = 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
|
// we can get urls of two types of urls (1) ://instance/nickname
|
||||||
// (2) ://instance/user/1234
|
// (2) ://instance/user/1234
|
||||||
//
|
//
|
||||||
|
@ -97,10 +105,14 @@ class ApiExternalUserShowAction extends ApiPrivateAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
// case (1)
|
// case (1)
|
||||||
$local_profile = Profile::getKV('profileurl',$profileurl);
|
if(!isset($local_profile)) {
|
||||||
|
$local_profile = Profile::getKV('profileurl',$profileurl);
|
||||||
|
}
|
||||||
|
|
||||||
if($local_profile instanceof Profile) {
|
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 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) {
|
if(!substr($local_profile->profileurl, -strlen($local_profile->nickname))===$local_profile->nickname) {
|
||||||
$external_instance_url = $local_profile->profileurl;
|
$external_instance_url = $local_profile->profileurl;
|
||||||
|
@ -117,7 +129,6 @@ class ApiExternalUserShowAction extends ApiPrivateAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->profile->external = $external_profile;
|
$this->profile->external = $external_profile;
|
||||||
$this->profile->local = $this->twitterUserArray($local_profile);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,13 +149,9 @@ class ApiExternalUserShowAction extends ApiPrivateAuthAction
|
||||||
{
|
{
|
||||||
parent::handle();
|
parent::handle();
|
||||||
|
|
||||||
if(is_null($this->profile->local) && is_null($this->profile->external)) {
|
$this->initDocument('json');
|
||||||
$this->clientError(_('List not found.'), 404);
|
$this->showJsonObjects($this->profile);
|
||||||
} else {
|
$this->endDocument('json');
|
||||||
$this->initDocument('json');
|
|
||||||
$this->showJsonObjects($this->profile);
|
|
||||||
$this->endDocument('json');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -74,7 +74,7 @@ class ApiQvitterMutesAction extends ApiPrivateAuthAction
|
||||||
{
|
{
|
||||||
parent::handle();
|
parent::handle();
|
||||||
|
|
||||||
$this->target = Profile::current();
|
$this->target = $this->scoped;
|
||||||
|
|
||||||
if(!$this->target instanceof Profile) {
|
if(!$this->target instanceof Profile) {
|
||||||
$this->clientError(_('You have to be logged in to view your mutes.'), 403);
|
$this->clientError(_('You have to be logged in to view your mutes.'), 403);
|
||||||
|
|
|
@ -74,8 +74,8 @@ class ApiQvitterOembedNoticeAction extends ApiAction
|
||||||
{
|
{
|
||||||
parent::handle();
|
parent::handle();
|
||||||
|
|
||||||
$noticeurl = common_path('notice/', StatusNet::isHTTPS());
|
$noticeurl = common_path('notice/', GNUsocial::isHTTPS());
|
||||||
$instanceurl = common_path('', StatusNet::isHTTPS());
|
$instanceurl = common_path('', GNUsocial::isHTTPS());
|
||||||
|
|
||||||
// remove protocol for the comparison below
|
// remove protocol for the comparison below
|
||||||
$noticeurl_wo_protocol = preg_replace('(^https?://)', '', $noticeurl);
|
$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')) {
|
if (!defined('GNUSOCIAL')) {
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -90,15 +91,14 @@ class ApiUpdateAvatarAction extends ApiAuthAction
|
||||||
|
|
||||||
$imagefile = null;
|
$imagefile = null;
|
||||||
// write the image to a temporary file
|
// write the image to a temporary file
|
||||||
$fh = tmpfile();
|
$fh = new TemporaryFile('gs-mediaupload');
|
||||||
fwrite($fh, $this->img);
|
fwrite($fh->getResource(), $this->img);
|
||||||
unset($this->img); // no need to keep it in memory
|
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
|
// read the temporary file as an uploaded image, will store File object
|
||||||
$mediafile = MediaFile::fromFilehandle($fh, $this->scoped);
|
fflush($fh->getResource());
|
||||||
// Deletes the temporary file, if it was needed we stored it in fromFilehandle
|
$mediafile = MediaFile::fromFileInfo($fh, $this->scoped);
|
||||||
fclose($fh);
|
// 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
|
// Now try to get it as an ImageFile since it has some handy functions
|
||||||
$imagefile = ImageFile::fromFileObject($mediafile->fileRecord);
|
$imagefile = ImageFile::fromFileObject($mediafile->fileRecord);
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
· ·
|
· ·
|
||||||
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
|
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
|
||||||
|
|
||||||
|
require_once INSTALLDIR . '/lib/util/tempfile.php';
|
||||||
|
|
||||||
if (!defined('GNUSOCIAL')) {
|
if (!defined('GNUSOCIAL')) {
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -91,15 +92,15 @@ class ApiUpdateBackgroundImageAction extends ApiAuthAction
|
||||||
$imagefile = null;
|
$imagefile = null;
|
||||||
|
|
||||||
// put the image data in a temporary file
|
// put the image data in a temporary file
|
||||||
$fh = tmpfile();
|
$fh = new TemporaryFile('gs-mediaupload')
|
||||||
fwrite($fh, $this->img);
|
fwrite($fh->getResource(), $this->img);
|
||||||
unset($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
|
// 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
|
// 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);
|
$imagefile = ImageFile::fromFileObject($mediafile->fileRecord);
|
||||||
unset($mediafile); // No need to keep the MediaFile around anymore, everything we need is in ImageFile
|
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);
|
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();
|
$user = common_current_user();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -83,16 +97,34 @@ class QvitterAction extends ApiAction
|
||||||
$sitetitle = common_config('site','name');
|
$sitetitle = common_config('site','name');
|
||||||
$siterootdomain = common_config('site','server');
|
$siterootdomain = common_config('site','server');
|
||||||
$qvitterpath = Plugin::staticPath('Qvitter', '');
|
$qvitterpath = Plugin::staticPath('Qvitter', '');
|
||||||
$apiroot = common_path('api/', StatusNet::isHTTPS());
|
$apiroot = common_path('api/', GNUsocial::isHTTPS());
|
||||||
$attachmentroot = common_path('attachment/', StatusNet::isHTTPS());
|
$instanceurl = common_path('', GNUsocial::isHTTPS());
|
||||||
$instanceurl = common_path('', StatusNet::isHTTPS());
|
$favicon_path = QvitterPlugin::settings("favicon_path");
|
||||||
$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
|
// user's browser's language setting
|
||||||
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
|
$user_browser_language = 'en'; // use english if we can't find the browser language
|
||||||
$user_browser_language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
|
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
|
||||||
}
|
$user_browser_language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
common_set_returnto(''); // forget this
|
common_set_returnto(''); // forget this
|
||||||
|
@ -174,7 +206,7 @@ class QvitterAction extends ApiAction
|
||||||
}
|
}
|
||||||
|
|
||||||
// maybe openid
|
// 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.provider" href="'.common_local_url('openidserver').'"/>'."\n";
|
||||||
print ' <link rel="openid2.local_id" href="'.$user->getProfile()->profileurl.'"/>'."\n";
|
print ' <link rel="openid2.local_id" href="'.$user->getProfile()->profileurl.'"/>'."\n";
|
||||||
print ' <link rel="openid2.server" href="'.common_local_url('openidserver').'"/>'."\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
|
// oembed discovery for local notices, and twitter cards
|
||||||
if(substr($_SERVER['REQUEST_URI'],0,8) == '/notice/'
|
if(substr($_SERVER['REQUEST_URI'],0,8) == '/notice/'
|
||||||
&& $this->arg('notice')
|
&& $this->arg('notice')
|
||||||
&& array_key_exists('Oembed', StatusNet::getActivePlugins())) {
|
&& array_key_exists('Oembed', GNUsocial::getActiveModules())) {
|
||||||
$notice = Notice::getKV('id', $this->arg('notice'));
|
$notice = Notice::getKV('id', $this->arg('notice'));
|
||||||
|
|
||||||
if($notice instanceof Notice) {
|
if($notice instanceof Notice) {
|
||||||
|
@ -280,10 +312,8 @@ class QvitterAction extends ApiAction
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@licstart The following is the entire license notice for the
|
@licstart The following is the entire license notice for the
|
||||||
JavaScript code in this page.
|
JavaScript code in this page.
|
||||||
|
@ -341,7 +371,7 @@ class QvitterAction extends ApiAction
|
||||||
window.timeBetweenPolling = <?php print QvitterPlugin::settings("timebetweenpolling"); ?>;
|
window.timeBetweenPolling = <?php print QvitterPlugin::settings("timebetweenpolling"); ?>;
|
||||||
window.apiRoot = <?php
|
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) {
|
if($this_site_thinks_it_is_http_but_is_actually_https) {
|
||||||
$api_root = str_replace('http://','https://',$api_root);
|
$api_root = str_replace('http://','https://',$api_root);
|
||||||
}
|
}
|
||||||
|
@ -351,6 +381,7 @@ class QvitterAction extends ApiAction
|
||||||
window.fullUrlToThisQvitterApp = '<?php print $qvitterpath; ?>';
|
window.fullUrlToThisQvitterApp = '<?php print $qvitterpath; ?>';
|
||||||
window.siteRootDomain = '<?php print $siterootdomain; ?>';
|
window.siteRootDomain = '<?php print $siterootdomain; ?>';
|
||||||
window.siteInstanceURL = '<?php print $instanceurl; ?>';
|
window.siteInstanceURL = '<?php print $instanceurl; ?>';
|
||||||
|
window.avatarServer= <?php print json_encode(common_config('avatar', 'server')) ?>;
|
||||||
window.defaultLinkColor = '<?php print QvitterPlugin::settings("defaultlinkcolor"); ?>';
|
window.defaultLinkColor = '<?php print QvitterPlugin::settings("defaultlinkcolor"); ?>';
|
||||||
window.defaultBackgroundColor = '<?php print QvitterPlugin::settings("defaultbackgroundcolor"); ?>';
|
window.defaultBackgroundColor = '<?php print QvitterPlugin::settings("defaultbackgroundcolor"); ?>';
|
||||||
window.siteBackground = '<?php print QvitterPlugin::settings("sitebackground"); ?>';
|
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.customWelcomeText = <?php print json_encode(QvitterPlugin::settings("customwelcometext")); ?>;
|
||||||
window.urlShortenerAPIURL = '<?php print QvitterPlugin::settings("urlshortenerapiurl"); ?>';
|
window.urlShortenerAPIURL = '<?php print QvitterPlugin::settings("urlshortenerapiurl"); ?>';
|
||||||
window.urlShortenerSignature = '<?php print QvitterPlugin::settings("urlshortenersignature"); ?>';
|
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.commonSessionToken = '<?php print common_session_token(); ?>';
|
||||||
window.siteMaxThumbnailSize = <?php print common_config('thumbnail', 'maxsize'); ?>;
|
window.siteMaxThumbnailSize = <?php print common_config('thumbnail', 'maxsize'); ?>;
|
||||||
window.siteAttachmentURLBase = '<?php print $attachmentroot; ?>';
|
window.siteAttachmentURLBase = '<?php print $attachmentroot; ?>';
|
||||||
|
window.siteAvatarURLBase = '<?php print $avatarroot; ?>';
|
||||||
window.siteEmail = '<?php print common_config('site', 'email'); ?>';
|
window.siteEmail = '<?php print common_config('site', 'email'); ?>';
|
||||||
window.siteLicenseTitle = '<?php print common_config('license', 'title'); ?>';
|
window.siteLicenseTitle = '<?php print common_config('license', 'title'); ?>';
|
||||||
window.siteLicenseURL = '<?php print common_config('license', 'url'); ?>';
|
window.siteLicenseURL = '<?php print common_config('license', 'url'); ?>';
|
||||||
window.customTermsOfUse = <?php print json_encode(QvitterPlugin::settings("customtermsofuse")); ?>;
|
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
|
<?php
|
||||||
|
|
||||||
// Get all topics in Qvitter's namespace in Profile_prefs
|
// 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) {
|
if($disable_keyboard_shortcuts == '1' || $disable_keyboard_shortcuts == 1) {
|
||||||
$disable_keyboard_shortcuts = true;
|
$disable_keyboard_shortcuts = true;
|
||||||
}
|
}
|
||||||
|
if (is_null($disable_keyboard_shortcuts)) {
|
||||||
|
$disable_keyboard_shortcuts = false;
|
||||||
|
}
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
@ -613,7 +648,7 @@ class QvitterAction extends ApiAction
|
||||||
<input type="hidden" id="token" name="token" value="<?php print common_session_token(); ?>">
|
<input type="hidden" id="token" name="token" value="<?php print common_session_token(); ?>">
|
||||||
<?php
|
<?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>';
|
print '<a href="'.$instanceurl.'main/openid" id="openid-login" title="OpenID" donthijack>OpenID</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -686,6 +721,7 @@ class QvitterAction extends ApiAction
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
<div class="menu-container" id="bookmark-container"></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 class="menu-container" id="history-container"></div>
|
||||||
<div id="clear-history"></div>
|
<div id="clear-history"></div>
|
||||||
<div id="qvitter-notice"><?php print common_config('site', 'qvitternotice'); ?></div><?php
|
<div id="qvitter-notice"><?php print common_config('site', 'qvitternotice'); ?></div><?php
|
||||||
|
@ -809,7 +845,8 @@ class QvitterAction extends ApiAction
|
||||||
}
|
}
|
||||||
#user-footer-inner,
|
#user-footer-inner,
|
||||||
.inline-reply-queetbox,
|
.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*/;
|
background-color:/*LIGHTERBACKGROUNDCOLORSTART*/rgb(205,230,239)/*LIGHTERBACKGROUNDCOLOREND*/;
|
||||||
}
|
}
|
||||||
#user-footer-inner,
|
#user-footer-inner,
|
||||||
|
@ -823,7 +860,8 @@ class QvitterAction extends ApiAction
|
||||||
.quoted-notice:hover,
|
.quoted-notice:hover,
|
||||||
.oembed-item:hover,
|
.oembed-item:hover,
|
||||||
.stream-item:hover:not(.expanded) .quoted-notice: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*/;
|
border-color:/*LIGHTERBORDERCOLORSTART*/rgb(155,206,224)/*LIGHTERBORDERCOLOREND*/;
|
||||||
}
|
}
|
||||||
span.inline-reply-caret .caret-inner {
|
span.inline-reply-caret .caret-inner {
|
||||||
|
|
|
@ -114,7 +114,7 @@ class NotificationStream
|
||||||
|
|
||||||
$all = array_merge($all, $notifications);
|
$all = array_merge($all, $notifications);
|
||||||
|
|
||||||
if (count($notifications < count($ids))) {
|
if (count($notifications) < count($ids)) {
|
||||||
$offset += $limit;
|
$offset += $limit;
|
||||||
$limit -= count($notifications);
|
$limit -= count($notifications);
|
||||||
}
|
}
|
||||||
|
|
245
css/qvitter.css
245
css/qvitter.css
|
@ -40,8 +40,11 @@
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@import url(https://fonts.bunny.net/css?family=noto-sans-jp:400,500,700);
|
||||||
|
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family:"Helvetica Neue",Arial,sans-serif;
|
font-family:"Helvetica Neue",Arial,"Noto Sans JP",sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
|
@ -239,10 +242,8 @@ body.rtl .discard-error-message {
|
||||||
}
|
}
|
||||||
|
|
||||||
#top-compose {
|
#top-compose {
|
||||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
border: 1px solid rgba(0, 0, 0, 0.0);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.15) inset;
|
|
||||||
box-sizing: border-box;
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: block;
|
display: block;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
|
@ -258,7 +259,7 @@ body.rtl .discard-error-message {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: block;
|
display: block;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
margin-top: -3px;
|
margin-top: -4px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 32px;
|
width: 32px;
|
||||||
z-index: 101;
|
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));
|
background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
|
||||||
}
|
}
|
||||||
.topbar {
|
.topbar {
|
||||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
|
|
||||||
left: 0;
|
left: 0;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: 0;
|
right: 0;
|
||||||
|
@ -506,7 +506,7 @@ body.rtl .dropdown-menu li:not(.dropdown-caret) {
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
line-height: 18px;
|
line-height: 18px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
padding: 3px 0 3px 22px;
|
padding: 3px 12px 3px 22px;
|
||||||
position: relative;
|
position: relative;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
@ -655,13 +655,12 @@ body.rtl .dropdown-menu .row-type-profile-prefs-toggle::before {
|
||||||
|
|
||||||
#site-notice {
|
#site-notice {
|
||||||
color: #EEEEEE;
|
color: #EEEEEE;
|
||||||
font-size: 30px;
|
font-size: 20px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
line-height: 32px;
|
line-height: 25px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
text-shadow: 0 1px 2px #000000;
|
|
||||||
display:none;
|
display:none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -812,17 +811,11 @@ body.rtl #login-register-container {
|
||||||
}
|
}
|
||||||
#login-content,
|
#login-content,
|
||||||
.front-signup {
|
.front-signup {
|
||||||
font-family: Arial,sans-serif;
|
font-family: Arial,​sans-serif;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
line-height: 18px;
|
line-height: 18px;
|
||||||
background: #ffffff; /* Old browsers */
|
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-clip: border-box;
|
||||||
background-origin: padding-box;
|
background-origin: padding-box;
|
||||||
background-size: auto auto;
|
background-size: auto auto;
|
||||||
|
@ -857,7 +850,7 @@ body.rtl #login-register-container {
|
||||||
.front-signup input,
|
.front-signup input,
|
||||||
#login-content input#nickname,
|
#login-content input#nickname,
|
||||||
#login-content input#password {
|
#login-content input#password {
|
||||||
font-family: Arial,sans-serif;
|
font-family: Arial,​sans-serif;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
line-height: 15.4333px;
|
line-height: 15.4333px;
|
||||||
|
@ -974,19 +967,7 @@ button#submit-login {
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
line-height: 18px;
|
line-height: 18px;
|
||||||
|
background: #019ad2;
|
||||||
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;
|
|
||||||
height: 30px;
|
height: 30px;
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
margin-right: 0px;
|
margin-right: 0px;
|
||||||
|
@ -996,18 +977,7 @@ button#submit-login {
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
border-top-width: 1px;
|
border: none;
|
||||||
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-top-left-radius: 4px;
|
border-top-left-radius: 4px;
|
||||||
border-top-right-radius: 4px;
|
border-top-right-radius: 4px;
|
||||||
border-bottom-left-radius: 4px;
|
border-bottom-left-radius: 4px;
|
||||||
|
@ -1024,23 +994,11 @@ button#submit-login {
|
||||||
border-image-width: 1 1 1 1;
|
border-image-width: 1 1 1 1;
|
||||||
border-spacing: 0px 0px;
|
border-spacing: 0px 0px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-shadow: rgba(0, 0, 0, 0.25) 0px -1px 1px;
|
transition-duration: 200ms;
|
||||||
}
|
}
|
||||||
button#submit-login:hover {
|
button#submit-login:hover {
|
||||||
|
background: #0271bf;
|
||||||
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-repeat: repeat-x;
|
background-repeat: repeat-x;
|
||||||
border-color:#096eb3;
|
|
||||||
color:#fff;
|
color:#fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1095,7 +1053,7 @@ button#submit-login:hover {
|
||||||
text-decoration:none;
|
text-decoration:none;
|
||||||
}
|
}
|
||||||
#remember-forgot #openid-login:before {
|
#remember-forgot #openid-login:before {
|
||||||
content: " · ";
|
content: " · ";
|
||||||
font-size:11px;
|
font-size:11px;
|
||||||
}
|
}
|
||||||
#remember-forgot #openid-login:after {
|
#remember-forgot #openid-login:after {
|
||||||
|
@ -1147,16 +1105,9 @@ button#submit-login:hover {
|
||||||
}
|
}
|
||||||
|
|
||||||
.front-signup .signup-btn {
|
.front-signup .signup-btn {
|
||||||
background-color: #FD9A0F;
|
background: #FFAA22;
|
||||||
background: -moz-linear-gradient(top, rgba(254,233,79,1) 0px, rgba(253,154,15,1) 100%);
|
border: none;
|
||||||
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;
|
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
box-shadow: 0 1px 0 #ffffff;
|
|
||||||
color: #333333;
|
color: #333333;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
@ -1169,17 +1120,10 @@ button#submit-login:hover {
|
||||||
padding-right: 12px;
|
padding-right: 12px;
|
||||||
position: relative;
|
position: relative;
|
||||||
right: 12px;
|
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 {
|
.front-signup .signup-btn:hover, .front-signup .signup-btn:focus {
|
||||||
background-color: #FD9512;
|
background: #EC8B11;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1268,7 +1212,7 @@ button#submit-login:hover {
|
||||||
#page-container {
|
#page-container {
|
||||||
width:890px;
|
width:890px;
|
||||||
padding:17px 14px 0 14px;
|
padding:17px 14px 0 14px;
|
||||||
background-color:rgba(0,0,0,0.2);
|
background-color:rgba(0,0,0,0.5);
|
||||||
margin-left:-459px;
|
margin-left:-459px;
|
||||||
opacity:0;
|
opacity:0;
|
||||||
}
|
}
|
||||||
|
@ -1341,8 +1285,8 @@ body.rtl #footer-spinner-container {
|
||||||
position: relative;
|
position: relative;
|
||||||
background-color: #F9F9F9;
|
background-color: #F9F9F9;
|
||||||
border-top: 1px solid #E8E8E8;
|
border-top: 1px solid #E8E8E8;
|
||||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25) inset;
|
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
transition-duration: 200ms;
|
||||||
}
|
}
|
||||||
.menu-container a:first-child {
|
.menu-container a:first-child {
|
||||||
border-top:0 none;
|
border-top:0 none;
|
||||||
|
@ -1357,6 +1301,47 @@ body.rtl #footer-spinner-container {
|
||||||
top: 9px;
|
top: 9px;
|
||||||
width: 12px;
|
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 {
|
#bookmark-container a:hover .chev-right {
|
||||||
background-position:-18px -508px;
|
background-position:-18px -508px;
|
||||||
}
|
}
|
||||||
|
@ -1864,6 +1849,7 @@ body.rtl .profile-card.user-muted .user-menu-cog::after,
|
||||||
list-style-image: none;
|
list-style-image: none;
|
||||||
list-style-position: outside;
|
list-style-position: outside;
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
|
transition-duration: 200ms;
|
||||||
height:auto;
|
height:auto;
|
||||||
position:relative;
|
position:relative;
|
||||||
}
|
}
|
||||||
|
@ -2394,7 +2380,7 @@ body.rtl .queet.rtl .expanded-content {
|
||||||
font-style:italic;
|
font-style:italic;
|
||||||
}
|
}
|
||||||
.oembed-item-provider-url:not(:empty)::before {
|
.oembed-item-provider-url:not(:empty)::before {
|
||||||
content:' · ';
|
content:' · ';
|
||||||
}
|
}
|
||||||
.oembed-item-header,
|
.oembed-item-header,
|
||||||
.oembed-item-body,
|
.oembed-item-body,
|
||||||
|
@ -2862,7 +2848,7 @@ body.rtl .view-more-container-bottom { direction:rtl; }
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
.stream-item-header .created-at:before {
|
.stream-item-header .created-at:before {
|
||||||
content: "·";
|
content: "·";
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-left: 4px;
|
margin-left: 4px;
|
||||||
}
|
}
|
||||||
|
@ -3042,6 +3028,7 @@ ul.queet-actions > li .icon:before {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
vertical-align:text-top;
|
vertical-align:text-top;
|
||||||
width:21px;
|
width:21px;
|
||||||
|
transition-duration: 200ms;
|
||||||
}
|
}
|
||||||
.stream-item.temp-post ul.queet-actions > li .icon:before {
|
.stream-item.temp-post ul.queet-actions > li .icon:before {
|
||||||
color:rgba(0,0,0,0.05);
|
color:rgba(0,0,0,0.05);
|
||||||
|
@ -3230,6 +3217,7 @@ ul.queet-actions > li .icon.is-mine:before {
|
||||||
top: 0;
|
top: 0;
|
||||||
width: 30px;
|
width: 30px;
|
||||||
outline:none;
|
outline:none;
|
||||||
|
transition-duration: 200ms;
|
||||||
}
|
}
|
||||||
.queet.rtl .ostatus-link {
|
.queet.rtl .ostatus-link {
|
||||||
right:auto;
|
right:auto;
|
||||||
|
@ -4020,9 +4008,8 @@ body.rtl .queet-box-extras {
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
line-height: 16px;
|
line-height: 16px;
|
||||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
border: 1px solid rgba(0, 0, 0, 0.0);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.15) inset;
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
margin-right: 0px;
|
margin-right: 0px;
|
||||||
|
@ -4040,7 +4027,7 @@ body.rtl .queet-box-extras {
|
||||||
border-image-source: none;
|
border-image-source: none;
|
||||||
border-image-width: 1 1 1 1;
|
border-image-width: 1 1 1 1;
|
||||||
cursor: pointer;
|
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:hover,
|
||||||
button.signup-btn.disabled:focus,
|
button.signup-btn.disabled:focus,
|
||||||
|
@ -4058,7 +4045,7 @@ button.signup-btn.disabled {
|
||||||
cursor: default;
|
cursor: default;
|
||||||
}
|
}
|
||||||
.queet-toolbar button.enabled:hover {
|
.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 {
|
#settingslink .dropdown-toggle {
|
||||||
|
@ -4096,6 +4083,27 @@ div.nav-session {
|
||||||
width: 588px;
|
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 {
|
.hover-card .profile-card {
|
||||||
width:290px;
|
width:290px;
|
||||||
margin-bottom:0;
|
margin-bottom:0;
|
||||||
|
@ -4353,7 +4361,7 @@ div.nav-session {
|
||||||
float:left;
|
float:left;
|
||||||
}
|
}
|
||||||
.profile-banner-footer ul.stats li a {
|
.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 {
|
.hover-card .profile-banner-footer ul.stats li a {
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
|
@ -4393,9 +4401,8 @@ div.clearfix {
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: #333;
|
color: #333;
|
||||||
line-height: 16px;
|
line-height: 16px;
|
||||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
border: 1px solid rgba(0, 0, 0, 0);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.15) inset;
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
margin-right: 0px;
|
margin-right: 0px;
|
||||||
|
@ -4413,16 +4420,21 @@ div.clearfix {
|
||||||
border-image-source: none;
|
border-image-source: none;
|
||||||
border-image-width: 1 1 1 1;
|
border-image-width: 1 1 1 1;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-shadow: rgba(0, 0, 0, 0.15) 0px -1px 1px;
|
transition-duration: 200ms;
|
||||||
}
|
}
|
||||||
.qvitter-follow-button,
|
.qvitter-follow-button,
|
||||||
.edit-profile-button,
|
.edit-profile-button,
|
||||||
.abort-edit-profile-button,
|
.abort-edit-profile-button,
|
||||||
.member-button {
|
.member-button {
|
||||||
background-color:#e2e2e2;
|
background-color:#e2e2e2;
|
||||||
text-shadow: rgba(255, 255, 255, 0.15) 0px -1px 1px;
|
|
||||||
color:#333;
|
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,
|
.external-member-button.disabled,
|
||||||
.member-button.disabled,
|
.member-button.disabled,
|
||||||
.external-follow-button.disabled,
|
.external-follow-button.disabled,
|
||||||
|
@ -4439,17 +4451,6 @@ div.clearfix {
|
||||||
.qvitter-follow-button.disabled i {
|
.qvitter-follow-button.disabled i {
|
||||||
opacity:0.2;
|
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,
|
.external-member-button:not(.disabled):not(.member):active,
|
||||||
.member-button:not(.disabled):not(.member):active,
|
.member-button:not(.disabled):not(.member):active,
|
||||||
.external-follow-button:not(.disabled):not(.following):active,
|
.external-follow-button:not(.disabled):not(.following):active,
|
||||||
|
@ -4672,6 +4673,7 @@ body.rtl #feed-header-inner .loader {
|
||||||
top:5px;
|
top:5px;
|
||||||
opacity:0.5;
|
opacity:0.5;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
|
transition-duration: 200ms;
|
||||||
}
|
}
|
||||||
.reload-stream:hover {
|
.reload-stream:hover {
|
||||||
opacity:1;
|
opacity:1;
|
||||||
|
@ -5009,7 +5011,7 @@ body.rtl .modal-footer button {
|
||||||
box-shadow: 0 1px 0 #EEEEEE inset, 0 1px 0 #FFFFFF;
|
box-shadow: 0 1px 0 #EEEEEE inset, 0 1px 0 #FFFFFF;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
display: block;
|
display: block;
|
||||||
font-family: Arial,sans-serif;
|
font-family: Arial,​sans-serif;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
line-height: 15.4333px;
|
line-height: 15.4333px;
|
||||||
|
@ -5360,11 +5362,8 @@ content:"\f068";
|
||||||
}
|
}
|
||||||
#popup-shortcuts #shortcuts-container span.shortcut {
|
#popup-shortcuts #shortcuts-container span.shortcut {
|
||||||
background-color: #eee;
|
background-color: #eee;
|
||||||
background-image: linear-gradient(#fff, #eee);
|
|
||||||
background-repeat: repeat-x;
|
background-repeat: repeat-x;
|
||||||
border: 1px solid #ccc;
|
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
box-shadow: 0 1px 0 #fff inset, 0 0.5px 0 #ccc;
|
|
||||||
color: #666;
|
color: #666;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
@ -5672,11 +5671,6 @@ body.rtl #feed-header-inner h2 {
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 910px) {
|
@media (max-width: 910px) {
|
||||||
|
|
||||||
body {
|
|
||||||
background:none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.upload-background-image {
|
.upload-background-image {
|
||||||
display:none;
|
display:none;
|
||||||
}
|
}
|
||||||
|
@ -5686,7 +5680,12 @@ body.rtl #feed-header-inner h2 {
|
||||||
}
|
}
|
||||||
|
|
||||||
.topbar .global-nav:before {
|
.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,
|
#site-notice,
|
||||||
|
@ -5702,7 +5701,7 @@ body.rtl #feed-header-inner h2 {
|
||||||
.language-dropdown {
|
.language-dropdown {
|
||||||
width:170px;
|
width:170px;
|
||||||
right:50%;
|
right:50%;
|
||||||
margin-right:-85px;
|
margin-right:-95px;
|
||||||
margin-top:5px;
|
margin-top:5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5723,7 +5722,7 @@ body.rtl #feed-header-inner h2 {
|
||||||
height:35px;
|
height:35px;
|
||||||
}
|
}
|
||||||
#page-container {
|
#page-container {
|
||||||
margin-top:69px;
|
margin-top:59px;
|
||||||
background-color:transparent;
|
background-color:transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5762,7 +5761,7 @@ body.rtl #feed-header-inner h2 {
|
||||||
outline: 0 none;
|
outline: 0 none;
|
||||||
padding: 6px 27px 6px 12px;
|
padding: 6px 27px 6px 12px;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: 60px;
|
right: 45px;
|
||||||
top: 0;
|
top: 0;
|
||||||
transition: all 0.2s ease-in-out 0s;
|
transition: all 0.2s ease-in-out 0s;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
|
@ -5806,16 +5805,16 @@ body.rtl #feed-header-inner h2 {
|
||||||
|
|
||||||
|
|
||||||
#top-compose {
|
#top-compose {
|
||||||
border: 3px solid #fff;
|
border: 2px solid #fff;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: block;
|
display: block;
|
||||||
height: 41px;
|
height: 35px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: 6px;
|
right: 6px;
|
||||||
top: 5px;
|
top: 5px;
|
||||||
width: 41px;
|
width: 35px;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
#top-compose.hidden {
|
#top-compose.hidden {
|
||||||
|
@ -5823,7 +5822,7 @@ body.rtl #feed-header-inner h2 {
|
||||||
}
|
}
|
||||||
#top-compose:before {
|
#top-compose:before {
|
||||||
font-size:25px;
|
font-size:25px;
|
||||||
line-height: 41px;
|
line-height: 44px;
|
||||||
padding-left: 2px;
|
padding-left: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5950,7 +5949,7 @@ body.rtl #feed-header-inner h2 {
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background-color:#000 !important;
|
background-color:#fff !important;
|
||||||
}
|
}
|
||||||
#logo {
|
#logo {
|
||||||
display:none;
|
display:none;
|
||||||
|
@ -6024,7 +6023,7 @@ body.rtl #feed-header-inner h2 {
|
||||||
}
|
}
|
||||||
.menu-container {
|
.menu-container {
|
||||||
margin:0;
|
margin:0;
|
||||||
height:59px;
|
height:47px;
|
||||||
border:0 none !important;
|
border:0 none !important;
|
||||||
border-radius:0 0 0 0 !important;
|
border-radius:0 0 0 0 !important;
|
||||||
box-shadow: 0 25px 55px 0 rgba(255, 255, 255, 0.5) inset;
|
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;
|
float:left;
|
||||||
font-size:0;
|
font-size:0;
|
||||||
color:transparent;
|
color:transparent;
|
||||||
height:55px;
|
height:47px;
|
||||||
padding:0 !important;
|
padding:0 !important;
|
||||||
margin:0;
|
margin:0;
|
||||||
border-radius:0 0 0 0 !important;
|
border-radius:0 0 0 0 !important;
|
||||||
|
@ -6063,7 +6062,7 @@ body.rtl #feed-header-inner h2 {
|
||||||
border:0 none !important;
|
border:0 none !important;
|
||||||
}
|
}
|
||||||
.menu-container a:not(.current) {
|
.menu-container a:not(.current) {
|
||||||
height:63px;
|
height:47px;
|
||||||
}
|
}
|
||||||
.menu-container a:after,
|
.menu-container a:after,
|
||||||
.menu-container a.current:after {
|
.menu-container a.current:after {
|
||||||
|
@ -6083,7 +6082,7 @@ body.rtl #feed-header-inner h2 {
|
||||||
left: 50%;
|
left: 50%;
|
||||||
margin-left: -35px;
|
margin-left: -35px;
|
||||||
width: 70px;
|
width: 70px;
|
||||||
height: 55px;
|
height: 47px;
|
||||||
background-size: 500px 1329px;
|
background-size: 500px 1329px;
|
||||||
background-color:#ccc;
|
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)) {
|
if(isUserMuted(data.id)) {
|
||||||
is_muted = ' user-muted';
|
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 = '';
|
var followButton = '';
|
||||||
|
|
||||||
|
@ -420,8 +432,9 @@ function buildProfileCard(data) {
|
||||||
|
|
||||||
// full card html
|
// full card html
|
||||||
var profileCardHtml = '\
|
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>\
|
<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' + is_silenced + is_sandboxed + '" style="' + coverPhotoHtml + '" data-user-id="' + data.id + '" data-screen-name="' + data.screen_name + '">\
|
||||||
<div class="profile-header-inner-overlay"></div>\
|
<div class="profile-header-inner-overlay"></div>\
|
||||||
<a class="profile-picture" href="' + data.profile_image_url_original + '">\
|
<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="silenced-flag" data-tooltip="' + window.sL.silencedStreamDescription + '">' + window.sL.silenced + '</span>\
|
||||||
<span class="sandboxed-flag" data-tooltip="' + window.sL.sandboxedStreamDescription + '">' + window.sL.sandboxed + '</span>\
|
<span class="sandboxed-flag" data-tooltip="' + window.sL.sandboxedStreamDescription + '">' + window.sL.sandboxed + '</span>\
|
||||||
<h2 class="username">\
|
<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>\
|
<span class="screen-name" data-user-id="' + data.id + '">@' + data.screen_name + '</span>\
|
||||||
' + follows_you + '\
|
' + follows_you + '\
|
||||||
</h2>\
|
</h2>\
|
||||||
|
@ -446,6 +460,7 @@ function buildProfileCard(data) {
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="profile-banner-footer">\
|
<div class="profile-banner-footer">\
|
||||||
|
' + remote_user_info + '\
|
||||||
<ul class="stats">\
|
<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="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>\
|
<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) {
|
function buildExternalProfileCard(data) {
|
||||||
|
|
||||||
// follows me?
|
// follows me?
|
||||||
var follows_you = '';
|
var follows_you = '';
|
||||||
if(data.local !== null && data.local.follows_you === true && window.loggedIn.id != data.local.id) {
|
if(data.local !== null && data.local.follows_you === true && window.loggedIn.id != data.local.id) {
|
||||||
|
@ -482,7 +496,7 @@ function buildExternalProfileCard(data) {
|
||||||
|
|
||||||
// follow button
|
// follow button
|
||||||
var followButton = '';
|
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);
|
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>\
|
<span class="sandboxed-flag" data-tooltip="' + window.sL.sandboxedStreamDescription + '">' + window.sL.sandboxed + '</span>\
|
||||||
<h2 class="username">\
|
<h2 class="username">\
|
||||||
<span class="screen-name">' + data.screenNameWithServer + '</span>\
|
<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 + '\
|
' + follows_you + '\
|
||||||
</h2>\
|
</h2>\
|
||||||
</a>\
|
</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
|
// getting stream failed, and we don't have a fallback id
|
||||||
else if(queet_data === false) {
|
else if(queet_data === false) {
|
||||||
|
|
||||||
|
@ -1014,9 +1035,25 @@ function setNewCurrentStream(streamObject,setLocation,fallbackId,actionOnSuccess
|
||||||
setUrlFromStream(streamObject);
|
setUrlFromStream(streamObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// add this stream to the history menu
|
||||||
|
addStreamToHistoryMenuAndMarkAsCurrent(streamObject);
|
||||||
|
|
||||||
// profile card from user array
|
// profile card from user array
|
||||||
if(userArray) {
|
if(userArray) {
|
||||||
addProfileCardToDOM(buildProfileCard(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
|
// remove any trailing profile cards
|
||||||
else {
|
else {
|
||||||
|
@ -1040,9 +1077,6 @@ function setNewCurrentStream(streamObject,setLocation,fallbackId,actionOnSuccess
|
||||||
window.clearInterval(checkForNewQueetsInterval);
|
window.clearInterval(checkForNewQueetsInterval);
|
||||||
checkForNewQueetsInterval=window.setInterval(function(){checkForNewQueets()},window.timeBetweenPolling);
|
checkForNewQueetsInterval=window.setInterval(function(){checkForNewQueets()},window.timeBetweenPolling);
|
||||||
|
|
||||||
// add this stream to the history menu
|
|
||||||
addStreamToHistoryMenuAndMarkAsCurrent(streamObject);
|
|
||||||
|
|
||||||
remove_spinner();
|
remove_spinner();
|
||||||
|
|
||||||
// some streams, e.g. /statuses/show/1234.json is not enclosed in an array, make sure it is
|
// 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);
|
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);
|
startText = encodeURIComponent(startText);
|
||||||
repliesText = encodeURIComponent(repliesText);
|
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
|
// external
|
||||||
var ostatusHtml = '';
|
var ostatusHtml = '';
|
||||||
if(obj.from_profile.is_local === false) {
|
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') {
|
if(obj.ntype == 'like') {
|
||||||
|
@ -2027,7 +2061,7 @@ function buildUserStreamItemHtml(obj) {
|
||||||
// external
|
// external
|
||||||
var ostatusHtml = '';
|
var ostatusHtml = '';
|
||||||
if(obj.is_local === false) {
|
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
|
// rtl or not
|
||||||
|
@ -2274,9 +2308,9 @@ function buildQueetHtml(obj, idInStream, extraClasses, requeeted_by, isConversat
|
||||||
});
|
});
|
||||||
|
|
||||||
// if statusnetHTML is contains <p>:s, unwrap those (diaspora..)
|
// if statusnetHTML is contains <p>:s, unwrap those (diaspora..)
|
||||||
statusnetHTML.children('p').each(function(){
|
/*statusnetHTML.children('p').each(function(){
|
||||||
$(this).contents().unwrap();
|
$(this).contents().unwrap();
|
||||||
});
|
});*/
|
||||||
|
|
||||||
// bookmarks created by the bookmark plugin get's a tooltip
|
// bookmarks created by the bookmark plugin get's a tooltip
|
||||||
statusnetHTML.find('.xfolkentry').each(function(){
|
statusnetHTML.find('.xfolkentry').each(function(){
|
||||||
|
@ -2296,7 +2330,7 @@ function buildQueetHtml(obj, idInStream, extraClasses, requeeted_by, isConversat
|
||||||
// external
|
// external
|
||||||
var ostatusHtml = '';
|
var ostatusHtml = '';
|
||||||
if(obj.user.is_local === false) {
|
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>';
|
var qSource = '<a href="' + obj.external_url + '">' + getHost(obj.external_url) + '</a>';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -2581,6 +2615,11 @@ function buildAttachmentHTML(attachments){
|
||||||
noCoverClass=' no-cover';
|
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
|
// play button for videos and animated gifs
|
||||||
var playButtonClass = '';
|
var playButtonClass = '';
|
||||||
if(typeof this.animated != 'undefined' && this.animated === true
|
if(typeof this.animated != 'undefined' && this.animated === true
|
||||||
|
|
|
@ -726,12 +726,13 @@ function updateAllQueetsTimes() {
|
||||||
· · · · · · · · · */
|
· · · · · · · · · */
|
||||||
|
|
||||||
function isLocalURL(url) {
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -888,6 +889,7 @@ function cacheSyntaxHighlightingGroups() {
|
||||||
window.userArrayCache = new Object();
|
window.userArrayCache = new Object();
|
||||||
window.convertUriToUserArrayCacheKey = new Object();
|
window.convertUriToUserArrayCacheKey = new Object();
|
||||||
window.convertStatusnetProfileUrlToUserArrayCacheKey = new Object();
|
window.convertStatusnetProfileUrlToUserArrayCacheKey = new Object();
|
||||||
|
window.convertLocalIdToUserArrayCacheKey = new Object();
|
||||||
|
|
||||||
function userArrayCacheStore(data) {
|
function userArrayCacheStore(data) {
|
||||||
|
|
||||||
|
@ -944,6 +946,7 @@ function userArrayCacheStore(data) {
|
||||||
window.userArrayCache[key].modified = Date.now();
|
window.userArrayCache[key].modified = Date.now();
|
||||||
|
|
||||||
// easy conversion between URI and statusnet_profile_url and the key we're using in window.userArrayCache
|
// 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.convertUriToUserArrayCacheKey[dataToStore.local.ostatus_uri] = key;
|
||||||
window.convertStatusnetProfileUrlToUserArrayCacheKey[dataToStore.local.statusnet_profile_url] = key;
|
window.convertStatusnetProfileUrlToUserArrayCacheKey[dataToStore.local.statusnet_profile_url] = key;
|
||||||
}
|
}
|
||||||
|
@ -958,6 +961,7 @@ function userArrayCacheStore(data) {
|
||||||
window.userArrayCache[key].local = dataToStore.local;
|
window.userArrayCache[key].local = dataToStore.local;
|
||||||
|
|
||||||
// easy conversion between URI and statusnet_profile_url and the key we're using in window.userArrayCache
|
// 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.convertUriToUserArrayCacheKey[dataToStore.local.ostatus_uri] = key;
|
||||||
window.convertStatusnetProfileUrlToUserArrayCacheKey[dataToStore.local.statusnet_profile_url] = key;
|
window.convertStatusnetProfileUrlToUserArrayCacheKey[dataToStore.local.statusnet_profile_url] = key;
|
||||||
}
|
}
|
||||||
|
@ -988,9 +992,13 @@ function userArrayCacheGetByLocalNickname(localNickname) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function userArrayCacheGetByProfileUrlAndNickname(profileUrl, nickname) {
|
function userArrayCacheGetByProfileUrlAndNickname(profileUrl, nickname) {
|
||||||
|
var possibleLocalId = false;
|
||||||
if(nickname.substring(0,1) == '@') {
|
if(nickname.substring(0,1) == '@') {
|
||||||
nickname = nickname.substring(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
|
// the url might match a known profile uri
|
||||||
if(typeof window.convertUriToUserArrayCacheKey[profileUrl] != 'undefined') {
|
if(typeof window.convertUriToUserArrayCacheKey[profileUrl] != 'undefined') {
|
||||||
if(typeof window.userArrayCache[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]];
|
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
|
// 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') {
|
else if(typeof window.userArrayCache[guessInstanceUrlWithoutProtocolFromProfileUrlAndNickname(profileUrl, nickname) + '/' + nickname] != 'undefined') {
|
||||||
return window.userArrayCache[guessInstanceUrlWithoutProtocolFromProfileUrlAndNickname(profileUrl, nickname) + '/' + nickname];
|
return window.userArrayCache[guessInstanceUrlWithoutProtocolFromProfileUrlAndNickname(profileUrl, nickname) + '/' + nickname];
|
||||||
|
@ -1034,12 +1048,10 @@ function userArrayCacheGetUserNicknameById(id) {
|
||||||
· · · · · · · · · */
|
· · · · · · · · · */
|
||||||
|
|
||||||
function detectLocalOrExternalUserObject(userObject) {
|
function detectLocalOrExternalUserObject(userObject) {
|
||||||
var dataProfileImageUrlWithoutProtocol = removeProtocolFromUrl(userObject.profile_image_url);
|
|
||||||
var siteInstanceURLWithoutProtocol = removeProtocolFromUrl(window.siteInstanceURL);
|
if(isLocalURL(userObject.profile_image_url) ) {
|
||||||
if(dataProfileImageUrlWithoutProtocol.substring(0,siteInstanceURLWithoutProtocol.length) == siteInstanceURLWithoutProtocol){
|
|
||||||
return 'local';
|
return 'local';
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 'external';
|
return 'external';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1078,6 +1090,11 @@ function guessInstanceUrlWithoutProtocolFromProfileUrlAndNickname(profileUrl, ni
|
||||||
guessedInstanceUrl = guessedInstanceUrl.slice(0,-1);
|
guessedInstanceUrl = guessedInstanceUrl.slice(0,-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fix new mastodon style profile urls
|
||||||
|
if(guessedInstanceUrl.indexOf('/@') > -1) {
|
||||||
|
guessedInstanceUrl = guessedInstanceUrl.substring(0, guessedInstanceUrl.indexOf('/@'));
|
||||||
|
}
|
||||||
|
|
||||||
return guessedInstanceUrl;
|
return guessedInstanceUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1239,7 +1256,7 @@ function updateUserDataInStream() {
|
||||||
// profile urls
|
// profile urls
|
||||||
// try to find the last account group with this id, if the statusnet_profile_url seems to
|
// 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
|
// 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');
|
var oldStatusnetProfileURL = $('a.account-group[data-user-id="' + userArray.local.id + '"]').last().attr('href');
|
||||||
// all links with the exact statusnet_profile_url
|
// all links with the exact statusnet_profile_url
|
||||||
$.each($('[href="' + oldStatusnetProfileURL + '"]'),function(){
|
$.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
|
· Updates the browsing history local storage
|
||||||
|
|
349
js/qvitter.js
349
js/qvitter.js
|
@ -50,9 +50,14 @@ checkLocalStorage();
|
||||||
window.loggedIn = iterateRecursiveReplaceHtmlSpecialChars(window.loggedIn);
|
window.loggedIn = iterateRecursiveReplaceHtmlSpecialChars(window.loggedIn);
|
||||||
|
|
||||||
// hack to supress basic auth popup, e.g. if the user has to tabs open and
|
// 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
|
// log out in one of them. but microsoft browsers and chrome 59+ doesn't support this
|
||||||
if(typeof bowser.msie == 'undefined' && typeof bowser.msedge == 'undefined') {
|
if(typeof bowser != 'undefined') {
|
||||||
window.apiRoot = window.apiRoot.replace('://','://x:x@');
|
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();
|
possibleNickname = $(e.target).text();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// see if we have it in cache, otherwise query server
|
// see if we have it in cache, otherwise query server
|
||||||
getUserArrayData(hrefAttr, possibleNickname, timeNow, targetElement, function(userArray, timeOut){
|
getUserArrayData(hrefAttr, possibleNickname, timeNow, targetElement, function(userArray, timeOut){
|
||||||
|
|
||||||
|
@ -323,9 +327,8 @@ $('body').on('mouseover',function (e) {
|
||||||
// we query it for the lastest data
|
// we query it for the lastest data
|
||||||
if((typeof window.userArrayLastRetrieved[hrefAttr] == 'undefined') || (timeNow - window.userArrayLastRetrieved[hrefAttr]) > 60000) {
|
if((typeof window.userArrayLastRetrieved[hrefAttr] == 'undefined') || (timeNow - window.userArrayLastRetrieved[hrefAttr]) > 60000) {
|
||||||
window.userArrayLastRetrieved[hrefAttr] = timeNow;
|
window.userArrayLastRetrieved[hrefAttr] = timeNow;
|
||||||
|
|
||||||
// local users
|
// 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){
|
getFromAPI('users/show.json?id=' + userArray.local.screen_name, function(data){
|
||||||
if(data) {
|
if(data) {
|
||||||
var newProfileCard = buildProfileCard(data);
|
var newProfileCard = buildProfileCard(data);
|
||||||
|
@ -336,7 +339,7 @@ $('body').on('mouseover',function (e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// external users
|
// 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){
|
getFromAPI('qvitter/external_user_show.json?profileurl=' + encodeURIComponent(hrefAttr),function(data){
|
||||||
if(data && data.external !== null) {
|
if(data && data.external !== null) {
|
||||||
var newProfileCard = buildExternalProfileCard(data);
|
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) {
|
if((typeof window.userArrayLastRetrieved[maybeProfileUrl] == 'undefined') || (timeNow - window.userArrayLastRetrieved[maybeProfileUrl]) > 60000) {
|
||||||
window.userArrayLastRetrieved[maybeProfileUrl] = timeNow;
|
window.userArrayLastRetrieved[maybeProfileUrl] = timeNow;
|
||||||
getFromAPI('qvitter/external_user_show.json?profileurl=' + encodeURIComponent(maybeProfileUrl),function(data){
|
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)
|
// we want hover cards to appear _at least_ 600ms after hover (see below)
|
||||||
var timeAfterServerQuery = new Date().getTime();
|
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
|
// 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
|
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
|
// 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);
|
$('#accessibility-toggle-link').html(window.sL.accessibilityToggleLink);
|
||||||
$('#settingslink .nav-session').attr('data-tooltip',window.sL.profileAndSettings);
|
$('#settingslink .nav-session').attr('data-tooltip',window.sL.profileAndSettings);
|
||||||
$('#top-compose').attr('data-tooltip',window.sL.compose);
|
$('#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);
|
$('button.shorten').attr('data-tooltip',window.sL.tooltipShortenUrls);
|
||||||
$('.reload-stream').attr('data-tooltip',window.sL.tooltipReloadStream);
|
$('.reload-stream').attr('data-tooltip',window.sL.tooltipReloadStream);
|
||||||
$('#clear-history').html(window.sL.clearHistory);
|
$('#clear-history').html(window.sL.clearHistory);
|
||||||
$('#user-screen-name, #user-avatar, #user-name').attr('data-tooltip', window.sL.viewMyProfilePage);
|
$('#user-screen-name, #user-avatar, #user-name').attr('data-tooltip', window.sL.viewMyProfilePage);
|
||||||
$('#top-menu-profile-link-view-profile').html(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
|
// show site body now
|
||||||
$('#user-container').css('display','block');
|
$('#user-container').css('display','block');
|
||||||
|
@ -988,7 +1093,7 @@ function proceedToSetLanguageAndLogin(data){
|
||||||
function proceedLoggedOut() {
|
function proceedLoggedOut() {
|
||||||
display_spinner();
|
display_spinner();
|
||||||
setNewCurrentStream(getStreamFromUrl(),true,false,function(){
|
setNewCurrentStream(getStreamFromUrl(),true,false,function(){
|
||||||
$('input#nickname').focus();
|
// $('input#nickname').focus(); --> maybe not a good idea on mobile?
|
||||||
$('#page-container').css('opacity','1');
|
$('#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
|
// hijack link if we find a matching link that qvitter can handle
|
||||||
else {
|
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) {
|
if(streamObject && streamObject.stream) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
// if this is a user/{id} type link we want to find the nickname before setting a new stream
|
// if this is a user/{id} type link but we know the nickname already
|
||||||
// the main reason is that we want to update the browsers location bar and the .stream-selecton
|
if(streamObject.name == 'profile by id' && streamObject.nickname !== false) {
|
||||||
// links as fast as we can. we rather not wait for the server response
|
setNewCurrentStream(pathToStreamRouter(streamObject.nickname),true,streamObject.id);
|
||||||
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');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// same with group/{id}/id links
|
// same with group/{id}/id links
|
||||||
else if(streamObject.name == 'group notice stream by id') {
|
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')) {
|
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 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 addThisStream = window.currentStreamObject.stream;
|
||||||
var timeNow = new Date().getTime();
|
|
||||||
getFromAPI(addThisStream + qOrAmp(window.currentStreamObject.stream) + 'since_id=' + lastId,function(data){
|
getFromAPI(addThisStream + qOrAmp(window.currentStreamObject.stream) + 'since_id=' + lastId,function(data){
|
||||||
|
$('body').removeClass('loading-newer');
|
||||||
if(data) {
|
if(data) {
|
||||||
$('body').removeClass('loading-newer');
|
|
||||||
if(addThisStream == window.currentStreamObject.stream) {
|
if(addThisStream == window.currentStreamObject.stream) {
|
||||||
addToFeed(data, false, 'hidden');
|
addToFeed(data, false, 'hidden');
|
||||||
|
|
||||||
|
@ -2082,7 +2178,6 @@ function checkForNewQueets() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ·
|
/* ·
|
||||||
·
|
·
|
||||||
· Show hidden queets when user clicks on new-queets-bar
|
· 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');
|
var queetBoxID = queetBox.attr('id');
|
||||||
|
|
||||||
// jquery's .text() function is not consistent in converting <br>:s to \n:s,
|
// 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
|
// so we do this detour to make sure line breaks are preserved.
|
||||||
queetBox.html(queetBox.html().replace(/<br>/g, '{{{lb}}}'));
|
// 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, ''));
|
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
|
var queetTempText = replaceHtmlSpecialChars(queetText.replace(/\n/g,'<br>')); // no xss
|
||||||
queetTempText = queetTempText.replace(/<br>/g,'<br>'); // but preserve line breaks
|
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
|
currentVal = currentVal.replace(/<br>$/, '').replace(/ $/, '').replace(/ $/, ''); // fix
|
||||||
$(this).siblings('.syntax-two').html(currentVal);
|
$(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
|
// loop through the regexps and highlight
|
||||||
$.each(window.syntaxHighlightingRegexps,function(k,v){
|
$.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();
|
window.lastMention = new Object();
|
||||||
$('body').on('keyup', 'div.queet-box-syntax', function(e) {
|
// check for user mentions
|
||||||
|
$('body').on('keyup', 'div.queet-box-syntax', function(e) { checkMentions(e, true);});
|
||||||
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 group mentions
|
// 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 cursorPosArray = getSelectionInElement(queetBox[0]);
|
||||||
var cursorPos = cursorPosArray[0];
|
var cursorPos = cursorPosArray[0];
|
||||||
|
|
||||||
// add space before linebreaks (to separate mentions in beginning of new lines when .text():ing later)
|
if(e.keyCode != '40' && e.keyCode != '38' && e.keyCode != '13' && e.keyCode != '9') {
|
||||||
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 contents = queetBox.text().substring(0,cursorPos);
|
||||||
var mentionPos = contents.lastIndexOf('!');
|
var mentionPos = contents.lastIndexOf(mark);
|
||||||
var check_contents = contents.substring(mentionPos - 1, cursorPos);
|
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);
|
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);
|
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');
|
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.mentionPos = mentionPos;
|
||||||
window.lastMention.cursorPos = cursorPos;
|
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 suggestionsToShow = [];
|
||||||
var suggestionsUsernameCount = {};
|
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);
|
var userregex = new RegExp(term);
|
||||||
if(this.username.toLowerCase().match(userregex) || this.name.toLowerCase().match(userregex)) {
|
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
|
// count the usernames to see if we need to show the server for any of them
|
||||||
if(typeof suggestionsUsernameCount[this.username] != 'undefined') {
|
if(typeof suggestionsUsernameCount[this.username] != 'undefined') {
|
||||||
|
@ -3409,23 +3456,27 @@ $('body').on('keyup', 'div.queet-box-syntax', function(e) {
|
||||||
$.each(suggestionsToShow,function(){
|
$.each(suggestionsToShow,function(){
|
||||||
var serverHtml = '';
|
var serverHtml = '';
|
||||||
if(suggestionsUsernameCount[this.username]>1 && this.url !== false) {
|
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 {
|
else {
|
||||||
queetBox.siblings('.mentions-suggestions').children('.group-suggestion').remove();
|
queetBox.siblings('.mentions-suggestions').children('.' + prefix + '-suggestion').remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
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) {
|
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.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.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;
|
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.",
|
"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",
|
"profileAndSettings":"Profile and settings",
|
||||||
"profileSettings":"Profile 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.",
|
"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",
|
"profileAndSettings":"Profile and settings",
|
||||||
"profileSettings":"Profile 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}",
|
"myListWithListName":"La meva llista: {list-name}",
|
||||||
"listMembers":"Membres",
|
"listMembers":"Membres",
|
||||||
"listSubscribers":"Subscriptors",
|
"listSubscribers":"Subscriptors",
|
||||||
"ERRORcouldNotFindList":"There is no such list.",
|
"ERRORcouldNotFindList":"La llista no existeix.",
|
||||||
"emailAlreadyInUse":"Already in use",
|
"emailAlreadyInUse":"Ja en ús",
|
||||||
"addEditLanguageLink":"Ajuda a traduir {site-title} a un altre idioma",
|
"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>",
|
"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",
|
"startRant":"Iniciar una conversa",
|
||||||
"continueRant":"Continue the rant",
|
"continueRant":"Continuar la conversa",
|
||||||
"hideEmbeddedInTimeline":"Hide embedded content in this timeline",
|
"hideEmbeddedInTimeline":"Amagar el contingut incrustat en aquesta línia temporal",
|
||||||
"hideQuotesInTimeline":"Hide quotes in this timeline",
|
"hideQuotesInTimeline":"Amagar cites en aquesta línia temporal",
|
||||||
"userBlocks":"Accounts you're blocking",
|
"userBlocks":"Usuaris als qui has bloquejat",
|
||||||
"buttonBlocked":"Bloquejat",
|
"buttonBlocked":"Bloquejat",
|
||||||
"buttonUnblock":"Desbloqueja",
|
"buttonUnblock":"Desbloqueja",
|
||||||
"failedBlockingUser":"Failed to block the user.",
|
"failedBlockingUser":"Va fallar el bloqueig a l'usuari.",
|
||||||
"failedUnblockingUser":"Failed to unblock the user.",
|
"failedUnblockingUser":"Va fallar el desbloqueig a l'usuari.",
|
||||||
"unblockUser": "Desbloqueja {username}",
|
"unblockUser": "Desbloqueja {username}",
|
||||||
"tooltipBlocksYou":"Estàs bloquejat de seguir {username}.",
|
"tooltipBlocksYou":"Estàs bloquejat de seguir {username}.",
|
||||||
"silenced":"Silenciat",
|
"silenced":"Silenciat",
|
||||||
"silencedPlural":"Perfils silenciats",
|
"silencedPlural":"Perfils silenciats",
|
||||||
"silencedUsersOnThisInstance":"Perfils silenciats a {site-title}",
|
"silencedUsersOnThisInstance":"Perfils silenciats a {site-title}",
|
||||||
"sandboxed":"Sandboxed",
|
"sandboxed":"Aïllat",
|
||||||
"sandboxedPlural":"Sandboxed profiles",
|
"sandboxedPlural":"Perfils aïllats",
|
||||||
"sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}",
|
"sandboxedUsersOnThisInstance":"Perfils aïllats en {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.",
|
"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":"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.",
|
"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":"Only show notifications from users I follow",
|
"onlyShowNotificationsFromUsersIFollow":"Només mostrar notificacions d'usuaris als qui segueixo",
|
||||||
"userOptions":"More user actions",
|
"userOptions":"Més opcions d'usuari",
|
||||||
"silenceThisUser":"Silence {nickname}",
|
"silenceThisUser":"Prohibir a {nickname}",
|
||||||
"sandboxThisUser":"Sandbox {nickname}",
|
"sandboxThisUser":"Aïllar a {nickname}",
|
||||||
"unSilenceThisUser":"Unsilence {nickname}",
|
"unSilenceThisUser":"Desactivar la prohibició de {nickname}",
|
||||||
"unSandboxThisUser":"Unsandbox {nickname}",
|
"unSandboxThisUser":"Desactivar l'aïllament de {nickname}",
|
||||||
"ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user",
|
"ERRORfailedSandboxingUser":"Va fallar l'aïllament o la seva desactivació de l'usuari",
|
||||||
"ERRORfailedSilencingUser":"Failed silencing/unsilencing the user",
|
"ERRORfailedSilencingUser":"Va fallar la prohibició o la seva desactivació de l'usuari",
|
||||||
"muteUser":"Mute",
|
"muteUser":"Silenciar",
|
||||||
"unmuteUser":"Unmute",
|
"unmuteUser":"Desactivar silenci",
|
||||||
"hideNotificationsFromMutedUsers":"Hide notifications from muted users",
|
"hideNotificationsFromMutedUsers":"Amagar notificacions d'usuaris silenciats",
|
||||||
"thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.",
|
"thisIsANoticeFromAMutedUser":"Has silenciat a l'autor d'aquest queet. Fes clic per mostrar-ho igualment.",
|
||||||
"userMutes":"Accounts you're muting",
|
"userMutes":"Usuaris que has silenciat",
|
||||||
"userBlocked":"Blocked accounts",
|
"userBlocked":"Comptes bloquejats",
|
||||||
"userMuted":"Muted accounts",
|
"userMuted":"Comptes silenciats",
|
||||||
"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.",
|
"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":"Profile and settings",
|
"profileAndSettings":"Perfil i ajustos",
|
||||||
"profileSettings":"Profile settings",
|
"profileSettings":"Ajustos del perfil",
|
||||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
"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",
|
"keyboardShortcuts": "Tastatur-Kürzel",
|
||||||
"classicInterface": "Klassische Ansicht: {site-title}",
|
"classicInterface": "Klassische Ansicht: {site-title}",
|
||||||
"accessibilityToggleLink": "Nutzer von Screenreadern klicken bitte hier, um zur klassischen Version von {site-title} zu gelangen.",
|
"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",
|
"tooltipTopMenu": "Menü und Einstellungen",
|
||||||
"tooltipAttachImage": "Bild anfügen",
|
"tooltipAttachImage": "Bild anfügen",
|
||||||
"tooltipShortenUrls": "Alle URLs im Queet kürzen",
|
"tooltipShortenUrls": "Alle URLs im Queet kürzen",
|
||||||
"tooltipReloadStream": "Diesen Datenstrom aktualisieren",
|
"tooltipReloadStream": "Diesen Stream aktualisieren",
|
||||||
"tooltipRemoveBookmark": "Dieses Lesezeichen löschen",
|
"tooltipRemoveBookmark": "Dieses Lesezeichen löschen",
|
||||||
"clearHistory": "Verlauf löschen",
|
"clearHistory": "Verlauf löschen",
|
||||||
"ERRORsomethingWentWrong": "Irgendetwas ging da schief.",
|
"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".",
|
"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",
|
"profileAndSettings":"Profil und Einstellungen",
|
||||||
"profileSettings":"Profileinstellungen",
|
"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.",
|
"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",
|
"profileAndSettings":"Profile and settings",
|
||||||
"profileSettings":"Profile 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}",
|
"unSandboxThisUser":"Malsablokesti {nickname}",
|
||||||
"ERRORfailedSandboxingUser":"Malsukcesis sablokestigi/malsablokestigi la uzanton",
|
"ERRORfailedSandboxingUser":"Malsukcesis sablokestigi/malsablokestigi la uzanton",
|
||||||
"ERRORfailedSilencingUser":"Malsukcesis silentigi/malsilentigi la uzanton",
|
"ERRORfailedSilencingUser":"Malsukcesis silentigi/malsilentigi la uzanton",
|
||||||
"muteUser":"Mute",
|
"muteUser":"Mutigi",
|
||||||
"unmuteUser":"Unmute",
|
"unmuteUser":"Mlmutigi",
|
||||||
"hideNotificationsFromMutedUsers":"Hide notifications from muted users",
|
"hideNotificationsFromMutedUsers":"Kaŝi sciigojn el mutigitaj uzantoj",
|
||||||
"thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.",
|
"thisIsANoticeFromAMutedUser":"Vi mutigis la verkinton de ĉi tiu mesaĝo. Alklaku ĉi tien por montri ĝi ĉiaokaze.",
|
||||||
"userMutes":"Accounts you're muting",
|
"userMutes":"Mutigitaj kontoj",
|
||||||
"userBlocked":"Blocked accounts",
|
"userBlocked":"Blokitaj kontoj",
|
||||||
"userMuted":"Muted accounts",
|
"userMuted":"Mutigitaj kontoj",
|
||||||
"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.",
|
"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":"Profile and settings",
|
"profileAndSettings":"Profilo kaj agordoj",
|
||||||
"profileSettings":"Profile settings"
|
"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.",
|
"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",
|
"profileAndSettings":"Perfil y ajustes",
|
||||||
"profileSettings":"Ajustes del perfil",
|
"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.",
|
"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",
|
"profileAndSettings":"Perfiles y configuraciones",
|
||||||
"profileSettings":"Perfil y configuración",
|
"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.",
|
"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",
|
"profileAndSettings":"Perfil y ajustes",
|
||||||
"profileSettings":"Ajustes del perfil",
|
"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.",
|
"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",
|
"profileAndSettings":"Profile and settings",
|
||||||
"profileSettings":"Profile 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",
|
"FAQ": "FAQ",
|
||||||
"inviteAFriend": "دعوت از دوستانتان",
|
"inviteAFriend": "دعوت از دوستانتان",
|
||||||
"goToExternalProfile": "رفتن به نمایه کامل",
|
"goToExternalProfile": "رفتن به نمایه کامل",
|
||||||
"cropAndSave": "Crop and save",
|
"cropAndSave": "برش و ذخیره",
|
||||||
"showTerms": "Read our Terms of Use",
|
"showTerms": "Read our Terms of Use",
|
||||||
"ellipsisMore": "More",
|
"ellipsisMore": "بیشتر",
|
||||||
"blockUser": "Block {username}",
|
"blockUser": "Block {username}",
|
||||||
"goToOriginalNotice": "Go to original notice",
|
"goToOriginalNotice": "Go to original notice",
|
||||||
"goToTheUsersRemoteProfile": "Go to the user's remote profile",
|
"goToTheUsersRemoteProfile": "Go to the user's remote profile",
|
||||||
"clickToDrag":"Click to drag",
|
"clickToDrag":"کلیک برای کشیدن",
|
||||||
"keyboardShortcuts":"Keyboard shortcuts",
|
"keyboardShortcuts":"میانبرهای کیبورد",
|
||||||
"classicInterface":"Classic {site-title}",
|
"classicInterface":"کلاسیک {site-title}",
|
||||||
"accessibilityToggleLink":"For better accessibility, click this link to switch to the classic interface",
|
"accessibilityToggleLink":"For better accessibility, click this link to switch to the classic interface",
|
||||||
"tooltipBookmarkStream":"Add this stream to your bookmarks",
|
"tooltipBookmarkStream":"Add this stream to your bookmarks",
|
||||||
"tooltipTopMenu":"Menu and settings",
|
"tooltipTopMenu":"منو و تنظیمات",
|
||||||
"tooltipAttachImage":"Attach an image",
|
"tooltipAttachImage":"پیوست عکس",
|
||||||
"tooltipShortenUrls":"Shorten all URLs in the Queet",
|
"tooltipShortenUrls":"Shorten all URLs in the Queet",
|
||||||
"tooltipReloadStream":"Refresh this stream",
|
"tooltipReloadStream":"Refresh this stream",
|
||||||
"tooltipRemoveBookmark":"Remove this bookmark",
|
"tooltipRemoveBookmark":"Remove this bookmark",
|
||||||
|
@ -136,7 +136,7 @@
|
||||||
"ERRORmustBeLoggedIn":"You must be logged in to view this stream.",
|
"ERRORmustBeLoggedIn":"You must be logged in to view this stream.",
|
||||||
"ERRORcouldNotFindUserWithNickname":"Could not find a user with nickname \"{nickname}\" on this server",
|
"ERRORcouldNotFindUserWithNickname":"Could not find a user with nickname \"{nickname}\" on this server",
|
||||||
"ERRORcouldNotFindGroupWithNickname":"Could not find a group 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.",
|
"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!",
|
"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.",
|
"ERRORattachmentUploadFailed": "The upload failed. The format might be unsupported or the size too large.",
|
||||||
|
@ -153,7 +153,7 @@
|
||||||
"newNotifications": "{new-notice-count} new notifications",
|
"newNotifications": "{new-notice-count} new notifications",
|
||||||
"thisIsANoticeFromABlockedUser":"Warning: This is a notice from a user you have blocked. Click to show it.",
|
"thisIsANoticeFromABlockedUser":"Warning: This is a notice from a user you have blocked. Click to show it.",
|
||||||
"nicknamesListWithListName":"{nickname}’s list: {list-name}",
|
"nicknamesListWithListName":"{nickname}’s list: {list-name}",
|
||||||
"myListWithListName":"My list: {list-name}",
|
"myListWithListName":"لیست من: {list-name}",
|
||||||
"listMembers":"Members",
|
"listMembers":"Members",
|
||||||
"listSubscribers":"Subscribers",
|
"listSubscribers":"Subscribers",
|
||||||
"ERRORcouldNotFindList":"There is no such list.",
|
"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.",
|
"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",
|
"profileAndSettings":"Profile and settings",
|
||||||
"profileSettings":"Profile 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.",
|
"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",
|
"profileAndSettings":"Profile and settings",
|
||||||
"profileSettings":"Profile 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.",
|
"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",
|
"profileAndSettings":"Profile and settings",
|
||||||
"profileSettings":"Profile 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.",
|
"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",
|
"profileAndSettings":"Perfil e axustes",
|
||||||
"profileSettings":"Axustes do perfil",
|
"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.",
|
"mutedStreamDescription":"הסתרת את חשבונות אלה מתוך ציר הזמן שלך. You will still recieve notifications from these accounts, unless you select "הסתר התרעות ממשתמשים מוסתרים" from the cog wheel menu on the notifications page.",
|
||||||
"profileAndSettings":"פרופיל והגדרות",
|
"profileAndSettings":"פרופיל והגדרות",
|
||||||
"profileSettings":"הגדרות פרופיל",
|
"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":"Դուք թացրել եք այս օգտատերերին Ձեր հոսքից։ Դուք կշարունակեք ստանալ այս օգտատերերից ծանուցումներ, եթե չընտրեք "Թաքցնել արհամարհվող օգտատերերի ծանուցումները " Ծանուցումների էջի մենյուի կարգավորումներում",
|
"mutedStreamDescription":"Դուք թացրել եք այս օգտատերերին Ձեր հոսքից։ Դուք կշարունակեք ստանալ այս օգտատերերից ծանուցումներ, եթե չընտրեք "Թաքցնել արհամարհվող օգտատերերի ծանուցումները " Ծանուցումների էջի մենյուի կարգավորումներում",
|
||||||
"profileAndSettings":"Էջ և կարգավորումներ",
|
"profileAndSettings":"Էջ և կարգավորումներ",
|
||||||
"profileSettings":"Էջի կարգավորումներ",
|
"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",
|
"loginSignIn": "Enirar",
|
||||||
"loginRememberMe": "Memorar me",
|
"loginRememberMe": "Memorar me",
|
||||||
"loginForgotPassword": "Ka vu obliviis vua pasvorto?",
|
"loginForgotPassword": "Ka vu obliviis vua pasvorto?",
|
||||||
"notices": "Pepii",
|
"notices": "Pipii",
|
||||||
"followers": "Sequanti",
|
"followers": "Sequanti",
|
||||||
"following": "Vu sequas",
|
"following": "Vu sequas",
|
||||||
"groups": "Grupi",
|
"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.",
|
"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",
|
"profileAndSettings":"Profilo ed ajusti",
|
||||||
"profileSettings":"Ajusti di profilo",
|
"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}",
|
"classicInterface":"Classic {site-title}",
|
||||||
"accessibilityToggleLink":"Passare all'interfaccia classica (Accessibilità)",
|
"accessibilityToggleLink":"Passare all'interfaccia classica (Accessibilità)",
|
||||||
"tooltipBookmarkStream":"Aggiungi ai preferiti",
|
"tooltipBookmarkStream":"Aggiungi ai preferiti",
|
||||||
"tooltipTopMenu":"Menu and settings",
|
"tooltipTopMenu":"Menu e impostazioni",
|
||||||
"tooltipAttachImage":"Carica un'immagine",
|
"tooltipAttachImage":"Carica un'immagine",
|
||||||
"tooltipShortenUrls":"Shorten all URLs in the Queet",
|
"tooltipShortenUrls":"Shorten all URLs in the Queet",
|
||||||
"tooltipReloadStream":"Aggiorna",
|
"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>",
|
"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",
|
"startRant":"Start a rant",
|
||||||
"continueRant":"Continue the rant",
|
"continueRant":"Continue the rant",
|
||||||
"hideEmbeddedInTimeline":"Hide embedded content in this timeline",
|
"hideEmbeddedInTimeline":"Nascondi anteprime da questa bacheca",
|
||||||
"hideQuotesInTimeline":"Hide quotes in this timeline",
|
"hideQuotesInTimeline":"Hide quotes in this timeline",
|
||||||
"userBlocks":"Account bloccati",
|
"userBlocks":"Account bloccati",
|
||||||
"buttonBlocked":"Bloccato",
|
"buttonBlocked":"Bloccato",
|
||||||
|
@ -170,17 +170,17 @@
|
||||||
"failedBlockingUser":"Tentativo di bloccare l'utente non riuscito.",
|
"failedBlockingUser":"Tentativo di bloccare l'utente non riuscito.",
|
||||||
"failedUnblockingUser":"Tentativo di sblocco dell'utente non riuscito.",
|
"failedUnblockingUser":"Tentativo di sblocco dell'utente non riuscito.",
|
||||||
"unblockUser": "Sblocca {username}",
|
"unblockUser": "Sblocca {username}",
|
||||||
"tooltipBlocksYou":"You are blocked from following {username}.",
|
"tooltipBlocksYou":"Sei stato bloccato da {username}.",
|
||||||
"silenced":"Silenziati",
|
"silenced":"Silenziati",
|
||||||
"silencedPlural":"Silenziati",
|
"silencedPlural":"Silenziati",
|
||||||
"silencedUsersOnThisInstance":"Account silenziati su {site-title}",
|
"silencedUsersOnThisInstance":"Account silenziati su {site-title}",
|
||||||
"sandboxed":"Sandboxati",
|
"sandboxed":"Sandboxati",
|
||||||
"sandboxedPlural":"Account sandboxati",
|
"sandboxedPlural":"Account sandboxati",
|
||||||
"sandboxedUsersOnThisInstance":"Account sandboxati su {site-title}",
|
"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.",
|
"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":"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",
|
"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",
|
"onlyShowNotificationsFromUsersIFollow":"Mostrami le notifiche solo dagli utenti che seguo",
|
||||||
"userOptions":"More user actions",
|
"userOptions":"Mostra più opzioni",
|
||||||
"silenceThisUser":"Nascondi notifiche da {nickname}",
|
"silenceThisUser":"Nascondi notifiche da {nickname}",
|
||||||
"sandboxThisUser":"Aggiungi alla sandbox {nickname}",
|
"sandboxThisUser":"Aggiungi alla sandbox {nickname}",
|
||||||
"unSilenceThisUser":"Mostra notifiche da {nickname}",
|
"unSilenceThisUser":"Mostra notifiche da {nickname}",
|
||||||
|
@ -190,12 +190,17 @@
|
||||||
"muteUser":"Togli voce",
|
"muteUser":"Togli voce",
|
||||||
"unmuteUser":"Ridai voce",
|
"unmuteUser":"Ridai voce",
|
||||||
"hideNotificationsFromMutedUsers":"Nascondi notifiche dagli account senza 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",
|
"userMutes":"Account a cui hai tolto la voce",
|
||||||
"userBlocked":"Account bloccati",
|
"userBlocked":"Account bloccati",
|
||||||
"userMuted":"Account a cui hai tolto la voce",
|
"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.",
|
"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",
|
"profileAndSettings":"Profilo e impostazioni",
|
||||||
"profileSettings":"Impostazioni del profilo",
|
"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":"あなたのタイムラインから、選択されたユーザーを隠しました。あなたがお知らせページの歯車のメニューにある"ミュートしたユーザーからのお知らせを隠す"を選択しなかったユーザー以外からは、まだお知らせを受け取ります。",
|
"mutedStreamDescription":"あなたのタイムラインから、選択されたユーザーを隠しました。あなたがお知らせページの歯車のメニューにある"ミュートしたユーザーからのお知らせを隠す"を選択しなかったユーザー以外からは、まだお知らせを受け取ります。",
|
||||||
"profileAndSettings":"プロフィールと設定",
|
"profileAndSettings":"プロフィールと設定",
|
||||||
"profileSettings":"プロフィール設定",
|
"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",
|
"directionality":"ltr",
|
||||||
"languageName": "Norsk",
|
"languageName": "Norsk",
|
||||||
"loginUsername": "Brukernavn eller e-Post",
|
"loginUsername": "Brukernavn eller epost",
|
||||||
"loginPassword": "Passord",
|
"loginPassword": "Passord",
|
||||||
"loginSignIn": "Logg inn",
|
"loginSignIn": "Logg inn",
|
||||||
"loginRememberMe": "Husk meg",
|
"loginRememberMe": "Husk meg",
|
||||||
|
@ -33,18 +33,18 @@
|
||||||
"requeetsNoun": "Requeeter",
|
"requeetsNoun": "Requeeter",
|
||||||
"newQueet": "{new-notice-count} ny Queet",
|
"newQueet": "{new-notice-count} ny Queet",
|
||||||
"newQueets": "{new-notice-count} nye Queets",
|
"newQueets": "{new-notice-count} nye Queets",
|
||||||
"longmonthsJanuary": "Januar",
|
"longmonthsJanuary": "januar",
|
||||||
"longmonthsFebruary": "Februar",
|
"longmonthsFebruary": "februar",
|
||||||
"longmonthsMars": "Mars",
|
"longmonthsMars": "mars",
|
||||||
"longmonthsApril": "April",
|
"longmonthsApril": "april",
|
||||||
"longmonthsMay": "Mai",
|
"longmonthsMay": "mai",
|
||||||
"longmonthsJune": "Juni",
|
"longmonthsJune": "juni",
|
||||||
"longmonthsJuly": "Juli",
|
"longmonthsJuly": "juli",
|
||||||
"longmonthsAugust": "August",
|
"longmonthsAugust": "august",
|
||||||
"longmonthsSeptember": "September",
|
"longmonthsSeptember": "september",
|
||||||
"longmonthsOctober": "Oktober",
|
"longmonthsOctober": "oktober",
|
||||||
"longmonthsNovember": "November",
|
"longmonthsNovember": "november",
|
||||||
"longmonthsDecember": "Desember",
|
"longmonthsDecember": "desember",
|
||||||
"shortmonthsJanuary": "jan",
|
"shortmonthsJanuary": "jan",
|
||||||
"shortmonthsFebruary": "feb",
|
"shortmonthsFebruary": "feb",
|
||||||
"shortmonthsMars": "mar",
|
"shortmonthsMars": "mar",
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
"shortmonthsDecember": "des",
|
"shortmonthsDecember": "des",
|
||||||
"time12am": "{time} am",
|
"time12am": "{time} am",
|
||||||
"time12pm": "{time} pm",
|
"time12pm": "{time} pm",
|
||||||
"longDateFormat": "{time12} - {day} {month} {year}",
|
"longDateFormat": "{time24} - {day} {month} {year}",
|
||||||
"shortDateFormatSeconds": "{seconds}s",
|
"shortDateFormatSeconds": "{seconds}s",
|
||||||
"shortDateFormatMinutes": "{minutes}m",
|
"shortDateFormatMinutes": "{minutes}m",
|
||||||
"shortDateFormatHours": "{hours}t",
|
"shortDateFormatHours": "{hours}t",
|
||||||
|
@ -94,8 +94,8 @@
|
||||||
"backgroundColor": "Bakgrunds farge",
|
"backgroundColor": "Bakgrunds farge",
|
||||||
"newToQuitter": "Ny på {site-title}?",
|
"newToQuitter": "Ny på {site-title}?",
|
||||||
"signUp": "Registrere deg",
|
"signUp": "Registrere deg",
|
||||||
"signUpFullName": "Fult navn",
|
"signUpFullName": "Fullt navn",
|
||||||
"signUpEmail": "e-Post",
|
"signUpEmail": "epost",
|
||||||
"signUpButtonText": "Registrere deg på {site-title}",
|
"signUpButtonText": "Registrere deg på {site-title}",
|
||||||
"welcomeHeading": "Velkommen til {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.",
|
"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",
|
"goToOriginalNotice": "Gå til den opprinnelige queeten",
|
||||||
"goToTheUsersRemoteProfile": "Vis brukerens profil",
|
"goToTheUsersRemoteProfile": "Vis brukerens profil",
|
||||||
"clickToDrag":"Klikk - dra og slipp",
|
"clickToDrag":"Klikk - dra og slipp",
|
||||||
"keyboardShortcuts":"Tastatur snarveier",
|
"keyboardShortcuts":"Tastatursnarveier",
|
||||||
"classicInterface":"Klassisk {site-title}",
|
"classicInterface":"Klassisk {site-title}",
|
||||||
"accessibilityToggleLink":"For bedre synlighet, klikk denne lenken for å bytte til klassisk grensesnitt",
|
"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",
|
"tooltipTopMenu":"Meny og innstillinger",
|
||||||
"tooltipAttachImage":"Legg til et bilde",
|
"tooltipAttachImage":"Legg til et bilde",
|
||||||
"tooltipShortenUrls":"Krympe alle URLer i din Queet",
|
"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",
|
"tooltipRemoveBookmark":"Slett dette bokmerket",
|
||||||
"clearHistory":"Slett nettleser historie",
|
"clearHistory":"Slett besøkshistorie",
|
||||||
"ERRORsomethingWentWrong":"Noe gikk galt.",
|
"ERRORsomethingWentWrong":"Noe gikk galt.",
|
||||||
"ERRORmustBeLoggedIn":"Du må være pålogget for å vise denne strømmen.",
|
"ERRORmustBeLoggedIn":"Du må være pålogget for å vise denne strømmen.",
|
||||||
"ERRORcouldNotFindUserWithNickname":"Kan ikke finne en bruker med brukerid \"{nickname}\" på denne instansen",
|
"ERRORcouldNotFindUserWithNickname":"Kan ikke finne en bruker med brukerid \"{nickname}\" på denne instansen",
|
||||||
"ERRORcouldNotFindGroupWithNickname":"Kan ikke finne en gruppe med gruppenavnet \"{nickname}\" på denne instansen",
|
"ERRORcouldNotFindGroupWithNickname":"Kan ikke finne en gruppe med gruppenavnet \"{nickname}\" på denne instansen",
|
||||||
"ERRORcouldNotFindPage":"Kan ikke finne siden.",
|
"ERRORcouldNotFindPage":"Kan ikke finne siden.",
|
||||||
"ERRORnoticeRemoved": "Denne notisen er slettet.",
|
"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.",
|
"ERRORattachmentUploadFailed": "Opplasting feilet. Formatet er muligens ikke supportert, eller filen er for stor.",
|
||||||
"hideRepliesToPeopleIDoNotFollow":"Skjul svar fra profiler jeg ikke følger.",
|
"hideRepliesToPeopleIDoNotFollow":"Skjul svar fra profiler jeg ikke følger.",
|
||||||
"markAllNotificationsAsSeen":"Marker alle varsler som lest",
|
"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>",
|
"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",
|
"startRant":"Start en utblåsning",
|
||||||
"continueRant":"Fortsett utblåsningen",
|
"continueRant":"Fortsett utblåsningen",
|
||||||
"hideEmbeddedInTimeline":"Skjul inkluderende innhold i denne tidslinjen",
|
"hideEmbeddedInTimeline":"Skjul innebygget innhold i denne tidslinjen",
|
||||||
"hideQuotesInTimeline":"Skjul sitater i denne tidslinjen",
|
"hideQuotesInTimeline":"Skjul sitater i denne tidslinjen",
|
||||||
"userBlocks":"Brukere du blokkerer",
|
"userBlocks":"Brukere du blokkerer",
|
||||||
"buttonBlocked":"Blokkert",
|
"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.",
|
"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",
|
"profileAndSettings":"Profiler og innstillinger",
|
||||||
"profileSettings":"Profil 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.",
|
"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",
|
"profileAndSettings":"Profiel en instellingen",
|
||||||
"profileSettings":"Profiel 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",
|
"directionality":"ltr",
|
||||||
"languageName": "Polish",
|
"languageName": "Polish",
|
||||||
"loginUsername": "Nazwa użytkownika lub email",
|
"loginUsername": "Nazwa użytkownika lub email",
|
||||||
"loginPassword": "Hasło",
|
"loginPassword": "Hasło",
|
||||||
"loginSignIn": "Zaloguj się",
|
"loginSignIn": "Zaloguj się",
|
||||||
"loginRememberMe": "Zapamiętaj mnie",
|
"loginRememberMe": "Zapamiętaj mnie",
|
||||||
"loginForgotPassword": "Nie pamiętasz hasła?",
|
"loginForgotPassword": "Nie pamiętasz hasła?",
|
||||||
"notices": "Queety",
|
"notices": "Queety",
|
||||||
"followers": "Obserwujący",
|
"followers": "Obserwujący",
|
||||||
"following": "Obserwowani",
|
"following": "Obserwowani",
|
||||||
"groups": "Grupy",
|
"groups": "Grupy",
|
||||||
"compose": "Co się dzieje?",
|
"compose": "Co się dzieje?",
|
||||||
"queetVerb": "Wyślij",
|
"queetVerb": "Wyślij",
|
||||||
"queetsNounPlural": "Queety",
|
"queetsNounPlural": "Queety",
|
||||||
"logout": "Wyloguj się",
|
"logout": "Wyloguj się",
|
||||||
"languageSelected": "Język:",
|
"languageSelected": "Język:",
|
||||||
"viewMyProfilePage": "Zobacz swój profil",
|
"viewMyProfilePage": "Zobacz swój profil",
|
||||||
"expand": "Rozwiń",
|
"expand": "Rozwiń",
|
||||||
"collapse": "Zwiń",
|
"collapse": "Zwiń",
|
||||||
"details": "Szczegóły",
|
"details": "Szczegóły",
|
||||||
"expandFullConversation": "Rozwiń całą rozmowę",
|
"expandFullConversation": "Rozwiń całą rozmowę",
|
||||||
"replyVerb": "Odpowiedź",
|
"replyVerb": "Odpowiedź",
|
||||||
"requeetVerb": "Podaj dalej",
|
"requeetVerb": "Podaj dalej",
|
||||||
"favoriteVerb": "Ulubiony",
|
"favoriteVerb": "Ulubiony",
|
||||||
"requeetedVerb": "Podany dalej",
|
"requeetedVerb": "Podany dalej",
|
||||||
"favoritedVerb": "Polubione",
|
"favoritedVerb": "Polubione",
|
||||||
"replyTo": "Odpowiedz",
|
"replyTo": "Odpowiedz",
|
||||||
"requeetedBy": "Podany dalej przez {requeeted-by}",
|
"requeetedBy": "Podany dalej przez {requeeted-by}",
|
||||||
"favoriteNoun": "Ulubiony",
|
"favoriteNoun": "Ulubiony",
|
||||||
"favoritesNoun": "Ulubione",
|
"favoritesNoun": "Ulubione",
|
||||||
"requeetNoun": "Podaj dalej",
|
"requeetNoun": "Podaj dalej",
|
||||||
"requeetsNoun": "Podane dalej",
|
"requeetsNoun": "Podane dalej",
|
||||||
"newQueet": "{new-notice-count} nowy queet",
|
"newQueet": "{new-notice-count} nowy queet",
|
||||||
"newQueets": "{new-notice-count} nowych queetów",
|
"newQueets": "{new-notice-count} nowych queetów",
|
||||||
"longmonthsJanuary": "styczeń",
|
"longmonthsJanuary": "styczeń",
|
||||||
"longmonthsFebruary": "luty",
|
"longmonthsFebruary": "luty",
|
||||||
"longmonthsMars": "marzec",
|
"longmonthsMars": "marzec",
|
||||||
"longmonthsApril": "kwiecień",
|
"longmonthsApril": "kwiecień",
|
||||||
"longmonthsMay": "maj",
|
"longmonthsMay": "maj",
|
||||||
"longmonthsJune": "czerwiec",
|
"longmonthsJune": "czerwiec",
|
||||||
"longmonthsJuly": "lipiec",
|
"longmonthsJuly": "lipiec",
|
||||||
"longmonthsAugust": "sierpień",
|
"longmonthsAugust": "sierpień",
|
||||||
"longmonthsSeptember": "wrzesień",
|
"longmonthsSeptember": "wrzesień",
|
||||||
"longmonthsOctober": "październik",
|
"longmonthsOctober": "październik",
|
||||||
"longmonthsNovember": "listopad",
|
"longmonthsNovember": "listopad",
|
||||||
"longmonthsDecember": "grudzień",
|
"longmonthsDecember": "grudzień",
|
||||||
"shortmonthsJanuary": "styczeń",
|
"shortmonthsJanuary": "styczeń",
|
||||||
"shortmonthsFebruary": "luty",
|
"shortmonthsFebruary": "luty",
|
||||||
"shortmonthsMars": "marzec",
|
"shortmonthsMars": "marzec",
|
||||||
"shortmonthsApril": "kwiecien",
|
"shortmonthsApril": "kwiecien",
|
||||||
"shortmonthsMay": "maj",
|
"shortmonthsMay": "maj",
|
||||||
"shortmonthsJune": "czerwiec",
|
"shortmonthsJune": "czerwiec",
|
||||||
"shortmonthsJuly": "lipiec",
|
"shortmonthsJuly": "lipiec",
|
||||||
"shortmonthsAugust": "sierpień",
|
"shortmonthsAugust": "sierpień",
|
||||||
"shortmonthsSeptember": "wrzesień",
|
"shortmonthsSeptember": "wrzesień",
|
||||||
"shortmonthsOctober": "październik",
|
"shortmonthsOctober": "październik",
|
||||||
"shortmonthsNovember": "listopad",
|
"shortmonthsNovember": "listopad",
|
||||||
"shortmonthsDecember": "grudzień",
|
"shortmonthsDecember": "grudzień",
|
||||||
"time12am": "{time} am",
|
"time12am": "{time} am",
|
||||||
"time12pm": "{time} pm",
|
"time12pm": "{time} pm",
|
||||||
"longDateFormat": "{time12} - {day} {month} {year}",
|
"longDateFormat": "{time12} - {day} {month} {year}",
|
||||||
"shortDateFormatSeconds": "{seconds}s",
|
"shortDateFormatSeconds": "{seconds}s",
|
||||||
"shortDateFormatMinutes": "{minutes}m",
|
"shortDateFormatMinutes": "{minutes}m",
|
||||||
"shortDateFormatHours": "{hours}godz.",
|
"shortDateFormatHours": "{hours}godz.",
|
||||||
"shortDateFormatDate": "{day} {month}",
|
"shortDateFormatDate": "{day} {month}",
|
||||||
"shortDateFormatDateAndY": "{day} {month} {year}",
|
"shortDateFormatDateAndY": "{day} {month} {year}",
|
||||||
"now": "teraz",
|
"now": "teraz",
|
||||||
"posting": "dodawanie",
|
"posting": "dodawanie",
|
||||||
"viewMoreInConvBefore": " zobacz więcej w rozmowie",
|
"viewMoreInConvBefore": " zobacz więcej w rozmowie",
|
||||||
"viewMoreInConvAfter": "Zobacz więcej w rozmowie ",
|
"viewMoreInConvAfter": "Zobacz więcej w rozmowie ",
|
||||||
"mentions": "Wzmianki",
|
"mentions": "Wzmianki",
|
||||||
"timeline": "Oś czasu",
|
"timeline": "Oś czasu",
|
||||||
"publicTimeline": "Publiczna oś czasu",
|
"publicTimeline": "Publiczna oś czasu",
|
||||||
"publicAndExtTimeline": "Cała znana sieć",
|
"publicAndExtTimeline": "Cała znana sieć",
|
||||||
"searchVerb": "Szukaj",
|
"searchVerb": "Szukaj",
|
||||||
"deleteVerb": "Usuń",
|
"deleteVerb": "Usuń",
|
||||||
"cancelVerb": "Anuluj",
|
"cancelVerb": "Anuluj",
|
||||||
"deleteConfirmation": "Czy na pewno chcesz usunąć ten queet?",
|
"deleteConfirmation": "Czy na pewno chcesz usunąć ten queet?",
|
||||||
"userExternalFollow": "Zdalne obserwowanie",
|
"userExternalFollow": "Zdalne obserwowanie",
|
||||||
"userExternalFollowHelp": "ID Twojego konta (np user@rainbowdash.net).",
|
"userExternalFollowHelp": "ID Twojego konta (np user@rainbowdash.net).",
|
||||||
"userFollow": "Obserwuj",
|
"userFollow": "Obserwuj",
|
||||||
"userFollowing": "Obserwowany",
|
"userFollowing": "Obserwowany",
|
||||||
"userUnfollow": "Przestań obserwować",
|
"userUnfollow": "Przestań obserwować",
|
||||||
"joinGroup": "Dołącz",
|
"joinGroup": "Dołącz",
|
||||||
"joinExternalGroup": "Dołącz zdalnie",
|
"joinExternalGroup": "Dołącz zdalnie",
|
||||||
"isMemberOfGroup": "Użytkownik",
|
"isMemberOfGroup": "Użytkownik",
|
||||||
"leaveGroup": "Opuść",
|
"leaveGroup": "Opuść",
|
||||||
"memberCount": "Członkowie",
|
"memberCount": "Członkowie",
|
||||||
"adminCount": "Administratorzy",
|
"adminCount": "Administratorzy",
|
||||||
"settings": "Ustawienia",
|
"settings": "Ustawienia",
|
||||||
"saveChanges": "Zapisz zmiany",
|
"saveChanges": "Zapisz zmiany",
|
||||||
"linkColor": "Kolor linku",
|
"linkColor": "Kolor linku",
|
||||||
"backgroundColor": "Kolor tła",
|
"backgroundColor": "Kolor tła",
|
||||||
"newToQuitter": "Nowy na {site-title}?",
|
"newToQuitter": "Nowy na {site-title}?",
|
||||||
"signUp": "Zarejestruj się",
|
"signUp": "Zarejestruj się",
|
||||||
"signUpFullName": "Imię i nazwisko",
|
"signUpFullName": "Imię i nazwisko",
|
||||||
"signUpEmail": "Email",
|
"signUpEmail": "Email",
|
||||||
"signUpButtonText": "Zarejestruj się na {site-title}",
|
"signUpButtonText": "Zarejestruj się na {site-title}",
|
||||||
"welcomeHeading": "Witamy 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.",
|
"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",
|
"registerNickname": "Nick",
|
||||||
"registerHomepage": "Strona internetowa",
|
"registerHomepage": "Strona internetowa",
|
||||||
"registerBio": "O mnie",
|
"registerBio": "O mnie",
|
||||||
"registerLocation": "Lokalizacja",
|
"registerLocation": "Lokalizacja",
|
||||||
"registerRepeatPassword": "Powtórz hasło",
|
"registerRepeatPassword": "Powtórz hasło",
|
||||||
"moreSettings": "Więcej ustawień",
|
"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>",
|
"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",
|
"editMyProfile": "Edytuj profil",
|
||||||
"notifications": "Powiadomienia",
|
"notifications": "Powiadomienia",
|
||||||
"xFavedYourQueet": "dodał do ulubionych twój Queet",
|
"xFavedYourQueet": "dodał do ulubionych twój Queet",
|
||||||
"xRepeatedYourQueet": "podał dalej Twojego Queeta",
|
"xRepeatedYourQueet": "podał dalej Twojego Queeta",
|
||||||
"xStartedFollowingYou": "zaczął Cię obserwować",
|
"xStartedFollowingYou": "zaczął Cię obserwować",
|
||||||
"followsYou": "obserwuje Cię",
|
"followsYou": "obserwuje Cię",
|
||||||
"FAQ": "FAQ",
|
"FAQ": "FAQ",
|
||||||
"inviteAFriend": "Zaproś przyjaciół!",
|
"inviteAFriend": "Zaproś przyjaciół!",
|
||||||
"goToExternalProfile": "Pokaż pełny profil",
|
"goToExternalProfile": "Pokaż pełny profil",
|
||||||
"cropAndSave": "Przytnij i zapisz",
|
"cropAndSave": "Przytnij i zapisz",
|
||||||
"showTerms": "Przeczytaj nasze Warunki korzystania",
|
"showTerms": "Przeczytaj nasze Warunki korzystania",
|
||||||
"ellipsisMore": "Więcej",
|
"ellipsisMore": "Więcej",
|
||||||
"blockUser": "Zablokuj",
|
"blockUser": "Zablokuj",
|
||||||
"goToOriginalNotice": "Idź do pierwotnego queeta",
|
"goToOriginalNotice": "Idź do pierwotnego queeta",
|
||||||
"goToTheUsersRemoteProfile": "Idź do zdalnego profilu użytkownika",
|
"goToTheUsersRemoteProfile": "Idź do zdalnego profilu użytkownika",
|
||||||
"clickToDrag":"Kliknij, aby przeciągnąć",
|
"clickToDrag":"Kliknij, aby przeciągnąć",
|
||||||
"keyboardShortcuts":"Skróty klawiszowe",
|
"keyboardShortcuts":"Skróty klawiszowe",
|
||||||
"classicInterface":"Klasyczny {site-title}",
|
"classicInterface":"Klasyczny {site-title}",
|
||||||
"accessibilityToggleLink":"Dla lepszej dostępności należy kliknąć ten link, aby przejść do klasycznego interfejsu",
|
"accessibilityToggleLink":"Dla lepszej dostępności należy kliknąć ten link, aby przejść do klasycznego interfejsu",
|
||||||
"tooltipBookmarkStream":"Dodaj ten strumień do zakładek",
|
"tooltipBookmarkStream":"Dodaj ten strumień do zakładek",
|
||||||
"tooltipTopMenu":"Menu i ustawienia",
|
"tooltipTopMenu":"Menu i ustawienia",
|
||||||
"tooltipAttachImage":"Dodaj zdjęcie",
|
"tooltipAttachImage":"Dodaj zdjęcie",
|
||||||
"tooltipShortenUrls":"Skrócić wszystkie adresy URL w tym queecie",
|
"tooltipShortenUrls":"Skrócić wszystkie adresy URL w tym queecie",
|
||||||
"tooltipReloadStream":"Odśwież strumień",
|
"tooltipReloadStream":"Odśwież strumień",
|
||||||
"tooltipRemoveBookmark":"Usuń tę zakładkę",
|
"tooltipRemoveBookmark":"Usuń tę zakładkę",
|
||||||
"clearHistory":"Wyczyść historię przeglądania",
|
"clearHistory":"Wyczyść historię przeglądania",
|
||||||
"ERRORsomethingWentWrong":"Coś poszło nie tak.",
|
"ERRORsomethingWentWrong":"Coś poszło nie tak.",
|
||||||
"ERRORmustBeLoggedIn":"Musisz być zalogowany, aby zobaczyć ten strumień.",
|
"ERRORmustBeLoggedIn":"Musisz być zalogowany, aby zobaczyć ten strumień.",
|
||||||
"ERRORcouldNotFindUserWithNickname":"Nie można znaleźć użytkownika o nicku \"{nickname}\" na tym serwerze",
|
"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",
|
"ERRORcouldNotFindGroupWithNickname":"Nie można znaleźć grupy o nazie \"{nickname}\" na tym serwerze",
|
||||||
"ERRORcouldNotFindPage":"Nie można znaleźć podanej strony.",
|
"ERRORcouldNotFindPage":"Nie można znaleźć podanej strony.",
|
||||||
"ERRORnoticeRemoved": "Ten queet został usunięty.",
|
"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.",
|
"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.",
|
"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ę",
|
"hideRepliesToPeopleIDoNotFollow":"Ukryj odpowiedzieci od ludzi, których nie obserwuję",
|
||||||
"markAllNotificationsAsSeen":"Oznacz wszystkie powiadomienia jako przeczytane",
|
"markAllNotificationsAsSeen":"Oznacz wszystkie powiadomienia jako przeczytane",
|
||||||
"notifyRepliesAndMentions":"Wzmianki i odpowiedzi",
|
"notifyRepliesAndMentions":"Wzmianki i odpowiedzi",
|
||||||
"notifyFavs":"Ulubione",
|
"notifyFavs":"Ulubione",
|
||||||
"notifyRepeats":"Podane dalej",
|
"notifyRepeats":"Podane dalej",
|
||||||
"notifyFollows":"Nowi obserwujący",
|
"notifyFollows":"Nowi obserwujący",
|
||||||
"timelineOptions":"Ustawienia osi czasu",
|
"timelineOptions":"Ustawienia osi czasu",
|
||||||
"ERRORfailedSavingYourSetting":"Błąd podczas zapisywania Twoich ustawień",
|
"ERRORfailedSavingYourSetting":"Błąd podczas zapisywania Twoich ustawień",
|
||||||
"ERRORfailedMarkingAllNotificationsAsRead":"Błąd podczas ozanczania powiadomień jako przeczytane.",
|
"ERRORfailedMarkingAllNotificationsAsRead":"Błąd podczas ozanczania powiadomień jako przeczytane.",
|
||||||
"newNotification": "{new-notice-count} nowe powiadomienie",
|
"newNotification": "{new-notice-count} nowe powiadomienie",
|
||||||
"newNotifications": "{new-notice-count} nowych powiadomień",
|
"newNotifications": "{new-notice-count} nowych powiadomień",
|
||||||
"thisIsANoticeFromABlockedUser":"Ostrzeżenie: To queet od użytkownika, którego zablokowałeś. Kliknij, by zobaczyć.",
|
"thisIsANoticeFromABlockedUser":"Ostrzeżenie: To queet od użytkownika, którego zablokowałeś. Kliknij, by zobaczyć.",
|
||||||
"nicknamesListWithListName":"Lista użytkownika {nickname}: {list-name}",
|
"nicknamesListWithListName":"Lista użytkownika {nickname}: {list-name}",
|
||||||
"myListWithListName":"Moja lista: {list-name}",
|
"myListWithListName":"Moja lista: {list-name}",
|
||||||
"listMembers":"Użytkownicy",
|
"listMembers":"Użytkownicy",
|
||||||
"listSubscribers":"Subskrybujący",
|
"listSubscribers":"Subskrybujący",
|
||||||
"ERRORcouldNotFindList":"Nie ma takiej listy.",
|
"ERRORcouldNotFindList":"Nie ma takiej listy.",
|
||||||
"emailAlreadyInUse":"Już w użyciu",
|
"emailAlreadyInUse":"Już w użyciu",
|
||||||
"addEditLanguageLink":"Pomóż przetłumaczyć {site-title} na inny język",
|
"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>",
|
"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",
|
"startRant":"Rozpocznij przemówienie",
|
||||||
"continueRant":"Kontynuuj przemówienie",
|
"continueRant":"Kontynuuj przemówienie",
|
||||||
"hideEmbeddedInTimeline":"Ukryj osadzony kontent na tej osi czasu",
|
"hideEmbeddedInTimeline":"Ukryj osadzony kontent na tej osi czasu",
|
||||||
"hideQuotesInTimeline":"Ukryj cytaty na tej osi czasu",
|
"hideQuotesInTimeline":"Ukryj cytaty na tej osi czasu",
|
||||||
"userBlocks":"Konta, które blokujesz",
|
"userBlocks":"Konta, które blokujesz",
|
||||||
"buttonBlocked":"Zablokowany",
|
"buttonBlocked":"Zablokowany",
|
||||||
"buttonUnblock":"Odblokuj",
|
"buttonUnblock":"Odblokuj",
|
||||||
"failedBlockingUser":"Nie udało się zablokować użytkownika.",
|
"failedBlockingUser":"Nie udało się zablokować użytkownika.",
|
||||||
"failedUnblockingUser":"Nie udało się odblokować użytkownika.",
|
"failedUnblockingUser":"Nie udało się odblokować użytkownika.",
|
||||||
"unblockUser": "Odblokuj",
|
"unblockUser": "Odblokuj",
|
||||||
"tooltipBlocksYou":"Jesteś zablokowany przez {username}.",
|
"tooltipBlocksYou":"Jesteś zablokowany przez {username}.",
|
||||||
"silenced":"Wyciszony",
|
"silenced":"Wyciszony",
|
||||||
"silencedPlural":"Wyciszone profile",
|
"silencedPlural":"Wyciszone profile",
|
||||||
"silencedUsersOnThisInstance":"Wyciszone profile na {site-title}",
|
"silencedUsersOnThisInstance":"Wyciszone profile na {site-title}",
|
||||||
"sandboxed":"Zsandboksowany",
|
"sandboxed":"Zsandboksowany",
|
||||||
"sandboxedPlural":"Zsandboksowane profile",
|
"sandboxedPlural":"Zsandboksowane profile",
|
||||||
"sandboxedUsersOnThisInstance":"Zsandboksowane profile na {site-title}",
|
"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.",
|
"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.",
|
"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ę",
|
"onlyShowNotificationsFromUsersIFollow":"Pokazuj tylko powiadomienia od użytkowników, których obserwuję",
|
||||||
"userOptions":"Więcej opcji",
|
"userOptions":"Więcej opcji",
|
||||||
"silenceThisUser":"Wycisz {nickname}",
|
"silenceThisUser":"Wycisz {nickname}",
|
||||||
"sandboxThisUser":"Zsandboksuj użytkownika {nickname}",
|
"sandboxThisUser":"Zsandboksuj użytkownika {nickname}",
|
||||||
"unSilenceThisUser":"Odcisz {nickname}",
|
"unSilenceThisUser":"Odcisz {nickname}",
|
||||||
"unSandboxThisUser":"Odsandboksuj użytkownika {nickname}",
|
"unSandboxThisUser":"Odsandboksuj użytkownika {nickname}",
|
||||||
"ERRORfailedSandboxingUser":"Błąd poczas sandboksowania/odsandboksowywania użytkownika",
|
"ERRORfailedSandboxingUser":"Błąd poczas sandboksowania/odsandboksowywania użytkownika",
|
||||||
"ERRORfailedSilencingUser":"Błąd podczas uciszania/odciszania użytkownika",
|
"ERRORfailedSilencingUser":"Błąd podczas uciszania/odciszania użytkownika",
|
||||||
"muteUser":"Wycisz",
|
"muteUser":"Wycisz",
|
||||||
"unmuteUser":"Odcisz",
|
"unmuteUser":"Odcisz",
|
||||||
"hideNotificationsFromMutedUsers":"Ukryj powiadomienia od wycziszonych użytkowników",
|
"hideNotificationsFromMutedUsers":"Ukryj powiadomienia od wycziszonych użytkowników",
|
||||||
"thisIsANoticeFromAMutedUser":"Wyciszyłeś autora tego queeta. Kliknij tu, aby go pokazać.",
|
"thisIsANoticeFromAMutedUser":"Wyciszyłeś autora tego queeta. Kliknij tu, aby go pokazać.",
|
||||||
"userMutes":"Użytkownicy, których wyciszyłeś",
|
"userMutes":"Użytkownicy, których wyciszyłeś",
|
||||||
"userBlocked":"Zablokowani użytkownicy",
|
"userBlocked":"Zablokowani użytkownicy",
|
||||||
"userMuted":"Wyciszeni 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ń.",
|
"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",
|
"profileAndSettings":"Profil i ustawienia",
|
||||||
"profileSettings":"Ustawienia profilu",
|
"profileSettings":"Ustawienia profilu",
|
||||||
"thisIsABookmark":"To jest zakładka stworzona w klasycznym interfejsie"
|
"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.",
|
"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",
|
"profileAndSettings":"Perfil e Definições",
|
||||||
"profileSettings":"Definições do Perfil",
|
"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.",
|
"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",
|
"profileAndSettings":"Perfil e ajustes",
|
||||||
"profileSettings":"Ajustes de perfil",
|
"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": "Квиты",
|
"queetsNounPlural": "Квиты",
|
||||||
"logout": "Выйти",
|
"logout": "Выйти",
|
||||||
"languageSelected": "Язык:",
|
"languageSelected": "Язык:",
|
||||||
"viewMyProfilePage": "Просмотр моего профиля",
|
"viewMyProfilePage": "Мой профиль",
|
||||||
"expand": "Развернуть",
|
"expand": "Развернуть",
|
||||||
"collapse": "Свернуть",
|
"collapse": "Свернуть",
|
||||||
"details": "Подробно",
|
"details": "Подробно",
|
||||||
|
@ -112,18 +112,18 @@
|
||||||
"xRepeatedYourQueet": "реквитнули",
|
"xRepeatedYourQueet": "реквитнули",
|
||||||
"xStartedFollowingYou": "теперь читают вас",
|
"xStartedFollowingYou": "теперь читают вас",
|
||||||
"followsYou": "читают вас",
|
"followsYou": "читают вас",
|
||||||
"FAQ": "FAQ",
|
"FAQ": "ЧаВо",
|
||||||
"inviteAFriend": "Пригласите друзей!",
|
"inviteAFriend": "Пригласите друзей!",
|
||||||
"goToExternalProfile": "Перейти к полному профилю",
|
"goToExternalProfile": "Перейти к полному профилю",
|
||||||
"cropAndSave": "Обрезать и сохранить",
|
"cropAndSave": "Обрезать и сохранить",
|
||||||
"showTerms": "Прочтите наши Условия использования",
|
"showTerms": "Прочтите условия использования",
|
||||||
"ellipsisMore": "Больше",
|
"ellipsisMore": "Больше",
|
||||||
"blockUser": "Заблокировать {username}",
|
"blockUser": "Заблокировать {username}",
|
||||||
"goToOriginalNotice": "Перейти к оригинальному квиту",
|
"goToOriginalNotice": "Перейти к оригинальному квиту",
|
||||||
"goToTheUsersRemoteProfile": "Перейти к удалённому профилю пользователя",
|
"goToTheUsersRemoteProfile": "Перейти к удалённому профилю пользователя",
|
||||||
"clickToDrag":"Нажмите для перетаскивания",
|
"clickToDrag":"Нажмите для перетаскивания",
|
||||||
"keyboardShortcuts":"Горячие клавиши",
|
"keyboardShortcuts":"Горячие клавиши",
|
||||||
"classicInterface":"Классический {site-title}",
|
"classicInterface":"Классический вид: {site-title}",
|
||||||
"accessibilityToggleLink":"Для большего удобства, нажмите на эту ссылку, чтобы переключиться на классический интерфейс",
|
"accessibilityToggleLink":"Для большего удобства, нажмите на эту ссылку, чтобы переключиться на классический интерфейс",
|
||||||
"tooltipBookmarkStream":"Добавить эту ленту в закладки",
|
"tooltipBookmarkStream":"Добавить эту ленту в закладки",
|
||||||
"tooltipTopMenu":"Меню и настройки",
|
"tooltipTopMenu":"Меню и настройки",
|
||||||
|
@ -179,12 +179,12 @@
|
||||||
"sandboxedStreamDescription":"Квиты пользователей в \"песочнице\" исключаются из Публичной Ленты и Всей известной сети. В остальном такие пользователи могут пользоваться сайтом так же, как остальные.",
|
"sandboxedStreamDescription":"Квиты пользователей в \"песочнице\" исключаются из Публичной Ленты и Всей известной сети. В остальном такие пользователи могут пользоваться сайтом так же, как остальные.",
|
||||||
"onlyShowNotificationsFromUsersIFollow":"Показывать уведомления от только читаемых мной пользователей",
|
"onlyShowNotificationsFromUsersIFollow":"Показывать уведомления от только читаемых мной пользователей",
|
||||||
"userOptions":"Пользовательские опции",
|
"userOptions":"Пользовательские опции",
|
||||||
"silenceThisUser":"Silence {nickname}",
|
"silenceThisUser":"Заблокировать пользователя {nickname}",
|
||||||
"sandboxThisUser":"Поместить {nickname} в \"песочницу\"",
|
"sandboxThisUser":"Поместить {nickname} в \"песочницу\"",
|
||||||
"unSilenceThisUser":"Разбанить {nickname}",
|
"unSilenceThisUser":"Разблокировать {nickname}",
|
||||||
"unSandboxThisUser":"Удалить {nickname} из \"песочницы\"",
|
"unSandboxThisUser":"Удалить {nickname} из \"песочницы\"",
|
||||||
"ERRORfailedSandboxingUser":"Ошибка при помещении пользователя в \"песочницу\" или удалении из неё",
|
"ERRORfailedSandboxingUser":"Ошибка при помещении пользователя в \"песочницу\" или удалении из неё",
|
||||||
"ERRORfailedSilencingUser":"Ошибка при бане/разбане пользователя.",
|
"ERRORfailedSilencingUser":"Ошибка при блокировки/разблокировки пользователя.",
|
||||||
"muteUser":"Игнорировать",
|
"muteUser":"Игнорировать",
|
||||||
"unmuteUser":"Прекратить игнорировать",
|
"unmuteUser":"Прекратить игнорировать",
|
||||||
"hideNotificationsFromMutedUsers":"Скрыть уведомления от игнорируемых пользователей",
|
"hideNotificationsFromMutedUsers":"Скрыть уведомления от игнорируемых пользователей",
|
||||||
|
@ -195,5 +195,11 @@
|
||||||
"mutedStreamDescription":"Вы скрыли этих пользователей из вашей ленты. Вы будете продолжать получать уведомления от этих пользователей, если не выберете "Скрыть уведомления от игнорируемых пользователей" в меню с шестерёнкой на странице уведомлений",
|
"mutedStreamDescription":"Вы скрыли этих пользователей из вашей ленты. Вы будете продолжать получать уведомления от этих пользователей, если не выберете "Скрыть уведомления от игнорируемых пользователей" в меню с шестерёнкой на странице уведомлений",
|
||||||
"profileAndSettings":"Профиль и настройки",
|
"profileAndSettings":"Профиль и настройки",
|
||||||
"profileSettings":"Настройки профиля",
|
"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.",
|
"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",
|
"profileAndSettings":"Profil dhe rregullime",
|
||||||
"profileSettings":"Rregullime profili",
|
"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.",
|
"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",
|
"profileAndSettings":"Profil och inställningar",
|
||||||
"profileSettings":"Profilinstä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?",
|
"newToQuitter": "{site-title}'da yeni misin?",
|
||||||
"signUp": "Kayıt ol",
|
"signUp": "Kayıt ol",
|
||||||
"signUpFullName": "Ad ve soyad",
|
"signUpFullName": "Ad ve soyad",
|
||||||
"signUpEmail": "Eposta",
|
"signUpEmail": "E-posta",
|
||||||
"signUpButtonText": "{site-title}'a kaydol",
|
"signUpButtonText": "{site-title}'a kaydol",
|
||||||
"welcomeHeading": "{site-title} a hoşgeldin.",
|
"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ı",
|
"registerNickname": "Kullanıcı adı",
|
||||||
"registerHomepage": "İnternet Sitesi",
|
"registerHomepage": "İnternet Sitesi",
|
||||||
"registerBio": "Kişisel Bilgiler",
|
"registerBio": "Kişisel Bilgiler",
|
||||||
"registerLocation": "Konum",
|
"registerLocation": "Konum",
|
||||||
"registerRepeatPassword": "Şifreni tekrar gir",
|
"registerRepeatPassword": "Şifreni tekrar gir",
|
||||||
"moreSettings": "Diğer ayarlar",
|
"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",
|
"editMyProfile": "Profili düzenle",
|
||||||
"notifications": "Bildirimler",
|
"notifications": "Bildirimler",
|
||||||
"xFavedYourQueet": "Queet'ini favorilerine ekledi",
|
"xFavedYourQueet": "Queet'ini favorilerine ekledi",
|
||||||
|
@ -118,11 +118,11 @@
|
||||||
"cropAndSave": "Kırp ve kaydet",
|
"cropAndSave": "Kırp ve kaydet",
|
||||||
"showTerms": "Kullanım Şartlarını okuyun",
|
"showTerms": "Kullanım Şartlarını okuyun",
|
||||||
"ellipsisMore": "Daha fazla",
|
"ellipsisMore": "Daha fazla",
|
||||||
"blockUser": "Engelle {username}",
|
"blockUser": "{username}'i engelle",
|
||||||
"goToOriginalNotice": "Orijinal iletiye git",
|
"goToOriginalNotice": "Orijinal iletiye git",
|
||||||
"goToTheUsersRemoteProfile": "Kullanıcının uzak profiline git",
|
"goToTheUsersRemoteProfile": "Kullanıcının uzak profiline git",
|
||||||
"clickToDrag":"Sürüklemek için tıklayın",
|
"clickToDrag":"Sürüklemek için tıklayın",
|
||||||
"keyboardShortcuts":"Kılavye kısayolları",
|
"keyboardShortcuts":"Klavye kısayolları",
|
||||||
"classicInterface":"Klasik {site-title}",
|
"classicInterface":"Klasik {site-title}",
|
||||||
"accessibilityToggleLink":"Daha iyi erişilebilirlik için klasik arayüze geçin.",
|
"accessibilityToggleLink":"Daha iyi erişilebilirlik için klasik arayüze geçin.",
|
||||||
"tooltipBookmarkStream":"Akışı yer imlerinize ekleyin",
|
"tooltipBookmarkStream":"Akışı yer imlerinize ekleyin",
|
||||||
|
@ -134,10 +134,10 @@
|
||||||
"clearHistory":"Arama geçmişini temizle",
|
"clearHistory":"Arama geçmişini temizle",
|
||||||
"ERRORsomethingWentWrong":"Bir şeyler yanlış gitti.",
|
"ERRORsomethingWentWrong":"Bir şeyler yanlış gitti.",
|
||||||
"ERRORmustBeLoggedIn":"Bu akışı görmek için giriş yapmalısınız.",
|
"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.",
|
"ERRORcouldNotFindUserWithNickname":"Sunucuda \"{nickname}\" kullanıcı adına sahip bir kullanıcı yok.",
|
||||||
"ERRORcouldNotFindGroupWithNickname":"Sunucuda böyle bir kulanıcı adına sahip \"{nickname}\" grup yok.",
|
"ERRORcouldNotFindGroupWithNickname":"Sunucuda \"{nickname}\" kullanıcı adına sahip bir grup yok.",
|
||||||
"ERRORcouldNotFindPage":"Sayfayı bulamadım.",
|
"ERRORcouldNotFindPage":"Sayfa bulunamadı.",
|
||||||
"ERRORnoticeRemoved": "ileti kaldırıldı.",
|
"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!",
|
"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.",
|
"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",
|
"hideRepliesToPeopleIDoNotFollow":"Takip etmediğim kullanıcıların cevaplarını gizle",
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
"notifyRepeats":"Requeets",
|
"notifyRepeats":"Requeets",
|
||||||
"notifyFollows":"Yeni takipçiler",
|
"notifyFollows":"Yeni takipçiler",
|
||||||
"timelineOptions":"Akış ayarları",
|
"timelineOptions":"Akış ayarları",
|
||||||
"ERRORfailedSavingYourSetting":"Ayarlar kaydedilemedi.",
|
"ERRORfailedSavingYourSetting":"Ayarlar kaydedilirken bir hata oluştu.",
|
||||||
"ERRORfailedMarkingAllNotificationsAsRead":"Tüm bildirimler görüntülenemedi.",
|
"ERRORfailedMarkingAllNotificationsAsRead":"Tüm bildirimler görüntülenemedi.",
|
||||||
"newNotification": "{new-notice-count} yeni bildirim",
|
"newNotification": "{new-notice-count} yeni bildirim",
|
||||||
"newNotifications": "{new-notice-count} yeni bildirimler",
|
"newNotifications": "{new-notice-count} yeni bildirimler",
|
||||||
|
@ -164,38 +164,42 @@
|
||||||
"continueRant":"Konuşmaya devam et",
|
"continueRant":"Konuşmaya devam et",
|
||||||
"hideEmbeddedInTimeline":"Bu akışta gömülü içeriği gizle",
|
"hideEmbeddedInTimeline":"Bu akışta gömülü içeriği gizle",
|
||||||
"hideQuotesInTimeline":"Bu akışta alıntıları gizle",
|
"hideQuotesInTimeline":"Bu akışta alıntıları gizle",
|
||||||
"userBlocks":"Hesabın engellendi",
|
"userBlocks":"Engellediğin hesaplar",
|
||||||
"buttonBlocked":"Engellenmiş",
|
"buttonBlocked":"Engellenmiş",
|
||||||
"buttonUnblock":"Engeli kaldır",
|
"buttonUnblock":"Engeli kaldır",
|
||||||
"failedBlockingUser":"Kullanıcı engellenemedi.",
|
"failedBlockingUser":"Kullanıcı engellenemedi.",
|
||||||
"failedUnblockingUser":"Kullanıcının engeli kaldırılamadı.",
|
"failedUnblockingUser":"Kullanıcının engeli kaldırılamadı.",
|
||||||
"unblockUser": "{username} engelini kaldır",
|
"unblockUser": "{username} engelini kaldır",
|
||||||
"tooltipBlocksYou":"{username} kullanıcısını engellediniz.",
|
"tooltipBlocksYou":"{username} kullanıcısı tarafından engellendiniz",
|
||||||
"silenced":"Susturuldu",
|
"silenced":"Sessizleştirildi",
|
||||||
"silencedPlural":"Susturulan profiller",
|
"silencedPlural":"Sessizleştirilen profiller",
|
||||||
"silencedUsersOnThisInstance":"Silenced profiles on {site-title}",
|
"silencedUsersOnThisInstance":"{site-title}'da sessizleştirilen profiller",
|
||||||
"sandboxed":"Sandboxed",
|
"sandboxed":"Karantinaya alınmış",
|
||||||
"sandboxedPlural":"Sandboxed profiles",
|
"sandboxedPlural":"Karantinaya alınan profiller",
|
||||||
"sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}",
|
"sandboxedUsersOnThisInstance":"{site-title}'da karantinaya alınan profiller",
|
||||||
"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.",
|
"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":"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.",
|
"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":"Only show notifications from users I follow",
|
"onlyShowNotificationsFromUsersIFollow":"Sadece takip ettiğim kullanıcılardan gelen bildirimleri göster",
|
||||||
"userOptions":"More user actions",
|
"userOptions":"Daha fazla kullanıcı ayarları",
|
||||||
"silenceThisUser":"Silence {nickname}",
|
"silenceThisUser":"{nickname}'ı sessizleştir",
|
||||||
"sandboxThisUser":"Sandbox {nickname}",
|
"sandboxThisUser":"{nickname}'ı karantinaya al",
|
||||||
"unSilenceThisUser":"Unsilence {nickname}",
|
"unSilenceThisUser":"{nickname}'in sessizleştirmesini kaldır",
|
||||||
"unSandboxThisUser":"Unsandbox {nickname}",
|
"unSandboxThisUser":"{nickname}'i karantinadan çıkar",
|
||||||
"ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user",
|
"ERRORfailedSandboxingUser":"Kullanıcıyı karantinaya almada/karantinadan çıkarmada bir hata oluştu",
|
||||||
"ERRORfailedSilencingUser":"Failed silencing/unsilencing the user",
|
"ERRORfailedSilencingUser":"Kullanıcıyı sessizleştirme/sessizleştirmesini kaldırmada bir hata oluştu",
|
||||||
"muteUser":"Mute",
|
"muteUser":"Kullanıcıyı sustur",
|
||||||
"unmuteUser":"Unmute",
|
"unmuteUser":"Susturmayı kaldır",
|
||||||
"hideNotificationsFromMutedUsers":"Hide notifications from muted users",
|
"hideNotificationsFromMutedUsers":"Susturulan kullanıcılardan gelen bildirimleri gizle",
|
||||||
"thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.",
|
"thisIsANoticeFromAMutedUser":"Bu quipin yazarını susturmuşsunuz. Yine de görüntülemek için tıklayın",
|
||||||
"userMutes":"Accounts you're muting",
|
"userMutes":"Susturduğun hesaplar",
|
||||||
"userBlocked":"Blocked accounts",
|
"userBlocked":"Engellenmiş hesaplar",
|
||||||
"userMuted":"Muted accounts",
|
"userMuted":"Susturulmuş hesaplar",
|
||||||
"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.",
|
"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":"Profile and settings",
|
"profileAndSettings":"Profil ve ayarlar",
|
||||||
"profileSettings":"Profile settings",
|
"profileSettings":"Profil ayarları",
|
||||||
"thisIsABookmark":"This is a bookmark created in the Classic interface"
|
"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":"Ви сховали ці облікови записи з вашей стрічкі. Ви будете одержувати оголошення від цих облікових записів, доки Ви не виберіте "Сховати оголошення від корістувачей котрих я ігнорую" в меню з шестернею на сторінкі оголошень.",
|
"mutedStreamDescription":"Ви сховали ці облікови записи з вашей стрічкі. Ви будете одержувати оголошення від цих облікових записів, доки Ви не виберіте "Сховати оголошення від корістувачей котрих я ігнорую" в меню з шестернею на сторінкі оголошень.",
|
||||||
"profileAndSettings":"Профіль та налаштування",
|
"profileAndSettings":"Профіль та налаштування",
|
||||||
"profileSettings":"Налаштування профіля",
|
"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":"你已从你的时间线中隐藏了这些用户。但你仍将收到这些用户的通知,除非你在设置页的齿轮菜单中选择“隐藏被忽略用户的通知”。",
|
"mutedStreamDescription":"你已从你的时间线中隐藏了这些用户。但你仍将收到这些用户的通知,除非你在设置页的齿轮菜单中选择“隐藏被忽略用户的通知”。",
|
||||||
"profileAndSettings":"个人档案及设置",
|
"profileAndSettings":"个人档案及设置",
|
||||||
"profileSettings":"个人设置",
|
"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.",
|
"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",
|
"profileAndSettings":"Profile and settings",
|
||||||
"profileSettings":"Profile 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