diff --git a/QvitterPlugin.php b/QvitterPlugin.php
index 3b4ec6c..3362a09 100644
--- a/QvitterPlugin.php
+++ b/QvitterPlugin.php
@@ -147,7 +147,9 @@ class QvitterPlugin extends Plugin {
$m->connect('api/statuses/public_and_external_timeline.:format',
array('action' => 'ApiTimelinePublicAndExternal',
'format' => '(xml|json|rss|atom|as)'));
- $m->connect('api/qvitter/update_link_color.json',
+ $m->connect('api/qvitter/update_bookmarks.json',
+ array('action' => 'ApiQvitterUpdateBookmarks'));
+ $m->connect('api/qvitter/update_link_color.json',
array('action' => 'apiqvitterupdatelinkcolor'));
$m->connect('api/qvitter/update_background_color.json',
array('action' => 'apiqvitterupdatebackgroundcolor'));
diff --git a/actions/apiqvitterupdatebookmarks.php b/actions/apiqvitterupdatebookmarks.php
new file mode 100644
index 0000000..ad3d2d8
--- /dev/null
+++ b/actions/apiqvitterupdatebookmarks.php
@@ -0,0 +1,84 @@
+ \\\\_\ ·
+ · \\) \____) ·
+ · ·
+ · ·
+ · ·
+ · 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 . ·
+ · ·
+ · Contact h@nnesmannerhe.im if you have any questions. ·
+ · ·
+ · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
+
+
+if (!defined('GNUSOCIAL')) { exit(1); }
+
+class ApiQvitterUpdateBookmarksAction extends ApiAuthAction
+{
+ var $bookmarks = null;
+
+ protected $needPost = true;
+
+ /**
+ * Take arguments for running
+ *
+ * @param array $args $_REQUEST args
+ *
+ * @return boolean success flag
+ */
+ protected function prepare(array $args=array())
+ {
+ parent::prepare($args);
+
+ $this->bookmarks = $this->trimmed('bookmarks');
+
+ return true;
+ }
+
+ /**
+ * Handle the request
+ *
+ * @param array $args $_REQUEST data (unused)
+ *
+ * @return void
+ */
+ protected function handle()
+ {
+ parent::handle();
+
+ // save the new bookmarks
+ $saved = Profile_prefs::setData($this->scoped, 'qvitter', 'bookmarks', $this->bookmarks);
+
+ $this->initDocument('json');
+ $this->showJsonObjects($saved);
+ $this->endDocument('json');
+ }
+}
diff --git a/actions/qvitter.php b/actions/qvitter.php
index 35abb8f..aa51496 100644
--- a/actions/qvitter.php
+++ b/actions/qvitter.php
@@ -238,6 +238,19 @@ class QvitterAction extends ApiAction
window.siteLicenseURL = '';
window.customTermsOfUse = ;
window.siteLocalOnlyDefaultPath = ;
+
// available language files and their last update time
window.availableLanguages = {main/public" class="stream-selection public-timeline" data-stream-header="" data-stream-name="statuses/public_timeline.json">
-
+
+
+
diff --git a/css/qvitter.css b/css/qvitter.css
index afff8ab..e85db16 100644
--- a/css/qvitter.css
+++ b/css/qvitter.css
@@ -1152,6 +1152,7 @@ body.rtl #footer-spinner-container {
margin-bottom: 10px;
overflow:hidden;
opacity:0;
+ position: relative;
}
.menu-container a:first-child {
border-top-left-radius: 6px;
@@ -1186,6 +1187,40 @@ body.rtl #footer-spinner-container {
top: 9px;
width: 12px;
}
+#bookmark-container a:hover .chev-right {
+ background-position:-20px -508px;
+ }
+#bookmark-container a:hover .chev-right:hover {
+ background-position:-40px -508px;
+ }
+
+#history-container {
+ margin-bottom:0;
+ }
+
+#history-container.menu-container a .chev-right {
+ background: 0 none;
+ height: 32px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 32px;
+ }
+#history-container.menu-container a .chev-right::before {
+ content: '\f097';
+ color: #aaa;
+ display: block;
+ font-family: "fontAwesome";
+ font-size: 14px;
+ font-style: normal;
+ font-weight: normal;
+ line-height: 34px;
+ text-align: center;
+ width: 32px;
+ }
+#history-container.menu-container a .chev-right:hover::before {
+ color: #888;
+ }
.menu-container a:hover {
background-color:#fff;
}
@@ -1211,6 +1246,22 @@ body.rtl #footer-spinner-container {
background-position:-40px -508px;
}
+#clear-history {
+ color: rgba(255, 255, 255, 0.5);
+ font-size: 10px;
+ margin-bottom: 10px;
+ padding-right: 5px;
+ text-align: right;
+ text-shadow: none;
+ cursor:pointer;
+ }
+#clear-history:hover {
+ color: rgba(255, 255, 255, 0.8);
+ }
+#history-container:empty ~ #clear-history {
+ display:none;
+ }
+
.menu-container a.notifications {
line-height:32px;
padding:0 12px;
@@ -1239,6 +1290,52 @@ body.rtl #footer-spinner-container {
display:none;
}
+#bookmark-container:empty {
+ display:none;
+ }
+
+.tooltip {
+ width: auto;
+ max-width: 300px;
+ line-height: 20px;
+ padding:5px 10px;
+ font-size:12px;
+ background-color: #333;
+ color: #eee;
+ z-index: 10000;
+ position:absolute;
+ display:block;
+ font-style: normal;
+ text-shadow: none;
+ border-radius: 3px;
+ opacity:0;
+ transition-property: opacity;
+ transition-duration: 0.1s;
+ transition-timing-function: ease-in;
+ transition-delay: 0.3s;
+ }
+.tooltip-caret {
+ z-index: 10000;
+ display:block;
+ content:' ';
+ position:absolute;
+ width:0;
+ height:0;
+ border:5px solid #333;
+ border-top:0 none;
+ border-left-color: transparent;
+ border-right-color: transparent;
+ opacity:0;
+ transition-property: opacity;
+ transition-duration: 0.1s;
+ transition-timing-function: ease-in;
+ transition-delay: 0.3s;
+ }
+.tooltip-caret.bottom {
+ border-top:5px solid #333;
+ border-bottom:0 none;
+ }
+
#settings-container {
padding:10px 10px 150px 10px;
}
diff --git a/js/ajax-functions.js b/js/ajax-functions.js
index cd12bfa..25616d6 100644
--- a/js/ajax-functions.js
+++ b/js/ajax-functions.js
@@ -182,6 +182,29 @@ function getFromAPI(stream, actionOnSuccess) {
}
+/* ·
+ ·
+ · Update the bookmarks
+ ·
+ · @param newBookmarks: the new bookmarks object to save
+ ·
+ · · · · · · · · · · · · · */
+
+function postUpdateBookmarks(newBookmarks) {
+ var bookmarksString = JSON.stringify(newBookmarks);
+ $.ajax({ url: window.apiRoot + 'qvitter/update_bookmarks.json?t=' + timeNow(),
+ type: "POST",
+ data: {
+ bookmarks: bookmarksString
+ },
+ dataType:"json",
+ error: function(data){ console.log('error updating bookmarks'); },
+ success: function(data) {
+ // console.log('bookmarks updated successfully');
+ }
+ });
+ }
+
/* ·
·
diff --git a/js/dom-functions.js b/js/dom-functions.js
index 8e050c3..c9cb357 100644
--- a/js/dom-functions.js
+++ b/js/dom-functions.js
@@ -700,8 +700,13 @@ function addStreamToHistoryMenuAndMarkAsCurrent(streamHeader, defaultStreamName)
if($('.stream-selection[data-stream-header="' + streamHeader + '"]').length==0
&& streamHeader != '@' + window.loggedIn.screen_name
&& typeof window.loggedIn.screen_name != 'undefined') {
- $('#history-container').append('
' + streamHeader + '');
+ $('#history-container').prepend('
' + streamHeader + '');
updateHistoryLocalStorage();
+ // max 10 in history container
+ var historyNum = $('#history-container').children('.stream-selection').length;
+ if(historyNum > 10) {
+ $('#history-container').children('.stream-selection').slice(-(historyNum-10)).remove();
+ }
}
@@ -1284,7 +1289,7 @@ function cleanUpAfterCollapseQueet(q) {
function queetBoxHtml() {
var startText = encodeURIComponent(window.sL.compose);
- return '
' + decodeURIComponent(startText) + '
';
+ return '
' + decodeURIComponent(startText) + '
';
}
@@ -1337,7 +1342,7 @@ function replyFormHtml(q,qid) {
startText = encodeURIComponent(startText);
repliesText = encodeURIComponent(repliesText);
- return '
' + decodeURIComponent(startText) + '
';
+ return '
' + decodeURIComponent(startText) + '
';
}
@@ -1622,7 +1627,7 @@ function addToFeed(feed, after, extraClasses, isReply) {
// external
var ostatusHtml = '';
if(obj.from_profile.is_local === false) {
- ostatusHtml = '
';
+ ostatusHtml = '
';
}
@@ -2045,7 +2050,7 @@ function buildQueetHtml(obj, idInStream, extraClassesThisRun, requeeted_by, isCo
// external
var ostatusHtml = '';
if(obj.is_local === false) {
- ostatusHtml = '
';
+ ostatusHtml = '
';
}
var queetTime = parseTwitterDate(obj.created_at);
diff --git a/js/misc-functions.js b/js/misc-functions.js
index 9eebb73..1536586 100644
--- a/js/misc-functions.js
+++ b/js/misc-functions.js
@@ -1055,6 +1055,48 @@ function convertAttachmentMoreHref() {
+
+/* ·
+ ·
+ · Saves the user's bookmarks to the server
+ ·
+ · · · · · · · · · · · · · */
+
+function saveAllBookmarks() {
+ var i=0;
+ var bookmarkContainer = new Object();
+ $.each($('#bookmark-container .stream-selection'), function(key,obj) {
+ bookmarkContainer[i] = new Object();
+ bookmarkContainer[i].dataStreamHref = $(obj).attr('href');
+ bookmarkContainer[i].dataStreamHeader = $(obj).attr('data-stream-header');
+ i++;
+ });
+
+ postUpdateBookmarks(bookmarkContainer);
+
+ $('#bookmark-container').sortable({delay: 100});
+ $('#bookmark-container').disableSelection();
+ }
+
+
+/* ·
+ ·
+ · Append all bookmarks to the bookmark container
+ ·
+ · · · · · · · · · · · · · */
+
+function appendAllBookmarks(bookmarkContainer) {
+ if(bookmarkContainer) {
+ $('#bookmark-container').html('');
+ $.each(bookmarkContainer, function(key,obj) {
+ $('#bookmark-container').append('
' + obj.dataStreamHeader + '');
+ });
+ }
+ $('#bookmark-container').sortable({delay: 100});
+ $('#bookmark-container').disableSelection();
+ }
+
+
/* ·
·
· Updates the browsing history local storage
@@ -1078,8 +1120,6 @@ function updateHistoryLocalStorage() {
else {
$('#history-container').css('display','block');
}
- $('#history-container').sortable({delay: 100});
- $('#history-container').disableSelection();
}
}
@@ -1097,7 +1137,7 @@ function loadHistoryFromLocalStorage() {
$('#history-container').css('display','block');
$('#history-container').html('');
$.each(cacheData, function(key,obj) {
- $('#history-container').append('
' + obj.dataStreamHeader + '');
+ $('#history-container').append('
' + obj.dataStreamHeader + '');
});
}
updateHistoryLocalStorage();
diff --git a/js/qvitter.js b/js/qvitter.js
index 6d906be..f50bf81 100644
--- a/js/qvitter.js
+++ b/js/qvitter.js
@@ -65,6 +65,7 @@ window.onpopstate = function(event) {
· welcome text expand and collapse
·
· · · · · · · · · · · · · */
+
$('body').on('click','.show-full-welcome-text, .front-welcome-text:not(.expanded) sup',function(){
$('.front-welcome-text').toggleClass('expanded');
if($('.front-welcome-text').hasClass('expanded')) {
@@ -86,6 +87,98 @@ $('body').on('click','.welcome-text-register-link',function(){
+/* ·
+ ·
+ · Check for tooltips to display
+ ·
+ · · · · · · · · · · · · · */
+
+$('body').on({
+ mouseover: function (e) {
+ removeAllTooltips();
+
+ // convert title to tooltip
+ if($(e.target).is('[title]')) {
+ $(e.target).attr('data-tooltip',$(e.target).attr('title'));
+ $(e.target).removeAttr('title');
+ }
+
+ // show tooltips
+ if($(e.target).is('[data-tooltip]')) {
+ var tooltip = $(e.target).attr('data-tooltip');
+ $('body').prepend('
' + tooltip + '
');
+ var tooltipWidth = $('.tooltip').outerWidth();
+ var tooltipHeight = $('.tooltip').outerHeight();
+ var windowWidth = $(window).width();
+ var windowScrollPosY = $(window).scrollTop();
+ var targetPosX = $(e.target).offset().left;
+ var targetPosY = $(e.target).offset().top;
+ var targetHeight = $(e.target).outerHeight();
+ var targetWidth = $(e.target).outerWidth();
+
+ // too little space on top of element, show tooltip at bottom
+ if((targetPosY-windowScrollPosY-tooltipHeight-10) < 0) {
+ var tooltipCaretPosX = targetPosX+targetWidth/2-5;
+ var tooltipCaretPosY = targetPosY+targetHeight+2;
+
+ // caret always directly under element
+ $('.tooltip-caret').css('left',tooltipCaretPosX + 'px');
+ $('.tooltip-caret').css('top',tooltipCaretPosY + 'px');
+ $('.tooltip-caret').addClass('top');
+
+ // tooltip itself might bleed over the window edges, and need moving
+ var tooltipPosX = targetPosX+targetWidth/2-tooltipWidth/2;
+ var tooltipPosY = targetPosY+targetHeight+7;
+ if((tooltipPosX+tooltipWidth)>windowWidth) {
+ tooltipPosX = windowWidth-tooltipWidth-5;
+ }
+ if(tooltipPosX < 5) {
+ tooltipPosX = 5;
+ }
+ $('.tooltip').css('left',tooltipPosX + 'px');
+ $('.tooltip').css('top',tooltipPosY + 'px');
+ }
+ // tooltip at top
+ else {
+ var tooltipCaretPosX = targetPosX+targetWidth/2-5;
+ var tooltipCaretPosY = targetPosY-7;
+
+ // caret always directly on top of element
+ $('.tooltip-caret').css('left',tooltipCaretPosX + 'px');
+ $('.tooltip-caret').css('top',tooltipCaretPosY + 'px');
+ $('.tooltip-caret').addClass('bottom');
+
+ // tooltip itself might bleed over the window edges, and need moving
+ var tooltipPosX = targetPosX+targetWidth/2-tooltipWidth/2;
+ var tooltipPosY = targetPosY-7-tooltipHeight;
+ if((tooltipPosX+tooltipWidth)>windowWidth) {
+ tooltipPosX = windowWidth-tooltipWidth-5;
+ }
+ if(tooltipPosX < 5) {
+ tooltipPosX = 5;
+ }
+ $('.tooltip').css('left',tooltipPosX + 'px');
+ $('.tooltip').css('top',tooltipPosY + 'px');
+
+ }
+
+ // fade in
+ $('.tooltip').css('opacity','1');
+ $('.tooltip-caret').css('opacity','1');
+ }
+ },
+ mouseleave: function (e) {
+ removeAllTooltips();
+ }
+});
+
+// removes all tooltips
+function removeAllTooltips() {
+ $('.tooltip,.tooltip-caret').remove();
+ }
+
+
+
/* ·
·
· fix login and register box to top when they reach top
@@ -466,8 +559,14 @@ function proceedToSetLanguageAndLogin(data){
$('#invite-link').html(window.sL.inviteAFriend);
$('#classic-link').html(window.sL.classicInterface);
$('#edit-profile-header-link').html(window.sL.editMyProfile);
- $('#mini-edit-profile-button').attr('title',window.sL.editMyProfile);
+ $('#mini-edit-profile-button').attr('data-tooltip',window.sL.editMyProfile);
$('#accessibility-toggle-link').html(window.sL.accessibilityToggleLink);
+ $('#settingslink .nav-session').attr('data-tooltip',window.sL.tooltipTopMenu);
+ $('#top-compose').attr('data-tooltip',window.sL.compose);
+ $('button.upload-image').attr('data-tooltip',window.sL.tooltipAttachImage);
+ $('button.shorten').attr('data-tooltip',window.sL.tooltipShortenUrls);
+ $('.reload-stream').attr('data-tooltip',window.sL.tooltipReloadStream);
+ $('#clear-history').html(window.sL.clearHistory);
// show site body now
$('#user-container').css('display','block');
@@ -514,7 +613,7 @@ function doLogin(streamToSet) {
$('#qvitter-notice').show();
$('#user-avatar').attr('src', window.loggedIn.profile_image_url_profile_size);
$('#settingslink .nav-session').css('background-image', 'url(\'' + window.loggedIn.profile_image_url_profile_size + '\')');
- $('#user-header').attr('title', window.sL.viewMyProfilePage);
+ $('#user-screen-name, #user-avatar, #user-name').attr('data-tooltip', window.sL.viewMyProfilePage);
$('#user-name').append(window.loggedIn.name);
$('#user-screen-name').append(window.loggedIn.screen_name);
$('#user-queets strong').html(window.loggedIn.statuses_count);
@@ -590,6 +689,9 @@ function doLogin(streamToSet) {
// load history
loadHistoryFromLocalStorage();
+ // show bookmarks
+ appendAllBookmarks(window.allBookmarks);
+
// set stream
window.currentStream = ''; // always reload stream on login
setNewCurrentStream(streamToSet,function(){
@@ -737,6 +839,7 @@ $('.language-link').click(function(){
· · · · · · · · · · · · · */
$('#settingslink').click(function(){
+ removeAllTooltips();
if(!$('.quitter-settings').hasClass('dropped')) { $('.quitter-settings').addClass('dropped'); }
else { $('.quitter-settings').removeClass('dropped'); }
});
@@ -1015,7 +1118,7 @@ $('body').on('click','a', function(e) {
return;
}
- // don't hijack and don't follow link if this is the x remove users from history, prevent link but don't set a new currentstream
+ // don't hijack and don't follow link if this is the bookmark stream icon, prevent link but don't set a new currentstream
if($(e.target).is('i.chev-right')) {
e.preventDefault();
return;
@@ -1320,28 +1423,61 @@ $('body').on('click','.sm-ellipsis',function(){
/* ·
·
- · When user clicks the x to remove a menu history item
+ · When user clicks the bookmark icon to bookmark
·
· · · · · · · · · · · · · */
$('body').on('click','#history-container .chev-right',function(event){
- $(this).parent('.stream-selection').remove();
- updateHistoryLocalStorage();
+ var thisStreamLink = $(this).parent('.stream-selection');
+ thisStreamLink.slideUp(300,function(){
+ $('#bookmark-container').append(thisStreamLink.outerHTML());
+ $('#bookmark-container').children().last().children('.chev-right').attr('data-tooltip',window.sL.tooltipRemoveBookmark);
+ $('#bookmark-container').children().last().fadeIn(300,function(){
+ thisStreamLink.remove();
+ updateHistoryLocalStorage();
+ saveAllBookmarks();
+ });
+ });
});
/* ·
·
- · When sorting the history menu
+ · When user clicks the x to remove a bookmark
·
· · · · · · · · · · · · · */
-$('#history-container').on("sortupdate", function() {
+$('body').on('click','#bookmark-container .chev-right',function(event){
+ $(this).parent('.stream-selection').remove();
+ saveAllBookmarks();
+ });
+
+
+/* ·
+ ·
+ · When sorting the bookmark menu
+ ·
+ · · · · · · · · · · · · · */
+
+$('#bookmark-container').on("sortupdate", function() {
+ saveAllBookmarks();
+ });
+
+
+/* ·
+ ·
+ · When clearing the browsing history
+ ·
+ · · · · · · · · · · · · · */
+
+$('#clear-history').on('click', function() {
+ $('#history-container').empty();
updateHistoryLocalStorage();
});
+
/* ·
·
· Load more from the current stream when scroll is 1000px from bottom
diff --git a/locale/ar.json b/locale/ar.json
index 5795ed7..6b96f4c 100644
--- a/locale/ar.json
+++ b/locale/ar.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/ast.json b/locale/ast.json
index 3bd4aa1..dd8a012 100644
--- a/locale/ast.json
+++ b/locale/ast.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/ca.json b/locale/ca.json
index 149a77f..edd39fb 100644
--- a/locale/ca.json
+++ b/locale/ca.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/de.json b/locale/de.json
index 4b7ce09..203469e 100644
--- a/locale/de.json
+++ b/locale/de.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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":"Add this stream to your bookmarks",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/en.json b/locale/en.json
index 516d223..3328cab 100644
--- a/locale/en.json
+++ b/locale/en.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/eo.json b/locale/eo.json
index 4ce5fc2..01a12de 100644
--- a/locale/eo.json
+++ b/locale/eo.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/es.json b/locale/es.json
index f87179c..fcca647 100644
--- a/locale/es.json
+++ b/locale/es.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click para arrastrar",
"keyboardShortcuts":"Atajos de teclado",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/es_ahorita.json b/locale/es_ahorita.json
index 3fb01a1..444818b 100644
--- a/locale/es_ahorita.json
+++ b/locale/es_ahorita.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/eu.json b/locale/eu.json
index bc0eb8c..4fa3a04 100644
--- a/locale/eu.json
+++ b/locale/eu.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/fa.json b/locale/fa.json
index 47f2e64..af50d2e 100644
--- a/locale/fa.json
+++ b/locale/fa.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/fi.json b/locale/fi.json
index 6b82511..1db4823 100644
--- a/locale/fi.json
+++ b/locale/fi.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/fr.json b/locale/fr.json
index 1272609..e7f7807 100644
--- a/locale/fr.json
+++ b/locale/fr.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"{site-title} Classique",
- "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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/gl.json b/locale/gl.json
index c060414..93fd422 100644
--- a/locale/gl.json
+++ b/locale/gl.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/he.json b/locale/he.json
index 4d476a6..324ebc6 100644
--- a/locale/he.json
+++ b/locale/he.json
@@ -124,5 +124,12 @@
"clickToDrag":"לחץ כדי לגרור",
"keyboardShortcuts":"קיצורי מקלדת",
"classicInterface":"קלאסי {site-title}",
- "accessibilityToggleLink":"לצורך נגישות טובה יותר, לחץ על קישור זה כדי להחליף לממשק הקלאסי"
+ "accessibilityToggleLink":"לצורך נגישות טובה יותר, לחץ על קישור זה כדי להחליף לממשק הקלאסי",
+ "tooltipBookmarkStream":"Add this stream to your bookmarks",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/io.json b/locale/io.json
index 84bcc90..a93e721 100644
--- a/locale/io.json
+++ b/locale/io.json
@@ -124,5 +124,12 @@
"clickToDrag":"Klikez por tranar",
"keyboardShortcuts":"Agi per klavaro",
"classicInterface":"Klasika {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/it.json b/locale/it.json
index 2858664..b68a5ab 100644
--- a/locale/it.json
+++ b/locale/it.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/no.json b/locale/no.json
index f3d7328..eb2b4c2 100644
--- a/locale/no.json
+++ b/locale/no.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/pt_br.json b/locale/pt_br.json
index c4a3e65..6e49902 100644
--- a/locale/pt_br.json
+++ b/locale/pt_br.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/sv.json b/locale/sv.json
index 5c65733..03b02de 100644
--- a/locale/sv.json
+++ b/locale/sv.json
@@ -124,5 +124,12 @@
"clickToDrag":"Klicka och dra för att flytta",
"keyboardShortcuts":"Kortkommandon",
"classicInterface":"Byt till GNU socials standardgränssnitt",
- "accessibilityToggleLink":"För bättre tillgänglighet, följ den här länken för att byta till GNU socials standardgränssnitt"
+ "accessibilityToggleLink":"För bättre tillgänglighet, följ den här länken för att byta till GNU socials standardgränssnitt",
+ "tooltipBookmarkStream":"Bokmärk det här flödet",
+ "tooltipTopMenu":"Meny och inställningar",
+ "tooltipAttachImage":"Bifoga en bild",
+ "tooltipShortenUrls":"Förkorta alla URL:er",
+ "tooltipReloadStream":"Ladda om flödet",
+ "tooltipRemoveBookmark":"Ta bort det här bokmärket",
+ "clearHistory":"Rensa surfhistoriken"
}
diff --git a/locale/zh_cn.json b/locale/zh_cn.json
index c2bbf8c..b00f65f 100644
--- a/locale/zh_cn.json
+++ b/locale/zh_cn.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}
diff --git a/locale/zh_tw.json b/locale/zh_tw.json
index 8f1cfc1..37251b3 100644
--- a/locale/zh_tw.json
+++ b/locale/zh_tw.json
@@ -124,5 +124,12 @@
"clickToDrag":"Click to drag",
"keyboardShortcuts":"Keyboard shortcuts",
"classicInterface":"Classic {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",
+ "tooltipTopMenu":"Menu and settings",
+ "tooltipAttachImage":"Attach an image",
+ "tooltipShortenUrls":"Shorten all URLs in the Queet",
+ "tooltipReloadStream":"Refresh this stream",
+ "tooltipRemoveBookmark":"Remove this bookmark",
+ "clearHistory":"Clear browsing history"
}