Merge branch 'master' of https://github.com/hannesmannerheim/qvitter into locale-fr-patch

This commit is contained in:
postblue 2015-11-16 19:19:29 +01:00
commit 4e97088963
29 changed files with 138 additions and 56 deletions

View File

@ -282,6 +282,10 @@ class QvitterPlugin extends Plugin {
array('action' => 'shownotice'),
array('notice' => '[0-9]+'),
'qvitter');
URLMapperOverwrite::overwrite_variable($m, 'conversation/:id',
array('action' => 'conversation'),
array('id' => '[0-9]+'),
'qvitter');
}
// if qvitter is opt-out, disable the default register page (if we don't have a valid invitation code)

View File

@ -224,15 +224,9 @@ class QvitterAction extends ApiAction
window.timeBetweenPolling = <?php print QvitterPlugin::settings("timebetweenpolling"); ?>;
window.apiRoot = <?php
// add dummy basic auth credentials to api root url to suppress any basic auth authentication popups
// that may appear, e.g. if you have multiple tabs open with the same session and logs out in one
$api_root = common_path("api/", StatusNet::isHTTPS());
$api_root = str_replace('https://','https://x:x@',$api_root);
if($this_site_thinks_it_is_http_but_is_actually_https) {
$api_root = str_replace('http://','https://x:x@',$api_root);
}
else {
$api_root = str_replace('http://','http://x:x@',$api_root);
$api_root = str_replace('http://','https://',$api_root);
}
print '\''.$api_root.'\'';
@ -350,7 +344,7 @@ class QvitterAction extends ApiAction
if($logged_in_user) { ?>
<a id="settingslink">
<div class="dropdown-toggle">
<div class="nav-session" style="background-image:url('<?php print $logged_in_user_obj['profile_image_url_profile_size'] ?>')"></div>
<div class="nav-session" style="background-image:url('<?php print htmlspecialchars($logged_in_user_obj['profile_image_url_profile_size']) ?>')"></div>
</div>
</a><?php
}
@ -419,6 +413,7 @@ class QvitterAction extends ApiAction
</div>
</div>
</div>
<div id="no-js-error">Please enable javascript to use this site.<script>var element = document.getElementById('no-js-error'); element.parentNode.removeChild(element);</script></div>
<div id="page-container">
<?php
@ -472,12 +467,12 @@ class QvitterAction extends ApiAction
// box containing the logged in users queet count and compose form
if($logged_in_user) { ?>
<div id="user-header" style="background-image:url('<?php print $logged_in_user_obj['cover_photo'] ?>')">
<div id="user-header" style="background-image:url('<?php print htmlspecialchars($logged_in_user_obj['cover_photo']) ?>')">
<div id="mini-edit-profile-button"></div>
<div class="profile-header-inner-overlay"></div>
<div id="user-avatar-container"><img id="user-avatar" src="<?php print $logged_in_user_obj['profile_image_url_profile_size'] ?>" /></div>
<div id="user-name"><?php print $logged_in_user_obj['name'] ?></div>
<div id="user-screen-name"><?php print $logged_in_user_obj['screen_name'] ?></div>
<div id="user-avatar-container"><img id="user-avatar" src="<?php print htmlspecialchars($logged_in_user_obj['profile_image_url_profile_size']) ?>" /></div>
<div id="user-name"><?php print htmlspecialchars($logged_in_user_obj['name']) ?></div>
<div id="user-screen-name"><?php print htmlspecialchars($logged_in_user_obj['screen_name']) ?></div>
</div>
<ul id="user-body">
<li><a href="<?php print $instanceurl.$logged_in_user->nickname ?>" id="user-queets"><span class="label"></span><strong><?php print $logged_in_user_obj['statuses_count'] ?></strong></a></li>
@ -559,6 +554,7 @@ class QvitterAction extends ApiAction
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/lib/load-image.min.js?changed=<?php print date('YmdHis',filemtime(QVITTERDIR.'/js/lib/load-image.min.js')); ?>"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/lib/xregexp-all-3.0.0-pre.js?changed=<?php print date('YmdHis',filemtime(QVITTERDIR.'/js/lib/xregexp-all-3.0.0-pre.js')); ?>"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/lib/lz-string.js?changed=<?php print date('YmdHis',filemtime(QVITTERDIR.'/js/lib/lz-string.js')); ?>"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/lib/bowser.min.js?changed=<?php print date('YmdHis',filemtime(QVITTERDIR.'/js/lib/bowser.min.js')); ?>"></script>
<script charset="utf-8" type="text/javascript" src="<?php print $qvitterpath; ?>js/dom-functions.js?changed=<?php print date('YmdHis',filemtime(QVITTERDIR.'/js/dom-functions.js')); ?>"></script>
<script charset="utf-8" type="text/javascript" src="<?php print $qvitterpath; ?>js/misc-functions.js?changed=<?php print date('YmdHis',filemtime(QVITTERDIR.'/js/misc-functions.js')); ?>"></script>
<script charset="utf-8" type="text/javascript" src="<?php print $qvitterpath; ?>js/ajax-functions.js?changed=<?php print date('YmdHis',filemtime(QVITTERDIR.'/js/ajax-functions.js')); ?>"></script>

View File

@ -171,6 +171,15 @@ body.rtl .discard-error-message {
left:0;
}
#no-js-error {
display:block;
position: absolute;
top:70px;
left: 0;
width:100%;
text-align: center;
}
#accessibility-toggle-link {
height:0;
width:0;

