rant mode, design fixes, move user stream item html to separate function, etc
This commit is contained in:
parent
74c52babc2
commit
3cc2eb3f14
|
@ -1279,7 +1279,9 @@ function queetBoxPopUpHtml() {
|
|||
·
|
||||
· · · · · · · · · */
|
||||
|
||||
function replyFormHtml(q,qid) {
|
||||
function replyFormHtml(streamItem,qid) {
|
||||
|
||||
var q = streamItem.children('.queet');
|
||||
|
||||
// if we have cached text in localstorage
|
||||
var data = localStorageObjectCache_GET('queetBoxInput','queet-box-' + qid);
|
||||
|
@ -1287,33 +1289,55 @@ function replyFormHtml(q,qid) {
|
|||
var cachedText = encodeURIComponent(data);
|
||||
}
|
||||
|
||||
// get all @:s
|
||||
var user_screen_name = q.children('.queet').find('.screen-name').html().substring(1);
|
||||
var user_screen_name_html = '<a>@' + user_screen_name + '</a>';
|
||||
var user_screen_name_text = '@' + user_screen_name;
|
||||
var reply_to_screen_name = '';
|
||||
var reply_to_screen_name_html = '';
|
||||
var reply_to_screen_name_text = '';
|
||||
if(q.attr('data-in-reply-to-screen-name').length>0 // not if not a reply
|
||||
&& q.attr('data-in-reply-to-screen-name') != $('#user-screen-name').html() // not if it's me
|
||||
&& q.attr('data-in-reply-to-screen-name') != user_screen_name // not same screen name twice
|
||||
) {
|
||||
reply_to_screen_name = q.attr('data-in-reply-to-screen-name');
|
||||
reply_to_screen_name_html = ' <a>@' + reply_to_screen_name + '</a>';
|
||||
reply_to_screen_name_text = ' @' + reply_to_screen_name;
|
||||
var screenNamesToAdd = {};
|
||||
|
||||
// add the screen name to the one we're replying to (if it's not me)
|
||||
if(!thisIsALinkToMyProfile(q.find('.account-group').attr('href'))) {
|
||||
var replyToScreenName = q.find('.account-group span.screen-name').html().replace('@','');
|
||||
screenNamesToAdd[q.find('.account-group').attr('href')] = replyToScreenName;
|
||||
}
|
||||
var more_reply_tos = '';
|
||||
var more_reply_tos_text = '';
|
||||
$.each(q.children('.queet').find('.queet-text').find('.mention'),function(key,obj){
|
||||
var thisMention = $(obj).html().replace('@','');
|
||||
if(thisMention != user_screen_name && thisMention != reply_to_screen_name && thisMention != $('#user-screen-name').html()) {
|
||||
more_reply_tos = more_reply_tos + ' <a>@' + thisMention + '</a>';
|
||||
more_reply_tos_text = more_reply_tos_text + ' @' + thisMention;
|
||||
|
||||
// add the screen name to the one who the one we're replying to is replying to (if it's not me)
|
||||
if(q.find('i.addressees > span.reply-to').length > 0
|
||||
&& !thisIsALinkToMyProfile(q.find('i.addressees > span.reply-to > a').attr('href'))) {
|
||||
var replyToScreenName = q.find('i.addressees > span.reply-to > a').html().replace('@','');
|
||||
if(typeof screenNamesToAdd[q.find('i.addressees > span.reply-to > a').attr('href')] == 'undefined') {
|
||||
screenNamesToAdd[q.find('i.addressees > span.reply-to > a').attr('href')] = replyToScreenName;
|
||||
}
|
||||
}
|
||||
|
||||
// get all other mentions (if it's not me)
|
||||
$.each(q.find('.queet-text').find('.mention'),function(key,obj){
|
||||
if(!thisIsALinkToMyProfile($(obj).attr('href'))) {
|
||||
if(typeof screenNamesToAdd[$(obj).attr('href')] == 'undefined') {
|
||||
var thisMention = $(obj).html().replace('@','');
|
||||
screenNamesToAdd[$(obj).attr('href')] = thisMention;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var startText = window.sL.replyTo + ' ' + user_screen_name_html + reply_to_screen_name_html + more_reply_tos + ' <br>';
|
||||
var repliesText = user_screen_name_text + reply_to_screen_name_text + more_reply_tos_text + ' ';
|
||||
// build reply/rant strings
|
||||
var repliesText = '';
|
||||
if(Object.keys(screenNamesToAdd).length < 1
|
||||
&& q.find('strong.name').attr('data-user-id') == window.loggedIn.id) {
|
||||
if(streamItem.attr('data-in-reply-to-status-id') == 'null' || streamItem.attr('data-in-reply-to-status-id') == 'false' || streamItem.attr('data-in-reply-to-status-id') == 'undefined' || streamItem.attr('data-in-reply-to-status-id') == '') {
|
||||
var startText = window.sL.startRant + ' ';
|
||||
}
|
||||
else {
|
||||
var startText = window.sL.continueRant + ' ';
|
||||
}
|
||||
}
|
||||
else {
|
||||
var startText = window.sL.replyTo + ' ';
|
||||
var repliesArray = [];
|
||||
$.each(screenNamesToAdd, function(url,screenName){
|
||||
repliesArray.push(screenName);
|
||||
});
|
||||
if(repliesArray.length>0) {
|
||||
startText = '<a>@' + repliesArray.join('</a> <a>@') + '</a> <br>';
|
||||
repliesText = '@' + repliesArray.join(' @') + ' ';
|
||||
}
|
||||
}
|
||||
|
||||
startText = encodeURIComponent(startText);
|
||||
repliesText = encodeURIComponent(repliesText);
|
||||
|
@ -1595,10 +1619,7 @@ function addToFeed(feed, after, extraClasses) {
|
|||
' + obj.from_profile.name + '\
|
||||
</strong>\
|
||||
</a> \
|
||||
' + window.sL.xFavedYourQueet + '\
|
||||
<small class="created-at" data-created-at="' + obj.created_at + '" data-tooltip="' + parseTwitterLongDate(obj.created_at) + '">\
|
||||
' + notificationTime + '\
|
||||
</small>\
|
||||
' + window.sL.xFavedYourQueet + '<small class="created-at" data-created-at="' + obj.created_at + '" data-tooltip="' + parseTwitterLongDate(obj.created_at) + '"> <a>' + notificationTime + '</a></small>\
|
||||
</div>\
|
||||
<div class="small-grey-notice">\
|
||||
<a data-created-at="' + obj.notice.created_at + '" data-tooltip="' + parseTwitterLongDate(obj.notice.created_at) + '" href="' + window.siteInstanceURL + 'notice/' + obj.notice.id + '">\
|
||||
|
@ -1624,10 +1645,7 @@ function addToFeed(feed, after, extraClasses) {
|
|||
' + obj.from_profile.name + '\
|
||||
</strong>\
|
||||
</a> \
|
||||
' + window.sL.xRepeatedYourQueet + '\
|
||||
<small class="created-at" data-created-at="' + obj.created_at + '" data-tooltip="' + parseTwitterLongDate(obj.created_at) + '">\
|
||||
' + notificationTime + '\
|
||||
</small>\
|
||||
' + window.sL.xRepeatedYourQueet + '<small class="created-at" data-created-at="' + obj.created_at + '" data-tooltip="' + parseTwitterLongDate(obj.created_at) + '"> <a>' + notificationTime + '</a></small>\
|
||||
</div>\
|
||||
<div class="small-grey-notice">\
|
||||
<a data-created-at="' + obj.notice.created_at + '" data-tooltip="' + parseTwitterLongDate(obj.notice.created_at) + '" href="' + window.siteInstanceURL + 'notice/' + obj.notice.id + '">\
|
||||
|
@ -1657,10 +1675,7 @@ function addToFeed(feed, after, extraClasses) {
|
|||
' + obj.from_profile.name + '\
|
||||
</strong>\
|
||||
</a> \
|
||||
' + window.sL.xStartedFollowingYou + '\
|
||||
<small class="created-at" data-created-at="' + obj.created_at + '" title="' + obj.created_at + '">\
|
||||
' + notificationTime + '\
|
||||
</small>\
|
||||
' + window.sL.xStartedFollowingYou + '<small class="created-at" data-created-at="' + obj.created_at + '" title="' + obj.created_at + '"> <a>' + notificationTime + '</a></small>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
|
@ -1683,40 +1698,7 @@ function addToFeed(feed, after, extraClasses) {
|
|||
// only if not user is already in stream
|
||||
if($('#stream-item-' + obj.id).length == 0) {
|
||||
|
||||
obj.description = obj.description || '';
|
||||
|
||||
// external
|
||||
var ostatusHtml = '';
|
||||
if(obj.is_local === false) {
|
||||
ostatusHtml = '<a target="_blank" title="' + window.sL.goToTheUsersRemoteProfile + '" class="ostatus-link" href="' + obj.statusnet_profile_url + '"></a>';
|
||||
}
|
||||
|
||||
// rtl or not
|
||||
var rtlOrNot = '';
|
||||
if($('body').hasClass('rtl')) {
|
||||
rtlOrNot = 'rtl';
|
||||
}
|
||||
|
||||
// show user actions
|
||||
var followingClass = '';
|
||||
if(obj.following) {
|
||||
followingClass = 'following';
|
||||
}
|
||||
var followButton = '';
|
||||
if(typeof window.loggedIn.screen_name != 'undefined' // if logged in
|
||||
&& window.loggedIn.id != obj.id) { // not if this is me
|
||||
if(!(obj.statusnet_profile_url.indexOf('/twitter.com/')>-1 && obj.following === false)) { // only unfollow twitter users
|
||||
var followButton = '<div class="user-actions">\
|
||||
<button data-follow-user-id="' + obj.id + '" data-follow-user="' + obj.statusnet_profile_url + '" type="button" class="qvitter-follow-button ' + followingClass + '">\
|
||||
<span class="button-text follow-text"><i class="follow"></i>' + window.sL.userFollow + '</span>\
|
||||
<span class="button-text following-text">' + window.sL.userFollowing + '</span>\
|
||||
<span class="button-text unfollow-text">' + window.sL.userUnfollow + '</span>\
|
||||
</button>\
|
||||
</div>';
|
||||
}
|
||||
}
|
||||
|
||||
var userHtml = '<div id="stream-item-' + obj.id + '" class="stream-item user"><div class="queet ' + rtlOrNot + '">' + followButton + '<div class="queet-content"><div class="stream-item-header"><a class="account-group" href="' + obj.statusnet_profile_url + '" data-user-id="' + obj.id + '"><img class="avatar profile-size" src="' + obj.profile_image_url_profile_size + '" data-user-id="' + obj.id + '" /><strong class="name" data-user-id="' + obj.id + '">' + obj.name + '</strong> <span class="screen-name" data-user-id="' + obj.id + '">@' + obj.screen_name + '</span></a>' + ostatusHtml + '</div><div class="queet-text">' + obj.description + '</div></div></div></div>';
|
||||
var userHtml = buildUserStreamItemHtml(obj);
|
||||
|
||||
if(after) {
|
||||
$('#' + after).after(userHtml);
|
||||
|
@ -1842,6 +1824,69 @@ function addToFeed(feed, after, extraClasses) {
|
|||
}
|
||||
|
||||
|
||||
|
||||
/* ·
|
||||
·
|
||||
· Build HTML for a user stream item from an object
|
||||
·
|
||||
· @param obj: a user object
|
||||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
function buildUserStreamItemHtml(obj) {
|
||||
|
||||
obj.description = obj.description || '';
|
||||
|
||||
// external
|
||||
var ostatusHtml = '';
|
||||
if(obj.is_local === false) {
|
||||
ostatusHtml = '<a target="_blank" title="' + window.sL.goToTheUsersRemoteProfile + '" class="ostatus-link" href="' + obj.statusnet_profile_url + '"></a>';
|
||||
}
|
||||
|
||||
// rtl or not
|
||||
var rtlOrNot = '';
|
||||
if($('body').hasClass('rtl')) {
|
||||
rtlOrNot = 'rtl';
|
||||
}
|
||||
|
||||
// show user actions
|
||||
var followingClass = '';
|
||||
if(obj.following) {
|
||||
followingClass = 'following';
|
||||
}
|
||||
var followButton = '';
|
||||
if(typeof window.loggedIn.screen_name != 'undefined' // if logged in
|
||||
&& window.loggedIn.id != obj.id) { // not if this is me
|
||||
if(!(obj.statusnet_profile_url.indexOf('/twitter.com/')>-1 && obj.following === false)) { // only unfollow twitter users
|
||||
var followButton = '<div class="user-actions">\
|
||||
<button data-follow-user-id="' + obj.id + '" data-follow-user="' + obj.statusnet_profile_url + '" type="button" class="qvitter-follow-button ' + followingClass + '">\
|
||||
<span class="button-text follow-text"><i class="follow"></i>' + window.sL.userFollow + '</span>\
|
||||
<span class="button-text following-text">' + window.sL.userFollowing + '</span>\
|
||||
<span class="button-text unfollow-text">' + window.sL.userUnfollow + '</span>\
|
||||
</button>\
|
||||
</div>';
|
||||
}
|
||||
}
|
||||
|
||||
return '<div id="stream-item-' + obj.id + '" class="stream-item user">\
|
||||
<div class="queet ' + rtlOrNot + '">\
|
||||
' + followButton + '\
|
||||
<div class="queet-content">\
|
||||
<div class="stream-item-header">\
|
||||
<a class="account-group" href="' + obj.statusnet_profile_url + '" data-user-id="' + obj.id + '">\
|
||||
<img class="avatar profile-size" src="' + obj.profile_image_url_profile_size + '" data-user-id="' + obj.id + '" />\
|
||||
<strong class="name" data-user-id="' + obj.id + '">' + obj.name + '</strong> \
|
||||
<span class="screen-name" data-user-id="' + obj.id + '">@' + obj.screen_name + '</span>\
|
||||
</a>\
|
||||
' + ostatusHtml + '\
|
||||
</div>\
|
||||
<div class="queet-text">' + obj.description + '</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>';
|
||||
}
|
||||
|
||||
|
||||
/* ·
|
||||
·
|
||||
· Build HTML for a queet from an object
|
||||
|
|
|
@ -683,6 +683,33 @@ function removeProtocolFromUrl(url) {
|
|||
}
|
||||
|
||||
|
||||
/* ·
|
||||
·
|
||||
· Is this url a link to my profile?
|
||||
·
|
||||
· · · · · · · · · */
|
||||
|
||||
function thisIsALinkToMyProfile(url) {
|
||||
if(typeof url == 'undefined') {
|
||||
return false;
|
||||
}
|
||||
if(!window.loggedIn) {
|
||||
return false;
|
||||
}
|
||||
if(url.slice(-1) == '/') { // remove trailing '/'
|
||||
url = url.slice(0,-1);
|
||||
}
|
||||
var urlWithoutProtocol = removeProtocolFromUrl(url);
|
||||
if(removeProtocolFromUrl(window.loggedIn.statusnet_profile_url) == urlWithoutProtocol) {
|
||||
return true;
|
||||
}
|
||||
var userIdUrlWithoutProtocol = removeProtocolFromUrl(window.siteInstanceURL) + 'user/' + window.loggedIn.id;
|
||||
if(userIdUrlWithoutProtocol == urlWithoutProtocol) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/* ·
|
||||
·
|
||||
|
|
|
@ -2437,7 +2437,7 @@ $('body').on('click', '.queet-toolbar button',function () {
|
|||
|
||||
var queetTempText = replaceHtmlSpecialChars(queetText.replace(/\n/g,'<br>')); // no xss
|
||||
queetTempText = queetTempText.replace(/<br>/g,'<br>'); // but preserve line breaks
|
||||
var queetHtml = '<div id="' + tempPostId + '" class="stream-item conversation temp-post" style="opacity:1"><div class="queet"><span class="dogear"></span><div class="queet-content"><div class="stream-item-header"><a class="account-group"><img class="avatar" src="' + $('#user-avatar').attr('src') + '" /><strong class="name">' + $('#user-name').html() + '</strong> <span class="screen-name">@' + $('#user-screen-name').html() + '</span></a><small class="created-at">posting</small></div><div class="queet-text">' + queetTempText + '</div><div class="stream-item-footer"><ul class="queet-actions"><li class="action-reply-container"><a class="with-icn"><span class="icon sm-reply" title="' + window.sL.replyVerb + '"></span></a></li><li class="action-del-container"><a class="with-icn"><span class="icon sm-trash" title="' + window.sL.deleteVerb + '"></span></a></li></i></li><li class="action-fav-container"><a class="with-icn"><span class="icon sm-fav" title="' + window.sL.favoriteVerb + '"></span></a></li></ul></div></div></div></div>';
|
||||
var queetHtml = '<div id="' + tempPostId + '" class="stream-item conversation temp-post" style="opacity:1"><div class="queet"><span class="dogear"></span><div class="queet-content"><div class="stream-item-header"><a class="account-group"><img class="avatar" src="' + $('#user-avatar').attr('src') + '" /><strong class="name">' + $('#user-name').html() + '</strong> <span class="screen-name">@' + $('#user-screen-name').html() + '</span></a><small class="created-at"> ' + window.sL.posting + '</small></div><div class="queet-text">' + queetTempText + '</div><div class="stream-item-footer"><ul class="queet-actions"><li class="action-reply-container"><a class="with-icn"><span class="icon sm-reply" title="' + window.sL.replyVerb + '"></span></a></li><li class="action-del-container"><a class="with-icn"><span class="icon sm-trash" title="' + window.sL.deleteVerb + '"></span></a></li></i></li><li class="action-fav-container"><a class="with-icn"><span class="icon sm-fav" title="' + window.sL.favoriteVerb + '"></span></a></li></ul></div></div></div></div>';
|
||||
queetHtml = detectRTL(queetHtml);
|
||||
|
||||
// popup reply
|
||||
|
@ -2462,16 +2462,22 @@ $('body').on('click', '.queet-toolbar button',function () {
|
|||
// if the queet is in conversation, add it to parent's conversation
|
||||
if($('.stream-item.replying-to').length > 0 && $('.stream-item.replying-to').hasClass('conversation')) {
|
||||
var insertedTempQueet = $(queetHtml).appendTo($('.stream-item.replying-to').parent());
|
||||
findAndMarkLastVisibleInConversation($('.stream-item.replying-to').parent());
|
||||
insertedTempQueet.parent().children('.view-more-container-bottom').remove(); // remove any view-more-container-bottom:s, they only cause trouble at this point
|
||||
tempQueetInsertedInConversation = true;
|
||||
}
|
||||
// if the queet is expanded, add it to its conversation
|
||||
else if($('.stream-item.replying-to').length > 0 && $('.stream-item.replying-to').hasClass('expanded')) {
|
||||
var insertedTempQueet = $(queetHtml).appendTo($('.stream-item.replying-to'));
|
||||
findAndMarkLastVisibleInConversation($('.stream-item.replying-to'));
|
||||
insertedTempQueet.parent().children('.view-more-container-bottom').remove(); // remove any view-more-container-bottom:s, they only cause trouble at this point
|
||||
tempQueetInsertedInConversation = true;
|
||||
}
|
||||
// maybe the replying-to class is missing but we still have a suiting place to add it
|
||||
else if($('.stream-item.expanded[data-quitter-id="' + in_reply_to_status_id + '"]').length > 0) {
|
||||
var insertedTempQueet = $(queetHtml).appendTo($('.stream-item.expanded[data-quitter-id="' + in_reply_to_status_id + '"]'));
|
||||
findAndMarkLastVisibleInConversation($('.stream-item.expanded[data-quitter-id="' + in_reply_to_status_id + '"]'));
|
||||
insertedTempQueet.parent().children('.view-more-container-bottom').remove(); // remove any view-more-container-bottom:s, they only cause trouble at this point
|
||||
tempQueetInsertedInConversation = true;
|
||||
}
|
||||
// if we can't find a proper place, add it to top and remove conversation class
|
||||
|
@ -2528,7 +2534,24 @@ $('body').on('click', '.queet-toolbar button',function () {
|
|||
}
|
||||
}
|
||||
else {
|
||||
insertedTempQueet.after(queetHtml);
|
||||
var newInsertedQueet = $(queetHtml).insertBefore(insertedTempQueet);
|
||||
findAndMarkLastVisibleInConversation(insertedTempQueet.parent());
|
||||
|
||||
// make ranting easier, move the reply-form to this newly created notice
|
||||
// if we have not started writing in it, or if it's missing
|
||||
// only if this is an expanded conversation
|
||||
// and only if we're ranting, i.e. no replies the queetbox
|
||||
var parentQueetBox = insertedTempQueet.parent().find('.inline-reply-queetbox');
|
||||
if(parentQueetBox.length == 0
|
||||
|| parentQueetBox.children('.syntax-middle').css('display') == 'none') {
|
||||
if(insertedTempQueet.parent().hasClass('expanded') || insertedTempQueet.parent().hasClass('conversation')) {
|
||||
console.log(parentQueetBox.attr('data-replies-text'));
|
||||
if(parentQueetBox.children('.queet-box').attr('data-replies-text') == '') {
|
||||
insertedTempQueet.parent().find('.inline-reply-queetbox').remove();
|
||||
newInsertedQueet.children('.queet').append(replyFormHtml(newInsertedQueet,newInsertedQueet.attr('data-quitter-id')));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// remove temp queet
|
||||
|
@ -2629,13 +2652,14 @@ $('body').on('click contextmenu','.queet-box-syntax',function () {
|
|||
$(this)[0].addEventListener("paste", stripHtmlFromPaste);
|
||||
if(typeof $(this).attr('data-replies-text') != 'undefined') {
|
||||
$(this).html(decodeURIComponent($(this).attr('data-replies-text')));
|
||||
var repliesLen = decodeURIComponent($(this).attr('data-replies-text')).length-5;
|
||||
var repliesLen = decodeURIComponent($(this).attr('data-replies-text')).replace(' ',' ').length;
|
||||
setSelectionRange($(this)[0], repliesLen, repliesLen);
|
||||
}
|
||||
else {
|
||||
$(this).html('');
|
||||
}
|
||||
$(this).trigger('input');
|
||||
$(this).closest('.stream-item').addClass('replying-to');
|
||||
}
|
||||
});
|
||||
$('body').on('mousedown','.syntax-two',function () {
|
||||
|
@ -2687,6 +2711,7 @@ $('body').on('blur','.queet-box-syntax',function (e) {
|
|||
});
|
||||
|
||||
function collapseQueetBox(qB) {
|
||||
qB.closest('.stream-item').removeClass('replying-to');
|
||||
qB.siblings('.upload-image-container').remove();
|
||||
qB.siblings('.syntax-middle').css('display','none');
|
||||
qB.siblings('.syntax-two').css('display','none');
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"Diese Liste gibt es nicht.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -160,5 +160,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"אין רשימה כזו.",
|
||||
"emailAlreadyInUse":"כבר בשימוש",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"Det eksisterer ingen slik liste.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -159,5 +159,7 @@
|
|||
"ERRORcouldNotFindList":"Det finns ingen sådan lista.",
|
||||
"emailAlreadyInUse":"Används redan",
|
||||
"addEditLanguageLink":"Hjälp till att översätta {site-title} till ett annat språk",
|
||||
"onlyPartlyTranslated":"Bara {percent}% av gränssnittet är översatt till svenska. Du kan hjälpa till med översättningen på <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitters hemsida</a>"
|
||||
"onlyPartlyTranslated":"Bara {percent}% av gränssnittet är översatt till svenska. Du kan hjälpa till med översättningen på <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitters hemsida</a>",
|
||||
"startRant":"Påbörja en harang",
|
||||
"continueRant":"Fortsätt harangen"
|
||||
}
|
||||
|
|
|
@ -158,5 +158,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
|
@ -158,5 +158,7 @@
|
|||
"ERRORcouldNotFindList":"There is no such list.",
|
||||
"emailAlreadyInUse":"Already in use",
|
||||
"addEditLanguageLink":"Help translate {site-title} to another language",
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>"
|
||||
"onlyPartlyTranslated":"{site-title} is only partly translated to <em>{language-name}</em> ({percent}%). You can help complete the translation at <a href=\"https://git.gnu.io/h2p/Qvitter/tree/master/locale\">Qvitter's repository homepage</a>",
|
||||
"startRant":"Start a rant",
|
||||
"continueRant":"Continue the rant"
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user