From d1f04b3b9ab6090b55e1136e5e87aae7f6fd7392 Mon Sep 17 00:00:00 2001 From: abjectio Date: Thu, 10 Mar 2016 19:20:43 +0100 Subject: [PATCH 01/59] Updated Norwegian translation --- locale/nb.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/locale/nb.json b/locale/nb.json index 247f65f..1f36788 100644 --- a/locale/nb.json +++ b/locale/nb.json @@ -187,14 +187,14 @@ "unSandboxThisUser":"Opphev lekekasse for {nickname}", "ERRORfailedSandboxingUser":"Feilet ved forsøk på å sette i lekekasse/oppheve lekekasse av bruker", "ERRORfailedSilencingUser":"Feilet ved forstumming/oppheving av forstumming av bruker", - "muteUser":"Mute", - "unmuteUser":"Unmute", - "hideNotificationsFromMutedUsers":"Hide notifications from muted users", - "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", - "userMutes":"Accounts you're muting", - "userBlocked":"Blocked accounts", - "userMuted":"Muted accounts", - "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", - "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "muteUser":"Forstumme", + "unmuteUser":"Opphev forstumming", + "hideNotificationsFromMutedUsers":"Skjul notifikasjoner fra forstummet bruker", + "thisIsANoticeFromAMutedUser":"Du har forstummet eieren av denne quip. Klikk her for å se den alikevel.", + "userMutes":"Kontoer du har forstummet", + "userBlocked":"Blokkerte kontoer", + "userMuted":"Forstummede kontoer", + "mutedStreamDescription":"Du har skjul disse kontoene fra din tidslinje. Du vil alikevel motta notifikasjoner fra disse kontoene, hvis da du ikke velger "Skjul notifikasjoner fra forstummede brukere" fra tannhjul menyen på notifikasjons siden.", + "profileAndSettings":"Profiler og innstillinger", + "profileSettings":"Profil innstillinger" } From 0273158e4734f59ea1efad3918381ef471612c8c Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sat, 12 Mar 2016 15:08:22 +0100 Subject: [PATCH 02/59] replace unicode characters that librejs messes up --- js/dom-functions.js | 14 +++++++------- js/misc-functions.js | 10 +++++----- js/qvitter.js | 22 +++++++++++----------- js/stream-router.js | 2 +- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/js/dom-functions.js b/js/dom-functions.js index b1c2843..8e57c47 100644 --- a/js/dom-functions.js +++ b/js/dom-functions.js @@ -808,7 +808,7 @@ function setNewCurrentStream(streamObject,setLocation,fallbackId,actionOnSuccess // discard and remove any cached data that is not in this (new) format if(typeof haveOldStreamState.card == 'undefined' - || typeof haveOldStreamState.feed == 'undefined') { + || typeof haveOldStreamState.feed == 'undefined') { localStorageObjectCache_STORE('streamState',window.currentStreamObject.path, false); haveOldStreamState = false; } @@ -958,7 +958,7 @@ function setNewCurrentStream(streamObject,setLocation,fallbackId,actionOnSuccess } else if(error.status == 404) { if(streamObject.name == 'profile' - || streamObject.name == 'friends timeline' + || streamObject.name == 'friends timeline' || streamObject.name == 'mentions' || streamObject.name == 'favorites' || streamObject.name == 'subscribers' @@ -967,13 +967,13 @@ function setNewCurrentStream(streamObject,setLocation,fallbackId,actionOnSuccess showErrorMessage(window.sL.ERRORcouldNotFindUserWithNickname.replace('{nickname}',replaceHtmlSpecialChars(streamObject.nickname))); } else if(streamObject.name == 'group notice stream' - || streamObject.name == 'group member list' - || streamObject.name == 'group admin list') { + || streamObject.name == 'group member list' + || streamObject.name == 'group admin list') { showErrorMessage(window.sL.ERRORcouldNotFindGroupWithNickname.replace('{nickname}',replaceHtmlSpecialChars(streamObject.nickname))); } else if(streamObject.name == 'list notice stream' - || streamObject.name == 'list members' - || streamObject.name == 'list subscribers') { + || streamObject.name == 'list members' + || streamObject.name == 'list subscribers') { showErrorMessage(window.sL.ERRORcouldNotFindList); } else { @@ -1485,7 +1485,7 @@ function replyFormHtml(streamItem,qid) { 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') == '') { + 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 { diff --git a/js/misc-functions.js b/js/misc-functions.js index 492d2ad..da6e6e7 100644 --- a/js/misc-functions.js +++ b/js/misc-functions.js @@ -461,7 +461,7 @@ function userIsBlocked(userId) { · · · · · · · · · */ -function markAllNoticesFromBlockedUsersAsBlockedInJQueryObject(obj) { +function markAllNoticesFromBlockedUsersAsBlockedInJQueryObject(obj) { $.each(window.allBlocking,function(){ obj.find('.stream-item[data-user-id="' + this + '"]').addClass('profile-blocked-by-me'); obj.find('.stream-item[data-user-id="' + this + '"]').children('.queet').attr('data-tooltip',window.sL.thisIsANoticeFromABlockedUser); @@ -475,7 +475,7 @@ function markAllNoticesFromBlockedUsersAsBlockedInJQueryObject(obj) { · · · · · · · · · · */ -function markAllNoticesFromMutedUsersAsMutedInJQueryObject(obj) { +function markAllNoticesFromMutedUsersAsMutedInJQueryObject(obj) { $.each(obj.find('.stream-item'),function(){ if(isUserMuted($(this).attr('data-user-id'))) { @@ -496,7 +496,7 @@ function markAllNoticesFromMutedUsersAsMutedInJQueryObject(obj) { · · · · · · · · · · */ -function markAllProfileCardsFromMutedUsersAsMutedInDOM() { +function markAllProfileCardsFromMutedUsersAsMutedInDOM() { $.each($('body').find('.profile-header-inner'),function(){ if(isUserMuted($(this).attr('data-user-id'))) { @@ -938,7 +938,7 @@ function userArrayCacheStore(data) { window.convertStatusnetProfileUrlToUserArrayCacheKey[dataToStore.external.statusnet_profile_url] = key; } // store the time when this record was modified - if(dataToStore.local || dataToStore.external) { + if(dataToStore.local || dataToStore.external) { window.userArrayCache[key].modified = Date.now(); } } @@ -1733,7 +1733,7 @@ function validateRegisterForm(o) { return allFieldsValid; } -function validEmail(email) { +function validEmail(email) { if(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email)) { return true; } diff --git a/js/qvitter.js b/js/qvitter.js index 20a6cec..1d95115 100644 --- a/js/qvitter.js +++ b/js/qvitter.js @@ -222,8 +222,8 @@ window.userArrayLastRetrieved = new Object(); $('body').on('mouseover',function (e) { // no hovercards on these elements - if($(e.target).is('#user-queets') || $(e.target).closest('a').is('#user-queets') - || $(e.target).is('.tweet-stats') || $(e.target).closest('a').is('.tweet-stats')) { + if($(e.target).is('#user-queets') || $(e.target).closest('a').is('#user-queets') + || $(e.target).is('.tweet-stats') || $(e.target).closest('a').is('.tweet-stats')) { return true; } @@ -321,7 +321,7 @@ $('body').on('mouseover',function (e) { // if the user array has not been retrieved from the server for the last 60 seconds, // 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; // local users @@ -380,7 +380,7 @@ function getUserArrayData(maybeProfileUrl,maybeNickname,timeNow,targetElement,ca setTimeout(function(){ if(targetElement.is(":hover")) { // don't try this if we already tried it less than a minute ago - 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; getFromAPI('qvitter/external_user_show.json?profileurl=' + encodeURIComponent(maybeProfileUrl),function(data){ if(data && data.external !== null) { @@ -406,11 +406,11 @@ function getUserArrayData(maybeProfileUrl,maybeNickname,timeNow,targetElement,ca else if(streamObject && (streamObject.name == 'profile' || streamObject.name == 'profile by id')) { var nicknameOrId = streamObject.nickname; - if(!nicknameOrId) { + if(!nicknameOrId) { nicknameOrId = streamObject.id; } // don't query too often for the same user - 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; // query server and cache user data (done automatically in getFromAPI) getFromAPI('users/show.json?id=' + nicknameOrId, function(data){ @@ -1400,7 +1400,7 @@ $('body').on('click',function(e){ /* · · - · When clicking a function row in a stream menu – invoke the function + · When clicking a function row in a stream menu – invoke the function · · · · · · · · · · · · · · */ @@ -1847,7 +1847,7 @@ $('body').on('click','a', function(e) { 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())) { + 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 @ @@ -1873,7 +1873,7 @@ $('body').on('click','a', function(e) { setNewCurrentStream(pathToStreamRouter('group/' + window.groupMemberships[streamObject.id].username),true,streamObject.id); } // if the text() of the clicked element looks like a group 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())) { + 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 ! @@ -2049,7 +2049,7 @@ function checkForNewQueets() { $('body').addClass('loading-newer'); // only if logged in and only for notice or notification streams - 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 addThisStream = window.currentStreamObject.stream; var timeNow = new Date().getTime(); @@ -3471,7 +3471,7 @@ $('body').keyup(function (e) { && window.loggedIn !== false) { // shortcuts documentation on '?' - if(e.shiftKey && (e.which == 171 || e.which == 191)) { + if(e.shiftKey && (e.which == 171 || e.which == 191)) { $('#shortcuts-link').click(); } diff --git a/js/stream-router.js b/js/stream-router.js index 0928b73..ee14eb7 100644 --- a/js/stream-router.js +++ b/js/stream-router.js @@ -182,7 +182,7 @@ function pathToStreamRouter(path) { } // the whole known network - if(path.length == 0 || path == 'main/all') { + if(path.length == 0 || path == 'main/all') { streamObject.path = 'main/all'; streamObject.name = 'public and external timeline'; streamObject.streamHeader = window.sL.publicAndExtTimeline; From 88d8a8c1af2764fd2cc809fa48d45437b1c3a89f Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sat, 12 Mar 2016 15:08:46 +0100 Subject: [PATCH 03/59] add license that librejs understands --- js/lib/bowser.min.js | 36 ++++++++++++++++++++++++++++----- js/lib/xregexp-all-3.0.0-pre.js | 34 ++++++++++++++++++++++++++----- 2 files changed, 60 insertions(+), 10 deletions(-) diff --git a/js/lib/bowser.min.js b/js/lib/bowser.min.js index 90c3dc2..66bc180 100644 --- a/js/lib/bowser.min.js +++ b/js/lib/bowser.min.js @@ -1,6 +1,32 @@ -/*! - * Bowser - a browser detector - * https://github.com/ded/bowser - * MIT License | (c) Dustin Diaz 2015 - */ +/* + +@licstart The following is the entire license notice for the +JavaScript code in this page. + +Copyright (c) Dustin Diaz 2015 MIT License https://github.com/ded/bowser + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +@licend The above is the entire license notice +for the JavaScript code in this page. + +*/ + !function(e,t){typeof module!="undefined"&&module.exports?module.exports=t():typeof define=="function"&&define.amd?define(t):this[e]=t()}("bowser",function(){function t(t){function n(e){var n=t.match(e);return n&&n.length>1&&n[1]||""}function r(e){var n=t.match(e);return n&&n.length>1&&n[2]||""}var i=n(/(ipod|iphone|ipad)/i).toLowerCase(),s=/like android/i.test(t),o=!s&&/android/i.test(t),u=/CrOS/.test(t),a=n(/edge\/(\d+(\.\d+)?)/i),f=n(/version\/(\d+(\.\d+)?)/i),l=/tablet/i.test(t),c=!l&&/[^-]mobi/i.test(t),h;/opera|opr/i.test(t)?h={name:"Opera",opera:e,version:f||n(/(?:opera|opr)[\s\/](\d+(\.\d+)?)/i)}:/yabrowser/i.test(t)?h={name:"Yandex Browser",yandexbrowser:e,version:f||n(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)}:/windows phone/i.test(t)?(h={name:"Windows Phone",windowsphone:e},a?(h.msedge=e,h.version=a):(h.msie=e,h.version=n(/iemobile\/(\d+(\.\d+)?)/i))):/msie|trident/i.test(t)?h={name:"Internet Explorer",msie:e,version:n(/(?:msie |rv:)(\d+(\.\d+)?)/i)}:u?h={name:"Chrome",chromeBook:e,chrome:e,version:n(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:/chrome.+? edge/i.test(t)?h={name:"Microsoft Edge",msedge:e,version:a}:/chrome|crios|crmo/i.test(t)?h={name:"Chrome",chrome:e,version:n(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:i?(h={name:i=="iphone"?"iPhone":i=="ipad"?"iPad":"iPod"},f&&(h.version=f)):/sailfish/i.test(t)?h={name:"Sailfish",sailfish:e,version:n(/sailfish\s?browser\/(\d+(\.\d+)?)/i)}:/seamonkey\//i.test(t)?h={name:"SeaMonkey",seamonkey:e,version:n(/seamonkey\/(\d+(\.\d+)?)/i)}:/firefox|iceweasel/i.test(t)?(h={name:"Firefox",firefox:e,version:n(/(?:firefox|iceweasel)[ \/](\d+(\.\d+)?)/i)},/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(t)&&(h.firefoxos=e)):/silk/i.test(t)?h={name:"Amazon Silk",silk:e,version:n(/silk\/(\d+(\.\d+)?)/i)}:o?h={name:"Android",version:f}:/phantom/i.test(t)?h={name:"PhantomJS",phantom:e,version:n(/phantomjs\/(\d+(\.\d+)?)/i)}:/blackberry|\bbb\d+/i.test(t)||/rim\stablet/i.test(t)?h={name:"BlackBerry",blackberry:e,version:f||n(/blackberry[\d]+\/(\d+(\.\d+)?)/i)}:/(web|hpw)os/i.test(t)?(h={name:"WebOS",webos:e,version:f||n(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)},/touchpad\//i.test(t)&&(h.touchpad=e)):/bada/i.test(t)?h={name:"Bada",bada:e,version:n(/dolfin\/(\d+(\.\d+)?)/i)}:/tizen/i.test(t)?h={name:"Tizen",tizen:e,version:n(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i)||f}:/safari/i.test(t)?h={name:"Safari",safari:e,version:f}:h={name:n(/^(.*)\/(.*) /),version:r(/^(.*)\/(.*) /)},!h.msedge&&/(apple)?webkit/i.test(t)?(h.name=h.name||"Webkit",h.webkit=e,!h.version&&f&&(h.version=f)):!h.opera&&/gecko\//i.test(t)&&(h.name=h.name||"Gecko",h.gecko=e,h.version=h.version||n(/gecko\/(\d+(\.\d+)?)/i)),!h.msedge&&(o||h.silk)?h.android=e:i&&(h[i]=e,h.ios=e);var p="";h.windowsphone?p=n(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i):i?(p=n(/os (\d+([_\s]\d+)*) like mac os x/i),p=p.replace(/[_\s]/g,".")):o?p=n(/android[ \/-](\d+(\.\d+)*)/i):h.webos?p=n(/(?:web|hpw)os\/(\d+(\.\d+)*)/i):h.blackberry?p=n(/rim\stablet\sos\s(\d+(\.\d+)*)/i):h.bada?p=n(/bada\/(\d+(\.\d+)*)/i):h.tizen&&(p=n(/tizen[\/\s](\d+(\.\d+)*)/i)),p&&(h.osversion=p);var d=p.split(".")[0];if(l||i=="ipad"||o&&(d==3||d==4&&!c)||h.silk)h.tablet=e;else if(c||i=="iphone"||i=="ipod"||o||h.blackberry||h.webos||h.bada)h.mobile=e;return h.msedge||h.msie&&h.version>=10||h.yandexbrowser&&h.version>=15||h.chrome&&h.version>=20||h.firefox&&h.version>=20||h.safari&&h.version>=6||h.opera&&h.version>=10||h.ios&&h.osversion&&h.osversion.split(".")[0]>=6||h.blackberry&&h.version>=10.1?h.a=e:h.msie&&h.version<10||h.chrome&&h.version<20||h.firefox&&h.version<20||h.safari&&h.version<6||h.opera&&h.version<10||h.ios&&h.osversion&&h.osversion.split(".")[0]<6?h.c=e:h.x=e,h}var e=!0,n=t(typeof navigator!="undefined"?navigator.userAgent:"");return n.test=function(e){for(var t=0;t - * Steven Levithan (c) 2012-2015 MIT License +/* + +@licstart The following is the entire license notice for the +JavaScript code in this page. + +Steven Levithan (c) 2012-2015 MIT License http://xregexp.com/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +@licend The above is the entire license notice +for the JavaScript code in this page. + */ // Module systems magic dance. Don't use strict mode for this function, so it can assign to global. @@ -4227,4 +4252,3 @@ var XRegExp = (function(undefined) { return XRegExp; })); - From f03904a1e37837895b34eb5476a51c31a8ecec7b Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sat, 12 Mar 2016 15:09:28 +0100 Subject: [PATCH 04/59] remove some stuff that librejs threw "parsing error" on for unknown reason. hopefully we don't need it --- js/lib/lz-string.js | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/js/lib/lz-string.js b/js/lib/lz-string.js index 2c4a11a..4d55765 100644 --- a/js/lib/lz-string.js +++ b/js/lib/lz-string.js @@ -1,11 +1,27 @@ -// Copyright (c) 2013 Pieroxy -// This work is free. You can redistribute it and/or modify it -// under the terms of the WTFPL, Version 2 -// For more information see LICENSE.txt or http://www.wtfpl.net/ -// -// For more information, the home page: -// http://pieroxy.net/blog/pages/lz-string/testing.html -// +/* + +@licstart The following is the entire license notice for the +JavaScript code in this page. + +DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE +Version 2, December 2004 + +Copyright (c) 2013 Pieroxy http://pieroxy.net/blog/pages/lz-string/testing.html + +Everyone is permitted to copy and distribute verbatim or modified +copies of this license document, and changing it is allowed as long +as the name is changed. + +WHAT THE FUCK YOU WANT TO PUBLIC LICENSE +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. You just DO WHAT THE FUCK YOU WANT TO. + +@licend The above is the entire license notice +for the JavaScript code in this page. + +*/ + // LZ-based compression algorithm, version 1.4.4 var LZString = (function() { @@ -493,9 +509,3 @@ var LZString = { }; return LZString; })(); - -if (typeof define === 'function' && define.amd) { - define(function () { return LZString; }); -} else if( typeof module !== 'undefined' && module != null ) { - module.exports = LZString -} From d0d54dac159afda52d2951c2fbb1dcccabda1807 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sat, 12 Mar 2016 15:18:27 +0100 Subject: [PATCH 05/59] ahorita update --- locale/es_ahorita.json | 168 ++++++++++++++++++++--------------------- 1 file changed, 84 insertions(+), 84 deletions(-) diff --git a/locale/es_ahorita.json b/locale/es_ahorita.json index e00f15d..f4df9fa 100644 --- a/locale/es_ahorita.json +++ b/locale/es_ahorita.json @@ -19,7 +19,7 @@ "expand": "Abrir", "collapse": "Reducir", "details": "Detalles", - "expandFullConversation": "Ver toda la plática", + "expandFullConversation": "Ver la conversación entera", "replyVerb": "Responder", "requeetVerb": "Requittear", "favoriteVerb": "Favorito", @@ -93,12 +93,12 @@ "linkColor": "Color del enlace", "backgroundColor": "Color de fondo", "newToQuitter": "¿Eres nuevo en {site-title}?", - "signUp": "¡Regístrate wey!", + "signUp": "Regístrate", "signUpFullName": "Nombre completo", "signUpEmail": "Correo electrónico", - "signUpButtonText": "¡Regístrate en {site-title} wey!", + "signUpButtonText": "Regístrate en {site-title}", "welcomeHeading": "Bienvenido a {site-title}", - "welcomeText": "Somos una
« Federación » significa que no debes tener una cuenta de {site-title} para seguir su usuarios, estar seguido por o comunicar con ellos. ¡Puedes registrar con cualquier servidor StatusNet o GNU social, o cualquier servicio utilizando el protocolo OStatus! También no debes registrarse en cualquier servicio para participar - simplemente instala el software GNU social en tu propio servidor. (:
federación
de microblogueros que, como tú, estan motivados por ética y solidaridad y quieren abandonar los servicios capitalistas centralizados.", + "welcomeText": "Somos una
«Federación» significa que no necesitas tener una cuenta de {site-title} para seguir a sus usuarios, estar seguido por o communicarte con ellos. ¡Puedes registrarte con cualquier servidor StatusNet o GNU social, o cualquier servicio utilizando el protocolo OStatus! Tampoco es preciso registrarse en algún servicio para participar, simplemente instala el software GNU social en tu propio servidor. (:
federación
de microblogueros que, como tú, están motivados por ética y solidaridad, y quieren abandonar los servicios capitalistas centralizados.", "registerNickname": "Nombre de usuario", "registerHomepage": "Sitio web", "registerBio": "Biografía", @@ -112,89 +112,89 @@ "xRepeatedYourQueet": "te ha requitteado ", "xStartedFollowingYou": "te ha seguido", "followsYou": "te sigue", - "FAQ": "Preguntas Frecuentosas", - "inviteAFriend": "¡Invita a tus cuates!", + "FAQ": "Preguntas Frecuentes", + "inviteAFriend": "¡Invita a tus amistades!", "goToExternalProfile": "Ir al perfil completo", "cropAndSave": "Recortar y guardar", "showTerms": "Leer los términos de uso", "ellipsisMore": "Más", - "blockUser": "Bloquear {username}", - "goToOriginalNotice": "Go to original notice", - "goToTheUsersRemoteProfile": "Go to the user's remote profile", - "clickToDrag":"Click to drag", - "keyboardShortcuts":"Keyboard shortcuts", - "classicInterface":"Classic {site-title}", - "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", - "ERRORsomethingWentWrong":"Something went wrong.", - "ERRORmustBeLoggedIn":"You must be logged in to view this stream.", - "ERRORcouldNotFindUserWithNickname":"Could not find a user with nickname \"{nickname}\" on this server", - "ERRORcouldNotFindGroupWithNickname":"Could not find a group with nickname \"{nickname}\" on this server", - "ERRORcouldNotFindPage":"Could not find that page.", - "ERRORnoticeRemoved": "This notice has been removed.", - "ERRORnoContactWithServer": "Can not establish a connection to the server. The server could be overloaded, or there might be a problem with your internet connecton. Please try again later!", - "ERRORattachmentUploadFailed": "The upload failed. The format might be unsupported or the size too large.", - "hideRepliesToPeopleIDoNotFollow":"Hide replies to people I don't follow", - "markAllNotificationsAsSeen":"Mark all notifications as seen", - "notifyRepliesAndMentions":"Mentions and replies", - "notifyFavs":"Favorites", + "blockUser": "Bloquear a {username}", + "goToOriginalNotice": "Ir al queet original", + "goToTheUsersRemoteProfile": "Ir al perfil del usuario", + "clickToDrag":"Clic para arrastrar", + "keyboardShortcuts":"Atajos del teclado", + "classicInterface":"Estilo clásico de {site-title}", + "accessibilityToggleLink":"Para una mejor accesibilidad, clica en este enlace para cambiar a la vista clásica", + "tooltipBookmarkStream":"Añadir este stream a tus favoritos", + "tooltipTopMenu":"Menú y configuración", + "tooltipAttachImage":"Añade una imagen", + "tooltipShortenUrls":"Acortar todas las URL del Queet", + "tooltipReloadStream":"Actualiza el stream", + "tooltipRemoveBookmark":"Eliminar el marcador", + "clearHistory":"Limpiar el historial de navegación", + "ERRORsomethingWentWrong":"Algo ha ido mal.", + "ERRORmustBeLoggedIn":"Debes iniciar sesión para ver el stream.", + "ERRORcouldNotFindUserWithNickname":"No se ha encontrado el usuario con el apodo \"{nickname}\" en este servidor", + "ERRORcouldNotFindGroupWithNickname":"No se ha encontrado el grupo con el nombre \"{nickname}\" en este servidor", + "ERRORcouldNotFindPage":"No se pudo encontrar la página.", + "ERRORnoticeRemoved": "Este aviso se ha eliminado.", + "ERRORnoContactWithServer": "No se puede establecer una conexión con el servidor. Puede que el servidor esté sobrecargado, o que haya algún problema con tu conexión a Internet. ¡Por favor, inténtalo más tarde!", + "ERRORattachmentUploadFailed": "La subida ha fallado. El formato puede no estar soportado o tener un tamaño demasiado grande.", + "hideRepliesToPeopleIDoNotFollow":"Ocultar respuestas de gente a la que no sigo", + "markAllNotificationsAsSeen":"Marcar todas las notificaciones como vistas", + "notifyRepliesAndMentions":"Menciones y respuestas", + "notifyFavs":"Favoritos", "notifyRepeats":"Requeets", - "notifyFollows":"New followers", - "timelineOptions":"Timeline options", - "ERRORfailedSavingYourSetting":"Failed saving your setting", - "ERRORfailedMarkingAllNotificationsAsRead":"Failed marking all notifications as seen.", - "newNotification": "{new-notice-count} new notification", - "newNotifications": "{new-notice-count} new notifications", - "thisIsANoticeFromABlockedUser":"Warning: This is a notice from a user you have blocked. Click to show it.", - "nicknamesListWithListName":"{nickname}’s list: {list-name}", - "myListWithListName":"My list: {list-name}", - "listMembers":"Members", - "listSubscribers":"Subscribers", - "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 {language-name} ({percent}%). You can help complete the translation at Qvitter's repository homepage", - "startRant":"Start a rant", - "continueRant":"Continue the rant", - "hideEmbeddedInTimeline":"Hide embedded content in this timeline", - "hideQuotesInTimeline":"Hide quotes in this timeline", - "userBlocks":"Accounts you're blocking", - "buttonBlocked":"Blocked", - "buttonUnblock":"Unblock", - "failedBlockingUser":"Failed to block the user.", - "failedUnblockingUser":"Failed to unblock the user.", - "unblockUser": "Unblock {username}", - "tooltipBlocksYou":"You are blocked from following {username}.", - "silenced":"Silenced", - "silencedPlural":"Silenced profiles", - "silencedUsersOnThisInstance":"Silenced profiles on {site-title}", - "sandboxed":"Sandboxed", - "sandboxedPlural":"Sandboxed profiles", - "sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}", - "silencedStreamDescription":"Silenced users can't login or post quips and the quips they've already posted are hidden. For local users it's like a delete that can be reversed, for remote users it's like a site wide block.", - "sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Apart from that, they can use the site like any other user.", - "onlyShowNotificationsFromUsersIFollow":"Only show notifications from users I follow", - "userOptions":"More user actions", - "silenceThisUser":"Silence {nickname}", - "sandboxThisUser":"Sandbox {nickname}", - "unSilenceThisUser":"Unsilence {nickname}", - "unSandboxThisUser":"Unsandbox {nickname}", - "ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user", - "ERRORfailedSilencingUser":"Failed silencing/unsilencing the user", - "muteUser":"Mute", - "unmuteUser":"Unmute", - "hideNotificationsFromMutedUsers":"Hide notifications from muted users", - "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", - "userMutes":"Accounts you're muting", - "userBlocked":"Blocked accounts", - "userMuted":"Muted accounts", - "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", - "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "notifyFollows":"Nuevos seguidores", + "timelineOptions":"Opciones de línea temporal", + "ERRORfailedSavingYourSetting":"Error al guardar la configuración", + "ERRORfailedMarkingAllNotificationsAsRead":"Error al marcar todas las notificaciones como vistas.", + "newNotification": "{new-notice-count} nueva notificación", + "newNotifications": "{new-notice-count} nuevas notificaciones", + "thisIsANoticeFromABlockedUser":"Atención: Ésta es una nota de un usuario que bloqueaste. Pulsa para mostrarla.", + "nicknamesListWithListName":"Lista de {nickname}: {list-name}", + "myListWithListName":"Mi lista: {list-name}", + "listMembers":"Miembros", + "listSubscribers":"Suscriptores", + "ERRORcouldNotFindList":"La lista no existe.", + "emailAlreadyInUse":"Ya en uso", + "addEditLanguageLink":"Ayuda a traducir {site-title} a otro idioma.", + "onlyPartlyTranslated":"{site-title} sólo está parcialmente traducido al {language-name} ({percent}%). Puedes ayudar a completar la traducción en Página del repositorio de Qvitter", + "startRant":"Iniciar una conversación", + "continueRant":"Continuar la conversación", + "hideEmbeddedInTimeline":"Ocultar contenido incrustado en esta línea temporal", + "hideQuotesInTimeline":"Ocultar citas en esta línea temporal", + "userBlocks":"Usuarios a quienes has bloqueado", + "buttonBlocked":"Bloqueado", + "buttonUnblock":"Desbloquear", + "failedBlockingUser":"Falló el bloqueo al usuario.", + "failedUnblockingUser":"Falló el desbloqueo del usuario .", + "unblockUser": "Desbloquear a {username}", + "tooltipBlocksYou":"{username} te ha bloqueado.", + "silenced":"Silenciado", + "silencedPlural":"Perfiles silenciados", + "silencedUsersOnThisInstance":"Perfiles silenciados en {site-title}", + "sandboxed":"Aislado", + "sandboxedPlural":"Perfiles aislados", + "sandboxedUsersOnThisInstance":"Perfiles aislados en {site-title}", + "silencedStreamDescription":"Los usuarios silenciados no pueden acceder o pulicar quips y los quips que ya hayan publicados están ocultos. Para usuarios locales es como una eliminación que puede revertirse; para usuarios remotos es como un bloqueo global.", + "sandboxedStreamDescription":"Los quips de usuarios aislados están excluidos de la línea temporal pública y de toda la red conocida. Los quips publicados durante el aislamiento no se incluirán en las líneas temporales públicas aunque se desaísle al usuario.", + "onlyShowNotificationsFromUsersIFollow":"Sólo mostrar notificaciones de usuarios a quienes sigo", + "userOptions":"Más opciones de usuario", + "silenceThisUser":"Silenciar a {nickname}", + "sandboxThisUser":"Aislar a {nickname}", + "unSilenceThisUser":"Desilenciar a {nickname}", + "unSandboxThisUser":"Desaislar a {nickname}", + "ERRORfailedSandboxingUser":"Falló el aislamiento/desaislamiento del usuario", + "ERRORfailedSilencingUser":"Falló el silenciamiento/desilenciamiento del usuario", + "muteUser":"Silenciar", + "unmuteUser":"Desilenciar", + "hideNotificationsFromMutedUsers":"Ocultar notificaciones de usuarios silenciados", + "thisIsANoticeFromAMutedUser":"Has silenciado al autor de este quid. Haz clic para mostrarlo igualmente.", + "userMutes":"Usuarios a quienes has silenciado", + "userBlocked":"Cuentas bloqueadas", + "userMuted":"Cuentas silenciadas", + "mutedStreamDescription":"Has ocultado estas cuentas de tu línea temporal. Seguirás recibiendo notificaciones de dichas cuentas a menos que selecciones "Ocultar notificaciones de usuarios silencioados" desde el menú con forma de rueda dentada en la página de notificaciones.", + "profileAndSettings":"Perfil y ajustes", + "profileSettings":"Ajustes del perfil" } From 220d54f19956f6928c291acec929d7e5da396b5e Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sat, 12 Mar 2016 15:18:58 +0100 Subject: [PATCH 06/59] latin american spanish (manual merge of !41 because of merge conflicts) --- locale/es_419.json | 200 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 locale/es_419.json diff --git a/locale/es_419.json b/locale/es_419.json new file mode 100644 index 0000000..9973c89 --- /dev/null +++ b/locale/es_419.json @@ -0,0 +1,200 @@ +{ + "directionality":"ltr", + "languageName": "Español (Latinoamérica)‎", + "loginUsername": "Nombre de usuario o correo electrónico", + "loginPassword": "Contraseña", + "loginSignIn": "Iniciar sesión", + "loginRememberMe": "Recordar mis datos", + "loginForgotPassword": "¿Olvidaste tu contraseña?", + "notices": "Queets", + "followers": "Seguidores", + "following": "Siguiendo", + "groups": "Grupos", + "compose": "Crear un nuevo Queet...", + "queetVerb": "Quittear", + "queetsNounPlural": "Queets", + "logout": "Cerrar sesión", + "languageSelected": "Idioma:", + "viewMyProfilePage": "Ver mi perfil", + "expand": "Abrir", + "collapse": "Reducir", + "details": "Detalles", + "expandFullConversation": "Ver toda la plática", + "replyVerb": "Responder", + "requeetVerb": "Requittear", + "favoriteVerb": "Favorito", + "requeetedVerb": "Requitteado", + "favoritedVerb": "Marcado como favorito", + "replyTo": "Responder a", + "requeetedBy": "Requitteado por {requeeted-by}", + "favoriteNoun": "Favorito", + "favoritesNoun": "Favoritos", + "requeetNoun": "Requeet", + "requeetsNoun": "Requeets", + "newQueet": "{new-notice-count} nuevo Queet", + "newQueets": "{new-notice-count} nuevos Queets", + "longmonthsJanuary": "enero", + "longmonthsFebruary": "febrero", + "longmonthsMars": "marzo", + "longmonthsApril": "abril", + "longmonthsMay": "mayo", + "longmonthsJune": "junio", + "longmonthsJuly": "julio", + "longmonthsAugust": "agosto", + "longmonthsSeptember": "septiembre", + "longmonthsOctober": "octubre", + "longmonthsNovember": "noviembre", + "longmonthsDecember": "diciembre", + "shortmonthsJanuary": "ene", + "shortmonthsFebruary": "feb", + "shortmonthsMars": "mar", + "shortmonthsApril": "abr", + "shortmonthsMay": "may", + "shortmonthsJune": "jun", + "shortmonthsJuly": "jul", + "shortmonthsAugust": "ago", + "shortmonthsSeptember": "sept", + "shortmonthsOctober": "oct", + "shortmonthsNovember": "nov", + "shortmonthsDecember": "dic", + "time12am": "{time} AM", + "time12pm": "{time} PM", + "longDateFormat": "{time24} - {day} {month} {year}", + "shortDateFormatSeconds": "{seconds}s", + "shortDateFormatMinutes": "{minutes}min", + "shortDateFormatHours": "{hours}h", + "shortDateFormatDate": "{day} {month}", + "shortDateFormatDateAndY": "{day} {month} {year}", + "now": "ahorita", + "posting": "enviando", + "viewMoreInConvBefore": "← Ver más en la conversación", + "viewMoreInConvAfter": "Ver más en la conversación →", + "mentions": "Menciones", + "timeline": "Línea temporal", + "publicTimeline": "Línea temporal pública", + "publicAndExtTimeline": "Toda la red conocida", + "searchVerb": "Buscar ahorita", + "deleteVerb": "Eliminar", + "cancelVerb": "Cancelar", + "deleteConfirmation": "¿Estás seguro de que quieres eliminar este queet?", + "userExternalFollow": "Seguir", + "userExternalFollowHelp": "ID de tu cuenta (p.e. user@rainbowdash.net).", + "userFollow": "Seguir", + "userFollowing": "Siguiendo", + "userUnfollow": "Dejar de seguir", + "joinGroup": "Unirse al grupo", + "joinExternalGroup": "Unirse al grupo", + "isMemberOfGroup": "Miembro", + "leaveGroup": "Abandonar grupo", + "memberCount": "Miembros", + "adminCount": "Administradores", + "settings": "Configuración", + "saveChanges": "Guardar cambios", + "linkColor": "Color del enlace", + "backgroundColor": "Color de fondo", + "newToQuitter": "¿Eres nuevo en {site-title}?", + "signUp": "¡Regístrate!", + "signUpFullName": "Nombre completo", + "signUpEmail": "Correo electrónico", + "signUpButtonText": "Regístrate en {site-title}!", + "welcomeHeading": "Bienvenido a {site-title}", + "welcomeText": "Somos una
« Federación » significa que no debes tener una cuenta de {site-title} para seguir su usuarios, estar seguido por o comunicar con ellos. ¡Puedes registrar con cualquier servidor StatusNet o GNU social, o cualquier servicio utilizando el protocolo OStatus! También no debes registrarse en cualquier servicio para participar - simplemente instala el software GNU social en tu propio servidor. (:
federación
de microblogueros que, como tú, estan motivados por ética y solidaridad y quieren abandonar los servicios capitalistas centralizados.", + "registerNickname": "Nombre de usuario", + "registerHomepage": "Sitio web", + "registerBio": "Biografía", + "registerLocation": "Ubicación", + "registerRepeatPassword": "Verificar contraseña", + "moreSettings": "Más opciones", + "otherServers": "De manera alternativa, puedes crear una cuenta en otro servidor de la red GNU social. Comparativa", + "editMyProfile": "Editar perfil", + "notifications": "Notificaciones", + "xFavedYourQueet": "marcó tu Queet como favorito", + "xRepeatedYourQueet": "te ha requitteado ", + "xStartedFollowingYou": "te ha seguido", + "followsYou": "te sigue", + "FAQ": "Preguntas Frecuentosas", + "inviteAFriend": "¡Invita a tus cuates!", + "goToExternalProfile": "Ir al perfil completo", + "cropAndSave": "Recortar y guardar", + "showTerms": "Leer los términos de uso", + "ellipsisMore": "Más", + "blockUser": "Bloquear {username}", + "goToOriginalNotice": "Go to original notice", + "goToTheUsersRemoteProfile": "Go to the user's remote profile", + "clickToDrag":"Click to drag", + "keyboardShortcuts":"Keyboard shortcuts", + "classicInterface":"Classic {site-title}", + "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", + "ERRORsomethingWentWrong":"Something went wrong.", + "ERRORmustBeLoggedIn":"You must be logged in to view this stream.", + "ERRORcouldNotFindUserWithNickname":"Could not find a user with nickname \"{nickname}\" on this server", + "ERRORcouldNotFindGroupWithNickname":"Could not find a group with nickname \"{nickname}\" on this server", + "ERRORcouldNotFindPage":"Could not find that page.", + "ERRORnoticeRemoved": "This notice has been removed.", + "ERRORnoContactWithServer": "Can not establish a connection to the server. The server could be overloaded, or there might be a problem with your internet connecton. Please try again later!", + "ERRORattachmentUploadFailed": "The upload failed. The format might be unsupported or the size too large.", + "hideRepliesToPeopleIDoNotFollow":"Hide replies to people I don't follow", + "markAllNotificationsAsSeen":"Mark all notifications as seen", + "notifyRepliesAndMentions":"Mentions and replies", + "notifyFavs":"Favorites", + "notifyRepeats":"Requeets", + "notifyFollows":"New followers", + "timelineOptions":"Timeline options", + "ERRORfailedSavingYourSetting":"Failed saving your setting", + "ERRORfailedMarkingAllNotificationsAsRead":"Failed marking all notifications as seen.", + "newNotification": "{new-notice-count} new notification", + "newNotifications": "{new-notice-count} new notifications", + "thisIsANoticeFromABlockedUser":"Warning: This is a notice from a user you have blocked. Click to show it.", + "nicknamesListWithListName":"{nickname}’s list: {list-name}", + "myListWithListName":"My list: {list-name}", + "listMembers":"Members", + "listSubscribers":"Subscribers", + "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 {language-name} ({percent}%). You can help complete the translation at Qvitter's repository homepage", + "startRant":"Start a rant", + "continueRant":"Continue the rant", + "hideEmbeddedInTimeline":"Hide embedded content in this timeline", + "hideQuotesInTimeline":"Hide quotes in this timeline", + "userBlocks":"Accounts you're blocking", + "buttonBlocked":"Blocked", + "buttonUnblock":"Unblock", + "failedBlockingUser":"Failed to block the user.", + "failedUnblockingUser":"Failed to unblock the user.", + "unblockUser": "Unblock {username}", + "tooltipBlocksYou":"You are blocked from following {username}.", + "silenced":"Silenced", + "silencedPlural":"Silenced profiles", + "silencedUsersOnThisInstance":"Silenced profiles on {site-title}", + "sandboxed":"Sandboxed", + "sandboxedPlural":"Sandboxed profiles", + "sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}", + "silencedStreamDescription":"Silenced users can't login or post quips and the quips they've already posted are hidden. For local users it's like a delete that can be reversed, for remote users it's like a site wide block.", + "sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Apart from that, they can use the site like any other user.", + "onlyShowNotificationsFromUsersIFollow":"Only show notifications from users I follow", + "userOptions":"More user actions", + "silenceThisUser":"Silence {nickname}", + "sandboxThisUser":"Sandbox {nickname}", + "unSilenceThisUser":"Unsilence {nickname}", + "unSandboxThisUser":"Unsandbox {nickname}", + "ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user", + "ERRORfailedSilencingUser":"Failed silencing/unsilencing the user", + "muteUser":"Mute", + "unmuteUser":"Unmute", + "hideNotificationsFromMutedUsers":"Hide notifications from muted users", + "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", + "userMutes":"Accounts you're muting", + "userBlocked":"Blocked accounts", + "userMuted":"Muted accounts", + "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", + "profileAndSettings":"Profile and settings", + "profileSettings":"Profile settings" +} From 3f1702e73e2451f41f3d5a079c56c8b65630d2a8 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sat, 12 Mar 2016 16:27:32 +0100 Subject: [PATCH 07/59] accommodate longer language names in menu --- actions/qvitter.php | 4 ++-- css/qvitter.css | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/actions/qvitter.php b/actions/qvitter.php index 895fae8..4e7cda0 100644 --- a/actions/qvitter.php +++ b/actions/qvitter.php @@ -496,7 +496,7 @@ class QvitterAction extends ApiAction // languages foreach($languagecodesandnames as $lancode=>$lan) { - print '
  • '.$lan['name'].'
  • '; + print '
  • '.$lan['name'].'
  • '; } ?> @@ -530,7 +530,7 @@ class QvitterAction extends ApiAction // languages foreach($languagecodesandnames as $lancode=>$lan) { - print '
  • '.$lan['name'].'
  • '; + print '
  • '.$lan['name'].'
  • '; } ?> diff --git a/css/qvitter.css b/css/qvitter.css index 8c7e045..07bb486 100644 --- a/css/qvitter.css +++ b/css/qvitter.css @@ -505,11 +505,13 @@ body.rtl .dropdown-menu li:not(.dropdown-caret) { font-size: 12px; font-weight: normal; line-height: 18px; - padding: 3px 15px 3px 22px; + overflow: hidden; + padding: 3px 0 3px 22px; position: relative; + text-decoration: none; + text-overflow: ellipsis; text-shadow: none; white-space: nowrap; - text-decoration: none; } body.rtl .dropdown-menu li:not(.dropdown-caret) a { padding: 3px 22px 3px 15px; From f3a762388cb6e7e030074d78d61c2ba5f56555a9 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sat, 12 Mar 2016 16:34:07 +0100 Subject: [PATCH 08/59] manual merge of !41 (failed last time somehow) --- locale/es_419.json | 152 ++++++++++++++++++++++----------------------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/locale/es_419.json b/locale/es_419.json index 9973c89..3c86784 100644 --- a/locale/es_419.json +++ b/locale/es_419.json @@ -1,6 +1,6 @@ { "directionality":"ltr", - "languageName": "Español (Latinoamérica)‎", + "languageName": "Español (Latinoamérica)", "loginUsername": "Nombre de usuario o correo electrónico", "loginPassword": "Contraseña", "loginSignIn": "Iniciar sesión", @@ -65,7 +65,7 @@ "shortDateFormatHours": "{hours}h", "shortDateFormatDate": "{day} {month}", "shortDateFormatDateAndY": "{day} {month} {year}", - "now": "ahorita", + "now": "ahora", "posting": "enviando", "viewMoreInConvBefore": "← Ver más en la conversación", "viewMoreInConvAfter": "Ver más en la conversación →", @@ -73,7 +73,7 @@ "timeline": "Línea temporal", "publicTimeline": "Línea temporal pública", "publicAndExtTimeline": "Toda la red conocida", - "searchVerb": "Buscar ahorita", + "searchVerb": "Buscar", "deleteVerb": "Eliminar", "cancelVerb": "Cancelar", "deleteConfirmation": "¿Estás seguro de que quieres eliminar este queet?", @@ -93,10 +93,10 @@ "linkColor": "Color del enlace", "backgroundColor": "Color de fondo", "newToQuitter": "¿Eres nuevo en {site-title}?", - "signUp": "¡Regístrate!", + "signUp": "Regístrate", "signUpFullName": "Nombre completo", "signUpEmail": "Correo electrónico", - "signUpButtonText": "Regístrate en {site-title}!", + "signUpButtonText": "Regístrate en {site-title}", "welcomeHeading": "Bienvenido a {site-title}", "welcomeText": "Somos una
    « Federación » significa que no debes tener una cuenta de {site-title} para seguir su usuarios, estar seguido por o comunicar con ellos. ¡Puedes registrar con cualquier servidor StatusNet o GNU social, o cualquier servicio utilizando el protocolo OStatus! También no debes registrarse en cualquier servicio para participar - simplemente instala el software GNU social en tu propio servidor. (:
    federación
    de microblogueros que, como tú, estan motivados por ética y solidaridad y quieren abandonar los servicios capitalistas centralizados.", "registerNickname": "Nombre de usuario", @@ -119,82 +119,82 @@ "showTerms": "Leer los términos de uso", "ellipsisMore": "Más", "blockUser": "Bloquear {username}", - "goToOriginalNotice": "Go to original notice", - "goToTheUsersRemoteProfile": "Go to the user's remote profile", - "clickToDrag":"Click to drag", - "keyboardShortcuts":"Keyboard shortcuts", - "classicInterface":"Classic {site-title}", - "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", - "ERRORsomethingWentWrong":"Something went wrong.", - "ERRORmustBeLoggedIn":"You must be logged in to view this stream.", - "ERRORcouldNotFindUserWithNickname":"Could not find a user with nickname \"{nickname}\" on this server", - "ERRORcouldNotFindGroupWithNickname":"Could not find a group with nickname \"{nickname}\" on this server", - "ERRORcouldNotFindPage":"Could not find that page.", - "ERRORnoticeRemoved": "This notice has been removed.", - "ERRORnoContactWithServer": "Can not establish a connection to the server. The server could be overloaded, or there might be a problem with your internet connecton. Please try again later!", - "ERRORattachmentUploadFailed": "The upload failed. The format might be unsupported or the size too large.", - "hideRepliesToPeopleIDoNotFollow":"Hide replies to people I don't follow", - "markAllNotificationsAsSeen":"Mark all notifications as seen", - "notifyRepliesAndMentions":"Mentions and replies", - "notifyFavs":"Favorites", + "goToOriginalNotice": "Ir a la noticia original", + "goToTheUsersRemoteProfile": "Ir al perfil remoto del usuario", + "clickToDrag":"Click para arrastrar", + "keyboardShortcuts":"Atajos de teclado", + "classicInterface":"Clasico {site-title}", + "accessibilityToggleLink":"Para una mejor accesibilidad, haz click en este link para cambiar a la interfaz clásica", + "tooltipBookmarkStream":"Añade esta conversación a tus marcadores", + "tooltipTopMenu":"Menú y configuraciones", + "tooltipAttachImage":"Adjunta una imagen", + "tooltipShortenUrls":"Corta todas las URLs en este Queet", + "tooltipReloadStream":"Refresca esta conversación", + "tooltipRemoveBookmark":"Borra este marcador", + "clearHistory":"Limpiar historial de navegación", + "ERRORsomethingWentWrong":"Algo salió mal.", + "ERRORmustBeLoggedIn":"Debes estar logueado para ver esta conversación.", + "ERRORcouldNotFindUserWithNickname":"No se pudo encontrar el usuario con este nickname \"{nickname}\" en el servidor", + "ERRORcouldNotFindGroupWithNickname":"No se pudo encontrar el grupo con este nickname \"{nickname}\" en el servidor", + "ERRORcouldNotFindPage":"No se pudo encontrar la página", + "ERRORnoticeRemoved": "Esta notica fue borrada", + "ERRORnoContactWithServer": "No se pudo establecer conexión con el servidor. El servidor puede estar sobre cargado, o puede haber un problema con tu conexión a internet. Por favor intenta mas tarde", + "ERRORattachmentUploadFailed": "La carga falló. El formato puede no ser soportado o el tamaño es muy grande.", + "hideRepliesToPeopleIDoNotFollow":"Ocultar respuestas de las personas que no sigo", + "markAllNotificationsAsSeen":"Marcar todas las notificaciones como vistas", + "notifyRepliesAndMentions":"Menciones y respuestas", + "notifyFavs":"Favoritos", "notifyRepeats":"Requeets", - "notifyFollows":"New followers", - "timelineOptions":"Timeline options", - "ERRORfailedSavingYourSetting":"Failed saving your setting", - "ERRORfailedMarkingAllNotificationsAsRead":"Failed marking all notifications as seen.", - "newNotification": "{new-notice-count} new notification", - "newNotifications": "{new-notice-count} new notifications", - "thisIsANoticeFromABlockedUser":"Warning: This is a notice from a user you have blocked. Click to show it.", - "nicknamesListWithListName":"{nickname}’s list: {list-name}", - "myListWithListName":"My list: {list-name}", - "listMembers":"Members", - "listSubscribers":"Subscribers", - "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 {language-name} ({percent}%). You can help complete the translation at Qvitter's repository homepage", - "startRant":"Start a rant", - "continueRant":"Continue the rant", - "hideEmbeddedInTimeline":"Hide embedded content in this timeline", - "hideQuotesInTimeline":"Hide quotes in this timeline", - "userBlocks":"Accounts you're blocking", - "buttonBlocked":"Blocked", - "buttonUnblock":"Unblock", - "failedBlockingUser":"Failed to block the user.", - "failedUnblockingUser":"Failed to unblock the user.", - "unblockUser": "Unblock {username}", - "tooltipBlocksYou":"You are blocked from following {username}.", - "silenced":"Silenced", - "silencedPlural":"Silenced profiles", - "silencedUsersOnThisInstance":"Silenced profiles on {site-title}", + "notifyFollows":"Nuevos seguidores", + "timelineOptions":"Opciones de la línea de tiempo", + "ERRORfailedSavingYourSetting":"Falló al guardar tus preferencias", + "ERRORfailedMarkingAllNotificationsAsRead":"Falló al marcar todas tus notificaciones como vistas.", + "newNotification": "{new-notice-count} nueva notificación", + "newNotifications": "{new-notice-count} nuevas notificaciones", + "thisIsANoticeFromABlockedUser":"Advertencia: Esta noticia es de un usuario que bloqueaste. Click para verla.", + "nicknamesListWithListName":"{nickname}’s lista: {list-name}", + "myListWithListName":"Mi lista: {list-name}", + "listMembers":"Miembros", + "listSubscribers":"Suscriptores", + "ERRORcouldNotFindList":"No hay una lista.", + "emailAlreadyInUse":"En uso", + "addEditLanguageLink":"Ayuda a traducir {site-title} a otro idioma", + "onlyPartlyTranslated":"{site-title} está parcialmente traducido a {language-name} ({percent}%). Tu puedes ayudar a completar la traducción en Qvitter's repository homepage", + "startRant":"Iniciar una queja", + "continueRant":"Continuar la queja", + "hideEmbeddedInTimeline":"Ocultar contenido embebido en esta línea de tiempo", + "hideQuotesInTimeline":"Ocultar citas en esta línea de tiempo", + "userBlocks":"Cuentas que haz bloqueado", + "buttonBlocked":"Bloqueado", + "buttonUnblock":"Desbloqueado", + "failedBlockingUser":"Falló al bloquear al usuario.", + "failedUnblockingUser":"Falló al desbloquear al usuario.", + "unblockUser": "Desbloquear {username}", + "tooltipBlocksYou":"No puede serguir a {username}.", + "silenced":"Silenciado", + "silencedPlural":"Perfiles silenciados", + "silencedUsersOnThisInstance":"Perfiles silenciados en {site-title}", "sandboxed":"Sandboxed", "sandboxedPlural":"Sandboxed profiles", "sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}", - "silencedStreamDescription":"Silenced users can't login or post quips and the quips they've already posted are hidden. For local users it's like a delete that can be reversed, for remote users it's like a site wide block.", - "sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Apart from that, they can use the site like any other user.", - "onlyShowNotificationsFromUsersIFollow":"Only show notifications from users I follow", - "userOptions":"More user actions", - "silenceThisUser":"Silence {nickname}", + "silencedStreamDescription":"Usuarios silenciados no pueden loguearse o postear ocurrencias y las ocurrencias que ya han posteado se han ocultado. Para usuarios locales es como un borrado que puede ser revertido, para los usuarios remotos es como un bloqueo del sitio.", + "sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Quips posted while being in the sandbox will not be included in the public timelines if the user is unsandboxed.", + "onlyShowNotificationsFromUsersIFollow":"Solo mostrar notificaciones de los usuarios que sigo", + "userOptions":"Mas acciones del usuario", + "silenceThisUser":"Silencio {nickname}", "sandboxThisUser":"Sandbox {nickname}", - "unSilenceThisUser":"Unsilence {nickname}", + "unSilenceThisUser":"Sin silencio {nickname}", "unSandboxThisUser":"Unsandbox {nickname}", "ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user", - "ERRORfailedSilencingUser":"Failed silencing/unsilencing the user", - "muteUser":"Mute", - "unmuteUser":"Unmute", - "hideNotificationsFromMutedUsers":"Hide notifications from muted users", - "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", - "userMutes":"Accounts you're muting", - "userBlocked":"Blocked accounts", - "userMuted":"Muted accounts", - "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", - "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "ERRORfailedSilencingUser":"Falló al silenciar/no silenciar al usuario", + "muteUser":"Mudo", + "unmuteUser":"No mudo", + "hideNotificationsFromMutedUsers":"Ocultar notificaciones de los usuarios mudos", + "thisIsANoticeFromAMutedUser":"Haz puesto en mudo al autor de esta ocurrencia. Click aquí para mostrarlo de todos modos.", + "userMutes":"Cuentas que haz puesto en mudo", + "userBlocked":"Cuentas bloqueadas", + "userMuted":"Cuentas mudas", + "mutedStreamDescription":"Haz ocultado esas cuentas de tu línea temporal. Igualmente recibirás notificaciones de esas cuentas, a menos que selecciones "Hide notifications from muted users" desde el menú de la rueda dentada en la página de notificaciones.", + "profileAndSettings":"Perfiles y configuraciones", + "profileSettings":"Perfil y configuración" } From 7120eb531d19e0651b3b74f992d65275fd6bc58c Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sat, 12 Mar 2016 17:12:09 +0100 Subject: [PATCH 09/59] as suggested by @maiyannah https://community.highlandarrow.com/notice/47716 --- css/qvitter.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/css/qvitter.css b/css/qvitter.css index 07bb486..618934f 100644 --- a/css/qvitter.css +++ b/css/qvitter.css @@ -40,7 +40,7 @@ font-style: normal; } -* { +body { font-family:"Helvetica Neue",Arial,sans-serif; } From e53e866b3f6bc9aa65eeca65b428f24b977c5ead Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sat, 12 Mar 2016 18:48:12 +0100 Subject: [PATCH 10/59] fixes #48 --- css/qvitter.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/css/qvitter.css b/css/qvitter.css index 618934f..0604a57 100644 --- a/css/qvitter.css +++ b/css/qvitter.css @@ -2009,9 +2009,9 @@ background-repeat: no-repeat; .stream-item .account-group span.sandboxed-flag { background-color: #00ccff; } -body.has-right-to-silence .stream-item.silenced .account-group span.silenced-flag, -body.has-right-to-sandbox .stream-item.sandboxed .account-group span.sandboxed-flag { - display:inline-block;; +body.has-right-to-silence .stream-item.silenced > .queet .account-group span.silenced-flag, +body.has-right-to-sandbox .stream-item.sandboxed > .queet .account-group span.sandboxed-flag { + display:inline-block; } .profile-card .profile-header-inner span.silenced-flag, .profile-card .profile-header-inner span.sandboxed-flag { From 3e90377125fb668b2b903e681daeefb3ab4ec2f3 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sat, 12 Mar 2016 21:36:00 +0100 Subject: [PATCH 11/59] vimeo embedding support, fixes #43 --- css/qvitter.css | 9 +++-- js/dom-functions.js | 30 +++++++++------ js/misc-functions.js | 87 +++++++++++++++++++++++++++++++++++++++++--- js/qvitter.js | 68 ++++++++++++++++++++++++---------- 4 files changed, 153 insertions(+), 41 deletions(-) diff --git a/css/qvitter.css b/css/qvitter.css index 0604a57..82ac56e 100644 --- a/css/qvitter.css +++ b/css/qvitter.css @@ -2403,7 +2403,8 @@ body.rtl .queet.rtl .expanded-content { background-size:100% auto; } -.queet .queet-thumbs.thumb-num-1 .thumb-container.youtube { +.queet .queet-thumbs.thumb-num-1 .thumb-container.host-youtube-com, +.queet .queet-thumbs.thumb-num-1 .thumb-container.host-vimeo-com { height:250px; } @@ -5013,11 +5014,13 @@ body.rtl .modal-footer button { margin: 0 auto; min-height: 0; } -#queet-thumb-popup .modal-body .thumb-container.youtube iframe { +#queet-thumb-popup .modal-body .thumb-container.host-youtube-com iframe, +#queet-thumb-popup .modal-body .thumb-container.host-vimeo-com iframe { position:absolute; z-index:2; } -#queet-thumb-popup .modal-body .thumb-container.youtube { +#queet-thumb-popup .modal-body .thumb-container.host-youtube-com, +#queet-thumb-popup .modal-body .thumb-container.host-vimeo-com { background-image:none !important; z-index:1; } diff --git a/js/dom-functions.js b/js/dom-functions.js index 8e57c47..8fdfa5d 100644 --- a/js/dom-functions.js +++ b/js/dom-functions.js @@ -1298,14 +1298,24 @@ function expand_queet(q,doScrolling) { } // if there's only one thumb and it's a youtube video, show it inline - if(q.children('.queet').find('.queet-thumbs.thumb-num-1').children('.thumb-container.play-button.youtube').length == 1) { - var youtubeURL = q.children('.queet').find('.queet-thumbs.thumb-num-1').children('.thumb-container.play-button.youtube').children('.attachment-thumb').attr('data-full-image-url'); + if(q.children('.queet').find('.queet-thumbs.thumb-num-1').children('.thumb-container.play-button.host-youtube-com').length == 1) { + var youtubeURL = q.children('.queet').find('.queet-thumbs.thumb-num-1').children('.thumb-container.play-button.host-youtube-com').children('.attachment-thumb').attr('data-full-image-url'); if(q.children('.queet').find('.expanded-content').children('.media').children('iframe[src="' + youTubeEmbedLinkFromURL(youtubeURL) + '"]').length < 1) { // not if already showed q.children('.queet').find('.queet-thumbs').addClass('hide-thumbs'); // show video q.children('.queet').find('.expanded-content').prepend('
    '); } } + // if there's only one thumb and it's a vimeo video, show it inline + else if(q.children('.queet').find('.queet-thumbs.thumb-num-1').children('.thumb-container.play-button.host-vimeo-com').length == 1) { + var vimeoURL = q.children('.queet').find('.queet-thumbs.thumb-num-1').children('.thumb-container.play-button.host-vimeo-com').children('.attachment-thumb').attr('data-full-image-url'); + var embedURL = vimeoEmbedLinkFromURL(vimeoURL); + if(q.children('.queet').find('.expanded-content').children('.media').children('iframe[src="' + embedURL + '"]').length < 1) { // not if already showed + q.children('.queet').find('.queet-thumbs').addClass('hide-thumbs'); + // show video + q.children('.queet').find('.expanded-content').prepend(''); + } + } // show certain attachments in expanded content if(q.children('.queet').children('script.attachment-json').length > 0 @@ -2478,6 +2488,7 @@ function buildAttachmentHTML(attachments){ && this.oembed !== false && this.oembed.title !== null && this.oembed.provider != 'YouTube' + && this.oembed.provider != 'Vimeo' && this.oembed.type != 'photo') { var oembedImage = ''; @@ -2560,15 +2571,10 @@ function buildAttachmentHTML(attachments){ // play button for videos and animated gifs var playButtonClass = ''; - if((this.url.indexOf('://www.youtube.com') > -1 || this.url.indexOf('://youtu.be') > -1) - || (typeof this.animated != 'undefined' && this.animated === true)) { - var playButtonClass = ' play-button'; - } - - // youtube class - var youTubeClass = ''; - if(this.url.indexOf('://www.youtube.com') > -1 || this.url.indexOf('://youtu.be') > -1) { - youTubeClass = ' youtube'; + if(typeof this.animated != 'undefined' && this.animated === true + || (this.url.indexOf('://www.youtube.com') > -1 || this.url.indexOf('://youtu.be') > -1) + || this.url.indexOf('://vimeo.com') > -1) { + playButtonClass = ' play-button'; } // gif-class @@ -2600,7 +2606,7 @@ function buildAttachmentHTML(attachments){ var urlToHide = window.siteInstanceURL + 'attachment/' + this.id; - attachmentHTML += ''; + attachmentHTML += ''; urlsToHide.push(urlToHide); // hide this attachment url from the queet text attachmentNum++; } diff --git a/js/misc-functions.js b/js/misc-functions.js index da6e6e7..b4dc6cb 100644 --- a/js/misc-functions.js +++ b/js/misc-functions.js @@ -2634,24 +2634,99 @@ function shortenUrlsInBox(shortenButton) { } + +/* · + · + · Youtube ID from Youtube URL + · + · · · · · · · · · · · · · */ + +function youTubeIDFromYouTubeURL(url) { + return url.replace('https://youtube.com/watch?v=','').replace('http://youtube.com/watch?v=','').replace('http://www.youtube.com/watch?v=','').replace('https://www.youtube.com/watch?v=','').replace('http://youtu.be/','').replace('https://youtu.be/','').substr(0,11); + } + /* · · · Youtube embed link from youtube url · · · · · · · · · · · · · · */ -function youTubeEmbedLinkFromURL(url) { - var youtubeId = url.replace('http://www.youtube.com/watch?v=','').replace('https://www.youtube.com/watch?v=','').replace('http://youtu.be/','').replace('https://youtu.be/','').substr(0,11); - +function youTubeEmbedLinkFromURL(url, autoplay) { // get start time hash var l = document.createElement("a"); l.href = url; + + var addStart = ''; if(l.hash.substring(0,3) == '#t=') { - return '//www.youtube.com/embed/' + youtubeId + '?start=' + l.hash.substring(3); + addStart = '&start=' + l.hash.substring(3); } - else { - return '//www.youtube.com/embed/' + youtubeId; + + var addAutoplay = ''; + if(typeof autoplay != 'undefined' && autoplay === true) { + addAutoplay = '&autoplay=1'; } + + return '//www.youtube.com/embed/' + youTubeIDFromYouTubeURL(url) + '?enablejsapi=1&version=3&playerapiid=ytplayer' + addStart + addAutoplay; + } + +/* · + · + · Vimeo ID from Vimeo URL + · + · · · · · · · · · · · · · */ + +function vimeoIDFromVimeoURL(url) { + id = url.replace('http://vimeo.com/','').replace('https://vimeo.com/',''); + if(id.indexOf('#') > -1) { + id = id.substring(0,id.indexOf('#')); + } + return id; + } + +/* · + · + · Vimeo embed link from vimeo url + · + · · · · · · · · · · · · · */ + +function vimeoEmbedLinkFromURL(url, autoplay) { + // get start time hash + var l = document.createElement("a"); + l.href = url; + + var addStart = ''; + if(l.hash.substring(0,3) == '#t=') { + addStart = l.hash; + } + + var addAutoplay = '&autoplay=0'; + if(typeof autoplay != 'undefined' && autoplay === true) { + addAutoplay = '&autoplay=1'; + } + + return 'https://player.vimeo.com/video/' + vimeoIDFromVimeoURL(url) + '?api=1' + addAutoplay + addStart; + } + + +/* · + · + · CSS class name from URL + · + · · · · · · · · · · · · · */ + +function CSSclassNameByHostFromURL(url) { + var host = getHost(url); + if(host.indexOf('www.') === 0) { + host = host.substring(4); + } + host = host.toLowerCase().replace(/\./g, "-"); + host = host.replace(/[^a-zA-Z0-9-]+/g, "_"); + + if(host == 'youtu-be') { + host = 'youtube-com'; + } + + return 'host-' + host; } diff --git a/js/qvitter.js b/js/qvitter.js index 1d95115..7866b83 100644 --- a/js/qvitter.js +++ b/js/qvitter.js @@ -2179,23 +2179,18 @@ $('body').on('click','.stream-item .queet img.attachment-thumb',function (event) $thumbToDisplay = $queetThumbsClone.find('img.attachment-thumb[src="' + thisAttachmentThumbSrc + '"]'); $thumbToDisplay.parent().addClass('display-this-thumb'); - // "play" all animated gifs and add youtube iframes to all youtube videos + // "play" all animated gifs and add youtube iframes to all youtube and vimeo videos $.each($queetThumbsClone.find('img.attachment-thumb'),function(){ if($(this).attr('data-mime-type') == 'image/gif' && $(this).parent().hasClass('play-button')) { $(this).attr('src',$(this).attr('data-full-image-url')); $(this).parent('.thumb-container').css('background-image','url(\'' + $(this).attr('data-full-image-url') + '\')'); } - else if($(this).parent().hasClass('youtube')){ - - // autoplay a clicked video - var autoplayFlag = ''; - if($(this).parent().hasClass('display-this-thumb')) { - autoplayFlag = '&autoplay=1'; - } - - var youtubeId = $(this).attr('data-full-image-url').replace('http://www.youtube.com/watch?v=','').replace('https://www.youtube.com/watch?v=','').replace('http://youtu.be/','').replace('https://youtu.be/','').substr(0,11); - $(this).parent().prepend(''); + else if($(this).parent().hasClass('host-youtube-com')){ + $(this).parent().prepend(''); + } + else if($(this).parent().hasClass('host-vimeo-com')){ + $(this).parent().prepend(''); } }); @@ -2208,7 +2203,7 @@ $('body').on('click','.stream-item .queet img.attachment-thumb',function (event) if(parentStreamItem.hasClass('expanded')) { - var calculatedDimensions = calculatePopUpAndImageDimensions($thumbToDisplay.attr('src')); + var calculatedDimensions = calculatePopUpAndImageDimensions($thumbToDisplay); var $thisImgInQueetThumbsClone = $queetThumbsClone.find('img[src="' + $thumbToDisplay.attr('src') + '"]'); // set dimensions @@ -2220,12 +2215,22 @@ $('body').on('click','.stream-item .queet img.attachment-thumb',function (event) // open popup popUpAction('queet-thumb-popup', '', '' + $queetThumbsClone.outerHTML() + '', parentStreamItemHTMLWithoutFooter, calculatedDimensions.popUpWidth); disableOrEnableNavigationButtonsInImagePopup($('#queet-thumb-popup')); + + // for some reason vimeo autoplays when we have a #t=x start time, so stop any vimeo videos running in the background (delay so it has time to load) + setTimeout(function(){ + $.each($('#queet-thumb-popup').find('.thumb-container.host-vimeo-com:not(.display-this-thumb)').children('iframe'),function(){ + console.log($(this).attr('src')); + this.contentWindow.postMessage('{"method": "pause"}', '*'); + }); + },1000); } } }); // popups can be max 900px wide, and should not be higher than the window, so we need to do some calculating -function calculatePopUpAndImageDimensions(img_src) { +function calculatePopUpAndImageDimensions(img) { + + var img_src = img.attr('src'); // trick to get width and height, we can't go with what gnusocial tells us, because // gnusocial doesn't (always?) report width and height after proper orientation @@ -2285,7 +2290,14 @@ function calculatePopUpAndImageDimensions(img_src) { var popUpWidth = 900; } } - return {popUpWidth: popUpWidth, displayImgWidth: displayImgWidth}; + + // vimeo can't be too small, or the design freaks out + if(img.parent('.thumb-container').hasClass('host-vimeo-com') && displayImgWidth < 540) { + displayImgWidth = 540; + displayImgHeight = 305; + } + + return {popUpWidth: popUpWidth, displayImgWidth: displayImgWidth, displayImgHeight: displayImgHeight }; } // switch to next image when clicking the image in the popup @@ -2296,15 +2308,23 @@ $('body').on('click','#queet-thumb-popup .attachment-thumb',function (event) { if(nextImage.length>0) { // start and stop youtube videos, if any - $.each($(this).parent('.youtube').children('iframe'),function(){ + $.each($(this).parent('.host-youtube-com').children('iframe'),function(){ this.contentWindow.postMessage('{"event":"command","func":"' + 'stopVideo' + '","args":""}', '*'); }); - $.each(nextImage.parent('.youtube').children('iframe'),function(){ + $.each(nextImage.parent('.host-youtube-com').children('iframe'),function(){ this.contentWindow.postMessage('{"event":"command","func":"' + 'playVideo' + '","args":""}', '*'); }); + // start stop vimeo + $.each($(this).parent('.host-vimeo-com').children('iframe'),function(){ + this.contentWindow.postMessage('{"method": "pause"}', '*'); + }); + $.each(nextImage.parent('.host-vimeo-com').children('iframe'),function(){ + this.contentWindow.postMessage('{"method": "play"}', '*'); + }); + // set dimensions of next image and the popup - var calculatedDimensions = calculatePopUpAndImageDimensions(nextImage.attr('src')); + var calculatedDimensions = calculatePopUpAndImageDimensions(nextImage); nextImage.width(calculatedDimensions.displayImgWidth); nextImage.parent('.thumb-container').width(calculatedDimensions.displayImgWidth); nextImage.parent('.thumb-container').children('iframe').attr('width',calculatedDimensions.displayImgWidth); @@ -2329,15 +2349,23 @@ $('body').on('click','#queet-thumb-popup .prev-thumb',function (event) { if(prevImage.length>0) { // start and stop youtube videos, if any - $.each($(this).parent().find('.display-this-thumb.youtube').children('iframe'),function(){ + $.each($(this).parent().find('.display-this-thumb.host-youtube-com').children('iframe'),function(){ this.contentWindow.postMessage('{"event":"command","func":"' + 'stopVideo' + '","args":""}', '*'); }); - $.each(prevImage.parent('.youtube').children('iframe'),function(){ + $.each(prevImage.parent('.host-youtube-com').children('iframe'),function(){ this.contentWindow.postMessage('{"event":"command","func":"' + 'playVideo' + '","args":""}', '*'); }); + // start stop vimeo + $.each($(this).parent().find('.display-this-thumb.host-vimeo-com').children('iframe'),function(){ + this.contentWindow.postMessage('{"method": "pause"}', '*'); + }); + $.each(prevImage.parent('.host-vimeo-com').children('iframe'),function(){ + this.contentWindow.postMessage('{"method": "play"}', '*'); + }); + // set dimensions of next image and the popup - var calculatedDimensions = calculatePopUpAndImageDimensions(prevImage.attr('src')); + var calculatedDimensions = calculatePopUpAndImageDimensions(prevImage); prevImage.width(calculatedDimensions.displayImgWidth); prevImage.parent('.thumb-container').width(calculatedDimensions.displayImgWidth); prevImage.parent('.thumb-container').children('iframe').attr('width',calculatedDimensions.displayImgWidth); From 0bf871e8e85dbc7abed4bcddc701ee248aba4062 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sun, 13 Mar 2016 00:16:06 +0100 Subject: [PATCH 12/59] better language tooltips --- actions/qvitter.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/actions/qvitter.php b/actions/qvitter.php index 4e7cda0..09d3e01 100644 --- a/actions/qvitter.php +++ b/actions/qvitter.php @@ -397,11 +397,12 @@ class QvitterAction extends ApiAction } // also make an array with all language names, to use for generating menu - $languagecodesandnames[$lancode]['english_name'] = Locale::getDisplayLanguage($lancode, 'en'); - $languagecodesandnames[$lancode]['name'] = Locale::getDisplayLanguage($lancode, $lancode); - if(Locale::getDisplayRegion($lancode, $lancode)) { - $languagecodesandnames[$lancode]['name'] .= ' ('.Locale::getDisplayRegion($lancode, $lancode).')'.$rtl_or_ltr_special_char; - } + $languagecodesandnames[$lancode]['english_name'] = Locale::getDisplayName($lancode, 'en'); + $languagecodesandnames[$lancode]['name'] = Locale::getDisplayName($lancode, $lancode); + $languagecodesandnames[$lancode]['tooltip'] = $languagecodesandnames[$lancode]['name'].' – '.$languagecodesandnames[$lancode]['english_name']; + if($languagecodesandnames[$lancode]['name'] == $languagecodesandnames[$lancode]['english_name']) { + $languagecodesandnames[$lancode]['tooltip'] = $languagecodesandnames[$lancode]['english_name']; + } // ahorita meme only on quitter.es if($lancode == 'es_ahorita') { @@ -496,7 +497,7 @@ class QvitterAction extends ApiAction // languages foreach($languagecodesandnames as $lancode=>$lan) { - print '
  • '.$lan['name'].'
  • '; + print '
  • '.$lan['name'].'
  • '; } ?> @@ -530,7 +531,7 @@ class QvitterAction extends ApiAction // languages foreach($languagecodesandnames as $lancode=>$lan) { - print '
  • '.$lan['name'].'
  • '; + print '
  • '.$lan['name'].'
  • '; } ?> From b2264c2e7a8bfbf3254cb8596e997121ed85e321 Mon Sep 17 00:00:00 2001 From: reiju Date: Sun, 13 Mar 2016 05:39:35 -0400 Subject: [PATCH 13/59] Update ja.json --- locale/ja.json | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/locale/ja.json b/locale/ja.json index a884821..649dd37 100644 --- a/locale/ja.json +++ b/locale/ja.json @@ -180,21 +180,21 @@ "silencedStreamDescription":"サイレンスされたユーザーはログインおよびクイップの投稿ができなくなり、そのユーザーの既に投稿されたクイップは非表示になります。ローカルユーザーにとっては復旧可能な削除のような状態で、リモートユーザーにとっては全サイトでブロックされているような状態になります。", "sandboxedStreamDescription":"サンドボックスされたユーザーからのクイップは「パブリックタイムライン」および「関連ネットワーク全体」から除外されます。アンサンドボックスされたユーザーのサンドボックス期間中に投稿されたクイップはパブリックタイムラインに含まれません", "onlyShowNotificationsFromUsersIFollow":"フォローしているユーザーのお知らせのみ表示する", - "userOptions":"More user actions", - "silenceThisUser":"Silence {nickname}", - "sandboxThisUser":"Sandbox {nickname}", - "unSilenceThisUser":"Unsilence {nickname}", - "unSandboxThisUser":"Unsandbox {nickname}", - "ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user", - "ERRORfailedSilencingUser":"Failed silencing/unsilencing the user", - "muteUser":"Mute", - "unmuteUser":"Unmute", - "hideNotificationsFromMutedUsers":"Hide notifications from muted users", - "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", - "userMutes":"Accounts you're muting", - "userBlocked":"Blocked accounts", - "userMuted":"Muted accounts", - "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", - "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "userOptions":"その他...", + "silenceThisUser":"{nickname} をサイレンスする", + "sandboxThisUser":"{nickname} をサンドボックスする", + "unSilenceThisUser":"{nickname} をサイレンス解除する", + "unSandboxThisUser":"{nickname} をサンドボックス解除する", + "ERRORfailedSandboxingUser":"このユーザーをサンドボックスまたは解除するのに失敗しました。", + "ERRORfailedSilencingUser":"このユーザーをサイレンスまたは解除するのに失敗しました。", + "muteUser":"ミュート", + "unmuteUser":"ミュート解除", + "hideNotificationsFromMutedUsers":"ミュートしたユーザーからのお知らせを隠す", + "thisIsANoticeFromAMutedUser":"あなたはこのお知らせのユーザーをミュートしています。ここをクリックして表示", + "userMutes":"あなたがミュートしているユーザー", + "userBlocked":"ブロックされているユーザー", + "userMuted":"ミュートされているユーザー", + "mutedStreamDescription":"あなたのタイムラインから、選択されたユーザーを隠しました。あなたがお知らせページの歯車のメニューにある"ミュートしたユーザーからのお知らせを隠す"を選択しなかったユーザー以外からは、まだお知らせを受け取ります。", + "profileAndSettings":"プロフィールと設定", + "profileSettings":"プロフィール設定" } From cb97446c209f800041eff8167ed036a59290af71 Mon Sep 17 00:00:00 2001 From: raul Date: Tue, 15 Mar 2016 12:18:25 -0400 Subject: [PATCH 14/59] Update ca.json --- locale/ca.json | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/locale/ca.json b/locale/ca.json index f780455..526147b 100644 --- a/locale/ca.json +++ b/locale/ca.json @@ -138,24 +138,24 @@ "ERRORcouldNotFindGroupWithNickname":"No s'ha pogut trobar el grup amb el nom \"{nickname}\" en aquest servidor", "ERRORcouldNotFindPage":"No s'ha pogut trobar aquesta pàgina", "ERRORnoticeRemoved": "Aquest avís s'ha eliminat.", - "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.", - "hideRepliesToPeopleIDoNotFollow":"Hide replies to people I don't follow", - "markAllNotificationsAsSeen":"Mark all notifications as seen", - "notifyRepliesAndMentions":"Mentions and replies", - "notifyFavs":"Favorites", - "notifyRepeats":"Requeets", - "notifyFollows":"New followers", - "timelineOptions":"Timeline options", - "ERRORfailedSavingYourSetting":"Failed saving your setting", - "ERRORfailedMarkingAllNotificationsAsRead":"Failed marking all notifications as seen.", - "newNotification": "{new-notice-count} new notification", - "newNotifications": "{new-notice-count} new notifications", - "thisIsANoticeFromABlockedUser":"Warning: This is a notice from a user you have blocked. Click to show it.", - "nicknamesListWithListName":"{nickname}’s list: {list-name}", - "myListWithListName":"My list: {list-name}", - "listMembers":"Members", - "listSubscribers":"Subscribers", + "ERRORnoContactWithServer": "No es pot establir una connexió amb el servidor. El servidor pot estar sobrecarregat, o pot haver un problema amb la teva connexió a Internet. Siusplau, intenta-ho més tard!", + "ERRORattachmentUploadFailed": "No s'ha pogut pujar. El format pot estar no suportat o la mida és massa gran.", + "hideRepliesToPeopleIDoNotFollow":"Amaga les respostes a les persones que no segueixo", + "markAllNotificationsAsSeen":"Marca totes les notificacions com vistes", + "notifyRepliesAndMentions":"Mencions i respostes", + "notifyFavs":"Favorits", + "notifyRepeats":"Peticions", + "notifyFollows":"Nous seguidors", + "timelineOptions":"Opcions del 'Timeline'", + "ERRORfailedSavingYourSetting":"Error al guardar la teva configuració.", + "ERRORfailedMarkingAllNotificationsAsRead":"Error al marcar totes les notificacions com vistes.", + "newNotification": "{new-notice-count} nova notificació", + "newNotifications": "{new-notice-count} noves notificacions", + "thisIsANoticeFromABlockedUser":"Atenció: Això és una notificació d'un usuari que has bloquejat. Clic per mostrar-lo.", + "nicknamesListWithListName":"Llista d'en/na {nickname}: {list-name}", + "myListWithListName":"La meva llista: {list-name}", + "listMembers":"Membres", + "listSubscribers":"Subscriptors", "ERRORcouldNotFindList":"There is no such list.", "emailAlreadyInUse":"Already in use", "addEditLanguageLink":"Help translate {site-title} to another language", From 8a3043090a59d07cf86f11a82f004ccf85f2f80e Mon Sep 17 00:00:00 2001 From: Moshpirit Date: Wed, 16 Mar 2016 16:54:06 -0400 Subject: [PATCH 15/59] =?UTF-8?q?Silenciado=20=E2=86=92=20Prohibido=20for?= =?UTF-8?q?=20"Silenced"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locale/es.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/es.json b/locale/es.json index a6ad4c1..f7a000f 100644 --- a/locale/es.json +++ b/locale/es.json @@ -171,7 +171,7 @@ "failedUnblockingUser":"Falló el desbloqueo del usuario .", "unblockUser": "Desbloquear a {username}", "tooltipBlocksYou":"{username} te ha bloqueado.", - "silenced":"Silenciado", + "silenced":"Prohibido", "silencedPlural":"Perfiles silenciados", "silencedUsersOnThisInstance":"Perfiles silenciados en {site-title}", "sandboxed":"Aislado", From 8d329c29fdefb45b264c82af0498bb00d2c494fa Mon Sep 17 00:00:00 2001 From: dtluna Date: Fri, 18 Mar 2016 03:51:06 +0300 Subject: [PATCH 16/59] Completed the translation and corrected minor mistakes. --- locale/ru.json | 98 +++++++++++++++++++++++++------------------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/locale/ru.json b/locale/ru.json index 9054c8d..4da66ef 100644 --- a/locale/ru.json +++ b/locale/ru.json @@ -6,13 +6,13 @@ "loginSignIn": "Войти", "loginRememberMe": "Запомнить меня", "loginForgotPassword": "Забыли пароль?", - "notices": "Твиты", + "notices": "квиты", "followers": "Читатели", "following": "Читаемые", "groups": "Группы", - "compose": "Написать новый твит...", + "compose": "Написать новый квит...", "queetVerb": "Отправить", - "queetsNounPlural": "Твиты", + "queetsNounPlural": "Квиты", "logout": "Выйти", "languageSelected": "Язык:", "viewMyProfilePage": "Просмотр моего профиля", @@ -21,18 +21,18 @@ "details": "Подробно", "expandFullConversation": "Развернуть беседу", "replyVerb": "Ответить", - "requeetVerb": "Ретвитнуть", + "requeetVerb": "Реквитнуть", "favoriteVerb": "Избранное", - "requeetedVerb": "Ретвитнул", + "requeetedVerb": "Реквитнул", "favoritedVerb": "В избранное", "replyTo": "Ответить на", - "requeetedBy": "{requeeted-by} ретвитнул", + "requeetedBy": "{requeeted-by} реквитнул", "favoriteNoun": "Избранное", "favoritesNoun": "Избранные", - "requeetNoun": "Ретвит", - "requeetsNoun": "Ретвиты", - "newQueet": "{new-notice-count} новый твит", - "newQueets": "{new-notice-count} новых твитов", + "requeetNoun": "Реквит", + "requeetsNoun": "Реквиты", + "newQueet": "{new-notice-count} новый квит", + "newQueets": "{new-notice-count} новых квитов", "longmonthsJanuary": "Январь", "longmonthsFebruary": "Февраль", "longmonthsMars": "Март", @@ -76,7 +76,7 @@ "searchVerb": "Поиск", "deleteVerb": "Удалить", "cancelVerb": "Отменить", - "deleteConfirmation": "Вы уверены, что ходите удалить этот твит?", + "deleteConfirmation": "Вы уверены, что ходите удалить этот квит?", "userExternalFollow": "Читать удалённо", "userExternalFollowHelp": "Ваш ID аккаунта (напр. user@rainbowdash.net).", "userFollow": "Читать", @@ -108,8 +108,8 @@ "otherServers": "В качестве альтернативы вы можете зарегистрироваться на другом сервере сети GNU social. Сравнение", "editMyProfile": "Редактировать профиль", "notifications": "Уведомления", - "xFavedYourQueet": "ваши твиты, добавленные в избранное", - "xRepeatedYourQueet": "ретвитнули", + "xFavedYourQueet": "ваши квиты, добавленные в избранное", + "xRepeatedYourQueet": "реквитнули", "xStartedFollowingYou": "читают", "followsYou": "читают", "FAQ": "FAQ", @@ -119,7 +119,7 @@ "showTerms": "Прочтите наши Условия использования", "ellipsisMore": "Больше", "blockUser": "Заблокировать {username}", - "goToOriginalNotice": "Перейти к оригинальному твиту", + "goToOriginalNotice": "Перейти к оригинальному квиту", "goToTheUsersRemoteProfile": "Перейти к удалённому профилю пользователя", "clickToDrag":"Нажмите для перетаскивания", "keyboardShortcuts":"Горячие клавиши", @@ -128,7 +128,7 @@ "tooltipBookmarkStream":"Добавить эту ленту в закладки", "tooltipTopMenu":"Меню и настройки", "tooltipAttachImage":"Прикрепить изображение", - "tooltipShortenUrls":"Сократить все URL в твите", + "tooltipShortenUrls":"Сократить все URL в квите", "tooltipReloadStream":"Обновить ленту", "tooltipRemoveBookmark":"Удалить закладку", "clearHistory":"Удалить историю посещений", @@ -137,14 +137,14 @@ "ERRORcouldNotFindUserWithNickname":"Не удалось найти пользователя с ником \"{nickname}\" на этом сервере", "ERRORcouldNotFindGroupWithNickname":"Не удалось найти группу с ником \"{nickname}\" на этом сервере", "ERRORcouldNotFindPage":"Не удалось найти страницу.", - "ERRORnoticeRemoved": "Этот твит был удалён.", + "ERRORnoticeRemoved": "Этот квит был удалён.", "ERRORnoContactWithServer": "Не удается установить соединение с сервером. Сервер перегружен или проблема с доступом в Интернет. Пожалуйста, повторите попытку позже!", "ERRORattachmentUploadFailed": "Загрузка не удалась. Неподдерживаемый формат или слишком большой размер", "hideRepliesToPeopleIDoNotFollow":"Скрыть ответы для людей, которых я не читаю", "markAllNotificationsAsSeen":"Отметить уведомления как прочитанные", "notifyRepliesAndMentions":"Упоминания и ответы", "notifyFavs":"Избранные", - "notifyRepeats":"Ретвиты", + "notifyRepeats":"Реквиты", "notifyFollows":"Новые читатели", "timelineOptions":"Опции ленты", "ERRORfailedSavingYourSetting":"Не удалось сохранить ваши настройки", @@ -162,37 +162,37 @@ "onlyPartlyTranslated":"{site-title} только частично переведён на {language-name} ({percent}%). Вы можете помочь завершить перевод на на домашней странице репозитория Qvitter", "startRant":"Начать декламацию", "continueRant":"Продолжить декламацию", - "userBlocks":"Accounts you're blocking", - "buttonBlocked":"Blocked", - "buttonUnblock":"Unblock", - "failedBlockingUser":"Failed to block the user.", - "failedUnblockingUser":"Failed to unblock the user.", - "unblockUser": "Unblock {username}", - "tooltipBlocksYou":"You are blocked from following {username}.", - "silenced":"Silenced", - "silencedPlural":"Silenced profiles", - "silencedUsersOnThisInstance":"Silenced profiles on {site-title}", - "sandboxed":"Sandboxed", - "sandboxedPlural":"Sandboxed profiles", - "sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}", - "silencedStreamDescription":"Silenced users can't login or post quips and the quips they've already posted are hidden. For local users it's like a delete that can be reversed, for remote users it's like a site wide block.", - "sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Apart from that, they can use the site like any other user.", - "onlyShowNotificationsFromUsersIFollow":"Only show notifications from users I follow", - "userOptions":"More user actions", + "userBlocks":"Учётные записи, которые вы блокируете", + "buttonBlocked":"Заблокирован", + "buttonUnblock":"Разблокировать", + "failedBlockingUser":"Ошибка при блокировке пользователя.", + "failedUnblockingUser":"Ошибка при разблокировке пользователя.", + "unblockUser": "Разблокировать {username}", + "tooltipBlocksYou":"Вы заблокированы пользователем {username}.", + "silenced":"Забаненные", + "silencedPlural":"Забаненные профили", + "silencedUsersOnThisInstance":"Профили, забаненные на {site-title}", + "sandboxed":"В \"песочнице\"", + "sandboxedPlural":"Профили в \"песочнице\"", + "sandboxedUsersOnThisInstance":"Профили в \"песочнице\" на {site-title}", + "silencedStreamDescription":"Забаненные пользователи не могут аутентифицироваться или публиковать квиты, а уже опубликованные ими квиты скрыты. Для локальных пользователей это похоже на удаление, которое можно отменить, а для удалённых — на запрет на весь сайт.", + "sandboxedStreamDescription"::"Квиты пользователей в \"песочнице\" исключаются из Публичной Ленты и Всей известной сети. В остальном такие пользователи могут пользоваться сайтом так же, как остальные.", + "onlyShowNotificationsFromUsersIFollow":"Показывать уведомления от только читаемых мной пользователей", + "userOptions":"Пользовательские опции", "silenceThisUser":"Silence {nickname}", - "sandboxThisUser":"Sandbox {nickname}", - "unSilenceThisUser":"Unsilence {nickname}", - "unSandboxThisUser":"Unsandbox {nickname}", - "ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user", - "ERRORfailedSilencingUser":"Failed silencing/unsilencing the user", - "muteUser":"Mute", - "unmuteUser":"Unmute", - "hideNotificationsFromMutedUsers":"Hide notifications from muted users", - "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", - "userMutes":"Accounts you're muting", - "userBlocked":"Blocked accounts", - "userMuted":"Muted accounts", - "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", - "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "sandboxThisUser":"Поместить {nickname} в \"песочницу\"", + "unSilenceThisUser":"Разбанить {nickname}", + "unSandboxThisUser":"Удалить {nickname} из \"песочницы\"", + "ERRORfailedSandboxingUser":"Ошибка при помещении пользователя в \"песочницу\" или удалении из неё", + "ERRORfailedSilencingUser":"Ошибка при бане/разбане пользователя.", + "muteUser":"Игнорировать", + "unmuteUser":"Прекратить игнорировать", + "hideNotificationsFromMutedUsers":"Скрыть уведомления от игнорируемых пользователей", + "thisIsANoticeFromAMutedUser":"Вы игнорируете автора квита. Нажмите здесь, чтобы показать квит.", + "userMutes":"Игнорируемые вами учётные записи", + "userBlocked":"Заблокированные вами учётные записи", + "userMuted":"Игнорируемые учётные записи", + "mutedStreamDescription":"Вы скрыли этих пользователей из вашей ленты. Вы будете продолжать получать уведомления от этих пользователей, если не выберете "Скрыть уведомления от игнорируемых пользователей" в меню с шестерёнкой на странице уведомлений", + "profileAndSettings":"Профиль и настройки", + "profileSettings":"Настройки профиля" } From 7986be86fabd6a71abe452d38adf2dfbd3974b49 Mon Sep 17 00:00:00 2001 From: DT Date: Fri, 18 Mar 2016 04:18:03 -0400 Subject: [PATCH 17/59] Corrected the error in line 179. --- locale/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/ru.json b/locale/ru.json index 4da66ef..e26f220 100644 --- a/locale/ru.json +++ b/locale/ru.json @@ -176,7 +176,7 @@ "sandboxedPlural":"Профили в \"песочнице\"", "sandboxedUsersOnThisInstance":"Профили в \"песочнице\" на {site-title}", "silencedStreamDescription":"Забаненные пользователи не могут аутентифицироваться или публиковать квиты, а уже опубликованные ими квиты скрыты. Для локальных пользователей это похоже на удаление, которое можно отменить, а для удалённых — на запрет на весь сайт.", - "sandboxedStreamDescription"::"Квиты пользователей в \"песочнице\" исключаются из Публичной Ленты и Всей известной сети. В остальном такие пользователи могут пользоваться сайтом так же, как остальные.", + "sandboxedStreamDescription":"Квиты пользователей в \"песочнице\" исключаются из Публичной Ленты и Всей известной сети. В остальном такие пользователи могут пользоваться сайтом так же, как остальные.", "onlyShowNotificationsFromUsersIFollow":"Показывать уведомления от только читаемых мной пользователей", "userOptions":"Пользовательские опции", "silenceThisUser":"Silence {nickname}", From 9dec96f20e253d6f0e1d9fc4331eb0335fa99248 Mon Sep 17 00:00:00 2001 From: DT Date: Fri, 18 Mar 2016 05:04:34 -0400 Subject: [PATCH 18/59] Updated "userExternalFollowHelp", "xStartedFollowingYou" and "followsYou" --- locale/ru.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/locale/ru.json b/locale/ru.json index e26f220..a98f9d0 100644 --- a/locale/ru.json +++ b/locale/ru.json @@ -6,7 +6,7 @@ "loginSignIn": "Войти", "loginRememberMe": "Запомнить меня", "loginForgotPassword": "Забыли пароль?", - "notices": "квиты", + "notices": "Квиты", "followers": "Читатели", "following": "Читаемые", "groups": "Группы", @@ -78,7 +78,7 @@ "cancelVerb": "Отменить", "deleteConfirmation": "Вы уверены, что ходите удалить этот квит?", "userExternalFollow": "Читать удалённо", - "userExternalFollowHelp": "Ваш ID аккаунта (напр. user@rainbowdash.net).", + "userExternalFollowHelp": "Ваш ID учётной записи (напр. user@rainbowdash.net).", "userFollow": "Читать", "userFollowing": "Читаю", "userUnfollow": "Отмена", @@ -110,8 +110,8 @@ "notifications": "Уведомления", "xFavedYourQueet": "ваши квиты, добавленные в избранное", "xRepeatedYourQueet": "реквитнули", - "xStartedFollowingYou": "читают", - "followsYou": "читают", + "xStartedFollowingYou": "теперь читают вас", + "followsYou": "читают вас", "FAQ": "FAQ", "inviteAFriend": "Пригласите друзей!", "goToExternalProfile": "Перейти к полному профилю", From c45a40dea31dcb06abffeb65d3b86cdc3bd34589 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sun, 20 Mar 2016 22:32:36 +0100 Subject: [PATCH 19/59] some more data on errors --- js/ajax-functions.js | 4 +++- js/dom-functions.js | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/js/ajax-functions.js b/js/ajax-functions.js index de37732..9f2734d 100644 --- a/js/ajax-functions.js +++ b/js/ajax-functions.js @@ -184,7 +184,9 @@ function getFromAPI(stream, actionOnSuccess) { actionOnSuccess(data, userArray, request, url); }, - error: function(data) { + error: function(data, textStatus, errorThrown) { + data.textStatus = textStatus; + data.errorThrown = errorThrown; actionOnSuccess(false, false, data, url); remove_spinner(); } diff --git a/js/dom-functions.js b/js/dom-functions.js index 8fdfa5d..8f8bd48 100644 --- a/js/dom-functions.js +++ b/js/dom-functions.js @@ -999,7 +999,6 @@ function setNewCurrentStream(streamObject,setLocation,fallbackId,actionOnSuccess showErrorMessage(window.sL.ERRORsomethingWentWrong + '

    \ url: ' + url + '

    \ jQuery ajax() error:
    ' + replaceHtmlSpecialChars(JSON.stringify(error, null, ' ')) + '
    \ - streamObject:
    ' + replaceHtmlSpecialChars(JSON.stringify(streamObject, null, ' ')) + '
    \ '); } From 551a1079d223d46700599283d5fe51bdbe21eaef Mon Sep 17 00:00:00 2001 From: Alexei Ivanov Date: Tue, 22 Mar 2016 23:41:54 -0300 Subject: [PATCH 20/59] Update br translation --- locale/pt_br.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/locale/pt_br.json b/locale/pt_br.json index 9b3c1f2..6303c6c 100644 --- a/locale/pt_br.json +++ b/locale/pt_br.json @@ -21,15 +21,15 @@ "details": "Detalhes", "expandFullConversation": "Expandir toda a conversa", "replyVerb": "Responder", - "requeetVerb": "Requeetar", + "requeetVerb": "Requipar", "favoriteVerb": "Curtir", "requeetedVerb": "Requipado", - "favoritedVerb": "Curtida", + "favoritedVerb": "Curtido", "replyTo": "Responder para", "requeetedBy": "Requipado por {requeeted-by}", "favoriteNoun": "Curtida", "favoritesNoun": "Curtidas", - "requeetNoun": "Requipar", + "requeetNoun": "Requip", "requeetsNoun": "Requips", "newQueet": "{new-notice-count} novo quip", "newQueets": "{new-notice-count} novos quips", @@ -88,7 +88,7 @@ "leaveGroup": "Sair", "memberCount": "Membros", "adminCount": "Administradores", - "settings": "Configurações", + "settings": "Ajustes", "saveChanges": "Salvar alterações", "linkColor": "Cor dos links", "backgroundColor": "Cor do plano de fundo", @@ -104,7 +104,7 @@ "registerBio": "Biografia", "registerLocation": "Localização", "registerRepeatPassword": "Repetir senha", - "moreSettings": "Mais configurações", + "moreSettings": "Mais ajustes", "otherServers": "Alternativamente, você pode criar uma conta em outro servidor da rede GNU social. Comparativo", "editMyProfile": "Editar perfil", "notifications": "Notificações", @@ -187,14 +187,14 @@ "unSandboxThisUser":"Liberar {nickname}", "ERRORfailedSandboxingUser":"Falha ao restringir/liberar o usuário", "ERRORfailedSilencingUser":"Falha ao silenciar/permitir o usuário", - "muteUser":"Mute", - "unmuteUser":"Unmute", - "hideNotificationsFromMutedUsers":"Hide notifications from muted users", - "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", - "userMutes":"Accounts you're muting", - "userBlocked":"Blocked accounts", - "userMuted":"Muted accounts", - "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", - "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "muteUser":"Calar", + "unmuteUser":"Falar", + "hideNotificationsFromMutedUsers":"Esconder notificações de usuários calados", + "thisIsANoticeFromAMutedUser":"Você calou o autor deste quip. Clique aqui para mostrá-lo mesmo assim.", + "userMutes":"Contas que você calou", + "userBlocked":"Contas bloqueadas", + "userMuted":"Contas caladas", + "mutedStreamDescription":"Você escondeu estas contas de sua linha do tempo. Você ainda receberá notificações destas contas, a menos que você selecione "Esconder notificações de usuários calados" no menu de engrenagem na página de notificações.", + "profileAndSettings":"Perfil e ajustes", + "profileSettings":"Ajustes de perfil" } From 3a71ec89ca16b482afefe4f4b8f4ab80112e0d6e Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Tue, 29 Mar 2016 14:10:57 +0200 Subject: [PATCH 21/59] Preparing for database constraints --- QvitterPlugin.php | 6 +++++ classes/QvitterNotification.php | 45 ++++++++++++++++++++++++++++++--- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/QvitterPlugin.php b/QvitterPlugin.php index 742a1ff..771de31 100644 --- a/QvitterPlugin.php +++ b/QvitterPlugin.php @@ -150,6 +150,12 @@ class QvitterPlugin extends Plugin { return true; } + public function onBeforePluginCheckSchema() + { + QvitterNotification::beforeSchemaUpdate(); + return true; + } + // route/reroute urls public function onRouterInitialized($m) { diff --git a/classes/QvitterNotification.php b/classes/QvitterNotification.php index 869827c..3c77cdd 100644 --- a/classes/QvitterNotification.php +++ b/classes/QvitterNotification.php @@ -19,8 +19,8 @@ class QvitterNotification extends Managed_DataObject return array( 'fields' => array( 'id' => array('type' => 'serial', 'not null' => true), - 'to_profile_id' => array('type' => 'int', 'description' => 'the profile being notified'), - 'from_profile_id' => array('type' => 'int', 'description' => 'the profile that is notifying'), + 'to_profile_id' => array('type' => 'int', 'not null'=>true, 'description' => 'the profile being notified'), + 'from_profile_id' => array('type' => 'int', 'not null'=>true, 'description' => 'the profile that is notifying'), 'ntype' => array('type' => 'varchar', 'length' => 7, 'description' => 'reply, like, mention or follow'), 'notice_id' => array('type' => 'int', 'description' => 'id for the reply or mention or notice being faved'), 'is_seen' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'if the notification has been seen'), @@ -30,7 +30,8 @@ class QvitterNotification extends Managed_DataObject 'foreign keys' => array( 'qvitternotification_to_profile_id_fkey' => array('profile', array('to_profile_id' => 'id')), 'qvitternotification_from_profile_id_fkey' => array('profile', array('from_profile_id' => 'id')), - 'qvitternotification_notice_id_fkey' => array('notice', array('notice_id' => 'id')), + // removing this because there can be rows without related notice_id + //'qvitternotification_notice_id_fkey' => array('notice', array('notice_id' => 'id')), ), 'indexes' => array( 'qvitternotification_created_idx' => array('created'), @@ -54,5 +55,43 @@ class QvitterNotification extends Managed_DataObject return $result; } + static public function beforeSchemaUpdate() + { + printfnq("\nEnsuring no NULL values for foreign keys in QvitterNotification..."); + // Because constraints to profile and notice table assume not null, we must + // remove any values in these columns that are NULL (or 0), because they + // are invalid anyway. + $qn = new QvitterNotification(); + foreach (['to_profile_id', 'from_profile_id'] as $field) { + $qn->whereAdd(sprintf('%s is NULL', $field), 'OR'); + $qn->whereAdd(sprintf('%s = 0', $field), 'OR'); + } + if ($qn->find()) { + printfnq(" removing {$qn->N} rows..."); + while ($qn->fetch()) { + $qn->delete(); + } + } + printfnq("DONE.\n"); + printfnq("Ensuring no dead profile or notice IDs are stored in QvitterNotification..."); + // We could probably build a single statement for this but I just want it done... + // or maybe be smart and take it directly from our defined 'foreign keys'... but oh well! + $constraints = ['to_profile_id' => 'profile:id', + 'from_profile_id' => 'profile:id']; + foreach ($constraints as $field=>$foreign) { + $qn = new QvitterNotification(); + $qn->selectAdd(); + $qn->selectAdd('qvitternotification.id'); // to avoid confusion with profile.id, also we only need the primary key + $qn->joinAdd([$field, $foreign], 'LEFT'); + $qn->whereAdd(str_replace(':', '.', $foreign).' IS NULL'); + if ($qn->find()) { + printfnq("\n{$field}: {$qn->N} rows..."); + while ($qn->fetch()) { + $qn->delete(); + } + } + } + printfnq("DONE.\n"); + } } From 0ede7af280e3bc8f006b081444a3afdc21eb668c Mon Sep 17 00:00:00 2001 From: salvador Date: Fri, 1 Apr 2016 14:10:38 -0400 Subject: [PATCH 22/59] Updated some ca.json lines --- locale/ca.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/locale/ca.json b/locale/ca.json index 526147b..7515223 100644 --- a/locale/ca.json +++ b/locale/ca.json @@ -158,22 +158,22 @@ "listSubscribers":"Subscriptors", "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 {language-name} ({percent}%). You can help complete the translation at Qvitter's repository homepage", + "addEditLanguageLink":"Ajuda a traduir {site-title} a un altre idioma", + "onlyPartlyTranslated":"{site-title} està només traduït parcialment a {language-name} ({percent}%). Tu pots ajudar a completar la traducció a Qvitter's repository homepage", "startRant":"Start a rant", "continueRant":"Continue the rant", "hideEmbeddedInTimeline":"Hide embedded content in this timeline", "hideQuotesInTimeline":"Hide quotes in this timeline", "userBlocks":"Accounts you're blocking", - "buttonBlocked":"Blocked", - "buttonUnblock":"Unblock", + "buttonBlocked":"Bloquejat", + "buttonUnblock":"Desbloqueja", "failedBlockingUser":"Failed to block the user.", "failedUnblockingUser":"Failed to unblock the user.", - "unblockUser": "Unblock {username}", - "tooltipBlocksYou":"You are blocked from following {username}.", - "silenced":"Silenced", - "silencedPlural":"Silenced profiles", - "silencedUsersOnThisInstance":"Silenced profiles on {site-title}", + "unblockUser": "Desbloqueja {username}", + "tooltipBlocksYou":"Estàs bloquejat de seguir {username}.", + "silenced":"Silenciat", + "silencedPlural":"Perfils silenciats", + "silencedUsersOnThisInstance":"Perfils silenciats a {site-title}", "sandboxed":"Sandboxed", "sandboxedPlural":"Sandboxed profiles", "sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}", From e9640d2571d2ce37f87474a5eb7c43ff4d8018ae Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Fri, 22 Apr 2016 09:47:12 +0200 Subject: [PATCH 23/59] Don't crash the event if Profile not found --- QvitterPlugin.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/QvitterPlugin.php b/QvitterPlugin.php index 742a1ff..c72a1ab 100644 --- a/QvitterPlugin.php +++ b/QvitterPlugin.php @@ -1055,14 +1055,17 @@ class QvitterPlugin extends Plugin { $notif->delete(); - // outputs an activity notice that this notice was deleted - $profile = $notice->getProfile(); - // don't delete if this is a user is being deleted // because that creates an infinite loop of deleting and creating notices... $user_is_deleted = false; - $user = User::getKV('id',$profile->id); - if($user instanceof User && $user->hasRole(Profile_role::DELETED)) { + try { + // outputs an activity notice that this notice was deleted + $profile = $notice->getProfile(); + $user = User::getKV('id',$profile->id); + if($user instanceof User && $user->hasRole(Profile_role::DELETED)) { + $user_is_deleted = true; + } + } catch (NoProfileException $e) { $user_is_deleted = true; } From 4ae1cb69d06a29493eaeaaf1da8bf1fb51c20db3 Mon Sep 17 00:00:00 2001 From: baldo Date: Tue, 26 Apr 2016 17:01:54 +0200 Subject: [PATCH 24/59] Fix: Pasting via middle click did not run password validation during registration. --- js/qvitter.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/js/qvitter.js b/js/qvitter.js index 7866b83..c39832d 100644 --- a/js/qvitter.js +++ b/js/qvitter.js @@ -627,16 +627,18 @@ if(!window.registrationsClosed) { }); - // validate on keyup - $('#popup-register input').on('keyup',function(){ - if(validateRegisterForm($('#popup-register')) - && !$('#signup-user-nickname-step2').hasClass('nickname-taken') - && !$('#signup-user-email-step2').hasClass('email-in-use')) { - $('#signup-btn-step2').removeClass('disabled'); - } - else { - $('#signup-btn-step2').addClass('disabled'); - } + // validate on keyup / paste + $('#popup-register input').on('keyup paste',function(){ + setTimeout(function () { // defer validation as after paste the content is not immediately available + if(validateRegisterForm($('#popup-register')) + && !$('#signup-user-nickname-step2').hasClass('nickname-taken') + && !$('#signup-user-email-step2').hasClass('email-in-use')) { + $('#signup-btn-step2').removeClass('disabled'); + } + else { + $('#signup-btn-step2').addClass('disabled'); + } + }, 0); }); $('#popup-register input').trigger('keyup'); From be7a837952007b5b268cae746a64ed229b2fb17d Mon Sep 17 00:00:00 2001 From: baldo Date: Mon, 2 May 2016 19:57:57 +0200 Subject: [PATCH 25/59] Fix: Revalidate registration form on blur to allow usage of password managers --- js/qvitter.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/qvitter.js b/js/qvitter.js index c39832d..e5270f9 100644 --- a/js/qvitter.js +++ b/js/qvitter.js @@ -627,8 +627,8 @@ if(!window.registrationsClosed) { }); - // validate on keyup / paste - $('#popup-register input').on('keyup paste',function(){ + // validate on keyup / paste / blur + $('#popup-register input').on('keyup paste blur',function(){ setTimeout(function () { // defer validation as after paste the content is not immediately available if(validateRegisterForm($('#popup-register')) && !$('#signup-user-nickname-step2').hasClass('nickname-taken') From beaba40458edab68f8803c938b2b82ffaea87199 Mon Sep 17 00:00:00 2001 From: Vahe Date: Mon, 9 May 2016 11:00:32 -0400 Subject: [PATCH 26/59] =?UTF-8?q?Armenian=20"=D5=80=D5=A1=D5=B5=D5=A5?= =?UTF-8?q?=D6=80=D5=A5=D5=B6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locale/hy.json | 198 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 locale/hy.json diff --git a/locale/hy.json b/locale/hy.json new file mode 100644 index 0000000..d7ca31f --- /dev/null +++ b/locale/hy.json @@ -0,0 +1,198 @@ +{ + "directionality":"hy", + "languageName": "Հայերեն", + "loginUsername": "Մուտքանուն կամ Էլ.փոստ", + "loginPassword": "Գաղտնաբառ", + "loginSignIn": "Մուտք", + "loginRememberMe": "Հիշել ինձ", + "loginForgotPassword": "Մոռացելեք գաղտնաբա՞ռը", + "notices": "Մտքեր", + "followers": "Հետևողներ", + "following": "Հետևում է", + "groups": "Խմբեր", + "compose": "Նոր միտք արտահայտել...", + "queetVerb": "ՈՒղարկել", + "queetsNounPlural": "Մտքեր", + "logout": "Դուրս գալ", + "languageSelected": "Լեզու:", + "viewMyProfilePage": "Ցույց տալ իմ էջը", + "expand": "Ընդարձակել", + "collapse": "Ծածկել", + "details": "Մանրամասն", + "expandFullConversation": "Ծածկել զրույցը", + "replyVerb": "Պատասխանել", + "requeetVerb": "Պատասխանել", + "favoriteVerb": "Ընտրյալներ", + "requeetedVerb": "Պատասխանեց", + "favoritedVerb": "Դեպի Ընտրյալներ", + "replyTo": "Պատասխանել", + "requeetedBy": "{requeeted-by} Պատասխանեց", + "favoriteNoun": "Ընտրյալը", + "favoritesNoun": "Ընտրյալները", + "requeetNoun": "Միտք", + "requeetsNoun": "Մտքեր", + "newQueet": "{new-notice-count} Նոր միտք", + "newQueets": "{new-notice-count} Նոր մտքեր", + "longmonthsJanuary": "Հունվար", + "longmonthsFebruary": "Փետրվար", + "longmonthsMars": "Մարտ", + "longmonthsApril": "Ապրիլ", + "longmonthsMay": "Մայիս", + "longmonthsJune": "Հունիս", + "longmonthsJuly": "Հուլիս", + "longmonthsAugust": "Օգոստոս", + "longmonthsSeptember": "Սեպտեմբեր", + "longmonthsOctober": "Հոկտեմբեր", + "longmonthsNovember": "Նոյենբեր", + "longmonthsDecember": "Դեկտեմբեր", + "shortmonthsJanuary": "Հնվ", + "shortmonthsFebruary": "Փտր", + "shortmonthsMars": "Մրտ", + "shortmonthsApril": "Ապր", + "shortmonthsMay": "Մյս", + "shortmonthsJune": "Հուն", + "shortmonthsJuly": "Հուլ", + "shortmonthsAugust": "Օգս", + "shortmonthsSeptember": "Սեպ", + "shortmonthsOctober": "Հոկ", + "shortmonthsNovember": "Նոյ", + "shortmonthsDecember": "Դեկ", + "time12am": "{time} AM", + "time12pm": "{time} PM", + "longDateFormat": "{time12} - {day} {month} {year}", + "shortDateFormatSeconds": "{seconds} վրկ", + "shortDateFormatMinutes": "{minutes} ր", + "shortDateFormatHours": "{hours} ժ", + "shortDateFormatDate": "{day} {month}.", + "shortDateFormatDateAndY": "{day} {month}. {year}", + "now": "Հիմա", + "posting": "Ուղարկում", + "viewMoreInConvBefore": "← Դիտել ավելին զրույցի մեջ", + "viewMoreInConvAfter": "Դիտել ավելին զրույցի մեջ →", + "mentions": "Հիշեցում", + "timeline": "Մտքահոս", + "publicTimeline": "Հանրային մտքահոսք", + "publicAndExtTimeline": "Ամբողջ հայտնի ցնացը", + "searchVerb": "Փնտրել", + "deleteVerb": "Ջնջել", + "cancelVerb": "Չեղարկել", + "deleteConfirmation": "Դուք վստա՞հ եք,որ ուզում եք ջնջել այս միտքը", + "userExternalFollow": "Կարդալ հեռակա", + "userExternalFollowHelp": "Ձեր ID հաշիվը (օրինակ՝ user@rainbowdash.net).", + "userFollow": "Կարդալ", + "userFollowing": "Կարդում եմ", + "userUnfollow": "Չեղարկել", + "joinGroup": "Անդամագրվել", + "joinExternalGroup": "Անդամագրվել հեռակա", + "isMemberOfGroup": "մասնակից", + "leaveGroup": "Հեռանալ", + "memberCount": "Մասնակիցներ", + "adminCount": "Ադմիններ", + "settings": "Կարգավորումներ", + "saveChanges": "Պահպանել փոփոխությունները", + "linkColor": "Հղումի գույնը", + "backgroundColor": "Ֆոնի գույնը", + "newToQuitter": "Նո՞ր եք {site-title} ։)", + "signUp": "Գրանցում", + "signUpFullName": "Անուն Ազգանուն", + "signUpEmail": "Էլ. փոստ", + "signUpButtonText": "Գրանցվել {site-title}", + "welcomeHeading": "Բարի Գալուստ {site-title} ։) ", + "welcomeText": "Мы
    \"Ֆեդերացիա\" և սա նշանակում է, որ Ձեզ հարկավոր չէ {site-title} հաշիվ, որպեսզի հնարավորություն ունենաք ընթերցելու, ընթերցված լինելու կամ համագործակցելու {site-title} օգտատերերի հետ. Դուք կարող եք գրանցվել ցանկացած StatusNet կամ GNU social սերվեր կամ ցանկացած ծառայությունում, հիմնված հետևյալ պրոտոկոլի վրա Ostatus! Դուք նույնիսկ հարկադրված չեք մանալու ծառայությանը – փորձեք տեղադրել հետևյալ ԾԱ֊ն Ձեր սրվերում GNU social :)
    Ֆեդերացիա
    ", + "registerNickname": "կեղծանուն", + "registerHomepage": "Տուն", + "registerBio": "Իմ մասին", + "registerLocation": "Գտնվելու վայր", + "registerRepeatPassword": "Կրկնեք Գաղտնաբառը", + "moreSettings": "Ավելի շատ կարգավորումներ", + "otherServers": "Որպես այլընտրանք դուք կարող եք գրանցվել GNU social֊ի սերվերներից մեկ այլ ցանցում։ Համեմատում", + "editMyProfile": "Խմբագրել Էջը", + "notifications": "Ծանուցումներ", + "xFavedYourQueet": "Ձեր մտքերը ավելացվելեն ընտրանի", + "xRepeatedYourQueet": "Պատասխանել են", + "xStartedFollowingYou": "այժմ կարդում են Ձեզ", + "followsYou": "Ձեզ են ընթերցում", + "FAQ": "Հաճախ տրվող հարցեր", + "inviteAFriend": "Առաջարկեք Ընկերներին ։Ճ ", + "goToExternalProfile": "Անցնել ամբողջական Էջ", + "cropAndSave": "Կտրել և պահպանել", + "showTerms": "Կարդացեք օգտագործման պայմանները", + "ellipsisMore": "Ավելին", + "blockUser": "Արգելափակել {username}", + "goToOriginalNotice": "Անցնել սկզբնական մտքին", + "goToTheUsersRemoteProfile": "Անցնել օգտագործողի հեռակա էջին", + "clickToDrag":"Սեխմեք տեղափոխելու համար", + "keyboardShortcuts":"Արագ ստեղնաշար", + "classicInterface":"Դասական տեսք {site-title}", + "accessibilityToggleLink":"Էլավելի շատ հարմարավետության համար սեղմեք այս հղմանը, որպեսզի միանաք դասական ինտերֆեյսին", + "tooltipBookmarkStream":"Ավելացնել այս Մտքահոսը էջանիշ", + "tooltipTopMenu":"Մենյու և կարգավորումենր", + "tooltipAttachImage":"Կցել նկար", + "tooltipShortenUrls":"Կրճատել բոլոր URL֊ները մտքերում", + "tooltipReloadStream":"Թարմացնել Մտքահոսսքը", + "tooltipRemoveBookmark":"Ջնջել պիտակը", + "clearHistory":"Հեռացնել այցելությունների պատմությունը", + "ERRORsomethingWentWrong":"Ինչ որ բան գնաց սխալ :(", + "ERRORmustBeLoggedIn":"Դիտելու համար Դուք պետք է մուտք գործեք համակարգ", + "ERRORcouldNotFindUserWithNickname":"Չհաջողվեց գտնել օգտատերին այս անունով \"{nickname}\" այս սերվերում", + "ERRORcouldNotFindGroupWithNickname":"Չհաջողվեց գտնել խումբ այս անունով \"{nickname}\" այս սերվերում", + "ERRORcouldNotFindPage":"Չհաջողվեց գտնել էջը", + "ERRORnoticeRemoved": "Այս միտքը հեռացվել է։", + "ERRORnoContactWithServer": "Չի ստացվում կապ հաստատել սերվերի հետ։ Սերվերը ծանրաբեռնված է կամ խնդիր կա Ինտերնետ հասանելիության հետ։ Խնդրում ենք փորձել ավելի ուշ։", + "ERRORattachmentUploadFailed": "Բեռնում չհաջողվեց։ Սխալ ձևաչափ կամ շատ մեծ չափ է։", + "hideRepliesToPeopleIDoNotFollow":"Թաքցնել պատասխանները այն մարդկանց համար, որոնց ես չեմ կարդում", + "markAllNotificationsAsSeen":"նշել ծանուցումը որպես կարդացված", + "notifyRepliesAndMentions":"Հիշեցում ու պատասխաներ", + "notifyFavs":"Ընտրյալներ", + "notifyRepeats":"Մտքեր", + "notifyFollows":"Նոր կարդացողներ", + "timelineOptions":"Մտքահոսի կարգավորումներ", + "ERRORfailedSavingYourSetting":"Չհաջովեց պահպանեց Ձեր կարգավորումները։", + "ERRORfailedMarkingAllNotificationsAsRead":"Չհաջողվեց նշել ծանուցումները որպես կարդացվածներ։", + "newNotification": "{new-notice-count} նոր ծանուցում", + "newNotifications": "{new-notice-count} նոր ծանուցումներ", + "thisIsANoticeFromABlockedUser":"Ուշադրություն. Այս ծանուցումը այն օգտատիրոջից է, ում դուք արգելափակել եք։ Սեղմեք նրան տեսնելու համար։", + "nicknamesListWithListName":"Ցանկ {nickname}'a: {list-name}", + "myListWithListName":"Իմ ցանկը. {list-name}", + "listMembers":"Մասնակիցներ", + "listSubscribers":"Բաժանորդներ", + "ERRORcouldNotFindList":"Չկա այդպիսի ցուցակ", + "emailAlreadyInUse":"Արդեն Օգտագործվում է", + "addEditLanguageLink":"Օգնեք թարկմանել {site-title} Ուրիշ լեզուներով:", + "onlyPartlyTranslated":"{site-title} միայն մասնակիորեն է թարգմանված {language-name} ({percent}%)։ Դուք կարող եք օգնել ավարտելու թարգմանությունը։ ռեպոզիտորի գլխավոր էջում Qvitter", + "startRant":"Начать декламацию", + "continueRant":"Продолжить декламацию", + "userBlocks":"Учётные записи, которые вы блокируете", + "buttonBlocked":"Արգելափակված է", + "buttonUnblock":"Հանել արգելքը", + "failedBlockingUser":"Սխալօգտատիրոջը արգելափակելիս։", + "failedUnblockingUser":"Սխալ օգտատիրոջ արգելքը հանելիս։", + "unblockUser": "Հանել արգելափակումը {username}", + "tooltipBlocksYou":"Դուք արգելափակված եք հետևյալ օգտատիրոջ կողմից {username}.", + "silenced":"Փակվածներ", + "silencedPlural":"Փակված էջեր", + "silencedUsersOnThisInstance":"Էջեր փակված {site-title}", + "sandboxed":" \"արկղում\"", + "sandboxedPlural":"Էջեր \"արկղում\"", + "sandboxedUsersOnThisInstance":"Էջեր \"արկղում\" {site-title}", + "silencedStreamDescription":"Փակված օգտատերերը չեն կարող մտքեր արտահայտել, իսկ արդեն արտահայտված մտքերը փակված են։ Լոկալ օգտատերերի համար այն նման է ջնջելուն, որը կարելի է չեղարկել, իսկ հեռակա օգտատերերի համար արգելվում է ողջ կայքը։", + "sandboxedStreamDescription":"Օգտատերերի մտքերը \"արկղում\" բացառվում են մտքահոսքից և ամբողջ հայտնի ցանցից. Մնացած դեպքերում նման օգտատերերը կորող են կայքից օգտվել այնպես, ինչպես մնացածը։", + "onlyShowNotificationsFromUsersIFollow":"Ցույց տալ միայն ինձ ընթերցող օգտատերերի ծանուցումները։", + "userOptions":"Օգտագործման եղանակներ", + "silenceThisUser":"Լուռ {nickname}", + "sandboxThisUser":"Տեղադրել {nickname} \"արկղում\"", + "unSilenceThisUser":"Արգելքից հանել {nickname}", + "unSandboxThisUser":"Ջնջել {nickname} \"արկղից\"", + "ERRORfailedSandboxingUser":"Սխալ օգտատիրոջը \"արկղ\" ուղարկելիս կամ դրանից հանելիս։", + "ERRORfailedSilencingUser":"Սխալ օգտատիրոջ վրա արգելք դնել/հանել֊իս։", + "muteUser":"Արհամարհել", + "unmuteUser":"Դադարեցնել արհամարհել", + "hideNotificationsFromMutedUsers":"Թաքցնել արհամարհված օգտատերերի ծանուցումները։", + "thisIsANoticeFromAMutedUser":"Դուք արհամարհում եք մտքի հեղինակին։ Սեղմեք այտեղ՝ միտքը տեսնելու համար։", + "userMutes":"Ձեր կողմից արհամարհված օգտատերերը։", + "userBlocked":"Ձեր կողմից արգելափակված օգտատերերը։", + + "mutedStreamDescription":"Դուք թացրել եք այս օգտատերերին Ձեր հոսքից։ Դուք կշարունակեք ստանալ այս օգտատերերից ծանուցումներ, եթե չընտրեք "Թաքցնել արհամարհվող օգտատերերի ծանուցումները" "userMuted":"Արհամարհվող օգտատերերը։",Ծանուցումների էջի մենյուի կարգավորումներում", + "profileAndSettings":"Էջ և կարգավորումներ", + "profileSettings":"Էջի կարգավորումներ" +} \ No newline at end of file From a969a6beb17e7a1f3dff794ca3f4b74c4e59b5c6 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Tue, 10 May 2016 10:45:57 +0200 Subject: [PATCH 27/59] fixes #55 --- locale/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/en.json b/locale/en.json index d4bbfa6..9d42c97 100644 --- a/locale/en.json +++ b/locale/en.json @@ -194,7 +194,7 @@ "userMutes":"Accounts you're muting", "userBlocked":"Blocked accounts", "userMuted":"Muted accounts", - "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", + "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still receive notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", "profileSettings":"Profile settings" } From 649b3dde42f5a67ed21e59378f19abe518155025 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Tue, 10 May 2016 11:42:39 +0200 Subject: [PATCH 28/59] implement #59 --- actions/qvitter.php | 3 ++- css/qvitter.css | 3 +++ js/dom-functions.js | 11 ++++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/actions/qvitter.php b/actions/qvitter.php index 09d3e01..3d93785 100644 --- a/actions/qvitter.php +++ b/actions/qvitter.php @@ -734,7 +734,8 @@ class QvitterAction extends ApiAction ul.stats a strong, .queet-box-extras button, #openid-login:hover:after, - .post-to-group { + .post-to-group, + .stream-item-header .addressees .reply-to .h-card.not-mentioned-inline { color:/*COLORSTART*//*COLOREND*/; } #unseen-notifications, diff --git a/css/qvitter.css b/css/qvitter.css index 82ac56e..1052e71 100644 --- a/css/qvitter.css +++ b/css/qvitter.css @@ -2805,6 +2805,9 @@ body.rtl .view-more-container-bottom { direction:rtl; } font-family:FontAwesome; font-style:normal; } +.stream-item-header .addressees .reply-to .h-card.not-mentioned-inline { + font-weight:bold; + } .stream-item-header .created-at { color: #BBBBBB; font-size: 13px; diff --git a/js/dom-functions.js b/js/dom-functions.js index 8f8bd48..34feb30 100644 --- a/js/dom-functions.js +++ b/js/dom-functions.js @@ -2222,8 +2222,17 @@ function buildQueetHtml(obj, idInStream, extraClasses, requeeted_by, isConversat var replyToProfileurl = obj.attentions[0].profileurl; var replyToScreenName = obj.attentions[0].screen_name; } + if(typeof replyToProfileurl != 'undefined' && typeof replyToScreenName != 'undefined') { - reply_to_html = '@' + replyToScreenName + ' '; + + // if the reply-to nickname doesn't exist in the notice, we add a class to the reply-to nickname in the header, to make the reply more visible + var mentionedInline = ''; + if(obj.statusnet_html.indexOf('>' + replyToScreenName + '<') === -1) { + console.log(obj.statusnet_html); + var mentionedInline = 'not-mentioned-inline'; + } + + reply_to_html = '@' + replyToScreenName + ' '; } // in-groups html From 21951743d4d26e8a36bad87b455a1debdf708aa3 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Tue, 10 May 2016 11:55:07 +0200 Subject: [PATCH 29/59] manual merge of !55 --- css/qvitter.css | 1 + 1 file changed, 1 insertion(+) diff --git a/css/qvitter.css b/css/qvitter.css index 1052e71..11a8ce4 100644 --- a/css/qvitter.css +++ b/css/qvitter.css @@ -4084,6 +4084,7 @@ div.nav-session { -moz-background-size: cover; -o-background-size: cover; background-size: cover; + background-position: center; } .hover-card .profile-header-inner { height: 200px; From 1db306b6e7134fd678505e5a2b4085bdade1d475 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Tue, 10 May 2016 12:11:40 +0200 Subject: [PATCH 30/59] =?UTF-8?q?small=20fix=20for=20armenian,=20copied=20?= =?UTF-8?q?from=20http://=D5=BE=D5=A1=D5=B0=D5=A5.=D5=B0=D5=A1=D5=B5/plugi?= =?UTF-8?q?ns/Qvitter/locale/hy.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locale/hy.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/locale/hy.json b/locale/hy.json index d7ca31f..0ad12d4 100644 --- a/locale/hy.json +++ b/locale/hy.json @@ -191,8 +191,8 @@ "thisIsANoticeFromAMutedUser":"Դուք արհամարհում եք մտքի հեղինակին։ Սեղմեք այտեղ՝ միտքը տեսնելու համար։", "userMutes":"Ձեր կողմից արհամարհված օգտատերերը։", "userBlocked":"Ձեր կողմից արգելափակված օգտատերերը։", - - "mutedStreamDescription":"Դուք թացրել եք այս օգտատերերին Ձեր հոսքից։ Դուք կշարունակեք ստանալ այս օգտատերերից ծանուցումներ, եթե չընտրեք "Թաքցնել արհամարհվող օգտատերերի ծանուցումները" "userMuted":"Արհամարհվող օգտատերերը։",Ծանուցումների էջի մենյուի կարգավորումներում", + "userMuted":"Արհամարհվող օգտատերերը։", + "mutedStreamDescription":"Դուք թացրել եք այս օգտատերերին Ձեր հոսքից։ Դուք կշարունակեք ստանալ այս օգտատերերից ծանուցումներ, եթե չընտրեք "Թաքցնել արհամարհվող օգտատերերի ծանուցումները " Ծանուցումների էջի մենյուի կարգավորումներում", "profileAndSettings":"Էջ և կարգավորումներ", "profileSettings":"Էջի կարգավորումներ" -} \ No newline at end of file +} From 6731c8d8bfa01d37b5c8830e84520b4158fd4dd9 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Tue, 10 May 2016 13:45:54 +0200 Subject: [PATCH 31/59] directionality of armenian is ltr --- locale/hy.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/hy.json b/locale/hy.json index 0ad12d4..533ac33 100644 --- a/locale/hy.json +++ b/locale/hy.json @@ -1,5 +1,5 @@ { - "directionality":"hy", + "directionality":"ltr", "languageName": "Հայերեն", "loginUsername": "Մուտքանուն կամ Էլ.փոստ", "loginPassword": "Գաղտնաբառ", From 05c4f15438a23c5bfdb98868dc0434b6d59824c5 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Wed, 11 May 2016 11:29:36 +0200 Subject: [PATCH 32/59] armenian update !58 --- locale/hy.json | 61 +++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/locale/hy.json b/locale/hy.json index 533ac33..14193e9 100644 --- a/locale/hy.json +++ b/locale/hy.json @@ -10,8 +10,8 @@ "followers": "Հետևողներ", "following": "Հետևում է", "groups": "Խմբեր", - "compose": "Նոր միտք արտահայտել...", - "queetVerb": "ՈՒղարկել", + "compose": "Նոր միտք ․..", + "queetVerb": "Գրել", "queetsNounPlural": "Մտքեր", "logout": "Դուրս գալ", "languageSelected": "Լեզու:", @@ -21,12 +21,12 @@ "details": "Մանրամասն", "expandFullConversation": "Ծածկել զրույցը", "replyVerb": "Պատասխանել", - "requeetVerb": "Պատասխանել", + "requeetVerb": "դեպի իմ էջ տանել", "favoriteVerb": "Ընտրյալներ", "requeetedVerb": "Պատասխանեց", "favoritedVerb": "Դեպի Ընտրյալներ", - "replyTo": "Պատասխանել", - "requeetedBy": "{requeeted-by} Պատասխանեց", + "replyTo": "Պատասխան", + "requeetedBy": "{requeeted-by} պատասխանեց", "favoriteNoun": "Ընտրյալը", "favoritesNoun": "Ընտրյալները", "requeetNoun": "Միտք", @@ -45,34 +45,34 @@ "longmonthsOctober": "Հոկտեմբեր", "longmonthsNovember": "Նոյենբեր", "longmonthsDecember": "Դեկտեմբեր", - "shortmonthsJanuary": "Հնվ", - "shortmonthsFebruary": "Փտր", - "shortmonthsMars": "Մրտ", - "shortmonthsApril": "Ապր", - "shortmonthsMay": "Մյս", - "shortmonthsJune": "Հուն", - "shortmonthsJuly": "Հուլ", - "shortmonthsAugust": "Օգս", - "shortmonthsSeptember": "Սեպ", - "shortmonthsOctober": "Հոկ", - "shortmonthsNovember": "Նոյ", - "shortmonthsDecember": "Դեկ", + "shortmonthsJanuary": "Հունվար", + "shortmonthsFebruary": "Փետրվար", + "shortmonthsMars": "Մարտ", + "shortmonthsApril": "Ապրիլ", + "shortmonthsMay": "Մայիս", + "shortmonthsJune": "ՀՀունիս", + "shortmonthsJuly": "Հուլիս", + "shortmonthsAugust": "Օգոստոս", + "shortmonthsSeptember": "Սեպտեմբեր", + "shortmonthsOctober": "Հոկտեմբեր", + "shortmonthsNovember": "Նոյեմբեր", + "shortmonthsDecember": "Դեկտեմբեր", "time12am": "{time} AM", "time12pm": "{time} PM", "longDateFormat": "{time12} - {day} {month} {year}", "shortDateFormatSeconds": "{seconds} վրկ", - "shortDateFormatMinutes": "{minutes} ր", - "shortDateFormatHours": "{hours} ժ", + "shortDateFormatMinutes": "{minutes} րոպե", + "shortDateFormatHours": "{hours} ժամ", "shortDateFormatDate": "{day} {month}.", "shortDateFormatDateAndY": "{day} {month}. {year}", - "now": "Հիմա", - "posting": "Ուղարկում", + "now": "Քիչ առաջ", + "posting": "Գրել", "viewMoreInConvBefore": "← Դիտել ավելին զրույցի մեջ", "viewMoreInConvAfter": "Դիտել ավելին զրույցի մեջ →", "mentions": "Հիշեցում", "timeline": "Մտքահոս", - "publicTimeline": "Հանրային մտքահոսք", - "publicAndExtTimeline": "Ամբողջ հայտնի ցնացը", + "publicTimeline": "Հանրային մտքեր", + "publicAndExtTimeline": "Ամբողջ ցանցը", "searchVerb": "Փնտրել", "deleteVerb": "Ջնջել", "cancelVerb": "Չեղարկել", @@ -98,9 +98,8 @@ "signUpEmail": "Էլ. փոստ", "signUpButtonText": "Գրանցվել {site-title}", "welcomeHeading": "Բարի Գալուստ {site-title} ։) ", - "welcomeText": "Мы
    \"Ֆեդերացիա\" և սա նշանակում է, որ Ձեզ հարկավոր չէ {site-title} հաշիվ, որպեսզի հնարավորություն ունենաք ընթերցելու, ընթերցված լինելու կամ համագործակցելու {site-title} օգտատերերի հետ. Դուք կարող եք գրանցվել ցանկացած StatusNet կամ GNU social սերվեր կամ ցանկացած ծառայությունում, հիմնված հետևյալ պրոտոկոլի վրա Ostatus! Դուք նույնիսկ հարկադրված չեք մանալու ծառայությանը – փորձեք տեղադրել հետևյալ ԾԱ֊ն Ձեր սրվերում GNU social :)
    Ֆեդերացիա
    ", - "registerNickname": "կեղծանուն", - "registerHomepage": "Տուն", + "welcomeText": "
    \"Ֆեդերացիա\" և սա նշանակում է, որ Ձեզ հարկավոր չէ {site-title} հաշիվ, որպեսզի հնարավորություն ունենաք ընթերցելու, ընթերցված լինելու կամ համագործակցելու {site-title} օգտատերերի հետ. Դուք կարող եք գրանցվել ցանկացած StatusNet կամ GNU social սերվեր կամ ցանկացած ծառայությունում, հիմնված հետևյալ պրոտոկոլի վրա Ostatus! Դուք նույնիսկ հարկադրված չեք մանալու ծառայությանը – փորձեք տեղադրել հետևյալ ԾԱ֊ն Ձեր սրվերում GNU social :)
    Ֆեդերացիա
    ", "registerNickname": "կեղծանուն", + "registerHomepage": "Կայք էջ", "registerBio": "Իմ մասին", "registerLocation": "Գտնվելու վայր", "registerRepeatPassword": "Կրկնեք Գաղտնաբառը", @@ -109,7 +108,7 @@ "editMyProfile": "Խմբագրել Էջը", "notifications": "Ծանուցումներ", "xFavedYourQueet": "Ձեր մտքերը ավելացվելեն ընտրանի", - "xRepeatedYourQueet": "Պատասխանել են", + "xRepeatedYourQueet": "պատասխանել են", "xStartedFollowingYou": "այժմ կարդում են Ձեզ", "followsYou": "Ձեզ են ընթերցում", "FAQ": "Հաճախ տրվող հարցեր", @@ -132,7 +131,7 @@ "tooltipReloadStream":"Թարմացնել Մտքահոսսքը", "tooltipRemoveBookmark":"Ջնջել պիտակը", "clearHistory":"Հեռացնել այցելությունների պատմությունը", - "ERRORsomethingWentWrong":"Ինչ որ բան գնաց սխալ :(", + "ERRORsomethwingWentWrong":"Ինչ որ բան գնաց սխալ :(", "ERRORmustBeLoggedIn":"Դիտելու համար Դուք պետք է մուտք գործեք համակարգ", "ERRORcouldNotFindUserWithNickname":"Չհաջողվեց գտնել օգտատերին այս անունով \"{nickname}\" այս սերվերում", "ERRORcouldNotFindGroupWithNickname":"Չհաջողվեց գտնել խումբ այս անունով \"{nickname}\" այս սերվերում", @@ -160,9 +159,9 @@ "emailAlreadyInUse":"Արդեն Օգտագործվում է", "addEditLanguageLink":"Օգնեք թարկմանել {site-title} Ուրիշ լեզուներով:", "onlyPartlyTranslated":"{site-title} միայն մասնակիորեն է թարգմանված {language-name} ({percent}%)։ Դուք կարող եք օգնել ավարտելու թարգմանությունը։ ռեպոզիտորի գլխավոր էջում Qvitter", - "startRant":"Начать декламацию", - "continueRant":"Продолжить декламацию", - "userBlocks":"Учётные записи, которые вы блокируете", + "startRant":"մեկնաբանել", + "continueRant":"Շարունակել մեկնաբանել", + "userBlocks":"Հաշիվներ,որոնք դուք ագելափակել եք", "buttonBlocked":"Արգելափակված է", "buttonUnblock":"Հանել արգելքը", "failedBlockingUser":"Սխալօգտատիրոջը արգելափակելիս։", From 182f1671e9742add271fe27e824d82560fef7acd Mon Sep 17 00:00:00 2001 From: Vahe Date: Wed, 11 May 2016 05:39:56 -0400 Subject: [PATCH 33/59] =?UTF-8?q?Update=20100%=20Armenian=20"=D5=80=D5=A1?= =?UTF-8?q?=D5=B5=D5=A5=D6=80=D5=A5=D5=B6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locale/hy.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/hy.json b/locale/hy.json index 14193e9..dfb9490 100644 --- a/locale/hy.json +++ b/locale/hy.json @@ -194,4 +194,4 @@ "mutedStreamDescription":"Դուք թացրել եք այս օգտատերերին Ձեր հոսքից։ Դուք կշարունակեք ստանալ այս օգտատերերից ծանուցումներ, եթե չընտրեք "Թաքցնել արհամարհվող օգտատերերի ծանուցումները " Ծանուցումների էջի մենյուի կարգավորումներում", "profileAndSettings":"Էջ և կարգավորումներ", "profileSettings":"Էջի կարգավորումներ" -} +} \ No newline at end of file From 1d4ae5a0300df2f567cddb74e23437b4244f1773 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Wed, 11 May 2016 12:14:15 +0200 Subject: [PATCH 34/59] albanian update by Besnik Bleta --- locale/sq.json | 69 +++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/locale/sq.json b/locale/sq.json index a1f5f97..55c7ea7 100644 --- a/locale/sq.json +++ b/locale/sq.json @@ -123,7 +123,7 @@ "goToTheUsersRemoteProfile": "Shkoni te profili i largët i përdoruesit", "clickToDrag":"Klikojeni që ta tërhiqni", "keyboardShortcuts":"Shkurtore tastiere", - "classicInterface":"Klasik {site-title}", + "classicInterface":"{site-title} klasik", "accessibilityToggleLink":"Për përdorshmëri më të mirë, klikoni mbi këtë lidhje që të kaloni te ndërfaqja klasike", "tooltipBookmarkStream":"Shtojeni këtë rrjedhë te faqerojtësit tuaj", "tooltipTopMenu":"Menu dhe rregullime", @@ -164,37 +164,38 @@ "continueRant":"Vazhdojeni dërdëllitjen", "hideEmbeddedInTimeline":"Fshih lëndë të trupëzuar në këtë rrjedhë kohore", "hideQuotesInTimeline":"Fshih citime në këtë rrjedhë kohore", - "userBlocks":"Accounts you're blocking", - "buttonBlocked":"Blocked", - "buttonUnblock":"Unblock", - "failedBlockingUser":"Failed to block the user.", - "failedUnblockingUser":"Failed to unblock the user.", - "unblockUser": "Unblock {username}", - "tooltipBlocksYou":"You are blocked from following {username}.", - "silenced":"Silenced", - "silencedPlural":"Silenced profiles", - "silencedUsersOnThisInstance":"Silenced profiles on {site-title}", - "sandboxed":"Sandboxed", - "sandboxedPlural":"Sandboxed profiles", - "sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}", - "silencedStreamDescription":"Silenced users can't login or post quips and the quips they've already posted are hidden. For local users it's like a delete that can be reversed, for remote users it's like a site wide block.", - "sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Apart from that, they can use the site like any other user.", - "onlyShowNotificationsFromUsersIFollow":"Only show notifications from users I follow", - "userOptions":"More user actions", - "silenceThisUser":"Silence {nickname}", - "sandboxThisUser":"Sandbox {nickname}", - "unSilenceThisUser":"Unsilence {nickname}", - "unSandboxThisUser":"Unsandbox {nickname}", - "ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user", - "ERRORfailedSilencingUser":"Failed silencing/unsilencing the user", - "muteUser":"Mute", - "unmuteUser":"Unmute", - "hideNotificationsFromMutedUsers":"Hide notifications from muted users", - "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", - "userMutes":"Accounts you're muting", - "userBlocked":"Blocked accounts", - "userMuted":"Muted accounts", - "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", - "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "userBlocks":"Llogari që i bllokoni", + "buttonBlocked":"Bllokuar", + "buttonUnblock":"Zhbllokuar", + "failedBlockingUser":"Dështoi në bllokimin e këtij përdoruesi.", + "failedUnblockingUser":"Dështoi në zhbllokimin e këtij përdoruesi.", + "unblockUser": "Zhbllokojeni {username}", + "tooltipBlocksYou":"Jeni bllokuar nga {username}.", + "silenced":"Heshtuar", + "silencedPlural":"Profile të heshtuar", + "silencedUsersOnThisInstance":"Profile të heshtuar në {site-title}", + "sandboxed":"Në bankoprovë", + "sandboxedPlural":"Profile në bankoprovë", + "sandboxedUsersOnThisInstance":"Profile në bankoprovë te {site-title}", + "silencedStreamDescription":"Përdoruesit e heshtuar s’mund të bëjnë hyrje apo të postojnë hoka dhe hokat që kanë postuar tashmë fshihen. Për përdoruesit vendorë kjo është si një fshirje që mund të zmbrapset, për përdorues të largët është si të jenë bllokuar për krejt sajtin.", + "sandboxedStreamDescription":"Hokat prej përdoruesish në bankoprovë janë të përjashtuara nga Rrjedha kohore Publike dhe Krejt Rrjeti i Njohur. Veçmas kësaj, ata mund të përdorin sajtin njësoj si cilido përdorues tjetër.", + "onlyShowNotificationsFromUsersIFollow":"Shfaq njoftime vetëm prej përdoruesish që ndjek", + "userOptions":"Më tepër veprime përdoruesi", + "silenceThisUser":"Heshtojeni {nickname}", + "sandboxThisUser":"Vëreni {nickname} në bankoprovë", + "unSilenceThisUser":"Çheshtojeni {nickname}", + "unSandboxThisUser":"Hiqeni {nickname} nga bankoprova", + "ERRORfailedSandboxingUser":"Dështoi vënia/heqaj e përdoruesit në bankoprovë", + "ERRORfailedSilencingUser":"Dështoi heshtimi/çheshtimi i përdoruesit", + "muteUser":"Hiqi zërin", + "unmuteUser":"Riktheji zërin", + "hideNotificationsFromMutedUsers":"Fshihi njoftimet nga përdorues me zë të hequr", + "thisIsANoticeFromAMutedUser":"I keni hequr zërin autorit të kësaj hoke. Klikoni këtu që të shfaqet, sido qoftë.", + "userMutes":"Llogari të cilave u hiqni zërin", + "userBlocked":"Llogari të bllokuara", + "userMuted":"Llogari pa zë", + "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ë hequrs", te menuja me ikonën e ingranazhit te faqja e njoftimeve.", + "profileAndSettings":"Profil dhe rregullime", + "profileSettings":"Rregullime profili" } + From 48a0414a60a52f0c47132895a2065e99a2c760f4 Mon Sep 17 00:00:00 2001 From: Besnik Bleta Date: Thu, 12 May 2016 05:59:45 -0400 Subject: [PATCH 35/59] Typo fixing in sq.json --- locale/sq.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locale/sq.json b/locale/sq.json index 55c7ea7..817d939 100644 --- a/locale/sq.json +++ b/locale/sq.json @@ -104,7 +104,7 @@ "registerBio": "Jetëshkrim", "registerLocation": "Vendndodhje", "registerRepeatPassword": "Rijepeni fjalëkalimin", - "moreSettings": "Më tepër regullime", + "moreSettings": "Më tepër rregullime", "otherServers": "Përndryshe, mund të krijoni një llogari në një shërbyes tjetër të rrjetit shoqëror GNU. Krahasim", "editMyProfile": "Përpunoni profilin", "notifications": "Njoftime", @@ -185,7 +185,7 @@ "sandboxThisUser":"Vëreni {nickname} në bankoprovë", "unSilenceThisUser":"Çheshtojeni {nickname}", "unSandboxThisUser":"Hiqeni {nickname} nga bankoprova", - "ERRORfailedSandboxingUser":"Dështoi vënia/heqaj e përdoruesit në bankoprovë", + "ERRORfailedSandboxingUser":"Dështoi vënia/heqja e përdoruesit në bankoprovë", "ERRORfailedSilencingUser":"Dështoi heshtimi/çheshtimi i përdoruesit", "muteUser":"Hiqi zërin", "unmuteUser":"Riktheji zërin", From 0632ce21253927a4478abc2bb7f22424fe1523eb Mon Sep 17 00:00:00 2001 From: Besnik Bleta Date: Thu, 12 May 2016 06:45:27 -0400 Subject: [PATCH 36/59] More typo fixing in sq translation --- locale/sq.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/locale/sq.json b/locale/sq.json index 817d939..3ef7cd8 100644 --- a/locale/sq.json +++ b/locale/sq.json @@ -104,7 +104,7 @@ "registerBio": "Jetëshkrim", "registerLocation": "Vendndodhje", "registerRepeatPassword": "Rijepeni fjalëkalimin", - "moreSettings": "Më tepër rregullime", + "moreSettings": "Më tepër regullime", "otherServers": "Përndryshe, mund të krijoni një llogari në një shërbyes tjetër të rrjetit shoqëror GNU. Krahasim", "editMyProfile": "Përpunoni profilin", "notifications": "Njoftime", @@ -174,18 +174,18 @@ "silenced":"Heshtuar", "silencedPlural":"Profile të heshtuar", "silencedUsersOnThisInstance":"Profile të heshtuar në {site-title}", - "sandboxed":"Në bankoprovë", - "sandboxedPlural":"Profile në bankoprovë", - "sandboxedUsersOnThisInstance":"Profile në bankoprovë te {site-title}", - "silencedStreamDescription":"Përdoruesit e heshtuar s’mund të bëjnë hyrje apo të postojnë hoka dhe hokat që kanë postuar tashmë fshihen. Për përdoruesit vendorë kjo është si një fshirje që mund të zmbrapset, për përdorues të largët është si të jenë bllokuar për krejt sajtin.", - "sandboxedStreamDescription":"Hokat prej përdoruesish në bankoprovë janë të përjashtuara nga Rrjedha kohore Publike dhe Krejt Rrjeti i Njohur. Veçmas kësaj, ata mund të përdorin sajtin njësoj si cilido përdorues tjetër.", + "sandboxed":"Në bankëprovë", + "sandboxedPlural":"Profile në bankëprovë", + "sandboxedUsersOnThisInstance":"Profile në bankëprovë te {site-title}", + "silencedStreamDescription":"Përdoruesit e heshtuar s’mund të bëjnë hyrje apo të postojnë hoka dhe, hokat që kanë postuar tashmë, fshihen. Për përdoruesit vendorë kjo është si një fshirje që mund të zmbrapset, për përdorues të largët është si të jenë bllokuar për krejt sajtin.", + "sandboxedStreamDescription":"Hokat prej përdoruesish në bankëprovë janë të përjashtuara nga Rrjedha kohore Publike dhe Krejt Rrjeti i Njohur. Veçmas kësaj, ata mund të përdorin sajtin njësoj si cilido përdorues tjetër.", "onlyShowNotificationsFromUsersIFollow":"Shfaq njoftime vetëm prej përdoruesish që ndjek", "userOptions":"Më tepër veprime përdoruesi", "silenceThisUser":"Heshtojeni {nickname}", - "sandboxThisUser":"Vëreni {nickname} në bankoprovë", + "sandboxThisUser":"Vëreni {nickname} në bankëprovë", "unSilenceThisUser":"Çheshtojeni {nickname}", - "unSandboxThisUser":"Hiqeni {nickname} nga bankoprova", - "ERRORfailedSandboxingUser":"Dështoi vënia/heqja e përdoruesit në bankoprovë", + "unSandboxThisUser":"Hiqeni {nickname} nga bankëprova", + "ERRORfailedSandboxingUser":"Dështoi vënia/heqja e përdoruesit në bankëprovë", "ERRORfailedSilencingUser":"Dështoi heshtimi/çheshtimi i përdoruesit", "muteUser":"Hiqi zërin", "unmuteUser":"Riktheji zërin", @@ -194,7 +194,7 @@ "userMutes":"Llogari të cilave u hiqni zërin", "userBlocked":"Llogari të bllokuara", "userMuted":"Llogari pa zë", - "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ë hequrs", 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", "profileSettings":"Rregullime profili" } From 7798a3dfcc79d6866ec35fba4a9f8fc1f43a0217 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Fri, 10 Jun 2016 09:42:25 +0200 Subject: [PATCH 37/59] spanish terms of use, by https://quitter.es/colegota --- doc/es/terms.html | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 doc/es/terms.html diff --git a/doc/es/terms.html b/doc/es/terms.html new file mode 100644 index 0000000..112e7c5 --- /dev/null +++ b/doc/es/terms.html @@ -0,0 +1,30 @@ +

    {instance-name} no es un servicio y tú no eres un cliente aquí. Somos una pequeña parte de un +cambio social mayor, creando una gran comunidad descentralizada. Esto significa que no tenemos que +ser neutrales sobre el contenido de este nodo de GNU Social. Si no te gusta el camino que el nodo +está llevando, eres libre de cambiarte a otro nodo o crear el tuyo propio. Podrás continuar siguiendo +y siendo seguido (o bloqueado) por usuarios de este nodo.

    + +

    Frente al modelo vertical de jerarquía de las redes comerciales, éste crea una estructura de poder +horizontal. Podemos proteger a los demás de acoso y opresión, pero sin centralizar la censura.

    + +

    En este nodo, los usuarios que acosen a otros serán eliminados. Tendremos también una postura +estricta contra el racismo, el sexismo, la discriminación contra personas discapacitadas, la homofobia +y la transfobia. Tales comportamientos hacen el sitio inseguro para otros usuarios y, en la práctica, +limita su libertad de expresión.

    + +

    La Línea Temporal Pública es considerada un lugar especialmente sensible. Es lo que los nuevos +usuarios ven, y todos los usuarios registrados van a ver los mensajes publicados ahí. Los moderadores +pueden excluir a usuarios de aparecer en la línea temporal pública en cualquier momento, sin previo +aviso, temporal o permanentemente. Considera publicar en la línea temporal como un privilegio, no como +un derecho. Si eres excluido de la línea temporal pública, todavía dispones de otras opciones en el +sitio como cualquier otro usuario.

    + +

    Publicidad y entidades comerciales no son permitidas en este nodo. No tenemos ningún ánimo de lucro +y nuestros gastos son pagados por donaciones de personas. Podemos +ayudarte a montar tu propio nodo de GNU Social si tu intención no es comercial.

    + +

    Todos los contenidos de este sitio están bajo licencia {instance-license-title}

    + +

    Cada usuario es responsable del contenido que sube. Si tienes dudas sobre algo publicado en este +nodo, contacta primero con el usuario en cuestión. Como último recurso puedes escribir un correo +electrónico a los administradores.

    From c43d50e59f840c564316388d523b6ff433375acb Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Fri, 10 Jun 2016 09:42:42 +0200 Subject: [PATCH 38/59] custom terms option in readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a83def1..870a584 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ $config['site']['qvitter']['sprite'] = Plugin::staticPath('Qvitter', '').'img/sp $config['site']['qvitter']['enablewelcometext'] = true; // $config['site']['qvitter']['customwelcometext']['sv'] = '

    Välkommen till Quitter.se – en federerad1 mikrobloggsallmänning!

    Etc etc...

    '; // $config['site']['qvitter']['customwelcometext']['en'] = '

    Welcome to Quitter.se – a federated microblog common!

    Etc etc...

    '; +// $config['site']['qvitter']['customtermsofuse'] = 'Our custom terms of use'; $config['site']['qvitter']['blocked_ips'] = array(); // Recommended GNU social settings From d3c3112310766d70f7accc07f8b94ae612547e79 Mon Sep 17 00:00:00 2001 From: A Petapouca Date: Wed, 15 Jun 2016 17:12:19 -0400 Subject: [PATCH 39/59] Update gl.json 15/06/2016 --- locale/gl.json | 172 ++++++++++++++++++++++++------------------------- 1 file changed, 86 insertions(+), 86 deletions(-) diff --git a/locale/gl.json b/locale/gl.json index b2e093a..4e0338c 100644 --- a/locale/gl.json +++ b/locale/gl.json @@ -21,7 +21,7 @@ "details": "Detalles", "expandFullConversation": "Ver a conversa enteira", "replyVerb": "Responder", - "requeetVerb": "Rechouchíar", + "requeetVerb": "Rechouchiar", "favoriteVerb": "Favorito", "requeetedVerb": "Rechouchiado", "favoritedVerb": "Marcado como favorito", @@ -73,10 +73,10 @@ "timeline": "Liña temporal", "publicTimeline": "Liña temporal pública", "publicAndExtTimeline": "Toda a rede coñecida", - "searchVerb": "Buscar", + "searchVerb": "Pesquisar", "deleteVerb": "Eliminar", "cancelVerb": "Cancelar", - "deleteConfirmation": "Estás seguro de querer eliminar este chío?", + "deleteConfirmation": "Seguro que queres eliminar este chío?", "userExternalFollow": "Seguir", "userExternalFollowHelp": "ID da tua conta (p.ex. usuario@dominio.net).", "userFollow": "Seguir", @@ -87,19 +87,19 @@ "isMemberOfGroup": "Membro", "leaveGroup": "Abandonar grupo", "memberCount": "Membros", - "adminCount": "Administradores", + "adminCount": "Administradoras", "settings": "Configuración", "saveChanges": "Gardar os cambios", "linkColor": "Cor da ligazón", "backgroundColor": "Cor do fondo", - "newToQuitter": "Es novo en {site-title}?", + "newToQuitter": "Es nova en {site-title}?", "signUp": "Rexistrarse", "signUpFullName": "Nome completo", "signUpEmail": "Enderezo electrónico", "signUpButtonText": "Rexístrate en {site-title}", - "welcomeHeading": "Benvido/a a {site-title}.", - "welcomeText": "Somos unha
    «Federación», isto significa que non é necesario ter unha conta en {site-title} para poder seguir, ser seguido por ou interactuar cos usuarios de {site-title}. Podes rexistrarte en calquera servidor StatusNet ou GNU social, ou servizo baseado no protocolo OStatus! Tampouco tes porque rexistrarse en calquera servizo para participar, simplemente instala o software GNU social no teu propio servidor. :)
    federación
    de microblogueros que, coma ti, están motivados pola ética e a solidariedade e queren abandonar os servizos centralizados capitalistas.", - "registerNickname": "Nome do usuario", + "welcomeHeading": "Benvida/o a {site-title}.", + "welcomeText": "Somos unha
    «Federación», isto significa que non é necesario ter unha conta en {site-title} para poder seguir, ser seguida por ou interactuar coas usuarias de {site-title}. Podes rexistrarte en calquera servidor StatusNet ou GNU social, ou servizo baseado no protocolo OStatus! Tampouco tes por que te rexistrar en calquera servizo para participar, simplemente instala o software GNU social no teu propio servidor. :)
    federación
    de microblogueiras que, coma ti, están motivadas pola ética e a solidariedade e queren abandonar os servizos centralizados capitalistas.", + "registerNickname": "Nome da usuaria", "registerHomepage": "Sitio web", "registerBio": "Biografía", "registerLocation": "Localización", @@ -109,92 +109,92 @@ "editMyProfile": "Editar o perfil", "notifications": "Notificacións", "xFavedYourQueet": "marcou o teu chío como favorito", - "xRepeatedYourQueet": "rechouchíoute", + "xRepeatedYourQueet": "rechouchioute", "xStartedFollowingYou": "seguiute", "followsYou": "séguete", "FAQ": "Preguntas frecuentes", "inviteAFriend": "Convida aos teus amigos!", "goToExternalProfile": "Ir ao perfil completo", "cropAndSave": "Recortar e gardar", - "showTerms": "Ler os nosos términos de uso", + "showTerms": "Ler os nosos termos de uso", "ellipsisMore": "Máis", "blockUser": "Bloquear a {username}", - "goToOriginalNotice": "Go to original notice", - "goToTheUsersRemoteProfile": "Go to the user's remote profile", - "clickToDrag":"Click to drag", - "keyboardShortcuts":"Keyboard shortcuts", - "classicInterface":"Classic {site-title}", - "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", - "ERRORsomethingWentWrong":"Something went wrong.", - "ERRORmustBeLoggedIn":"You must be logged in to view this stream.", - "ERRORcouldNotFindUserWithNickname":"Could not find a user with nickname \"{nickname}\" on this server", - "ERRORcouldNotFindGroupWithNickname":"Could not find a group with nickname \"{nickname}\" on this server", - "ERRORcouldNotFindPage":"Could not find that page.", - "ERRORnoticeRemoved": "This notice has been removed.", - "ERRORnoContactWithServer": "Can not establish a connection to the server. The server could be overloaded, or there might be a problem with your internet connecton. Please try again later!", - "ERRORattachmentUploadFailed": "The upload failed. The format might be unsupported or the size too large.", - "hideRepliesToPeopleIDoNotFollow":"Hide replies to people I don't follow", - "markAllNotificationsAsSeen":"Mark all notifications as seen", - "notifyRepliesAndMentions":"Mentions and replies", - "notifyFavs":"Favorites", - "notifyRepeats":"Requeets", - "notifyFollows":"New followers", - "timelineOptions":"Timeline options", - "ERRORfailedSavingYourSetting":"Failed saving your setting", - "ERRORfailedMarkingAllNotificationsAsRead":"Failed marking all notifications as seen.", - "newNotification": "{new-notice-count} new notification", - "newNotifications": "{new-notice-count} new notifications", - "thisIsANoticeFromABlockedUser":"Warning: This is a notice from a user you have blocked. Click to show it.", - "nicknamesListWithListName":"{nickname}’s list: {list-name}", - "myListWithListName":"My list: {list-name}", - "listMembers":"Members", - "listSubscribers":"Subscribers", - "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 {language-name} ({percent}%). You can help complete the translation at Qvitter's repository homepage", - "startRant":"Start a rant", - "continueRant":"Continue the rant", + "goToOriginalNotice": "Ir ao aviso orixinal", + "goToTheUsersRemoteProfile": "Ir ao perfil da usuaria", + "clickToDrag":"Premer para arrastrar", + "keyboardShortcuts":"Atallos de teclado", + "classicInterface":"Vista Clásica {site-title}", + "accessibilityToggleLink":"Para unha mellor accesibilidade, preme nesta ligazón para mudares á vista clásica", + "tooltipBookmarkStream":"Engade este fío aos teus marcadores", + "tooltipTopMenu":"Menú e axustes", + "tooltipAttachImage":"Achegar unha imaxe", + "tooltipShortenUrls":"Acurtar tódalas URLs do chío", + "tooltipReloadStream":"Actualizar este fío", + "tooltipRemoveBookmark":"Eliminar este marcador", + "clearHistory":"Limpar o historial de navegación", + "ERRORsomethingWentWrong":"Algo foi mal.", + "ERRORmustBeLoggedIn":"Debes acceder á túa conta para ver este fío.", + "ERRORcouldNotFindUserWithNickname":"Non se puido atopa-la usuaria co alcume \"{nickname}\" neste servidor", + "ERRORcouldNotFindGroupWithNickname":"Non se puido atopa-lo grupo co alcume \"{nickname}\" neste servidor", + "ERRORcouldNotFindPage":"Non se puido atopar esta páxina.", + "ERRORnoticeRemoved": "Este aviso foi eliminado.", + "ERRORnoContactWithServer": "Non se pode establecer conexión co servidor. O servidor pode estar saturado ou pode que haxa un problema coa túa conexión a internet. Por favor, téntao de novo máis tarde!", + "ERRORattachmentUploadFailed": "Fallou a subida. Poida que non se admita o formato ou que o tamaño sexa demasiado grande.", + "hideRepliesToPeopleIDoNotFollow":"Ocultar respostas a xente que non sigo", + "markAllNotificationsAsSeen":"Marcar tódalas notificacións como vistas", + "notifyRepliesAndMentions":"Mencións e respostas", + "notifyFavs":"Favoritos", + "notifyRepeats":"Rechouchíos", + "notifyFollows":"Novas seguidoras", + "timelineOptions":"Opcións da Liña de Tempo", + "ERRORfailedSavingYourSetting":"Erro ao garda-los teus axustes", + "ERRORfailedMarkingAllNotificationsAsRead":"Erro ao marcar tódalas notificacións como vistas.", + "newNotification": "{new-notice-count} nova notificación", + "newNotifications": "{new-notice-count} novas notificacións", + "thisIsANoticeFromABlockedUser":"Atención: Este é un aviso dunha usuaria que tes bloqueada. Preme para mostralo.", + "nicknamesListWithListName":"Listaxe de {nickname}: {list-name}", + "myListWithListName":"A miña listaxe: {list-name}", + "listMembers":"Integrantes", + "listSubscribers":"Subscritoras", + "ERRORcouldNotFindList":"Non existe esa listaxe.", + "emailAlreadyInUse":"Xa en uso", + "addEditLanguageLink":"Axuda a traducir {site-title} a outro idioma", + "onlyPartlyTranslated":"{site-title} soamente está parcialmente traducida ao {language-name} ({percent}%). Podes axudar a completa-la tradución en Qvitter's repository homepage", + "startRant":"Pon unha queixa", + "continueRant":"Continúa coa queixa", "hideEmbeddedInTimeline":"Ocultar contido incrustado nesta liña temporal", "hideQuotesInTimeline":"Ocultar citas nesta liña temporal", - "userBlocks":"Accounts you're blocking", - "buttonBlocked":"Blocked", - "buttonUnblock":"Unblock", - "failedBlockingUser":"Failed to block the user.", - "failedUnblockingUser":"Failed to unblock the user.", - "unblockUser": "Unblock {username}", - "tooltipBlocksYou":"You are blocked from following {username}.", - "silenced":"Silenced", - "silencedPlural":"Silenced profiles", - "silencedUsersOnThisInstance":"Silenced profiles on {site-title}", - "sandboxed":"Sandboxed", - "sandboxedPlural":"Sandboxed profiles", - "sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}", - "silencedStreamDescription":"Silenced users can't login or post quips and the quips they've already posted are hidden. For local users it's like a delete that can be reversed, for remote users it's like a site wide block.", - "sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Apart from that, they can use the site like any other user.", - "onlyShowNotificationsFromUsersIFollow":"Only show notifications from users I follow", - "userOptions":"More user actions", - "silenceThisUser":"Silence {nickname}", - "sandboxThisUser":"Sandbox {nickname}", - "unSilenceThisUser":"Unsilence {nickname}", - "unSandboxThisUser":"Unsandbox {nickname}", - "ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user", - "ERRORfailedSilencingUser":"Failed silencing/unsilencing the user", - "muteUser":"Mute", - "unmuteUser":"Unmute", - "hideNotificationsFromMutedUsers":"Hide notifications from muted users", - "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", - "userMutes":"Accounts you're muting", - "userBlocked":"Blocked accounts", - "userMuted":"Muted accounts", - "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", - "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "userBlocks":"Contas que tes bloqueadas", + "buttonBlocked":"Bloqueada", + "buttonUnblock":"Desbloquear", + "failedBlockingUser":"Erro ao bloquear a usuaria.", + "failedUnblockingUser":"Erro ao desbloquea-la usuaria.", + "unblockUser": "Desbloquar a {username}", + "tooltipBlocksYou":"{username} tente bloqueada.", + "silenced":"Calada", + "silencedPlural":"Perfís calados", + "silencedUsersOnThisInstance":"Perfís calados de {site-title}", + "sandboxed":"En corentena", + "sandboxedPlural":"Perfís en corentena", + "sandboxedUsersOnThisInstance":"Perfís en corentena de {site-title}", + "silencedStreamDescription":"As usuarias caladas non poden iniciar sesión ou enviar chíos e os chíos que xa teñan enviado, agóchanse. Para usuarias locais é coma unha eliminación que pode ser revertida, para usuarias remotas é coma se se bloquease todo un sitio.", + "sandboxedStreamDescription":"Os chíos das usuarias en corentena exclúense da Liña de Tempo Pública e de Toda a Rede Coñecida. Á parte diso, poden usar o sitio coma calquera outra usuaria.", + "onlyShowNotificationsFromUsersIFollow":"Amosar soamente notificacións das usuarias que sigo", + "userOptions":"Máis accións da usuaria", + "silenceThisUser":"Calar a {nickname}", + "sandboxThisUser":"Poñer en corentena a {nickname}", + "unSilenceThisUser":"Darlle voz a {nickname}", + "unSandboxThisUser":"Quitar da corentena a {nickname}", + "ERRORfailedSandboxingUser":"Erro ao poñer/quitar da corentena a usuaria", + "ERRORfailedSilencingUser":"Erro ao calar/darlle voz á usuaria", + "muteUser":"Acalar", + "unmuteUser":"Devolverlle a fala", + "hideNotificationsFromMutedUsers":"Agochar notificacións de usuarias acaladas", + "thisIsANoticeFromAMutedUser":"Acalaches a autora deste chío. Preme aquí para amosalo de tódolos xeitos.", + "userMutes":"Contas que estás acalando", + "userBlocked":"Contas bloqueadas", + "userMuted":"Contas acaladas", + "mutedStreamDescription":"Ocultaches estas contas da túa liña de tempo. Continuarás a recibir notificacións destas contas, a non ser que selecciones "Agochar notificacións de usuarias acaladas" na roda dentada do menú da páxina de notificacións.", + "profileAndSettings":"Perfil e axustes", + "profileSettings":"Axustes do perfil" } From 4c8bc04bca8d2d4f6a1db31d9fc799dbd0b3c8c0 Mon Sep 17 00:00:00 2001 From: Oleg Date: Fri, 17 Jun 2016 06:19:28 -0400 Subject: [PATCH 40/59] Add new file --- locale/ua.json | 200 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 locale/ua.json diff --git a/locale/ua.json b/locale/ua.json new file mode 100644 index 0000000..10b649a --- /dev/null +++ b/locale/ua.json @@ -0,0 +1,200 @@ +{ + "directionality":"ltr", + "languageName": "Українська", + "loginUsername": "Им’я або e-mail", + "loginPassword": "Пароль", + "loginSignIn": "Вхід", + "loginRememberMe": "Пам’ятати мене", + "loginForgotPassword": "Забули пароль?", + "notices": "Повідомлення", + "followers": "Спостерігачі", + "following": "За чім спостерігаемо", + "groups": "Групи", + "compose": "Про що повідомляємо?", + "queetVerb": "Відправити", + "queetsNounPlural": "Повідомлення", + "logout": "Вихід", + "languageSelected": "Мова:", + "viewMyProfilePage": "Переглянути сторінку моєго профіля", + "expand": "Разгорнути", + "collapse": "Приховати", + "details": "Подробиці", + "expandFullConversation": "Разгорнути розмову", + "replyVerb": "Відповісти", + "requeetVerb": "Відповісти", + "favoriteVerb": "Улюблений", + "requeetedVerb": "Відповів", + "favoritedVerb": "У улюблене", + "replyTo": "Відповісти на", + "requeetedBy": "Повідомлення на {requeeted-by}", + "favoriteNoun": "Улюблений", + "favoritesNoun": "Улюблене", + "requeetNoun": "Повідомлення у відповідь", + "requeetsNoun": "Повідомлення у відповідь", + "newQueet": "{new-notice-count} нове повідомлення", + "newQueets": "{new-notice-count} нові повідомлення", + "longmonthsJanuary": "Січень", + "longmonthsFebruary": "Лютий", + "longmonthsMars": "Березень", + "longmonthsApril": "Квітень", + "longmonthsMay": "Травень", + "longmonthsJune": "Червень", + "longmonthsJuly": "Липень", + "longmonthsAugust": "Серпень", + "longmonthsSeptember": "Вересень", + "longmonthsOctober": "Жовтень", + "longmonthsNovember": "Лістопад", + "longmonthsDecember": "Грудень", + "shortmonthsJanuary": "січ", + "shortmonthsFebruary": "лют", + "shortmonthsMars": "бер", + "shortmonthsApril": "кві", + "shortmonthsMay": "тра", + "shortmonthsJune": "чер", + "shortmonthsJuly": "лип", + "shortmonthsAugust": "сер", + "shortmonthsSeptember": "вер", + "shortmonthsOctober": "жов", + "shortmonthsNovember": "ліс", + "shortmonthsDecember": "гру", + "time12am": "{time} AM", + "time12pm": "{time} PM", + "longDateFormat": "{time12} - {day} {month} {year}", + "shortDateFormatSeconds": "{seconds}с", + "shortDateFormatMinutes": "{minutes}хвил", + "shortDateFormatHours": "{hours}год", + "shortDateFormatDate": "{day} {month}", + "shortDateFormatDateAndY": "{day} {month} {year}", + "now": "зараз", + "posting": "повідомляти", + "viewMoreInConvBefore": "← Переглянути більше в розмове", + "viewMoreInConvAfter": "Переглянути більше в розмове →", + "mentions": "Згадування", + "timeline": "Стрічка", + "publicTimeline": "Публічна стрічка", + "publicAndExtTimeline": "Вся Відома Мережа", + "searchVerb": "Пошук", + "deleteVerb": "Видалити", + "cancelVerb": "Скасувати", + "deleteConfirmation": "Ви упевнени, шо бажаете видалити це повідомлення?", + "userExternalFollow": "Дістанційно спостерігати", + "userExternalFollowHelp": "Ваш обліковий запис (наприклад user@rainbowdash.net).", + "userFollow": "Спостерігати", + "userFollowing": "За чім спостерігаю", + "userUnfollow": "Скасування", + "joinGroup": "Приєднатися", + "joinExternalGroup": "Приєднатися дистанційно", + "isMemberOfGroup": "Учасник", + "leaveGroup": "Покинути групу", + "memberCount": "Учасникі", + "adminCount": "Адміністратори", + "settings": "Налаштування", + "saveChanges": "Зберегти зміни", + "linkColor": "Колір посилання", + "backgroundColor": "Колір тла", + "newToQuitter": "Нове на {site-title}?", + "signUp": "Реєстрація", + "signUpFullName": "Повне им’я", + "signUpEmail": "E-mail", + "signUpButtonText": "Реєстрація на {site-title}", + "welcomeHeading": "Ласкаво просимо в {site-title}.", + "welcomeText": "Ми є
    \"Федерацією\" и це означає що Вам не потрібно створювати обліковий запис на {site-title} для того шоб спостерігати, бути под спостереженнем або взаємодіяти с користувачамі {site-title}. Ви можіте зареєструватися на будь-яким StatusNet або GNU social server або іншім сервере, котрий базуется на протоколі Ostatus! Також ви маєте змогу зовсім не приєднуватися к сервісу – спробуйти встановити це файне ПЗ GNU social на своєму сервері! :)
    Федерація
    мікроблогеров, котри піклуются об соціальний справедливісті та солідарності и хочут звільнитися від централізованних капіталістичних послуг.", + "registerNickname": "Прізвисько", + "registerHomepage": "Домашня сторінка", + "registerBio": "Про себе", + "registerLocation": "Місцезнаходження", + "registerRepeatPassword": "Повторити пароль", + "moreSettings": "Більше налаштуваннь", + "otherServers": "Також ви можете створити обліковий запис на іншому сервере мережи GNU social. Порівняння", + "editMyProfile": "Редагувати профіль", + "notifications": "Оголошення", + "xFavedYourQueet": "улюблене Ваше повідомлення", + "xRepeatedYourQueet": "Вам відповіли", + "xStartedFollowingYou": "спостерігают за Вами зараз", + "followsYou": "спостерігают за Вами", + "FAQ": "ЧАП", + "inviteAFriend": "Запросі друз’ів!", + "goToExternalProfile": "Перейти до повного профіля", + "cropAndSave": "Відрізати та зберегти", + "showTerms": "Читати наші Умови користування", + "ellipsisMore": "Більше", + "blockUser": "Заблокувати {username}", + "goToOriginalNotice": "Перейти до початкового повідомлення", + "goToTheUsersRemoteProfile": "Перейти до дістанційного профіля корістувача", + "clickToDrag":"Клацніть для перетягнення", + "keyboardShortcuts":"Клавіатурні скорочення", + "classicInterface":"Класичний {site-title}", + "accessibilityToggleLink":"Для кращей сприйнятливості клацніть це посилання шоб переключитись на класичний інтерфейс", + "tooltipBookmarkStream":"Додати цей потік до ваших закладок", + "tooltipTopMenu":"Меню та налаштування", + "tooltipAttachImage":"Приєднати зображення", + "tooltipShortenUrls":"Скоротити усі URL у повідомленні", + "tooltipReloadStream":"Оновіти цей потік", + "tooltipRemoveBookmark":"Видалити цю закладку", + "clearHistory":"Очистити історію перегляда", + "ERRORsomethingWentWrong":"Щось пішло не так.", + "ERRORmustBeLoggedIn":"Ви повинни бути зареєстрованним для перегляду цього потіка.", + "ERRORcouldNotFindUserWithNickname":"Не можу знайти користувача з таким прізвиськом \"{nickname}\" на цьому сервері", + "ERRORcouldNotFindGroupWithNickname":"Не можу знайти групу з цією назвой \"{nickname}\" на цьому сервері", + "ERRORcouldNotFindPage":"Не можу знайти цю сторінку.", + "ERRORnoticeRemoved": "Це повідомлення буде вилучіне.", + "ERRORnoContactWithServer": "Не можу з’еднатися з сервером. Сервер мабуть перевантажен або ви маете проблеми зі з’еднанням до Інтернета. Будь ласка, спробуйти пізніше!", + "ERRORattachmentUploadFailed": "Невдача при завантаженні. Формат мабуть не підтримуются або розмір дуже великий.", + "hideRepliesToPeopleIDoNotFollow":"Сховати відповіді людей за котрими я не слідкую", + "markAllNotificationsAsSeen":"Відмітити все оголошення як прочитані", + "notifyRepliesAndMentions":"Згадування та відповіді", + "notifyFavs":"Улюблені", + "notifyRepeats":"Повідомлення у відповідь", + "notifyFollows":"Нові спостерегачі", + "timelineOptions":"Параметри стрічки", + "ERRORfailedSavingYourSetting":"Невдача у збережженні Ваших налаштувань", + "ERRORfailedMarkingAllNotificationsAsRead":"Невдача при відміткі всіх оголошень як прочитаних.", + "newNotification": "{new-notice-count} нове оголошення", + "newNotifications": "{new-notice-count} нові оголошення", + "thisIsANoticeFromABlockedUser":"Увага: Це повідомлення від заблокованого користувача. Клацніть щоб побачити його.", + "nicknamesListWithListName":"Список {nickname}: {list-name}", + "myListWithListName":"Мій список: {list-name}", + "listMembers":"Учасникі", + "listSubscribers":"Передплатникі", + "ERRORcouldNotFindList":"Нажаль, нема такого списка.", + "emailAlreadyInUse":"Вже використовувается", + "addEditLanguageLink":"Допоможіть перекласти {site-title} на іншу мову", + "onlyPartlyTranslated":"{site-title} тількі частково перекладен на {language-name} ({percent}%). Ви можете допомогти у перекладі на Qvitter's repository homepage", + "startRant":"Почати декламацію", + "continueRant":"Продовжити декламацію", + "hideEmbeddedInTimeline":"Сховати вставлений зміст на цей стрічці", + "hideQuotesInTimeline":"Сховати цитати на цей стрічці", + "userBlocks":"Облікови записи котри Ви заблокували", + "buttonBlocked":"Заблокувати", + "buttonUnblock":"Разблокувати", + "failedBlockingUser":"Невдача при блокуванні користувача.", + "failedUnblockingUser":"Невдача при разблокуванні користувача.", + "unblockUser": "Разблокувати {username}", + "tooltipBlocksYou":"Ви заблоковани користувачем {username}.", + "silenced":"Заборонені", + "silencedPlural":"Профілі заборонених", + "silencedUsersOnThisInstance":"Профілі заборонених на {site-title}", + "sandboxed":"У \"пісочниці\"", + "sandboxedPlural":"Профілі у \"пісочниці\"", + "sandboxedUsersOnThisInstance":"Профілі у \"пісочниці\" на {site-title}", + "silencedStreamDescription":"Заборонені користувачі не можуть увійти або розмістити повідомлення, іх вже розміщенні повідомлення будут заховани. Для місцевих користувачей це будє подібно видалинню з подальшою відміной, а для дістанційних - на блокування всього сайта.", + "sandboxedStreamDescription":"Повідомлення від користувача, котрий у \"пісочниці\", будут виключіни з Публічной стрічці та Всій Відомой Мережи. У всьому іншому ці користувачі можут користуватися сайтом як і усі.", + "onlyShowNotificationsFromUsersIFollow":"Показувати оголошення тількі тіх користувачей, за котрими я спостерегаю", + "userOptions":"Більше дій для користувача", + "silenceThisUser":"Заборонити {nickname}", + "sandboxThisUser":"У \"пісочницю\" {nickname}", + "unSilenceThisUser":"Дозволити {nickname}", + "unSandboxThisUser":"Видалити з \"пісочниці\" {nickname}", + "ERRORfailedSandboxingUser":"Невдача при розміщенні у \"пісочниці\" або вилученні з неї користувача", + "ERRORfailedSilencingUser":"Невдача при забороні або дозволи користувача", + "muteUser":"Ігнорувати", + "unmuteUser":"Зняти ігнорування", + "hideNotificationsFromMutedUsers":"Сховати оголошення від корістувачей котрих я ігнорую", + "thisIsANoticeFromAMutedUser":"Ви ігноруюти автора цього повідомлення. Клацніть щоб побачити його.", + "userMutes":"Облікови записи котри ви ігноруюти", + "userBlocked":"Заблоковани облікови записи", + "userMuted":"Облікови записи котри Ви ігноруюти зараз", + "mutedStreamDescription":"Ви сховали ці облікови записи з вашей стрічкі. Ви будете одержувати оголошення від цих облікових записів, доки Ви не виберіте "Сховати оголошення від корістувачей котрих я ігнорую" в меню з шестернею на сторінкі оголошень.", + "profileAndSettings":"Профіль та налаштування", + "profileSettings":"Налаштування профіля" +} \ No newline at end of file From 9214aaf541987e798d3728e504b2b3439d16de3c Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Wed, 29 Jun 2016 18:08:13 +0200 Subject: [PATCH 41/59] Don't explode if QvitterNotification has not been created thanks asterismo --- classes/QvitterNotification.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/classes/QvitterNotification.php b/classes/QvitterNotification.php index 3c77cdd..8cc7afd 100644 --- a/classes/QvitterNotification.php +++ b/classes/QvitterNotification.php @@ -57,6 +57,15 @@ class QvitterNotification extends Managed_DataObject static public function beforeSchemaUpdate() { + $table = strtolower(get_called_class()); + $schema = Schema::get(); + try { + $schemadef = $schema->getTableDef($table); + } catch (SchemaTableMissingException $e) { + printfnq("\nTable '$table' not created yet, so nothing to do with it before Schema Update... DONE."); + return; + } + printfnq("\nEnsuring no NULL values for foreign keys in QvitterNotification..."); // Because constraints to profile and notice table assume not null, we must // remove any values in these columns that are NULL (or 0), because they From 52beccf1acc47e1660bd2823ab896613a31ddede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Santos?= Date: Sun, 24 Jul 2016 06:47:49 -0400 Subject: [PATCH 42/59] Update pt.json, Full translation, however, flawed, I welcome anyone who can change some words for a better translation. --- locale/pt.json | 194 ++++++++++++++++++++++++------------------------- 1 file changed, 97 insertions(+), 97 deletions(-) diff --git a/locale/pt.json b/locale/pt.json index ede4a87..534be6b 100644 --- a/locale/pt.json +++ b/locale/pt.json @@ -1,11 +1,11 @@ { "directionality":"ltr", "languageName": "Português", - "loginUsername": "Nome de usuário ou e-mail", + "loginUsername": "Nome de utilizador ou e-mail", "loginPassword": "Senha", "loginSignIn": "Iniciar sessão", "loginRememberMe": "Lembrar meu login", - "loginForgotPassword": "Esqueceu sua senha?", + "loginForgotPassword": "Esqueceu-se da sua senha?", "notices": "Queets", "followers": "Seguidores", "following": "Seguindo", @@ -13,9 +13,9 @@ "compose": "Escrever um novo Queet...", "queetVerb": "Quittear", "queetsNounPlural": "Queets", - "logout": "Fechar sessão", + "logout": "Terminar sessão", "languageSelected": "Idioma:", - "viewMyProfilePage": "Ver minha página de perfil", + "viewMyProfilePage": "Ver a minha página de perfil", "expand": "Expandir", "collapse": "Reduzir", "details": "Detalhes", @@ -66,14 +66,14 @@ "shortDateFormatDate": "{day} {month}", "shortDateFormatDateAndY": "{day} {month} {year}", "now": "agora", - "posting": "publicando", + "posting": "a publicar", "viewMoreInConvBefore": "← Ver mais na conversa", "viewMoreInConvAfter": "Ver mais na conversa →", "mentions": "Menções", "timeline": "Linha de tempo", "publicTimeline": "Linha de tempo pública", "publicAndExtTimeline": "Toda a rede conhecida", - "searchVerb": "Buscar", + "searchVerb": "Procurar", "deleteVerb": "Apagar", "cancelVerb": "Cancelar", "deleteConfirmation": "Tem certeza que quer apagar este queet?", @@ -89,112 +89,112 @@ "memberCount": "Membros", "adminCount": "Administradores", "settings": "Configurações", - "saveChanges": "Salvar mudanças", + "saveChanges": "Guardar mudanças", "linkColor": "Cor do link", "backgroundColor": "Cor de fundo", "newToQuitter": "Você é novo no {site-title}?", - "signUp": "Registre-se", + "signUp": "Registe-se", "signUpFullName": "Nome completo", "signUpEmail": "E-mail", - "signUpButtonText": "Registre-se no {site-title}", + "signUpButtonText": "Registe-se no {site-title}", "welcomeHeading": "Bem-vindo ao {site-title}.", "welcomeText": "Somos uma
    « Federação » significa que você não deve ter uma conta do {site-title} para seguir seus usuários, ser seguido por eles ou se comunicar com eles. Você pode se registrar em qualquer servidor StatusNet ou GNU social, ou em qualquer serviço utilizando o protocolo OStatus! Também não deve se registrar em qualquer serviço para participar - simplesmente instale o software GNU social em seu próprio servidor. (:
    federação
    de microblogueiros que, como você, estão motivados pela ética e solidaridade, e querem abandonar os serviços centralizados capitalistas. Estamos aqui desde 2010 e sempre vamos ser sem fins lucrativos.", - "registerNickname": "Nome de usuário", - "registerHomepage": "Site web", + "registerNickname": "Nome de utilizador", + "registerHomepage": "Página do utilizador", "registerBio": "Biografia", "registerLocation": "Localização", "registerRepeatPassword": "Repetir senha", "moreSettings": "Mais configurações", - "otherServers": "De manera alternativa, você pode criar uma conta em outro servidor da rede GNU social. Comparativo", + "otherServers": "De maneira alternativa, você pode criar uma conta noutro servidor da rede GNU social. Comparativo", "editMyProfile": "Editar perfil", "notifications": "Notificações", - "xFavedYourQueet": "curtiu seu Queet", - "xRepeatedYourQueet": "requeetou você", - "xStartedFollowingYou": "seguiu você", - "followsYou": "segue você", + "xFavedYourQueet": "{username} gostou do seu Queet", + "xRepeatedYourQueet": "{username} requeetou-te", + "xStartedFollowingYou": "{username} começou a seguir-te ", + "followsYou": "{username} segue-te", "FAQ": "FAQ", - "inviteAFriend": "Convide seus amigos!", + "inviteAFriend": "Convide os seus amigos!", "goToExternalProfile": "Ir para o perfil completo", - "cropAndSave": "Crop and save", - "showTerms": "Read our Terms of Use", - "ellipsisMore": "More", - "blockUser": "Block {username}", - "goToOriginalNotice": "Go to original notice", - "goToTheUsersRemoteProfile": "Go to the user's remote profile", - "clickToDrag":"Click to drag", - "keyboardShortcuts":"Keyboard shortcuts", - "classicInterface":"Classic {site-title}", - "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", - "ERRORsomethingWentWrong":"Something went wrong.", - "ERRORmustBeLoggedIn":"You must be logged in to view this stream.", - "ERRORcouldNotFindUserWithNickname":"Could not find a user with nickname \"{nickname}\" on this server", - "ERRORcouldNotFindGroupWithNickname":"Could not find a group with nickname \"{nickname}\" on this server", - "ERRORcouldNotFindPage":"Could not find that page.", - "ERRORnoticeRemoved": "This notice has been removed.", - "ERRORnoContactWithServer": "Can not establish a connection to the server. The server could be overloaded, or there might be a problem with your internet connecton. Please try again later!", - "ERRORattachmentUploadFailed": "The upload failed. The format might be unsupported or the size too large.", - "hideRepliesToPeopleIDoNotFollow":"Hide replies to people I don't follow", - "markAllNotificationsAsSeen":"Mark all notifications as seen", - "notifyRepliesAndMentions":"Mentions and replies", - "notifyFavs":"Favorites", + "cropAndSave": "Cortar e Guardar", + "showTerms": "Ler os nosso termos de utilizador", + "ellipsisMore": "Mais", + "blockUser": "Bloquear {username}", + "goToOriginalNotice": "Ver a notícia original", + "goToTheUsersRemoteProfile": "Ver o perfil remoto do utilizador", + "clickToDrag":"Clique aqui para arrastar", + "keyboardShortcuts":"Atalhos do Teclado", + "classicInterface":"Versão Clássica de {site-title}", + "accessibilityToggleLink":"Para melhor acessibilidade, carregue neste link para mudar o estilo de interface para clássico", + "tooltipBookmarkStream":"Adicionar esta stream aos seus bookmarks", + "tooltipTopMenu":"Menu e Definições", + "tooltipAttachImage":"Adicionar Imagem", + "tooltipShortenUrls":"Reduzir o tamanho dos ULRs no Queet", + "tooltipReloadStream":"Recarregar stream", + "tooltipRemoveBookmark":"Remover bookmark", + "clearHistory":"Limpar Histórico de Pesquisa", + "ERRORsomethingWentWrong":"Ups, alguma coisa não está bem.", + "ERRORmustBeLoggedIn":"Para ver esta stream, faça o login.", + "ERRORcouldNotFindUserWithNickname":"Não conseguimos encontrar o utilizador \"{nickname}\" neste servidor", + "ERRORcouldNotFindGroupWithNickname":"Não conseguimos encontrar o grupo \"{nickname}\" neste servidor", + "ERRORcouldNotFindPage":"Não conseguimos encontrar a página.", + "ERRORnoticeRemoved": "Esta notícia foi removida.", + "ERRORnoContactWithServer": "Não conseguimos estabelecer a ligação com o servidor. o servidor pode estar sobrecarregado, ou podem existir problemas com a sua ligação à internet. Por Favor, tente mais tarde!", + "ERRORattachmentUploadFailed": "O upload falhou.Possivelmente o formato do ficheiro não é compativél ou o ficheiro é grande.", + "hideRepliesToPeopleIDoNotFollow":"Esconder respostas de pessoas que eu não sigo", + "markAllNotificationsAsSeen":"Marcar todas as notificações como vistas", + "notifyRepliesAndMentions":"Menções e Respostas", + "notifyFavs":"Favoritos", "notifyRepeats":"Requeets", - "notifyFollows":"New followers", - "timelineOptions":"Timeline options", - "ERRORfailedSavingYourSetting":"Failed saving your setting", - "ERRORfailedMarkingAllNotificationsAsRead":"Failed marking all notifications as seen.", - "newNotification": "{new-notice-count} new notification", - "newNotifications": "{new-notice-count} new notifications", - "thisIsANoticeFromABlockedUser":"Warning: This is a notice from a user you have blocked. Click to show it.", - "nicknamesListWithListName":"{nickname}’s list: {list-name}", - "myListWithListName":"My list: {list-name}", - "listMembers":"Members", - "listSubscribers":"Subscribers", - "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 {language-name} ({percent}%). You can help complete the translation at Qvitter's repository homepage", - "startRant":"Start a rant", - "continueRant":"Continue the rant", + "notifyFollows":"Novos Seguidores", + "timelineOptions":"Opções da Linha do tempo", + "ERRORfailedSavingYourSetting":"As definições não puderam ser guardadas", + "ERRORfailedMarkingAllNotificationsAsRead":"Não conseguimos marcar todas as notificações como vistas.", + "newNotification": "{new-notice-count} nova notificação", + "newNotifications": "{new-notice-count} novas notificações, + "thisIsANoticeFromABlockedUser":"Aviso: Esta Noticia é de um utilizador que você bloqueou, carregue aqui para ler.", + "nicknamesListWithListName":"Lista de {nickname}: {list-name}", + "myListWithListName":"A Minha lista: {list-name}", + "listMembers":"Membros", + "listSubscribers":"Subscritores", + "ERRORcouldNotFindList":"Esta lista não existe.", + "emailAlreadyInUse":"este E-mail já se encontra em uso", + "addEditLanguageLink":"Ajuda a traduzir o site {site-title} para outra lingua", + "onlyPartlyTranslated":"{site-title} está parcialmente traduzido em {language-name} ({percent}%). Você pode ajudar a terminar a tradução em Qvitter's repository homepage", + "startRant":"Começar a desabafar", + "continueRant":"Continue a desabaf", "hideEmbeddedInTimeline":"Hide embedded content in this timeline", - "hideQuotesInTimeline":"Hide quotes in this timeline", - "userBlocks":"Accounts you're blocking", - "buttonBlocked":"Blocked", - "buttonUnblock":"Unblock", - "failedBlockingUser":"Failed to block the user.", - "failedUnblockingUser":"Failed to unblock the user.", - "unblockUser": "Unblock {username}", - "tooltipBlocksYou":"You are blocked from following {username}.", - "silenced":"Silenced", - "silencedPlural":"Silenced profiles", - "silencedUsersOnThisInstance":"Silenced profiles on {site-title}", - "sandboxed":"Sandboxed", - "sandboxedPlural":"Sandboxed profiles", - "sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}", - "silencedStreamDescription":"Silenced users can't login or post quips and the quips they've already posted are hidden. For local users it's like a delete that can be reversed, for remote users it's like a site wide block.", - "sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Apart from that, they can use the site like any other user.", - "onlyShowNotificationsFromUsersIFollow":"Only show notifications from users I follow", - "userOptions":"More user actions", - "silenceThisUser":"Silence {nickname}", - "sandboxThisUser":"Sandbox {nickname}", - "unSilenceThisUser":"Unsilence {nickname}", - "unSandboxThisUser":"Unsandbox {nickname}", - "ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user", - "ERRORfailedSilencingUser":"Failed silencing/unsilencing the user", - "muteUser":"Mute", - "unmuteUser":"Unmute", - "hideNotificationsFromMutedUsers":"Hide notifications from muted users", - "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", - "userMutes":"Accounts you're muting", - "userBlocked":"Blocked accounts", - "userMuted":"Muted accounts", - "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", - "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "hideQuotesInTimeline":"Esconder Citações dentro desta linha do tempo", + "userBlocks":"Contas que estás a bloquear", + "buttonBlocked":"Bloqueado", + "buttonUnblock":"Desbloquear", + "failedBlockingUser":"Não conseguimos bloquear o utilizador.", + "failedUnblockingUser":"Não conseguimos desbloquear o utilizador.", + "unblockUser": "Desbloquear {username}", + "tooltipBlocksYou":"Você foi bloqueado por {username}.", + "silenced":"Silenciar", + "silencedPlural":"Perfis Silenciados ", + "silencedUsersOnThisInstance":"Perfis Calados no site {site-title}", + "sandboxed":"Restrito", + "sandboxedPlural":"Perfis Restritos", + "sandboxedUsersOnThisInstance":"Perfis Restritos no site {site-title}", + "silencedStreamDescription":"Utilizadores que foram slienciaods não podem efetuar o login ou postar queets e todos os queets que já foram postados são escondidos. Para utilizadores locais, é como se fosse uma eliminação que pode ser revertida, para utilizadores remotos, é como se fosse um bloqueio geral do site. ", + "sandboxedStreamDescription":"Queets de utilizadores restritos são excluidos da linha do tempo pública e de toda a rede conhecida.excuindo esse promenor, eles podem utilizar o site como qualquer outra pessoa.", + "onlyShowNotificationsFromUsersIFollow":"Mostrar apenas notificações de utilizadores que eu sigo", + "userOptions":"mais ações de utilizador", + "silenceThisUser":"Silenciar {nickname}", + "sandboxThisUser":"Restringir {nickname}", + "unSilenceThisUser":"Descilenciar {nickname}", + "unSandboxThisUser":" Desrestringir {nickname}", + "ERRORfailedSandboxingUser":"Não conseguimos Restringir/Desrestringir o utilizador", + "ERRORfailedSilencingUser":"Não conseguimos Silenciar/Descilenciar o utilizador", + "muteUser":"Calar", + "unmuteUser":"Descalar", + "hideNotificationsFromMutedUsers":"Esconder notificações de utilizadores calados", + "thisIsANoticeFromAMutedUser":"Você calou o utilizador deste queet, carregue aqui para ler ", + "userMutes":"Contas que está a calar", + "userBlocked":"Contas Bloqueadas", + "userMuted":"Contas Caladas", + "mutedStreamDescription":"Você escondeu estas contas da sua linha do tempo. Irá continuar a receber notificações delas, a não ser que selecione a opção "Esconder notificações de utilizadores calados" a partir do menu da roldana na página de notificações.", + "profileAndSettings":"Perfil e Definições", + "profileSettings":"Definições do Perfil" } From b32ce177f8a8e47f17c1635c946498c4d4682102 Mon Sep 17 00:00:00 2001 From: vinzv Date: Sun, 7 Aug 2016 12:25:58 +0200 Subject: [PATCH 43/59] Added "antisemitism" to terms and translated shortcuts list to German. --- doc/de/shortcuts.html | 13 +++++++++++++ doc/de/terms.html | 2 +- doc/en/terms.html | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 doc/de/shortcuts.html diff --git a/doc/de/shortcuts.html b/doc/de/shortcuts.html new file mode 100644 index 0000000..0c9715a --- /dev/null +++ b/doc/de/shortcuts.html @@ -0,0 +1,13 @@ +

    Aktionen

    +

    nNeuer Queet

    +

    fAls Favorit markieren

    +

    rAntworten

    +

    tRequeet

    +

    EnterQueet erweitern

    +

    CtrlEnteroder Cmd ⌘EnterQueet posten

    +

    EscAlle erweiterten Queets zuklappen

    + +

    Navigation

    +

    ?Dieses Menu

    +

    jNächster Queet

    +

    kVorheriger Queet

    diff --git a/doc/de/terms.html b/doc/de/terms.html index 673cc3a..3ce6e0d 100644 --- a/doc/de/terms.html +++ b/doc/de/terms.html @@ -11,7 +11,7 @@ Struktur. Es ist hier deshalb möglich, Nutzer vor Belästigungen und Unterdrüc Dieses geschieht aber ohne jegliche Zensur.

    Auf {instance-name} werden Nutzer die andere Nutzer belästigen gelöscht. Wir gehen ebenfalls -konsequent gegen Rassismus, Sexismus, Behindertenfeindlichkeit, Homo- und Transphobie vor. +konsequent gegen Rassismus, Sexismus, Behindertenfeindlichkeit, Antisemitismus, Homo- und Transphobie vor. Derartige Äußerungen würden diese Webseite unsicher für andere Nutzer machen und deren Meinungsfreiheit einschränken.

    diff --git a/doc/en/terms.html b/doc/en/terms.html index 52599ea..610d057 100644 --- a/doc/en/terms.html +++ b/doc/en/terms.html @@ -9,7 +9,7 @@ of flat power structure. We are enabled to protect eachother from harassment and but without centralized censorship.

    On this instance, users who harass others will be removed. We also take a strong stance -against e.g. racism, sexism, ableism, homo- and transphobia. Such expressions make the +against e.g. racism, sexism, ableism, antisemitism, homo- and transphobia. Such expressions make the site unsafe for other users, and in practice limit their freedom of speech.

    The Public Timeline is considered an especially sensitive place. It is what new users see, From 632d5f113627df4c158be973aefc1afc018764f4 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Thu, 1 Sep 2016 22:55:04 +0200 Subject: [PATCH 44/59] html in source field is not safe --- QvitterPlugin.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/QvitterPlugin.php b/QvitterPlugin.php index 01f412b..e1540da 100644 --- a/QvitterPlugin.php +++ b/QvitterPlugin.php @@ -522,6 +522,9 @@ class QvitterPlugin extends Plugin { function onNoticeSimpleStatusArray($notice, &$twitter_status, $scoped) { + // strip tags from source, we can't trust html here, because of gs bug + $twitter_status['source'] = htmlspecialchars(strip_tags($twitter_status['source'])); + // groups $notice_groups = $notice->getGroups(); $group_addressees = false; From 8f7892c0c0be4f9764cb2554d4bcc181a1c3ab66 Mon Sep 17 00:00:00 2001 From: Manu-sh Date: Fri, 2 Sep 2016 00:14:26 +0200 Subject: [PATCH 45/59] add some *it translations --- locale/it.json | 100 ++++++++++++++++++++++++------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/locale/it.json b/locale/it.json index ca15048..aa337c7 100644 --- a/locale/it.json +++ b/locale/it.json @@ -20,15 +20,15 @@ "collapse": "Riduci", "details": "Dettagli", "expandFullConversation": "Espandi completamente la conversazione", - "replyVerb": "Rispondere", + "replyVerb": "Rispondi", "requeetVerb": "Requittare", - "favoriteVerb": "Favorire", + "favoriteVerb": "Preferiti", "requeetedVerb": "Requittato", - "favoritedVerb": "Favorito", - "replyTo": "Rispondere a", + "favoritedVerb": "Preferiti", + "replyTo": "Rispondi a", "requeetedBy": "Requittato per {requeeted-by}", - "favoriteNoun": "Favorito", - "favoritesNoun": "Favoriti", + "favoriteNoun": "Preferiti", + "favoritesNoun": "Preferiti", "requeetNoun": "Requeet", "requeetsNoun": "Requeet", "newQueet": "{new-notice-count} nuovo Queet", @@ -70,22 +70,22 @@ "viewMoreInConvBefore": "← Conversazioni precedenti", "viewMoreInConvAfter": "Conversazioni successive →", "mentions": "Menzioni", - "timeline": "Timeline", - "publicTimeline": "Timeline publica", - "publicAndExtTimeline": "Timeline della federazione", - "searchVerb": "Cercare", - "deleteVerb": "Eliminare", - "cancelVerb": "Annullare", + "timeline": "Bacheca", + "publicTimeline": "Bacheca pubblica", + "publicAndExtTimeline": "Bacheca della federazione", + "searchVerb": "Cerca", + "deleteVerb": "Elimina", + "cancelVerb": "Annulla", "deleteConfirmation": "Sei sicuro di volere cancellare questo queet?", - "userExternalFollow": "Seguire Remoto", + "userExternalFollow": "Segui utente esterno", "userExternalFollowHelp": "L'ID del tuo account (ad esempio user@rainbowdash.net)", - "userFollow": "Seguire", + "userFollow": "Segui", "userFollowing": "Seguendo", - "userUnfollow": "Smettere di seguire", + "userUnfollow": "Smetti di seguire", "joinGroup": "Unisciti", "joinExternalGroup": "Unisciti", "isMemberOfGroup": "Membro del gruppo", - "leaveGroup": "Lasciare il gruppo", + "leaveGroup": "Lascia il gruppo", "memberCount": "Membri", "adminCount": "Amministratori", "settings": "Opzioni", @@ -116,85 +116,85 @@ "inviteAFriend": "Invita i tuoi amici!", "goToExternalProfile": "Vai al profilo completo", "cropAndSave": "ritaglia e salva", - "showTerms": "Read our Terms of Use", + "showTerms": "Leggi Termini e Condizioni", "ellipsisMore": "More", - "blockUser": "Block {username}", - "goToOriginalNotice": "Go to original notice", + "blockUser": "Blocca {username}", + "goToOriginalNotice": "Vedi Queet originale", "goToTheUsersRemoteProfile": "Go to the user's remote profile", "clickToDrag":"Click to drag", - "keyboardShortcuts":"Keyboard shortcuts", + "keyboardShortcuts":"Scorciatoie da tastiera", "classicInterface":"Classic {site-title}", "accessibilityToggleLink":"For better accessibility, click this link to switch to the classic interface", - "tooltipBookmarkStream":"Add this stream to your bookmarks", + "tooltipBookmarkStream":"Aggiungi ai preferiti", "tooltipTopMenu":"Menu and settings", - "tooltipAttachImage":"Attach an image", + "tooltipAttachImage":"Carica un'immagine", "tooltipShortenUrls":"Shorten all URLs in the Queet", - "tooltipReloadStream":"Refresh this stream", - "tooltipRemoveBookmark":"Remove this bookmark", + "tooltipReloadStream":"Aggiorna", + "tooltipRemoveBookmark":"Rimuovi questo segnalibro", "clearHistory":"Clear browsing history", "ERRORsomethingWentWrong":"Something went wrong.", "ERRORmustBeLoggedIn":"You must be logged in to view this stream.", "ERRORcouldNotFindUserWithNickname":"Could not find a user with nickname \"{nickname}\" on this server", "ERRORcouldNotFindGroupWithNickname":"Could not find a group with nickname \"{nickname}\" on this server", - "ERRORcouldNotFindPage":"Could not find that page.", - "ERRORnoticeRemoved": "This notice has been removed.", + "ERRORcouldNotFindPage":"Pagina non trovata", + "ERRORnoticeRemoved": "Questa contenuto è stato rimosso.", "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.", "hideRepliesToPeopleIDoNotFollow":"Hide replies to people I don't follow", - "markAllNotificationsAsSeen":"Mark all notifications as seen", + "markAllNotificationsAsSeen":"Segna tutte le notifiche come già lette", "notifyRepliesAndMentions":"Mentions and replies", "notifyFavs":"Favorites", "notifyRepeats":"Requeets", "notifyFollows":"New followers", - "timelineOptions":"Timeline options", + "timelineOptions":"Opzioni bacheca", "ERRORfailedSavingYourSetting":"Failed saving your setting", "ERRORfailedMarkingAllNotificationsAsRead":"Failed marking all notifications as seen.", - "newNotification": "{new-notice-count} new notification", - "newNotifications": "{new-notice-count} new notifications", - "thisIsANoticeFromABlockedUser":"Warning: This is a notice from a user you have blocked. Click to show it.", + "newNotification": "{new-notice-count} nuova notifica", + "newNotifications": "{new-notice-count} nuove noifiche", + "thisIsANoticeFromABlockedUser":"Attenzione: Questa è una notifica proveniente da un account che hai bloccato. Clicca per mostare.", "nicknamesListWithListName":"{nickname}’s list: {list-name}", "myListWithListName":"My list: {list-name}", - "listMembers":"Members", - "listSubscribers":"Subscribers", + "listMembers":"Membri", + "listSubscribers":"Iscritti", "ERRORcouldNotFindList":"There is no such list.", - "emailAlreadyInUse":"Already in use", - "addEditLanguageLink":"Help translate {site-title} to another language", + "emailAlreadyInUse":"Già in uso", + "addEditLanguageLink":"Aiuta a tradurre {site-title} in un'altra lingua", "onlyPartlyTranslated":"{site-title} is only partly translated to {language-name} ({percent}%). You can help complete the translation at Qvitter's repository homepage", "startRant":"Start a rant", "continueRant":"Continue the rant", "hideEmbeddedInTimeline":"Hide embedded content in this timeline", "hideQuotesInTimeline":"Hide quotes in this timeline", - "userBlocks":"Accounts you're blocking", - "buttonBlocked":"Blocked", - "buttonUnblock":"Unblock", + "userBlocks":"Account bloccati", + "buttonBlocked":"Bloccato", + "buttonUnblock":"Sblocca", "failedBlockingUser":"Failed to block the user.", "failedUnblockingUser":"Failed to unblock the user.", - "unblockUser": "Unblock {username}", + "unblockUser": "Sblocca {username}", "tooltipBlocksYou":"You are blocked from following {username}.", - "silenced":"Silenced", - "silencedPlural":"Silenced profiles", + "silenced":"Notifiche disabilitate", + "silencedPlural":"Notifiche disabilitate", "silencedUsersOnThisInstance":"Silenced profiles on {site-title}", "sandboxed":"Sandboxed", "sandboxedPlural":"Sandboxed profiles", "sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}", "silencedStreamDescription":"Silenced users can't login or post quips and the quips they've already posted are hidden. For local users it's like a delete that can be reversed, for remote users it's like a site wide block.", "sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Apart from that, they can use the site like any other user.", - "onlyShowNotificationsFromUsersIFollow":"Only show notifications from users I follow", + "onlyShowNotificationsFromUsersIFollow":"Mostrami solo le notifiche dagli utenti che seguo", "userOptions":"More user actions", - "silenceThisUser":"Silence {nickname}", + "silenceThisUser":"Nascondi notifiche da {nickname}", "sandboxThisUser":"Sandbox {nickname}", - "unSilenceThisUser":"Unsilence {nickname}", + "unSilenceThisUser":"Mostra notifiche da {nickname}", "unSandboxThisUser":"Unsandbox {nickname}", "ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user", "ERRORfailedSilencingUser":"Failed silencing/unsilencing the user", - "muteUser":"Mute", - "unmuteUser":"Unmute", + "muteUser":"Nascondi notifiche", + "unmuteUser":"Mostra notifiche", "hideNotificationsFromMutedUsers":"Hide notifications from muted users", "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", - "userMutes":"Accounts you're muting", - "userBlocked":"Blocked accounts", - "userMuted":"Muted accounts", + "userMutes":"Notifiche bloccate", + "userBlocked":"Account bloccati", + "userMuted":"Notifiche bloccate", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Impostazioni del profilo" } From 51625e83974edade0fba23c576e577f114463ca1 Mon Sep 17 00:00:00 2001 From: Manu-sh Date: Mon, 5 Sep 2016 00:35:29 +0200 Subject: [PATCH 46/59] improve and extend *it translation --- locale/it.json | 82 +++++++++++++++++++++++++------------------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/locale/it.json b/locale/it.json index aa337c7..0d489c6 100644 --- a/locale/it.json +++ b/locale/it.json @@ -26,7 +26,7 @@ "requeetedVerb": "Requittato", "favoritedVerb": "Preferiti", "replyTo": "Rispondi a", - "requeetedBy": "Requittato per {requeeted-by}", + "requeetedBy": "Requittato da {requeeted-by}", "favoriteNoun": "Preferiti", "favoritesNoun": "Preferiti", "requeetNoun": "Requeet", @@ -80,7 +80,7 @@ "userExternalFollow": "Segui utente esterno", "userExternalFollowHelp": "L'ID del tuo account (ad esempio user@rainbowdash.net)", "userFollow": "Segui", - "userFollowing": "Seguendo", + "userFollowing": "Segui", "userUnfollow": "Smetti di seguire", "joinGroup": "Unisciti", "joinExternalGroup": "Unisciti", @@ -120,11 +120,11 @@ "ellipsisMore": "More", "blockUser": "Blocca {username}", "goToOriginalNotice": "Vedi Queet originale", - "goToTheUsersRemoteProfile": "Go to the user's remote profile", + "goToTheUsersRemoteProfile": "Vai al profilo remoto dell'utente", "clickToDrag":"Click to drag", "keyboardShortcuts":"Scorciatoie da tastiera", "classicInterface":"Classic {site-title}", - "accessibilityToggleLink":"For better accessibility, click this link to switch to the classic interface", + "accessibilityToggleLink":"Passare all'interfaccia classica (Accessibilità)", "tooltipBookmarkStream":"Aggiungi ai preferiti", "tooltipTopMenu":"Menu and settings", "tooltipAttachImage":"Carica un'immagine", @@ -132,23 +132,23 @@ "tooltipReloadStream":"Aggiorna", "tooltipRemoveBookmark":"Rimuovi questo segnalibro", "clearHistory":"Clear browsing history", - "ERRORsomethingWentWrong":"Something went wrong.", - "ERRORmustBeLoggedIn":"You must be logged in to view this stream.", - "ERRORcouldNotFindUserWithNickname":"Could not find a user with nickname \"{nickname}\" on this server", - "ERRORcouldNotFindGroupWithNickname":"Could not find a group with nickname \"{nickname}\" on this server", + "ERRORsomethingWentWrong":"Ops! qualcosa è andato storto.", + "ERRORmustBeLoggedIn":"Devi prima accedere per poter visualizzare questo contenuto.", + "ERRORcouldNotFindUserWithNickname":"Non riesco a trovare utenti con nickname \"{nickname}\" su questo server", + "ERRORcouldNotFindGroupWithNickname":"Non riesco a trovare gruppi con nickname \"{nickname}\" su questo server", "ERRORcouldNotFindPage":"Pagina non trovata", - "ERRORnoticeRemoved": "Questa contenuto è stato rimosso.", - "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.", - "hideRepliesToPeopleIDoNotFollow":"Hide replies to people I don't follow", + "ERRORnoticeRemoved": "Questo contenuto è stato rimosso.", + "ERRORnoContactWithServer": "Non riesco a stabilire una connessione col server. Il server potrebbe essere sovraccarico, o potrebbero esserci problemi con la tua connessione internet, perfavore riprova più tardi !", + "ERRORattachmentUploadFailed": "Upload fallito, il formato potrebbe non essere supportato o il file troppo grosso.", + "hideRepliesToPeopleIDoNotFollow":"Nascondi risposte dagli utenti che non seguo", "markAllNotificationsAsSeen":"Segna tutte le notifiche come già lette", - "notifyRepliesAndMentions":"Mentions and replies", - "notifyFavs":"Favorites", + "notifyRepliesAndMentions":"Menzioni e risposte", + "notifyFavs":"Preferiti", "notifyRepeats":"Requeets", - "notifyFollows":"New followers", + "notifyFollows":"Nuovi followers", "timelineOptions":"Opzioni bacheca", - "ERRORfailedSavingYourSetting":"Failed saving your setting", - "ERRORfailedMarkingAllNotificationsAsRead":"Failed marking all notifications as seen.", + "ERRORfailedSavingYourSetting":"Errore durante il salvataggio delle impostazioni", + "ERRORfailedMarkingAllNotificationsAsRead":"Errore durante il tentativo di contrassegnare tutte le notifiche come già lette.", "newNotification": "{new-notice-count} nuova notifica", "newNotifications": "{new-notice-count} nuove noifiche", "thisIsANoticeFromABlockedUser":"Attenzione: Questa è una notifica proveniente da un account che hai bloccato. Clicca per mostare.", @@ -159,7 +159,7 @@ "ERRORcouldNotFindList":"There is no such list.", "emailAlreadyInUse":"Già in uso", "addEditLanguageLink":"Aiuta a tradurre {site-title} in un'altra lingua", - "onlyPartlyTranslated":"{site-title} is only partly translated to {language-name} ({percent}%). You can help complete the translation at Qvitter's repository homepage", + "onlyPartlyTranslated":"{site-title} è solo parzialmente tradotto in {language-name} ({percent}%). Puoi completare la traduzione sul repository di Qvitter", "startRant":"Start a rant", "continueRant":"Continue the rant", "hideEmbeddedInTimeline":"Hide embedded content in this timeline", @@ -167,34 +167,34 @@ "userBlocks":"Account bloccati", "buttonBlocked":"Bloccato", "buttonUnblock":"Sblocca", - "failedBlockingUser":"Failed to block the user.", - "failedUnblockingUser":"Failed to unblock the user.", + "failedBlockingUser":"Tentativo di bloccare l'utente non riuscito.", + "failedUnblockingUser":"Tentativo di sblocco dell'utente non riuscito.", "unblockUser": "Sblocca {username}", "tooltipBlocksYou":"You are blocked from following {username}.", - "silenced":"Notifiche disabilitate", - "silencedPlural":"Notifiche disabilitate", - "silencedUsersOnThisInstance":"Silenced profiles on {site-title}", - "sandboxed":"Sandboxed", - "sandboxedPlural":"Sandboxed profiles", - "sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}", - "silencedStreamDescription":"Silenced users can't login or post quips and the quips they've already posted are hidden. For local users it's like a delete that can be reversed, for remote users it's like a site wide block.", - "sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Apart from that, they can use the site like any other user.", - "onlyShowNotificationsFromUsersIFollow":"Mostrami solo le notifiche dagli utenti che seguo", + "silenced":"Silenziati", + "silencedPlural":"Silenziati", + "silencedUsersOnThisInstance":"Account silenziati su {site-title}", + "sandboxed":"Sandboxati", + "sandboxedPlural":"Account sandboxati", + "sandboxedUsersOnThisInstance":"Account sandboxati su {site-title}", + "silencedStreamDescription":"Utenti silenziati non possono accedere o postare quips e i quips che hanno già postato sono nascosti per gli utenti locali è come una cancellazione reversibile, per gli utenti remoti costituisce un blocco all'intero sito.", + "sandboxedStreamDescription":"Quips da utenti sandboxati sono esclusi dalla bacheca pubblica e dal resto del network. a parte questo possono usare il sito come ogni altro utente", + "onlyShowNotificationsFromUsersIFollow":"Mostrami le notifiche solo dagli utenti che seguo", "userOptions":"More user actions", "silenceThisUser":"Nascondi notifiche da {nickname}", - "sandboxThisUser":"Sandbox {nickname}", + "sandboxThisUser":"Aggiungi alla sandbox {nickname}", "unSilenceThisUser":"Mostra notifiche da {nickname}", - "unSandboxThisUser":"Unsandbox {nickname}", - "ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user", - "ERRORfailedSilencingUser":"Failed silencing/unsilencing the user", - "muteUser":"Nascondi notifiche", - "unmuteUser":"Mostra notifiche", - "hideNotificationsFromMutedUsers":"Hide notifications from muted users", - "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", - "userMutes":"Notifiche bloccate", + "unSandboxThisUser":"Rimuovi dalla sandbox {nickname}", + "ERRORfailedSandboxingUser":"Tentativo di aggiungere o rimuovere dalla sandbox l'utente non riuscito", + "ERRORfailedSilencingUser":"Tentativo di aggiungere o rimuovere dalla lista dei silenziati l'utente non riuscito", + "muteUser":"Togli voce", + "unmuteUser":"Ridai voce", + "hideNotificationsFromMutedUsers":"Nascondi notifiche dagli account senza voce", + "thisIsANoticeFromAMutedUser":"Hai nascosto dalla bacheca i quip di questo account. Clicca qui per mostrare ugualmente.", + "userMutes":"Account a cui hai tolto la voce", "userBlocked":"Account bloccati", - "userMuted":"Notifiche bloccate", - "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", + "userMuted":"Account a cui hai tolto la voce", + "mutedStreamDescription":"Hai nascosto questi account dalla tua bacheca. Riceverai comunque le loro notifiche, per disabilitarle seleziona "Nascondi notifiche dagli account senza voce" dal menu delle impostazioni sulla pagina relativa alle notifiche.", + "profileAndSettings":"Profilo e impostazioni", "profileSettings":"Impostazioni del profilo" } From 7393c06302617e1b35031098a267198e7d7b5333 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Wed, 7 Sep 2016 14:26:46 +0200 Subject: [PATCH 47/59] fixes #70 --- js/qvitter.js | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/js/qvitter.js b/js/qvitter.js index e5270f9..fd1711c 100644 --- a/js/qvitter.js +++ b/js/qvitter.js @@ -3972,16 +3972,13 @@ $('body').on('click','.upload-cover-photo, .upload-avatar, .upload-background-im coverPhotoAndAvatarSelectAndCrop(e, coverOrAvatar); })}); - // trigger click for firefox - if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) { - $('#' + inputId).trigger('click'); - } - // other browsers - else { - var evt = document.createEvent("HTMLEvents"); - evt.initEvent("click", true, true); - $('#' + inputId)[0].dispatchEvent(evt); - } + // trigger click + $('#' + inputId).trigger('click'); + // chrome, opera and safari now supports above method, + // before we had use the method below for those. + // var evt = document.createEvent("HTMLEvents"); + // evt.initEvent("click", true, true); + // $('#' + inputId)[0].dispatchEvent(evt); }); @@ -4110,16 +4107,14 @@ $('body').on('click','.upload-image',function () { }) }); - // trigger click for firefox - if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) { - $('#upload-image-input').trigger('click'); - } - // other browsers - else { - var evt = document.createEvent("HTMLEvents"); - evt.initEvent("click", true, true); - $('#upload-image-input')[0].dispatchEvent(evt); - } + // trigger click + $('#upload-image-input').trigger('click'); + // chrome, opera and safari now supports above method, + // before we had use the method below for those. + // var evt = document.createEvent("HTMLEvents"); + // evt.initEvent("click", true, true); + // $('#upload-image-input')[0].dispatchEvent(evt); + }); function uploadAttachment(e, thisUploadButton) { From e3a0e6b5c8ba8a07a7301872e8b96ba844101d70 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Wed, 7 Sep 2016 14:55:21 +0200 Subject: [PATCH 48/59] better solution for #70 --- js/dom-functions.js | 1 - js/misc-functions.js | 31 +++++++++++++++++++++++++++++++ js/qvitter.js | 14 ++------------ 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/js/dom-functions.js b/js/dom-functions.js index 34feb30..ff135fd 100644 --- a/js/dom-functions.js +++ b/js/dom-functions.js @@ -2228,7 +2228,6 @@ function buildQueetHtml(obj, idInStream, extraClasses, requeeted_by, isConversat // if the reply-to nickname doesn't exist in the notice, we add a class to the reply-to nickname in the header, to make the reply more visible var mentionedInline = ''; if(obj.statusnet_html.indexOf('>' + replyToScreenName + '<') === -1) { - console.log(obj.statusnet_html); var mentionedInline = 'not-mentioned-inline'; } diff --git a/js/misc-functions.js b/js/misc-functions.js index b4dc6cb..9163b5f 100644 --- a/js/misc-functions.js +++ b/js/misc-functions.js @@ -38,6 +38,37 @@ · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */ +/* · + · + · Trigger click on elements + · + · @param inputFile: jQuery element to trigger click on + · + · · · · · · · · · */ + +function triggerClickOnInputFile(inputFile) { + if(bowser != 'undefined') { + var bowserIntVersion = parseInt(bowser.version,10); + if(bowser.chrome != 'undefined' && bowser.chrome === true && bowserIntVersion < 53 + || bowser.opera != 'undefined' && bowser.opera === true && bowserIntVersion < 39 + || bowser.safari != 'undefined' && bowser.safari === true && bowserIntVersion < 9) { + var evt = document.createEvent("HTMLEvents"); + evt.initEvent("click", true, true); + inputFile[0].dispatchEvent(evt); + console.log('triggering click on on input file element with the old trigger hack for older browsers...'); + } + else { + inputFile.trigger('click'); + console.log('regular click triggered on input file element'); + } + } + else { + inputFile.trigger('click'); + console.log('no bowser object found: regular click triggered on input file element'); + } + console.log(bowser); + } + /* · · diff --git a/js/qvitter.js b/js/qvitter.js index fd1711c..02a4bb2 100644 --- a/js/qvitter.js +++ b/js/qvitter.js @@ -3973,12 +3973,7 @@ $('body').on('click','.upload-cover-photo, .upload-avatar, .upload-background-im })}); // trigger click - $('#' + inputId).trigger('click'); - // chrome, opera and safari now supports above method, - // before we had use the method below for those. - // var evt = document.createEvent("HTMLEvents"); - // evt.initEvent("click", true, true); - // $('#' + inputId)[0].dispatchEvent(evt); + triggerClickOnInputFile($('#' + inputId)); }); @@ -4108,12 +4103,7 @@ $('body').on('click','.upload-image',function () { }); // trigger click - $('#upload-image-input').trigger('click'); - // chrome, opera and safari now supports above method, - // before we had use the method below for those. - // var evt = document.createEvent("HTMLEvents"); - // evt.initEvent("click", true, true); - // $('#upload-image-input')[0].dispatchEvent(evt); + triggerClickOnInputFile($('#upload-image-input')); }); From 6b1fe66810ff90b3ee1347a950c2ebbe833704f7 Mon Sep 17 00:00:00 2001 From: hannes Date: Wed, 7 Sep 2016 09:02:57 -0400 Subject: [PATCH 49/59] a forgotten quote --- locale/pt.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/pt.json b/locale/pt.json index 534be6b..031e701 100644 --- a/locale/pt.json +++ b/locale/pt.json @@ -150,7 +150,7 @@ "ERRORfailedSavingYourSetting":"As definições não puderam ser guardadas", "ERRORfailedMarkingAllNotificationsAsRead":"Não conseguimos marcar todas as notificações como vistas.", "newNotification": "{new-notice-count} nova notificação", - "newNotifications": "{new-notice-count} novas notificações, + "newNotifications": "{new-notice-count} novas notificações", "thisIsANoticeFromABlockedUser":"Aviso: Esta Noticia é de um utilizador que você bloqueou, carregue aqui para ler.", "nicknamesListWithListName":"Lista de {nickname}: {list-name}", "myListWithListName":"A Minha lista: {list-name}", From 236ac4b09f9b93c3e5553ed2bbf08b3f170b8798 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Wed, 7 Sep 2016 15:06:40 +0200 Subject: [PATCH 50/59] forgotten backslashes --- locale/pt.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/pt.json b/locale/pt.json index 031e701..aade772 100644 --- a/locale/pt.json +++ b/locale/pt.json @@ -194,7 +194,7 @@ "userMutes":"Contas que está a calar", "userBlocked":"Contas Bloqueadas", "userMuted":"Contas Caladas", - "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", "profileSettings":"Definições do Perfil" } From 82a1c6e99201b3ee89d2d59c28021bec5a624d3c Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Wed, 7 Sep 2016 15:17:29 +0200 Subject: [PATCH 51/59] correct language code for ukranian --- locale/{ua.json => uk.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename locale/{ua.json => uk.json} (100%) diff --git a/locale/ua.json b/locale/uk.json similarity index 100% rename from locale/ua.json rename to locale/uk.json From b9877c8b936e9218daf389373d3856a05c9e39cb Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Wed, 7 Sep 2016 16:31:06 +0200 Subject: [PATCH 52/59] fixes #63 --- css/qvitter.css | 51 +++++++++++++++++++++++++++++++++++++----- js/dom-functions.js | 5 +++++ locale/ar.json | 3 ++- locale/ast.json | 3 ++- locale/ca.json | 3 ++- locale/de.json | 3 ++- locale/en.json | 3 ++- locale/es.json | 3 ++- locale/es_419.json | 3 ++- locale/es_ahorita.json | 3 ++- locale/eu.json | 3 ++- locale/fa.json | 3 ++- locale/fi.json | 3 ++- locale/fr.json | 3 ++- locale/gl.json | 3 ++- locale/he.json | 3 ++- locale/hy.json | 5 +++-- locale/io.json | 3 ++- locale/it.json | 3 ++- locale/ja.json | 3 ++- locale/nb.json | 3 ++- locale/nl.json | 3 ++- locale/pt.json | 3 ++- locale/pt_br.json | 3 ++- locale/ru.json | 3 ++- locale/sq.json | 4 ++-- locale/sv.json | 3 ++- locale/tr.json | 3 ++- locale/uk.json | 5 +++-- locale/zh_cn.json | 3 ++- locale/zh_tw.json | 3 ++- 31 files changed, 110 insertions(+), 38 deletions(-) diff --git a/css/qvitter.css b/css/qvitter.css index 11a8ce4..5a25c03 100644 --- a/css/qvitter.css +++ b/css/qvitter.css @@ -2225,7 +2225,8 @@ body.rtl .queet.rtl .expanded-content { position:relative; } .quoted-notice, -.oembed-item { +.oembed-item, +.xfolkentry { width:100%; border: 1px solid #eee; border-radius: 4px; @@ -2238,17 +2239,25 @@ body.rtl .queet.rtl .expanded-content { color:#292f33 !important; overflow: hidden; } -.oembed-item { +.oembed-item, +.xfolkentry { padding:0; } .quoted-notice:hover, -.oembed-item:hover { +.oembed-item:hover, +.xfolkentry:hover { text-decoration: none !important; } .stream-item:hover:not(.expanded) .quoted-notice , -.stream-item:hover:not(.expanded) .oembed-item { +.stream-item:hover:not(.expanded) .oembed-item, +.stream-item:hover:not(.expanded) .xfolkentry { border: 1px solid #ddd; } +.stream-item:hover:not(.expanded) .xfolkentry .taggedlink::before { + background-color:#ddd; + color:#bbb; + } + .quoted-notice-attachments { width:100%; @@ -2263,7 +2272,8 @@ body.rtl .queet.rtl .expanded-content { } .quoted-notice-img-container, -.oembed-img-container { +.oembed-img-container, +.xfolkentry .taggedlink::before { height: 102px; width: 102px; display: inline-block; @@ -2273,6 +2283,20 @@ body.rtl .queet.rtl .expanded-content { background-repeat:no-repeat; background-position: center; } +.xfolkentry .taggedlink::before { + background-color: #eee; + color: #ccc; + content: '\f097'; + float: left; + font-family: "fontAwesome"; + font-size: 40px; + height: 70px; + line-height: 70px; + margin-top: 0; + text-align: center; + vertical-align: top; + width: 70px; + } .oembed-img-container { height: 125px; width: 125px; @@ -2344,13 +2368,28 @@ body.rtl .queet.rtl .expanded-content { line-height: 18.3px; margin-top:4.5px; } -.oembed-item-footer { +.oembed-item-footer, +.xfolkentry .meta .tag { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color:#999; padding-bottom: 9px; } +.xfolkentry .taggedlink { + line-height:25px; + font-weight: bold; + overflow: hidden; + white-space: nowrap; + } +.xfolkentry .meta, +.xfolkentry .description { + display:block; + margin:-2px 10px 3px 8px; + } +.xfolkentry .meta .tag::before { + content:"#"; + } .oembed-item-provider-url { font-style:italic; } diff --git a/js/dom-functions.js b/js/dom-functions.js index ff135fd..fbc8988 100644 --- a/js/dom-functions.js +++ b/js/dom-functions.js @@ -2278,6 +2278,11 @@ function buildQueetHtml(obj, idInStream, extraClasses, requeeted_by, isConversat $(this).contents().unwrap(); }); + // bookmarks created by the bookmark plugin get's a tooltip + statusnetHTML.find('.xfolkentry').each(function(){ + $(this).attr('data-tooltip',window.sL.thisIsABookmark); + }); + // find a place in the queet-text for the quoted notices statusnetHTML = placeQuotedNoticesInQueetText(attachmentBuild.quotedNotices, statusnetHTML); statusnetHTML = statusnetHTML.html(); diff --git a/locale/ar.json b/locale/ar.json index 38b49ea..7e633ba 100644 --- a/locale/ar.json +++ b/locale/ar.json @@ -196,5 +196,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/ast.json b/locale/ast.json index eeb1d14..8e43e1e 100644 --- a/locale/ast.json +++ b/locale/ast.json @@ -196,5 +196,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/ca.json b/locale/ca.json index 7515223..cb5a60f 100644 --- a/locale/ca.json +++ b/locale/ca.json @@ -196,5 +196,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/de.json b/locale/de.json index 17e8245..5b3f483 100644 --- a/locale/de.json +++ b/locale/de.json @@ -196,5 +196,6 @@ "userMuted":"Ausgeblendete Nutzer", "mutedStreamDescription":"Du hast diese Nutzer in Deiner Timeline ausgeblendet. Benachrichtigungen von diesen Nutzern werden werden weiterhin angezeigt. Um sie ebenfalls zu verbergen, wähle im Zahnradmenu der Benachrichtigungsseite die Option "Benachrichtigungen von ausgeblendeten Benutzern verbergen".", "profileAndSettings":"Profil und Einstellungen", - "profileSettings":"Profileinstellungen" + "profileSettings":"Profileinstellungen", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/en.json b/locale/en.json index 9d42c97..8e8639b 100644 --- a/locale/en.json +++ b/locale/en.json @@ -196,5 +196,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still receive notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/es.json b/locale/es.json index f7a000f..00d12de 100644 --- a/locale/es.json +++ b/locale/es.json @@ -195,5 +195,6 @@ "userMuted":"Cuentas silenciadas", "mutedStreamDescription":"Has ocultado estas cuentas de tu línea temporal. Seguirás recibiendo notificaciones de dichas cuentas a menos que selecciones "Ocultar notificaciones de usuarios silencioados" desde el menú con forma de rueda dentada en la página de notificaciones.", "profileAndSettings":"Perfil y ajustes", - "profileSettings":"Ajustes del perfil" + "profileSettings":"Ajustes del perfil", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/es_419.json b/locale/es_419.json index 3c86784..d48258e 100644 --- a/locale/es_419.json +++ b/locale/es_419.json @@ -196,5 +196,6 @@ "userMuted":"Cuentas mudas", "mutedStreamDescription":"Haz ocultado esas cuentas de tu línea temporal. Igualmente recibirás notificaciones de esas cuentas, a menos que selecciones "Hide notifications from muted users" desde el menú de la rueda dentada en la página de notificaciones.", "profileAndSettings":"Perfiles y configuraciones", - "profileSettings":"Perfil y configuración" + "profileSettings":"Perfil y configuración", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/es_ahorita.json b/locale/es_ahorita.json index f4df9fa..9771575 100644 --- a/locale/es_ahorita.json +++ b/locale/es_ahorita.json @@ -196,5 +196,6 @@ "userMuted":"Cuentas silenciadas", "mutedStreamDescription":"Has ocultado estas cuentas de tu línea temporal. Seguirás recibiendo notificaciones de dichas cuentas a menos que selecciones "Ocultar notificaciones de usuarios silencioados" desde el menú con forma de rueda dentada en la página de notificaciones.", "profileAndSettings":"Perfil y ajustes", - "profileSettings":"Ajustes del perfil" + "profileSettings":"Ajustes del perfil", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/eu.json b/locale/eu.json index f60a932..869dfd5 100644 --- a/locale/eu.json +++ b/locale/eu.json @@ -196,5 +196,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/fa.json b/locale/fa.json index cecbab9..9d3ebf3 100644 --- a/locale/fa.json +++ b/locale/fa.json @@ -196,5 +196,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/fi.json b/locale/fi.json index 78cd2dc..1e44fb6 100644 --- a/locale/fi.json +++ b/locale/fi.json @@ -197,5 +197,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/fr.json b/locale/fr.json index 62a9edf..dfdd354 100644 --- a/locale/fr.json +++ b/locale/fr.json @@ -196,5 +196,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/gl.json b/locale/gl.json index 4e0338c..6295ebc 100644 --- a/locale/gl.json +++ b/locale/gl.json @@ -196,5 +196,6 @@ "userMuted":"Contas acaladas", "mutedStreamDescription":"Ocultaches estas contas da túa liña de tempo. Continuarás a recibir notificacións destas contas, a non ser que selecciones "Agochar notificacións de usuarias acaladas" na roda dentada do menú da páxina de notificacións.", "profileAndSettings":"Perfil e axustes", - "profileSettings":"Axustes do perfil" + "profileSettings":"Axustes do perfil", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/he.json b/locale/he.json index fb41d74..ddbe676 100644 --- a/locale/he.json +++ b/locale/he.json @@ -196,5 +196,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/hy.json b/locale/hy.json index dfb9490..e48f40a 100644 --- a/locale/hy.json +++ b/locale/hy.json @@ -193,5 +193,6 @@ "userMuted":"Արհամարհվող օգտատերերը։", "mutedStreamDescription":"Դուք թացրել եք այս օգտատերերին Ձեր հոսքից։ Դուք կշարունակեք ստանալ այս օգտատերերից ծանուցումներ, եթե չընտրեք "Թաքցնել արհամարհվող օգտատերերի ծանուցումները " Ծանուցումների էջի մենյուի կարգավորումներում", "profileAndSettings":"Էջ և կարգավորումներ", - "profileSettings":"Էջի կարգավորումներ" -} \ No newline at end of file + "profileSettings":"Էջի կարգավորումներ", + "thisIsABookmark":"This is a bookmark created in the Classic interface" +} diff --git a/locale/io.json b/locale/io.json index 7ad1190..e7779b4 100644 --- a/locale/io.json +++ b/locale/io.json @@ -196,5 +196,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/it.json b/locale/it.json index 0d489c6..641a45e 100644 --- a/locale/it.json +++ b/locale/it.json @@ -196,5 +196,6 @@ "userMuted":"Account a cui hai tolto la voce", "mutedStreamDescription":"Hai nascosto questi account dalla tua bacheca. Riceverai comunque le loro notifiche, per disabilitarle seleziona "Nascondi notifiche dagli account senza voce" dal menu delle impostazioni sulla pagina relativa alle notifiche.", "profileAndSettings":"Profilo e impostazioni", - "profileSettings":"Impostazioni del profilo" + "profileSettings":"Impostazioni del profilo", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/ja.json b/locale/ja.json index 649dd37..d138740 100644 --- a/locale/ja.json +++ b/locale/ja.json @@ -196,5 +196,6 @@ "userMuted":"ミュートされているユーザー", "mutedStreamDescription":"あなたのタイムラインから、選択されたユーザーを隠しました。あなたがお知らせページの歯車のメニューにある"ミュートしたユーザーからのお知らせを隠す"を選択しなかったユーザー以外からは、まだお知らせを受け取ります。", "profileAndSettings":"プロフィールと設定", - "profileSettings":"プロフィール設定" + "profileSettings":"プロフィール設定", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/nb.json b/locale/nb.json index 1f36788..4f194a8 100644 --- a/locale/nb.json +++ b/locale/nb.json @@ -196,5 +196,6 @@ "userMuted":"Forstummede kontoer", "mutedStreamDescription":"Du har skjul disse kontoene fra din tidslinje. Du vil alikevel motta notifikasjoner fra disse kontoene, hvis da du ikke velger "Skjul notifikasjoner fra forstummede brukere" fra tannhjul menyen på notifikasjons siden.", "profileAndSettings":"Profiler og innstillinger", - "profileSettings":"Profil innstillinger" + "profileSettings":"Profil innstillinger", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/nl.json b/locale/nl.json index d2b5237..9bf33b7 100644 --- a/locale/nl.json +++ b/locale/nl.json @@ -196,5 +196,6 @@ "userMuted":"Gedempte gebruikers", "mutedStreamDescription":"Je negeert deze gebruikers in je tijdlijn. Je krijgt wel nog mededelingen van deze gebruikers, tenzij je "Geen mededelingen van genegeerde gebruikers." kiest van het instellingen icoon op de mededelingen pagina.", "profileAndSettings":"Profiel en instellingen", - "profileSettings":"Profiel instellingen" + "profileSettings":"Profiel instellingen", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/pt.json b/locale/pt.json index aade772..721083d 100644 --- a/locale/pt.json +++ b/locale/pt.json @@ -196,5 +196,6 @@ "userMuted":"Contas Caladas", "mutedStreamDescription":"Você escondeu estas contas da sua linha do tempo. Irá continuar a receber notificações delas, a não ser que selecione a opção \"Esconder notificações de utilizadores calados\" a partir do menu da roldana na página de notificações.", "profileAndSettings":"Perfil e Definições", - "profileSettings":"Definições do Perfil" + "profileSettings":"Definições do Perfil", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/pt_br.json b/locale/pt_br.json index 6303c6c..87c34d3 100644 --- a/locale/pt_br.json +++ b/locale/pt_br.json @@ -196,5 +196,6 @@ "userMuted":"Contas caladas", "mutedStreamDescription":"Você escondeu estas contas de sua linha do tempo. Você ainda receberá notificações destas contas, a menos que você selecione "Esconder notificações de usuários calados" no menu de engrenagem na página de notificações.", "profileAndSettings":"Perfil e ajustes", - "profileSettings":"Ajustes de perfil" + "profileSettings":"Ajustes de perfil", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/ru.json b/locale/ru.json index a98f9d0..0a5203e 100644 --- a/locale/ru.json +++ b/locale/ru.json @@ -194,5 +194,6 @@ "userMuted":"Игнорируемые учётные записи", "mutedStreamDescription":"Вы скрыли этих пользователей из вашей ленты. Вы будете продолжать получать уведомления от этих пользователей, если не выберете "Скрыть уведомления от игнорируемых пользователей" в меню с шестерёнкой на странице уведомлений", "profileAndSettings":"Профиль и настройки", - "profileSettings":"Настройки профиля" + "profileSettings":"Настройки профиля", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/sq.json b/locale/sq.json index 3ef7cd8..2e1ab63 100644 --- a/locale/sq.json +++ b/locale/sq.json @@ -196,6 +196,6 @@ "userMuted":"Llogari pa zë", "mutedStreamDescription":"Këto llogari i keni fshehur prej rrjedhës suaj kohore. Do të merrni, prapëseprapë, njoftime nga këto llogari, veç në përzgjedhshi "Fshihi njoftimet prej përdorues me zë të hequr", te menuja me ikonën e ingranazhit te faqja e njoftimeve.", "profileAndSettings":"Profil dhe rregullime", - "profileSettings":"Rregullime profili" + "profileSettings":"Rregullime profili", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } - diff --git a/locale/sv.json b/locale/sv.json index 80a2445..0743cdf 100644 --- a/locale/sv.json +++ b/locale/sv.json @@ -196,5 +196,6 @@ "userMuted":"Ignorerade konton", "mutedStreamDescription":"Du har dolt dessa användare från dina flöden. Du kommer fortfarande få notiser från dem, om du inte väljer "Dölj notiser från användare som du ignorerar" från kugghjulsmenyn på notissidan.", "profileAndSettings":"Profil och inställningar", - "profileSettings":"Profilinställningar" + "profileSettings":"Profilinställningar", + "thisIsABookmark":"Detta är ett bokmärke som skapats i GNU socials standardgränssnitt" } diff --git a/locale/tr.json b/locale/tr.json index 25af705..7e4df27 100644 --- a/locale/tr.json +++ b/locale/tr.json @@ -196,5 +196,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/uk.json b/locale/uk.json index 10b649a..3a5be54 100644 --- a/locale/uk.json +++ b/locale/uk.json @@ -196,5 +196,6 @@ "userMuted":"Облікови записи котри Ви ігноруюти зараз", "mutedStreamDescription":"Ви сховали ці облікови записи з вашей стрічкі. Ви будете одержувати оголошення від цих облікових записів, доки Ви не виберіте "Сховати оголошення від корістувачей котрих я ігнорую" в меню з шестернею на сторінкі оголошень.", "profileAndSettings":"Профіль та налаштування", - "profileSettings":"Налаштування профіля" -} \ No newline at end of file + "profileSettings":"Налаштування профіля", + "thisIsABookmark":"This is a bookmark created in the Classic interface" +} diff --git a/locale/zh_cn.json b/locale/zh_cn.json index f9729ff..133172c 100644 --- a/locale/zh_cn.json +++ b/locale/zh_cn.json @@ -195,5 +195,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } diff --git a/locale/zh_tw.json b/locale/zh_tw.json index 05657fd..bc9a2d6 100644 --- a/locale/zh_tw.json +++ b/locale/zh_tw.json @@ -195,5 +195,6 @@ "userMuted":"Muted accounts", "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings" + "profileSettings":"Profile settings", + "thisIsABookmark":"This is a bookmark created in the Classic interface" } From 3d447e43e8616138fe05056751bb638fb33b37d7 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Wed, 7 Sep 2016 17:56:29 +0200 Subject: [PATCH 53/59] implement #61 --- actions/qvitter.php | 27 +++++++++++++++++++++++++-- actions/qvittersettings.php | 24 ++++++++++++++++++++++-- css/qvitter.css | 4 ++++ doc/de/shortcuts.html | 3 +++ doc/en/shortcuts.html | 3 +++ doc/io/shortcuts.html | 3 +++ doc/nb/shortcuts.html | 3 +++ doc/sv/shortcuts.html | 3 +++ js/misc-functions.js | 8 ++++---- js/qvitter.js | 17 +++++++++++++++++ 10 files changed, 87 insertions(+), 8 deletions(-) diff --git a/actions/qvitter.php b/actions/qvitter.php index 3d93785..a907a86 100644 --- a/actions/qvitter.php +++ b/actions/qvitter.php @@ -374,6 +374,21 @@ class QvitterAction extends ApiAction print 'window.qvitterProfilePrefs = false;'; } } + + // keyboard shortcuts can be disabled + $disable_keyboard_shortcuts = false; + if($logged_in_user) { + try { + $disable_keyboard_shortcuts = Profile_prefs::getData($logged_in_user->getProfile(), 'qvitter', 'disable_keyboard_shortcuts'); + if($disable_keyboard_shortcuts == '1' || $disable_keyboard_shortcuts == 1) { + $disable_keyboard_shortcuts = true; + } + } catch (Exception $e) { + // + } + } + print 'window.disableKeyboardShortcuts = '.var_export($disable_keyboard_shortcuts, true).';'; + ?> // available language files and their last update time @@ -485,8 +500,16 @@ class QvitterAction extends ApiAction

  • -
  • - + '; + } + else { + print '
  • '; + } + + if (common_config('invite', 'enabled') && !common_config('site', 'closed')) { ?>
  • diff --git a/actions/qvittersettings.php b/actions/qvittersettings.php index 6ab35b9..a3ee5a9 100644 --- a/actions/qvittersettings.php +++ b/actions/qvittersettings.php @@ -93,7 +93,13 @@ class QvitterSettingsAction extends SettingsAction $hide_replies_prefs = false; } - $form = new QvitterPrefsForm($this, $disable_enable_prefs, $hide_replies_prefs); + try { + $disable_keyboard_shortcuts = Profile_prefs::getData($user->getProfile(), 'qvitter', 'disable_keyboard_shortcuts'); + } catch (NoResultException $e) { + $disable_keyboard_shortcuts = false; + } + + $form = new QvitterPrefsForm($this, $disable_enable_prefs, $hide_replies_prefs, $disable_keyboard_shortcuts); $form->show(); } @@ -119,6 +125,8 @@ class QvitterSettingsAction extends SettingsAction Profile_prefs::setData($user->getProfile(), 'qvitter', 'hide_replies', $this->boolean('hide_replies')); + Profile_prefs::setData($user->getProfile(), 'qvitter', 'disable_keyboard_shortcuts', $this->boolean('disable_keyboard_shortcuts')); + // TRANS: Confirmation shown when user profile settings are saved. $this->showForm(_('Settings saved.'), true); @@ -130,12 +138,14 @@ class QvitterPrefsForm extends Form { var $disable_enable_prefs; var $hide_replies_prefs; + var $disable_keyboard_shortcuts; - function __construct($out, $disable_enable_prefs, $hide_replies_prefs) + function __construct($out, $disable_enable_prefs, $hide_replies_prefs, $disable_keyboard_shortcuts) { parent::__construct($out); $this->disable_enable_prefs = $disable_enable_prefs; $this->hide_replies_prefs = $hide_replies_prefs; + $this->disable_keyboard_shortcuts = $disable_keyboard_shortcuts; } /** @@ -177,6 +187,16 @@ class QvitterPrefsForm extends Form $this->elementEnd('li'); $this->elementEnd('ul'); $this->elementEnd('fieldset'); + + $this->elementStart('fieldset'); + $this->elementStart('ul', 'form_data'); + $this->elementStart('li'); + $this->checkbox('disable_keyboard_shortcuts', + _('Disable keyboard shortcuts'), + (!empty($this->disable_keyboard_shortcuts))); + $this->elementEnd('li'); + $this->elementEnd('ul'); + $this->elementEnd('fieldset'); } /** diff --git a/css/qvitter.css b/css/qvitter.css index 5a25c03..0c26c85 100644 --- a/css/qvitter.css +++ b/css/qvitter.css @@ -5343,6 +5343,10 @@ content:"\f068"; /* Keyboard shortcuts -----------*/ +#shortcuts-link.disabled { + color:#eee; + } + #popup-shortcuts #shortcuts-container { padding:0 20px 20px 20px; font-size:13px; diff --git a/doc/de/shortcuts.html b/doc/de/shortcuts.html index 0c9715a..3e157e4 100644 --- a/doc/de/shortcuts.html +++ b/doc/de/shortcuts.html @@ -11,3 +11,6 @@

    ?Dieses Menu

    jNächster Queet

    kVorheriger Queet

    + +

    Disable

    +

    Keyboard shortcuts can be turned off on the Qvitter settings page.

    diff --git a/doc/en/shortcuts.html b/doc/en/shortcuts.html index afd4ec4..e0067ce 100644 --- a/doc/en/shortcuts.html +++ b/doc/en/shortcuts.html @@ -11,3 +11,6 @@

    ?This menu

    jNext Queet

    kPrevious Queet

    + +

    Disable

    +

    Keyboard shortcuts can be turned off on the Qvitter settings page.

    diff --git a/doc/io/shortcuts.html b/doc/io/shortcuts.html index 62e92a2..9b8689e 100644 --- a/doc/io/shortcuts.html +++ b/doc/io/shortcuts.html @@ -11,3 +11,6 @@

    ?Ica menuo

    jSequanta mesajo

    kPreiranta mesajo

    + +

    Disable

    +

    Keyboard shortcuts can be turned off on the Qvitter settings page.

    diff --git a/doc/nb/shortcuts.html b/doc/nb/shortcuts.html index eac8c0b..636de69 100644 --- a/doc/nb/shortcuts.html +++ b/doc/nb/shortcuts.html @@ -11,3 +11,6 @@

    ?Denne menyen

    jNeste melding

    kForrige melding

    + +

    Disable

    +

    Keyboard shortcuts can be turned off on the Qvitter settings page.

    diff --git a/doc/sv/shortcuts.html b/doc/sv/shortcuts.html index 5065983..326648b 100644 --- a/doc/sv/shortcuts.html +++ b/doc/sv/shortcuts.html @@ -11,3 +11,6 @@

    ?Denna meny

    jNästa qvitter

    kFöregående qvitter

    + +

    Stäng av

    +

    Kortkommandon kan avaktiveras på Qvitters inställningssida.

    diff --git a/js/misc-functions.js b/js/misc-functions.js index 9163b5f..730babd 100644 --- a/js/misc-functions.js +++ b/js/misc-functions.js @@ -47,11 +47,11 @@ · · · · · · · · · */ function triggerClickOnInputFile(inputFile) { - if(bowser != 'undefined') { + if(typeof bowser != 'undefined') { var bowserIntVersion = parseInt(bowser.version,10); - if(bowser.chrome != 'undefined' && bowser.chrome === true && bowserIntVersion < 53 - || bowser.opera != 'undefined' && bowser.opera === true && bowserIntVersion < 39 - || bowser.safari != 'undefined' && bowser.safari === true && bowserIntVersion < 9) { + if(typeof bowser.chrome != 'undefined' && bowser.chrome === true && bowserIntVersion < 53 + || typeof bowser.opera != 'undefined' && bowser.opera === true && bowserIntVersion < 39 + || typeof bowser.safari != 'undefined' && bowser.safari === true && bowserIntVersion < 9) { var evt = document.createEvent("HTMLEvents"); evt.initEvent("click", true, true); inputFile[0].dispatchEvent(evt); diff --git a/js/qvitter.js b/js/qvitter.js index 02a4bb2..3db4271 100644 --- a/js/qvitter.js +++ b/js/qvitter.js @@ -3475,6 +3475,12 @@ $('body').on('keyup', 'div.queet-box-syntax', function(e) { // menu $('#shortcuts-link').click(function(){ + + // not if disabled + if($(this).hasClass('disabled')) { + return true; + } + popUpAction('popup-shortcuts', window.sL.keyboardShortcuts,'
    ',false); getDoc('shortcuts',function(html){ $('#shortcuts-container').html(html); @@ -3484,6 +3490,12 @@ $('#shortcuts-link').click(function(){ // send queet on ctrl+enter or ⌘+enter (mac) $('body').on('keydown','.queet-box-syntax',function (e) { + + // do nothing if shortcuts are disabled + if(window.disableKeyboardShortcuts === true) { + return true; + } + if((e.ctrlKey && e.which == 13) || (e.metaKey && e.which == 13)) { e.preventDefault(); @@ -3495,6 +3507,11 @@ $('body').on('keydown','.queet-box-syntax',function (e) { $('body').keyup(function (e) { + // do nothing if shortcuts are disabled + if(window.disableKeyboardShortcuts === true) { + return true; + } + // only if queetbox is blurred, and we're not typing in any input, and we're logged in if($('.queet-box-syntax[contenteditable="true"]').length == 0 && $(":focus").length == 0 From a2d28b29b8415cc4ba599183da71cca9c155dda5 Mon Sep 17 00:00:00 2001 From: GreenLunar Date: Thu, 8 Sep 2016 00:04:37 -0400 Subject: [PATCH 54/59] Update he.json --- locale/he.json | 84 +++++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/locale/he.json b/locale/he.json index ddbe676..43a3895 100644 --- a/locale/he.json +++ b/locale/he.json @@ -71,7 +71,7 @@ "viewMoreInConvAfter": "צפה בעוד בתוך דיון →", "mentions": "איזכורים", "timeline": "ציר זמן", - "publicTimeline": "ציר זמן פומבי", + "publicTimeline": "ציר זמן ציבורי", "publicAndExtTimeline": "כל הרשת הידועה", "searchVerb": "חיפוש", "deleteVerb": "מחק", @@ -96,9 +96,9 @@ "signUp": "הרשמה", "signUpFullName": "שם מלא", "signUpEmail": "דוא״ל", - "signUpButtonText": "הירשם אצל {site-title}", - "welcomeHeading": "ברוכים הבאים אל {site-title}.", - "welcomeText": "אנחנו
    \"פדרציה\" משמעה כי אין לכם אף צורך בחשבון {site-title} כדי שתעמוד לרשותכם האפשרות לעקוב, להיות נתונים למעקב אחרים או להיכנס לאינטראקציה עם משתמשי {site-title}. באפשרותך להירשם בכל שרת חברתי של StatusNet או GNU social או כל שירות אשר מבוסס על פרוטוקול Ostatus! אין אפילו צורך להצטרף לשירות – נסו להתקין את התוכנה החביבה GNU social על השרת האישי שלכם! :)
    פדרציה
    של מיקרובלוגרים אשר איכפת להם מאתיקה וסולידריות ושברצונם להשתחרר מהשירותים הקפיטליסטים הממורכזים.", + "signUpButtonText": "הירשם באתר {site-title}", + "welcomeHeading": "ברוכים הבאים לאתר {site-title}.", + "welcomeText": "אנחנו
    \"פדרציה\" משמעה כי אין לכם כל צורך בחשבון {site-title} כדי שתעמוד לרשותכם האפשרות לעקוב, להיות נתונים למעקב אחרים או להיכנס לאינטראקציה עם משתמשי {site-title}. באפשרותך להירשם בכל שרת חברתי של StatusNet או GNU social או כל שירות אשר מבוסס על פרוטוקול Ostatus! אין אפילו צורך להצטרף לשירות – נסו להתקין את התוכנה החביבה GNU social על השרת האישי שלכם! :)
    פדרציה
    של מיקרובלוגרים אשר איכפת להם מאתיקה וסולידריות ושברצונם להשתחרר מהשירותים הקפיטליסטים הממורכזים.", "registerNickname": "שם כינוי", "registerHomepage": "עמוד בית", "registerBio": "ביו", @@ -158,44 +158,44 @@ "listSubscribers":"מנויים", "ERRORcouldNotFindList":"אין רשימה כזו.", "emailAlreadyInUse":"כבר בשימוש", - "addEditLanguageLink":"Help translate {site-title} to another language", - "onlyPartlyTranslated":"{site-title} is only partly translated to {language-name} ({percent}%). You can help complete the translation at Qvitter's repository homepage", - "startRant":"Start a rant", - "continueRant":"Continue the rant", - "hideEmbeddedInTimeline":"Hide embedded content in this timeline", - "hideQuotesInTimeline":"Hide quotes in this timeline", - "userBlocks":"Accounts you're blocking", - "buttonBlocked":"Blocked", - "buttonUnblock":"Unblock", - "failedBlockingUser":"Failed to block the user.", - "failedUnblockingUser":"Failed to unblock the user.", - "unblockUser": "Unblock {username}", - "tooltipBlocksYou":"You are blocked from following {username}.", - "silenced":"Silenced", - "silencedPlural":"Silenced profiles", - "silencedUsersOnThisInstance":"Silenced profiles on {site-title}", - "sandboxed":"Sandboxed", - "sandboxedPlural":"Sandboxed profiles", - "sandboxedUsersOnThisInstance":"Sandboxed profiles on {site-title}", - "silencedStreamDescription":"Silenced users can't login or post quips and the quips they've already posted are hidden. For local users it's like a delete that can be reversed, for remote users it's like a site wide block.", - "sandboxedStreamDescription":"Quips from sandboxed users are excluded from the Public Timeline and The Whole Known Network. Apart from that, they can use the site like any other user.", - "onlyShowNotificationsFromUsersIFollow":"Only show notifications from users I follow", - "userOptions":"More user actions", - "silenceThisUser":"Silence {nickname}", - "sandboxThisUser":"Sandbox {nickname}", - "unSilenceThisUser":"Unsilence {nickname}", - "unSandboxThisUser":"Unsandbox {nickname}", + "addEditLanguageLink":"עזרו לתרגם את {site-title} לשפה אחרת", + "onlyPartlyTranslated":"{site-title} הינו מתורגם באופן חלקי בשפה {language-name} ({percent}%). באפשרותך להשלים את התרגום בתוך מאגר הבית של Qvitter", + "startRant":"התחל התלהמות", + "continueRant":"המשך את ההתלהמות", + "hideEmbeddedInTimeline":"הסתר תוכן משובץ בציר זמן זה", + "hideQuotesInTimeline":"הסתר ציטוטים משובץ בציר זמן זה", + "userBlocks":"חשבונות שחסמת", + "buttonBlocked":"חסום", + "buttonUnblock":"בטל חסימה", + "failedBlockingUser":"נכשל לחסום את המשתמש.", + "failedUnblockingUser":"נכשל לבטל את חסימת המשתמש.", + "unblockUser": "בטל את החסימה של {username}", + "tooltipBlocksYou":"הינך מנוע/ה מלעקוב אחר {username}.", + "silenced":"מושתקים", + "silencedPlural":"פרופילים מושתקים", + "silencedUsersOnThisInstance":"פרופילים מושתקים באתר {site-title}", + "sandboxed":"ארגז חול", + "sandboxedPlural":"פרופילים בארגז חול", + "sandboxedUsersOnThisInstance":"פרופילים תחומים בארגז חול באתר {site-title}", + "silencedStreamDescription":"משתמשים מושתקים לא יכולים להתחבר או לפרסם הודעות, וההודעות שהם כבר פרסמו הינן מוסתרות. עבור משתמים מקומיים זה כמו מחיקה אשר ניתנת להפיכה, עבור משתמשים מרוחקים זה כמו חסימה מקיפה של אתר.", + "sandboxedStreamDescription":"הודעות מאת משתמשים שהושמו בתוך ארגז חול הינן מוצאות מתוך ציר הזמן הציבורי ומכלל הרשת הידועה. חוץ מזה, הם יכולים להשתמש באתר כמו כל משתמש אחר.", + "onlyShowNotificationsFromUsersIFollow":"הצג התרעות רק ממשתמשים אחריהם אני עוקב", + "userOptions":"עוד פעולות משתמש", + "silenceThisUser":"השתק את {nickname}", + "sandboxThisUser":"השם בארגז חול את {nickname}", + "unSilenceThisUser":"בטל את השתקת {nickname}", + "unSandboxThisUser":"הוצא מתוך ארגז חול את {nickname}", "ERRORfailedSandboxingUser":"Failed sandboxing/unsandboxing the user", "ERRORfailedSilencingUser":"Failed silencing/unsilencing the user", - "muteUser":"Mute", - "unmuteUser":"Unmute", - "hideNotificationsFromMutedUsers":"Hide notifications from muted users", - "thisIsANoticeFromAMutedUser":"You have muted the author of this quip. Click here to show it anyway.", - "userMutes":"Accounts you're muting", - "userBlocked":"Blocked accounts", - "userMuted":"Muted accounts", - "mutedStreamDescription":"You've hidden these accounts from your timeline. You will still recieve notifications from these accounts, unless you select "Hide notifications from muted users" from the cog wheel menu on the notifications page.", - "profileAndSettings":"Profile and settings", - "profileSettings":"Profile settings", - "thisIsABookmark":"This is a bookmark created in the Classic interface" + "muteUser":"השתק", + "unmuteUser":"בטל השתקה", + "hideNotificationsFromMutedUsers":"הסתר התרעות ממשתמשים מוסתרים", + "thisIsANoticeFromAMutedUser":"השתקת את המחבר של הודעה זו. לחץ כאן כדי להציגה בכל אופן.", + "userMutes":"חשבונות שהשתקת", + "userBlocked":"חשבונות חסומים", + "userMuted":"חשבונות מושתקים", + "mutedStreamDescription":"הסתרת את חשבונות אלה מתוך ציר הזמן שלך. You will still recieve notifications from these accounts, unless you select "הסתר התרעות ממשתמשים מוסתרים" from the cog wheel menu on the notifications page.", + "profileAndSettings":"פרופיל והגדרות", + "profileSettings":"הגדרות פרופיל", + "thisIsABookmark":"זוהי סימנייה שנוצרה בתוך הממשק הקלאסי" } From 195b7e4508a2a356384bcd58a3ae86e3073cfbd4 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Wed, 21 Sep 2016 01:14:09 +0200 Subject: [PATCH 55/59] add singe notice feeds --- actions/qvitter.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/actions/qvitter.php b/actions/qvitter.php index a907a86..b34753b 100644 --- a/actions/qvitter.php +++ b/actions/qvitter.php @@ -248,6 +248,16 @@ class QvitterAction extends ApiAction // } + // single notice feeds + try { + $single_notice_json = common_local_url('ApiStatusesShow', array( 'id' => $notice->getID(),'format' => 'json')); + $single_notice_atom = common_local_url('ApiStatusesShow', array( 'id' => $notice->getID(),'format' => 'atom')); + print ''."\n"; + print ''."\n"; + } catch (Exception $e) { + // + } + // twitter cards print ''."\n"; print ''."\n"; From 57a38b81dfcb8ed15595653ad2205ca726f2e22e Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Wed, 21 Sep 2016 02:08:34 +0200 Subject: [PATCH 56/59] events for adding stuff to the sidebar --- actions/qvitter.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/actions/qvitter.php b/actions/qvitter.php index b34753b..5b8e790 100644 --- a/actions/qvitter.php +++ b/actions/qvitter.php @@ -626,8 +626,12 @@ class QvitterAction extends ApiAction
    -
    -
    -
    From 495b497a1c1cc9c4e0f95cee608f55603fa172ca Mon Sep 17 00:00:00 2001 From: Aydin Yakar Date: Tue, 27 Sep 2016 03:23:54 -0400 Subject: [PATCH 57/59] Update tr.json --- locale/tr.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/locale/tr.json b/locale/tr.json index 7e4df27..a38b68c 100644 --- a/locale/tr.json +++ b/locale/tr.json @@ -105,7 +105,7 @@ "registerLocation": "Konum", "registerRepeatPassword": "Şifreni tekrar gir", "moreSettings": "Diğer ayarlar", - "otherServers": "Alternatively you can create an account on another server of the GNU social network. Comparison", + "otherServers": "Alternatif olarak GNU sosyal networkünde başka bir sunucu da hesap oluşturabilirsiniz. Karşılaştırın", "editMyProfile": "Profili düzenle", "notifications": "Bildirimler", "xFavedYourQueet": "Queet'ini favorilerine ekledi", @@ -159,7 +159,7 @@ "ERRORcouldNotFindList":"Böyle bir liste yok.", "emailAlreadyInUse":"Kullanımda", "addEditLanguageLink":"{site-title} çevirisine yardım et", - "onlyPartlyTranslated":"{site-title} is only partly translated to {language-name} ({percent}%). You can help complete the translation at Qvitter's repository homepage", + "onlyPartlyTranslated":"{site-title} bir kısmı ({percent}%) {language-name} diline tercüme edildi. Qvitter'in depo anasayfasından tercümenin tamamlanmasına yardımcı olabilirsiniz", "startRant":"Konuşmaya başla", "continueRant":"Konuşmaya devam et", "hideEmbeddedInTimeline":"Bu akışta gömülü içeriği gizle", @@ -170,9 +170,9 @@ "failedBlockingUser":"Kullanıcı engellenemedi.", "failedUnblockingUser":"Kullanıcının engeli kaldırılamadı.", "unblockUser": "{username} engelini kaldır", - "tooltipBlocksYou":"You are blocked from following {username}.", - "silenced":"Silenced", - "silencedPlural":"Silenced profiles", + "tooltipBlocksYou":"{username} kullanıcısını engellediniz.", + "silenced":"Susturuldu", + "silencedPlural":"Susturulan profiller", "silencedUsersOnThisInstance":"Silenced profiles on {site-title}", "sandboxed":"Sandboxed", "sandboxedPlural":"Sandboxed profiles", From a4e08c43d2482d84a5fe86014595aefac6473644 Mon Sep 17 00:00:00 2001 From: abjectio Date: Sat, 1 Oct 2016 10:10:26 +0200 Subject: [PATCH 58/59] Minor Norwegian translation --- locale/nb.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/nb.json b/locale/nb.json index 4f194a8..9f41c17 100644 --- a/locale/nb.json +++ b/locale/nb.json @@ -197,5 +197,5 @@ "mutedStreamDescription":"Du har skjul disse kontoene fra din tidslinje. Du vil alikevel motta notifikasjoner fra disse kontoene, hvis da du ikke velger "Skjul notifikasjoner fra forstummede brukere" fra tannhjul menyen på notifikasjons siden.", "profileAndSettings":"Profiler og innstillinger", "profileSettings":"Profil innstillinger", - "thisIsABookmark":"This is a bookmark created in the Classic interface" + "thisIsABookmark":"Dette er et bokmerke som ble laget i det klassiske grensesnittet" } From 40b38c5b1174727c0b5385b528308910e81f304d Mon Sep 17 00:00:00 2001 From: Sebastian Korotkiewicz Date: Sat, 22 Oct 2016 09:01:32 -0400 Subject: [PATCH 59/59] Add Polish Language --- locale/pl.json | 201 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 locale/pl.json diff --git a/locale/pl.json b/locale/pl.json new file mode 100644 index 0000000..214469a --- /dev/null +++ b/locale/pl.json @@ -0,0 +1,201 @@ +{ +"directionality":"ltr", +"languageName": "Polish", +"loginUsername": "Nazwa użytkownika lub email", +"loginPassword": "Hasło", +"loginSignIn": "Zaloguj się", +"loginRememberMe": "Zapamiętaj mnie", +"loginForgotPassword": "Nie pamiętasz hasła?", +"notices": "Queety", +"followers": "Obserwujący", +"following": "Obserwowani", +"groups": "Grupy", +"compose": "Co się dzieje?", +"queetVerb": "Wyślij", +"queetsNounPlural": "Queety", +"logout": "Wyloguj się", +"languageSelected": "Język:", +"viewMyProfilePage": "Zobacz swój profil", +"expand": "Rozwiń", +"collapse": "Zwiń", +"details": "Szczegóły", +"expandFullConversation": "Rozwiń całą rozmowę", +"replyVerb": "Odpowiedź", +"requeetVerb": "Podaj dalej", +"favoriteVerb": "Ulubiony", +"requeetedVerb": "Podany dalej", +"favoritedVerb": "Polubione", +"replyTo": "Odpowiedz", +"requeetedBy": "Podany dalej przez {requeeted-by}", +"favoriteNoun": "Ulubiony", +"favoritesNoun": "Ulubione", +"requeetNoun": "Podaj dalej", +"requeetsNoun": "Podane dalej", +"newQueet": "{new-notice-count} nowy queet", +"newQueets": "{new-notice-count} nowych queetów", +"longmonthsJanuary": "styczeń", +"longmonthsFebruary": "luty", +"longmonthsMars": "marzec", +"longmonthsApril": "kwiecień", +"longmonthsMay": "maj", +"longmonthsJune": "czerwiec", +"longmonthsJuly": "lipiec", +"longmonthsAugust": "sierpień", +"longmonthsSeptember": "wrzesień", +"longmonthsOctober": "październik", +"longmonthsNovember": "listopad", +"longmonthsDecember": "grudzień", +"shortmonthsJanuary": "styczeń", +"shortmonthsFebruary": "luty", +"shortmonthsMars": "marzec", +"shortmonthsApril": "kwiecien", +"shortmonthsMay": "maj", +"shortmonthsJune": "czerwiec", +"shortmonthsJuly": "lipiec", +"shortmonthsAugust": "sierpień", +"shortmonthsSeptember": "wrzesień", +"shortmonthsOctober": "październik", +"shortmonthsNovember": "listopad", +"shortmonthsDecember": "grudzień", +"time12am": "{time} am", +"time12pm": "{time} pm", +"longDateFormat": "{time12} - {day} {month} {year}", +"shortDateFormatSeconds": "{seconds}s", +"shortDateFormatMinutes": "{minutes}m", +"shortDateFormatHours": "{hours}godz.", +"shortDateFormatDate": "{day} {month}", +"shortDateFormatDateAndY": "{day} {month} {year}", +"now": "teraz", +"posting": "dodawanie", +"viewMoreInConvBefore": " zobacz więcej w rozmowie", +"viewMoreInConvAfter": "Zobacz więcej w rozmowie ", +"mentions": "Wzmianki", +"timeline": "Oś czasu", +"publicTimeline": "Publiczna oś czasu", +"publicAndExtTimeline": "Cała znana sieć", +"searchVerb": "Szukaj", +"deleteVerb": "Usuń", +"cancelVerb": "Anuluj", +"deleteConfirmation": "Czy na pewno chcesz usunąć ten queet?", +"userExternalFollow": "Zdalne obserwowanie", +"userExternalFollowHelp": "ID Twojego konta (np user@rainbowdash.net).", +"userFollow": "Obserwuj", +"userFollowing": "Obserwowany", +"userUnfollow": "Przestań obserwować", +"joinGroup": "Dołącz", +"joinExternalGroup": "Dołącz zdalnie", +"isMemberOfGroup": "Użytkownik", +"leaveGroup": "Opuść", +"memberCount": "Członkowie", +"adminCount": "Administratorzy", +"settings": "Ustawienia", +"saveChanges": "Zapisz zmiany", +"linkColor": "Kolor linku", +"backgroundColor": "Kolor tła", +"newToQuitter": "Nowy na {site-title}?", +"signUp": "Zarejestruj się", +"signUpFullName": "Imię i nazwisko", +"signUpEmail": "Email", +"signUpButtonText": "Zarejestruj się na {site-title}", +"welcomeHeading": "Witamy na {site-title}.", +"welcomeText": "Jesteśmy społecznością mikroblogerów, złożoną z globalnej
    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 GNU social lub na innej usłudze, która obsługuje protokół OStatus. Możesz nawet uczestniczyć bez rejestracji, jeśli zainstalujesz GNU social na własnym serwerze.
    Sieci
    niezależnych serwerów Gnu social, znanych również jako StatusNet. Jesteśmy idealnym miejscem dla ludzi takich jak Ty, dla których etyka i solidarność coś znaczy, a które nie chcą uczestniczyć w scentralizowanych usługach komercyjnych.", +"registerNickname": "Nick", +"registerHomepage": "Strona internetowa", +"registerBio": "O mnie", +"registerLocation": "Lokalizacja", +"registerRepeatPassword": "Powtórz hasło", +"moreSettings": "Więcej ustawień", +"otherServers": "Alternatywnie można utworzyć konto na innym serwerze GNU social Porównanie", +"editMyProfile": "Edytuj profil", +"notifications": "Powiadomienia", +"xFavedYourQueet": "dodał do ulubionych twój Queet", +"xRepeatedYourQueet": "podał dalej Twojego Queeta", +"xStartedFollowingYou": "zaczął Cię obserwować", +"followsYou": "obserwuje Cię", +"FAQ": "FAQ", +"inviteAFriend": "Zaproś przyjaciół!", +"goToExternalProfile": "Pokaż pełny profil", +"cropAndSave": "Przytnij i zapisz", +"showTerms": "Przeczytaj nasze Warunki korzystania", +"ellipsisMore": "Więcej", +"blockUser": "Zablokuj", +"goToOriginalNotice": "Idź do pierwotnego queeta", +"goToTheUsersRemoteProfile": "Idź do zdalnego profilu użytkownika", +"clickToDrag":"Kliknij, aby przeciągnąć", +"keyboardShortcuts":"Skróty klawiszowe", +"classicInterface":"Klasyczny {site-title}", +"accessibilityToggleLink":"Dla lepszej dostępności należy kliknąć ten link, aby przejść do klasycznego interfejsu", +"tooltipBookmarkStream":"Dodaj ten strumień do zakładek", +"tooltipTopMenu":"Menu i ustawienia", +"tooltipAttachImage":"Dodaj zdjęcie", +"tooltipShortenUrls":"Skrócić wszystkie adresy URL w tym queecie", +"tooltipReloadStream":"Odśwież strumień", +"tooltipRemoveBookmark":"Usuń tę zakładkę", +"clearHistory":"Wyczyść historię przeglądania", +"ERRORsomethingWentWrong":"Coś poszło nie tak.", +"ERRORmustBeLoggedIn":"Musisz być zalogowany, aby zobaczyć ten strumień.", +"ERRORcouldNotFindUserWithNickname":"Nie można znaleźć użytkownika o nicku \"{nickname}\" na tym serwerze", +"ERRORcouldNotFindGroupWithNickname":"Nie można znaleźć grupy o nazie \"{nickname}\" na tym serwerze", +"ERRORcouldNotFindPage":"Nie można znaleźć podanej strony.", +"ERRORnoticeRemoved": "Ten queet został usunięty.", +"ERRORnoContactWithServer": "Nie można nawiązać połączenia z serwerem. Serwer może być przeciążony lub możesz mieć problemy z połączeniem internetowym. Spróbuj ponownie później.", +"ERRORattachmentUploadFailed": "Przesyłanie nie powiodło się. Format może być nieobsługiwany lub rozmiar jest zbyt duży.", +"hideRepliesToPeopleIDoNotFollow":"Ukryj odpowiedzieci od ludzi, których nie obserwuję", +"markAllNotificationsAsSeen":"Oznacz wszystkie powiadomienia jako przeczytane", +"notifyRepliesAndMentions":"Wzmianki i odpowiedzi", +"notifyFavs":"Ulubione", +"notifyRepeats":"Podane dalej", +"notifyFollows":"Nowi obserwujący", +"timelineOptions":"Ustawienia osi czasu", +"ERRORfailedSavingYourSetting":"Błąd podczas zapisywania Twoich ustawień", +"ERRORfailedMarkingAllNotificationsAsRead":"Błąd podczas ozanczania powiadomień jako przeczytane.", +"newNotification": "{new-notice-count} nowe powiadomienie", +"newNotifications": "{new-notice-count} nowych powiadomień", +"thisIsANoticeFromABlockedUser":"Ostrzeżenie: To queet od użytkownika, którego zablokowałeś. Kliknij, by zobaczyć.", +"nicknamesListWithListName":"Lista użytkownika {nickname}: {list-name}", +"myListWithListName":"Moja lista: {list-name}", +"listMembers":"Użytkownicy", +"listSubscribers":"Subskrybujący", +"ERRORcouldNotFindList":"Nie ma takiej listy.", +"emailAlreadyInUse":"Już w użyciu", +"addEditLanguageLink":"Pomóż przetłumaczyć {site-title} na inny język", +"onlyPartlyTranslated":"{site-title} został przetłumaczony częściowo na język {language-name} ({percent}%).Możesz pomóc w ukończeniu tłumaczenia na Qvitter's repository homepage", +"startRant":"Rozpocznij przemówienie", +"continueRant":"Kontynuuj przemówienie", +"hideEmbeddedInTimeline":"Ukryj osadzony kontent na tej osi czasu", +"hideQuotesInTimeline":"Ukryj cytaty na tej osi czasu", +"userBlocks":"Konta, które blokujesz", +"buttonBlocked":"Zablokowany", +"buttonUnblock":"Odblokuj", +"failedBlockingUser":"Nie udało się zablokować użytkownika.", +"failedUnblockingUser":"Nie udało się odblokować użytkownika.", +"unblockUser": "Odblokuj", +"tooltipBlocksYou":"Jesteś zablokowany przez {username}.", +"silenced":"Wyciszony", +"silencedPlural":"Wyciszone profile", +"silencedUsersOnThisInstance":"Wyciszone profile na {site-title}", +"sandboxed":"Zsandboksowany", +"sandboxedPlural":"Zsandboksowane profile", +"sandboxedUsersOnThisInstance":"Zsandboksowane profile na {site-title}", +"silencedStreamDescription":"Wyciszeni użytkownicy nie mogą się zalogować ani dodawać nowych queetów, a te, które już dodali, są ukryte. Dla użytkowników lokalnych jest to podobne do usunięcia, które można cofnąć, zaś dla użytkowników zdalnych jest to zablokowanie całej strony.", +"sandboxedStreamDescription":"Queety od zsandboksowanych użytkowników są wyłączone z publicznej osi czasu oraz całej sieci. Poza tym mogą oni używać strony jak każdy inny użytkownik.", +"onlyShowNotificationsFromUsersIFollow":"Pokazuj tylko powiadomienia od użytkowników, których obserwuję", +"userOptions":"Więcej opcji", +"silenceThisUser":"Wycisz {nickname}", +"sandboxThisUser":"Zsandboksuj użytkownika {nickname}", +"unSilenceThisUser":"Odcisz {nickname}", +"unSandboxThisUser":"Odsandboksuj użytkownika {nickname}", +"ERRORfailedSandboxingUser":"Błąd poczas sandboksowania/odsandboksowywania użytkownika", +"ERRORfailedSilencingUser":"Błąd podczas uciszania/odciszania użytkownika", +"muteUser":"Wycisz", +"unmuteUser":"Odcisz", +"hideNotificationsFromMutedUsers":"Ukryj powiadomienia od wycziszonych użytkowników", +"thisIsANoticeFromAMutedUser":"Wyciszyłeś autora tego queeta. Kliknij tu, aby go pokazać.", +"userMutes":"Użytkownicy, których wyciszyłeś", +"userBlocked":"Zablokowani użytkownicy", +"userMuted":"Wyciszeni użytkownicy", +"mutedStreamDescription":"Ukryłeś te konta na swojej osi czasu. Nadal będziesz otrzymywać powiadomienia od tych użytkowników, chyba że wybierzesz opcję "Ukryj powiadomienia od wyciszonych użytkowników", znajdującą się w rozwijanym menu na stronie powiadomień.", +"profileAndSettings":"Profil i ustawienia", +"profileSettings":"Ustawienia profilu", +"thisIsABookmark":"To jest zakładka stworzona w klasycznym interfejsie" +} \ No newline at end of file