View File

@ -567,6 +567,7 @@ function setNewCurrentStream(streamObject,setLocation,fallbackId,actionOnSuccess
$('#feed').show();
$('#feed-body').removeAttr('data-end-reached');
$('#feed-header-inner h2').css('opacity','0.2');
$('#feed-header-inner h2').html(h2FeedHeader); // update header (could be wrong in cache)
$('#feed-header-inner h2').animate({opacity:'1'},1000);
// set location bar from stream
@ -678,6 +679,9 @@ function setNewCurrentStream(streamObject,setLocation,fallbackId,actionOnSuccess
else if(error.status == 410 && streamObject.name == 'notice') {
showErrorMessage(window.sL.ERRORnoticeRemoved);
}
else if(error.status == 0) {
showErrorMessage(window.sL.ERRORnoContactWithServer + ' (' + replaceHtmlSpecialChars(error.statusText) + ')');
}
else {
showErrorMessage(window.sL.ERRORsomethingWentWrong + '<br><br>\
url: ' + url + '<br><br>\
@ -720,10 +724,10 @@ function setNewCurrentStream(streamObject,setLocation,fallbackId,actionOnSuccess
remove_spinner();
$('#feed-body').html(''); // empty feed body
$('#feed-header-inner h2').html(h2FeedHeader); // update header (could be wrong in cache)
$('#new-queets-bar').parent().addClass('hidden'); document.title = window.siteTitle; // hide new queets bar if it's visible there
addToFeed(queet_data, false,'visible'); // add stream items to feed element
$('#feed').animate({opacity:'1'},150); // fade in
$('.reload-stream').show();
$('#feed-body').removeAttr('data-end-reached');
$('body').removeClass('loading-older');$('body').removeClass('loading-newer');
$('html,body').scrollTop(0); // scroll to top
@ -946,14 +950,14 @@ 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 youtubeId = q.children('.queet').find('.queet-thumbs.thumb-num-1').children('.thumb-container.play-button.youtube').children('.attachment-thumb').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);
if(q.children('.queet').find('.expanded-content').children('.media').children('iframe[src="//www.youtube.com/embed/' + youtubeId + '"]').length < 1) { // not if already showed
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('.expanded-content').children('.media').children('iframe[src="' + youTubeEmbedLinkFromURL(youtubeURL) + '"]').length < 1) { // not if already showed
// hide video thumbnail if it's the only one
if(q.children('.queet').find('.queet-thumbs').children('.thumb-container').length < 2) {
q.children('.queet').find('.queet-thumbs').addClass('hide-thumbs');
}
// show video
q.children('.queet').find('.expanded-content').prepend('<div class="media"><iframe width="510" height="315" src="//www.youtube.com/embed/' + youtubeId + '" frameborder="0" allowfullscreen></iframe></div>');
q.children('.queet').find('.expanded-content').prepend('<div class="media"><iframe width="510" height="315" src="' + youTubeEmbedLinkFromURL(youtubeURL) + '" frameborder="0" allowfullscreen></iframe></div>');
}
}
@ -1837,14 +1841,14 @@ function buildQueetHtml(obj, idInStream, extraClassesThisRun, requeeted_by, isCo
// play button for videos and animated gifs
var playButtonClass = '';
if(this.url.indexOf('://www.youtube.com') > -1
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) {
if(this.url.indexOf('://www.youtube.com') > -1 || this.url.indexOf('://youtu.be') > -1) {
youTubeClass = ' youtube';
}

6
js/lib/bowser.min.js vendored Normal file
View File

@ -0,0 +1,6 @@
/*!
* Bowser - a browser detector
* https://github.com/ded/bowser
* MIT License | (c) Dustin Diaz 2015
*/
!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<e.length;++t){var r=e[t];if(typeof r=="string"&&r in n)return!0}return!1},n._detect=t,n})

View File

@ -1645,3 +1645,23 @@ function theUserOrGroupThisStreamBelongsTo(stream) {
return stream;
}
}
/* ·
·
· 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);
// get start time hash
var l = document.createElement("a");
l.href = url;
if(l.hash.substring(0,3) == '#t=') {
return '//www.youtube.com/embed/' + youtubeId + '?start=' + l.hash.substring(3);
}
else {
return '//www.youtube.com/embed/' + youtubeId;
}
}

View File

@ -49,6 +49,12 @@ checkLocalStorage();
// don't let users inject html/scripts into their own user data... not that it matters, it is only displayed to themselves, but just to be 200% safe
window.loggedIn = iterateRecursiveReplaceHtmlSpecialChars(window.loggedIn);
// hack to supress basic auth popup, e.g. if the user has to tabs open and
// log out in one of them. but microsoft browsers doesn't support this
if(typeof bowser.msie == 'undefined' && typeof bowser.msedge == 'undefined') {
window.apiRoot = window.apiRoot.replace('://','://x:x@');
}
/* ·
·
@ -1304,6 +1310,7 @@ $('body').on('click','a', function(e) {
e.preventDefault();
if($(this).closest('.modal-container').attr('id') != 'edit-profile-popup') { // no popup if we're editing our profile
popUpAction('popup-profile-picture', $('.profile-card-inner .screen-name').html(),'<img style="width:100%;display:block;" src="' + $(this).attr('href') + '" />',false);
$('.hover-card,.hover-card-caret').remove();
}
}
// hijack link if we find a matching link that qvitter can handle
@ -2378,9 +2385,7 @@ $('body').on('click','button.shorten',function () {
· · · · · · · · · · · · · */
$('body').on('click','.reload-stream',function () {
$('.reload-stream').hide();
setNewCurrentStream(URLtoStreamRouter(window.location.href),false,false,function(){
$('.reload-stream').show();
});
setNewCurrentStream(URLtoStreamRouter(window.location.href),false,false,false);
});

View File

@ -74,11 +74,6 @@ function URLtoStreamRouter(url) {
// we don't expect protocol to matter
url = removeProtocolFromUrl(url);
// remove anchor tags
if(url.indexOf('#')>-1) {
url = url.substring(0,url.indexOf('#'));
}
// not a local URL
if(url != window.siteRootDomain && url.indexOf(window.siteRootDomain + '/') != 0) {
// console.log('not a local url: ' + url);
@ -102,6 +97,13 @@ function URLtoStreamRouter(url) {
function pathToStreamRouter(path) {
// remove and remember anchor tags
var anchor = false;
if(path.indexOf('#')>-1) {
anchor = path.substring(path.indexOf('#'));
path = path.substring(0,path.indexOf('#'));
}
// remove starting slash
if(path.indexOf('/') == 0) {
path = path.substring(1);
@ -201,6 +203,21 @@ function pathToStreamRouter(path) {
return streamObject;
}
// conversation/{id}
if(pathSplit.length == 2 && pathSplit[0] == 'conversation' && /^[0-9]+$/.test(pathSplit[1])) {
streamObject.name = 'notice';
streamObject.id = pathSplit[1];
// conversation links are redirected to notice page, if the link is to a
// non root notice, then the notice we want to link to and expand is in the hash
if(anchor && anchor.indexOf('#notice-') == 0) {
streamObject.id = anchor.substring(8);
}
streamObject.path = 'notice/' + streamObject.id;
streamObject.streamHeader = replaceHtmlSpecialChars(streamObject.path);
streamObject.stream = 'statuses/show/' + streamObject.id + '.json';
return streamObject;
}
// user/{id}
if(pathSplit.length == 2 && pathSplit[0] == 'user' && /^[0-9]+$/.test(pathSplit[1])) {
streamObject.name = 'profile by id';

View File

@ -137,5 +137,6 @@
"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."
"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!"
}

View File

@ -137,5 +137,6 @@
"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."
"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!"
}

View File

@ -137,5 +137,6 @@
"ERRORcouldNotFindUserWithNickname":"No s'ha pogut trobar l'usuari amb el sobrenom \"{nickname}\" en aquest servidor",
"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."
"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!"
}

View File

@ -137,5 +137,6 @@
"ERRORcouldNotFindUserWithNickname":"Konnte Nutzer mit Name \"{nickname}\" nicht finden",
"ERRORcouldNotFindGroupWithNickname":"Konnte Gruppe mit Bezeichnung \"{nickname}\" nicht finden",
"ERRORcouldNotFindPage":"Konnte Seite nicht finden.",
"ERRORnoticeRemoved": "Dieser Queet wurde gelöscht."
"ERRORnoticeRemoved": "Dieser Queet wurde gelöscht.",
"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!"
}

View File

@ -137,5 +137,6 @@
"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."
"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!"
}

View File

@ -137,5 +137,6 @@
"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."
"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!"
}

View File

@ -137,5 +137,6 @@
"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."
"ERRORnoticeRemoved": "Este aviso se ha eliminado.",
"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!"
}

View File

@ -137,5 +137,6 @@
"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."
"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!"
}

View File

@ -137,5 +137,6 @@
"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."
"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!"
}

View File

@ -137,5 +137,6 @@
"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."
"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!"
}

View File

@ -137,5 +137,6 @@
"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."
"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!"
}

View File

@ -138,4 +138,5 @@
"ERRORcouldNotFindGroupWithNickname":"Impossible de trouver un groupe avec le nom \"{nickname}\" sur ce serveur",
"ERRORcouldNotFindPage":"Impossible de trouver cette page.",
"ERRORnoticeRemoved": "Cet avis a été supprimé."
"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!"
}

View File

@ -137,5 +137,6 @@
"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."
"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!"
}

View File

@ -137,5 +137,6 @@
"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."
"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!"
}

View File

@ -8,7 +8,7 @@
"loginForgotPassword": "Ka vu obliviis vua pas-vorto?",
"notices": "Mesaji",
"followers": "Sequanti",
"following": "Sequante",
"following": "Sequati",
"groups": "Grupi",
"compose": "Kompozez nova mesajo…",
"queetVerb": "Sendar",
@ -66,9 +66,9 @@
"shortDateFormatDate": "{day} {month}",
"shortDateFormatDateAndY": "{day} {month} {year}",
"now": "nun",
"posting": "publikigante",
"viewMoreInConvBefore": "← Vidar plue dil konverso",
"viewMoreInConvAfter": "Vidar plue dil konverso →",
"posting": "publikiganta",
"viewMoreInConvBefore": "← Vidar plu multe dil konverso",
"viewMoreInConvAfter": "Vidar plu multe dil konverso →",
"mentions": "Mencioni",
"timeline": "Tempolineo",
"publicTimeline": "Che {site-title}",
@ -80,7 +80,7 @@
"userExternalFollow": "Sequar",
"userExternalFollowHelp": "L'identifikilo di vua konto (ex. uzero@quitter.no)",
"userFollow": "Sequar",
"userFollowing": "Sequante",
"userFollowing": "Sequanta",
"userUnfollow": "Cesar sequar",
"joinGroup": "Membreskar",
"joinExternalGroup": "Membreskar",
@ -98,14 +98,14 @@
"signUpEmail": "E-adreso",
"signUpButtonText": "Registragar me che {site-title}",
"welcomeHeading": "Bonvenez che {site-title}!",
"welcomeText": "Ni esas <span id=\"federated-tooltip\"><div id=\"what-is-federation\">\"Federo\" signifikas, ke konto che {site-title} esas fakultativa por sequar, esar sequata da, od interagar kun uzeri di {site-title}. Vu povas registragar vu en servilo di GNU Social od en irga servado fondita sur la protokolo <a href=\"http://www.w3.org/community/ostatus/wiki/Main_Page\">OStatus</a>! Vu ne mem mustas juntar vu a servado: probez instalar l'aminda programo <a href=\"http://www.gnu.org/software/social/\">GNU Social</a> ye vua propra servilo! :)</div>federo</span> de mikroblogeri qui sucias etiko e solidareso, e qui deziras abandonar la centraligita e kapitalista servadi.",
"welcomeText": "Ni esas <span id=\"federated-tooltip\"><div id=\"what-is-federation\">\"Federo\" signifikas, ke konto che {site-title} esas fakultativa por sequar, esar sequata da, od interagar kun uzeri di {site-title}. Vu povas registragar vu en servilo di GNU Social od en irga servado fondita sur la protokolo <a href=\"http://www.w3.org/community/ostatus/wiki/Main_Page\">OStatus</a>! Vu ne mem mustas juntar vu a servado: probez instalar l'aminda programo <a href=\"http://www.gnu.org/software/social/\">GNU Social</a> en vua propra servilo! :)</div>federo</span> de mikroblogeri qui sucias etiko e solidareso, e qui deziras abandonar la centraligita e kapitalista servadi.",
"registerNickname": "Uzer-nomo",
"registerHomepage": "Frontispico",
"registerBio": "Biografio",
"registerLocation": "Loko",
"registerRepeatPassword": "Repetez la pas-vorto",
"moreSettings": "Plusa ajusti",
"otherServers": "Altre vu povas krear konto ye altra servilo di la reto GNU Social. <a href=\"http://federation.skilledtests.com/select_your_server.html\">Komparar</a>",
"otherServers": "Altre vu povas krear konto en altra servilo di la reto GNU Social. <a href=\"http://federation.skilledtests.com/select_your_server.html\">Komparar</a>",
"editMyProfile": "Modifikar mea profilo",
"notifications": "Avizi",
"xFavedYourQueet": "favoras vua mesajo",
@ -121,10 +121,10 @@
"blockUser": "Blokusar {username}",
"goToOriginalNotice": "Irar al originala mesajo",
"goToTheUsersRemoteProfile": "Irar al profilo di la uzero",
"clickToDrag":"Klikez por tranar la imajo",
"keyboardShortcuts":"Agi per klavaro",
"clickToDrag":"Kliktigez por tranar",
"keyboardShortcuts":"Agi klavarala",
"classicInterface":"Klasika {site-title}",
"accessibilityToggleLink":"Por plu bona acesebleso, klikez ica ligilo por enswichar la klasika uzer-interfacio.",
"accessibilityToggleLink":"Por plu bona acesebleso, kliktigez sur ica ligilo por enswichar la klasika uzer-interfacio.",
"tooltipBookmarkStream":"Adjuntar ica disktuto-fluo a vua marko-rubandi",
"tooltipTopMenu":"Menuo ed ajusti",
"tooltipAttachImage":"Atachar imajo",
@ -137,5 +137,6 @@
"ERRORcouldNotFindUserWithNickname":"On ne trovis uzero kun la nomo \"{nickname}\" en ica servilo.",
"ERRORcouldNotFindGroupWithNickname":"On ne trovis grupo kun la nomo \"{nickname}\" en ica servilo.",
"ERRORcouldNotFindPage":"On ne trovis ica pagino.",
"ERRORnoticeRemoved": "Ica mesajo esas supresita."
"ERRORnoticeRemoved": "Ica mesajo esas supresita.",
"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!"
}

View File

@ -137,5 +137,6 @@
"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."
"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!"
}

View File

@ -137,5 +137,6 @@
"ERRORcouldNotFindUserWithNickname":"Kan ikke finne en bruker med brukerid \"{nickname}\" på denne instansen",
"ERRORcouldNotFindGroupWithNickname":"Kan ikke finne en gruppe med gruppenavnet \"{nickname}\" på denne instansen",
"ERRORcouldNotFindPage":"Kan ikke finne siden.",
"ERRORnoticeRemoved": "Denne notisen er slettet."
"ERRORnoticeRemoved": "Denne notisen er slettet.",
"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!"
}

View File

@ -137,5 +137,6 @@
"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."
"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!"
}

View File

@ -137,5 +137,6 @@
"ERRORcouldNotFindUserWithNickname":"Det finns ingen användare med namet \"{nickname}\" på den här servern.",
"ERRORcouldNotFindGroupWithNickname":"Det finns ingen grupp med namnet \"{nickname}\" på den här servern.",
"ERRORcouldNotFindPage":"Sidan hittades inte.",
"ERRORnoticeRemoved": "Den här qvittringen är borttagen."
"ERRORnoticeRemoved": "Den här qvittringen är borttagen.",
"ERRORnoContactWithServer": "Kan inte ansluta till servern. Servern kanske är överbelastad, eller så har du ett problem med din internetuppkoppling. Försök igen senare!"
}

View File

@ -136,5 +136,6 @@
"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."
"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!"
}

View File

@ -136,5 +136,6 @@
"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."
"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!"
}