code:
/*

@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 <pieroxy@pieroxy.net> 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() {

// private property
var f = String.fromCharCode;
var keyStrBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var keyStrUriSafe = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$";
var baseReverseDic = {};

function getBaseValue(alphabet, character) {
  if (!baseReverseDic[alphabet]) {
    baseReverseDic[alphabet] = {};
    for (var i=0 ; i<alphabet.length ; i++) {
      baseReverseDic[alphabet][alphabet.charAt(i)] = i;
    }
  }
  return baseReverseDic[alphabet][character];
}

var LZString = {
  compressToBase64 : function (input) {
    if (input == null) return "";
    var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});
    switch (res.length % 4) { // To produce valid Base64
    default: // When could this happen ?
    case 0 : return res;
    case 1 : return res+"===";
    case 2 : return res+"==";
    case 3 : return res+"=";
    }
  },

  decompressFromBase64 : function (input) {
    if (input == null) return "";
    if (input == "") return null;
    return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });
  },

  compressToUTF16 : function (input) {
    if (input == null) return "";
    return LZString._compress(input, 15, function(a){return f(a+32);}) + " ";
  },

  decompressFromUTF16: function (compressed) {
    if (compressed == null) return "";
    if (compressed == "") return null;
    return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });
  },

  //compress into uint8array (UCS-2 big endian format)
  compressToUint8Array: function (uncompressed) {
    var compressed = LZString.compress(uncompressed);
    var buf=new Uint8Array(compressed.length*2); // 2 bytes per character

    for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {
      var current_value = compressed.charCodeAt(i);
      buf[i*2] = current_value >>> 8;
      buf[i*2+1] = current_value % 256;
    }
    return buf;
  },

  //decompress from uint8array (UCS-2 big endian format)
  decompressFromUint8Array:function (compressed) {
    if (compressed===null || compressed===undefined){
        return LZString.decompress(compressed);
    } else {
        var buf=new Array(compressed.length/2); // 2 bytes per character
        for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {
          buf[i]=compressed[i*2]*256+compressed[i*2+1];
        }

        var result = [];
        buf.forEach(function (c) {
          result.push(f(c));
        });
        return LZString.decompress(result.join(''));

    }

  },

  //compress into a string that is already URI encoded
  compressToEncodedURIComponent: function (input) {
    if (input == null) return "";
    return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});
  },

  //decompress from an output of compressToEncodedURIComponent
  decompressFromEncodedURIComponent:function (input) {
    if (input == null) return "";
    if (input == "") return null;
    input = input.replace(/ /g, "+");
    return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });
  },

  compress: function (uncompressed) {
    return LZString._compress(uncompressed, 16, function(a){return f(a);});
  },
  _compress: function (uncompressed, bitsPerChar, getCharFromInt) {
    if (uncompressed == null) return "";
    var i, value,
        context_dictionary= {},
        context_dictionaryToCreate= {},
        context_c="",
        context_wc="",
        context_w="",
        context_enlargeIn= 2, // Compensate for the first entry which should not count
        context_dictSize= 3,
        context_numBits= 2,
        context_data=[],
        context_data_val=0,
        context_data_position=0,
        ii;

    for (ii = 0; ii < uncompressed.length; ii += 1) {
      context_c = uncompressed.charAt(ii);
      if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {
        context_dictionary[context_c] = context_dictSize++;
        context_dictionaryToCreate[context_c] = true;
      }

      context_wc = context_w + context_c;
      if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {
        context_w = context_wc;
      } else {
        if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {
          if (context_w.charCodeAt(0)<256) {
            for (i=0 ; i<context_numBits ; i++) {
              context_data_val = (context_data_val << 1);
              if (context_data_position == bitsPerChar-1) {
                context_data_position = 0;
                context_data.push(getCharFromInt(context_data_val));
                context_data_val = 0;
              } else {
                context_data_position++;
              }
            }
            value = context_w.charCodeAt(0);
            for (i=0 ; i<8 ; i++) {
              context_data_val = (context_data_val << 1) | (value&1);
              if (context_data_position == bitsPerChar-1) {
                context_data_position = 0;
                context_data.push(getCharFromInt(context_data_val));
                context_data_val = 0;
              } else {
                context_data_position++;
              }
              value = value >> 1;
            }
          } else {
            value = 1;
            for (i=0 ; i<context_numBits ; i++) {
              context_data_val = (context_data_val << 1) | value;
              if (context_data_position ==bitsPerChar-1) {
                context_data_position = 0;
                context_data.push(getCharFromInt(context_data_val));
                context_data_val = 0;
              } else {
                context_data_position++;
              }
              value = 0;
            }
            value = context_w.charCodeAt(0);
            for (i=0 ; i<16 ; i++) {
              context_data_val = (context_data_val << 1) | (value&1);
              if (context_data_position == bitsPerChar-1) {
                context_data_position = 0;
                context_data.push(getCharFromInt(context_data_val));
                context_data_val = 0;
              } else {
                context_data_position++;
              }
              value = value >> 1;
            }
          }
          context_enlargeIn--;
          if (context_enlargeIn == 0) {
            context_enlargeIn = Math.pow(2, context_numBits);
            context_numBits++;
          }
          delete context_dictionaryToCreate[context_w];
        } else {
          value = context_dictionary[context_w];
          for (i=0 ; i<context_numBits ; i++) {
            context_data_val = (context_data_val << 1) | (value&1);
            if (context_data_position == bitsPerChar-1) {
              context_data_position = 0;
              context_data.push(getCharFromInt(context_data_val));
              context_data_val = 0;
            } else {
              context_data_position++;
            }
            value = value >> 1;
          }

        }
        context_enlargeIn--;
        if (context_enlargeIn == 0) {
          context_enlargeIn = Math.pow(2, context_numBits);
          context_numBits++;
        }
        // Add wc to the dictionary.
        context_dictionary[context_wc] = context_dictSize++;
        context_w = String(context_c);
      }
    }

    // Output the code for w.
    if (context_w !== "") {
      if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {
        if (context_w.charCodeAt(0)<256) {
          for (i=0 ; i<context_numBits ; i++) {
            context_data_val = (context_data_val << 1);
            if (context_data_position == bitsPerChar-1) {
              context_data_position = 0;
              context_data.push(getCharFromInt(context_data_val));
              context_data_val = 0;
            } else {
              context_data_position++;
            }
          }
          value = context_w.charCodeAt(0);
          for (i=0 ; i<8 ; i++) {
            context_data_val = (context_data_val << 1) | (value&1);
            if (context_data_position == bitsPerChar-1) {
              context_data_position = 0;
              context_data.push(getCharFromInt(context_data_val));
              context_data_val = 0;
            } else {
              context_data_position++;
            }
            value = value >> 1;
          }
        } else {
          value = 1;
          for (i=0 ; i<context_numBits ; i++) {
            context_data_val = (context_data_val << 1) | value;
            if (context_data_position == bitsPerChar-1) {
              context_data_position = 0;
              context_data.push(getCharFromInt(context_data_val));
              context_data_val = 0;
            } else {
              context_data_position++;
            }
            value = 0;
          }
          value = context_w.charCodeAt(0);
          for (i=0 ; i<16 ; i++) {
            context_data_val = (context_data_val << 1) | (value&1);
            if (context_data_position == bitsPerChar-1) {
              context_data_position = 0;
              context_data.push(getCharFromInt(context_data_val));
              context_data_val = 0;
            } else {
              context_data_position++;
            }
            value = value >> 1;
          }
        }
        context_enlargeIn--;
        if (context_enlargeIn == 0) {
          context_enlargeIn = Math.pow(2, context_numBits);
          context_numBits++;
        }
        delete context_dictionaryToCreate[context_w];
      } else {
        value = context_dictionary[context_w];
        for (i=0 ; i<context_numBits ; i++) {
          context_data_val = (context_data_val << 1) | (value&1);
          if (context_data_position == bitsPerChar-1) {
            context_data_position = 0;
            context_data.push(getCharFromInt(context_data_val));
            context_data_val = 0;
          } else {
            context_data_position++;
          }
          value = value >> 1;
        }

      }
      context_enlargeIn--;
      if (context_enlargeIn == 0) {
        context_enlargeIn = Math.pow(2, context_numBits);
        context_numBits++;
      }
    }

    // Mark the end of the stream
    value = 2;
    for (i=0 ; i<context_numBits ; i++) {
      context_data_val = (context_data_val << 1) | (value&1);
      if (context_data_position == bitsPerChar-1) {
        context_data_position = 0;
        context_data.push(getCharFromInt(context_data_val));
        context_data_val = 0;
      } else {
        context_data_position++;
      }
      value = value >> 1;
    }

    // Flush the last char
    while (true) {
      context_data_val = (context_data_val << 1);
      if (context_data_position == bitsPerChar-1) {
        context_data.push(getCharFromInt(context_data_val));
        break;
      }
      else context_data_position++;
    }
    return context_data.join('');
  },

  decompress: function (compressed) {
    if (compressed == null) return "";
    if (compressed == "") return null;
    return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });
  },

  _decompress: function (length, resetValue, getNextValue) {
    var dictionary = [],
        next,
        enlargeIn = 4,
        dictSize = 4,
        numBits = 3,
        entry = "",
        result = [],
        i,
        w,
        bits, resb, maxpower, power,
        c,
        data = {val:getNextValue(0), position:resetValue, index:1};

    for (i = 0; i < 3; i += 1) {
      dictionary[i] = i;
    }

    bits = 0;
    maxpower = Math.pow(2,2);
    power=1;
    while (power!=maxpower) {
      resb = data.val & data.position;
      data.position >>= 1;
      if (data.position == 0) {
        data.position = resetValue;
        data.val = getNextValue(data.index++);
      }
      bits |= (resb>0 ? 1 : 0) * power;
      power <<= 1;
    }

    switch (next = bits) {
      case 0:
          bits = 0;
          maxpower = Math.pow(2,8);
          power=1;
          while (power!=maxpower) {
            resb = data.val & data.position;
            data.position >>= 1;
            if (data.position == 0) {
              data.position = resetValue;
              data.val = getNextValue(data.index++);
            }
            bits |= (resb>0 ? 1 : 0) * power;
            power <<= 1;
          }
        c = f(bits);
        break;
      case 1:
          bits = 0;
          maxpower = Math.pow(2,16);
          power=1;
          while (power!=maxpower) {
            resb = data.val & data.position;
            data.position >>= 1;
            if (data.position == 0) {
              data.position = resetValue;
              data.val = getNextValue(data.index++);
            }
            bits |= (resb>0 ? 1 : 0) * power;
            power <<= 1;
          }
        c = f(bits);
        break;
      case 2:
        return "";
    }
    dictionary[3] = c;
    w = c;
    result.push(c);
    while (true) {
      if (data.index > length) {
        return "";
      }

      bits = 0;
      maxpower = Math.pow(2,numBits);
      power=1;
      while (power!=maxpower) {
        resb = data.val & data.position;
        data.position >>= 1;
        if (data.position == 0) {
          data.position = resetValue;
          data.val = getNextValue(data.index++);
        }
        bits |= (resb>0 ? 1 : 0) * power;
        power <<= 1;
      }

      switch (c = bits) {
        case 0:
          bits = 0;
          maxpower = Math.pow(2,8);
          power=1;
          while (power!=maxpower) {
            resb = data.val & data.position;
            data.position >>= 1;
            if (data.position == 0) {
              data.position = resetValue;
              data.val = getNextValue(data.index++);
            }
            bits |= (resb>0 ? 1 : 0) * power;
            power <<= 1;
          }

          dictionary[dictSize++] = f(bits);
          c = dictSize-1;
          enlargeIn--;
          break;
        case 1:
          bits = 0;
          maxpower = Math.pow(2,16);
          power=1;
          while (power!=maxpower) {
            resb = data.val & data.position;
            data.position >>= 1;
            if (data.position == 0) {
              data.position = resetValue;
              data.val = getNextValue(data.index++);
            }
            bits |= (resb>0 ? 1 : 0) * power;
            power <<= 1;
          }
          dictionary[dictSize++] = f(bits);
          c = dictSize-1;
          enlargeIn--;
          break;
        case 2:
          return result.join('');
      }

      if (enlargeIn == 0) {
        enlargeIn = Math.pow(2, numBits);
        numBits++;
      }

      if (dictionary[c]) {
        entry = dictionary[c];
      } else {
        if (c === dictSize) {
          entry = w + w.charAt(0);
        } else {
          return null;
        }
      }
      result.push(entry);

      // Add w+entry[0] to the dictionary.
      dictionary[dictSize++] = w + entry.charAt(0);
      enlargeIn--;

      w = entry;

      if (enlargeIn == 0) {
        enlargeIn = Math.pow(2, numBits);
        numBits++;
      }

    }
  }
};
  return LZString;
})();


code:
/*· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
  ·                                                                               ·
  ·                                                                               ·
  ·                             Q V I T T E R                                     ·
  ·                                                                               ·
  ·                                                                               ·
  ·                                 <o)                                           ·
  ·                                  /_////                                       ·
  ·                                 (____/                                        ·
  ·                                          (o<                                  ·
  ·                                   o> \\\\_\                                   ·
  ·                                 \\)   \____)                                  ·
  ·                                                                               ·
  ·                                                                               ·
  ·     @licstart  The following is the entire license notice for the             ·
  ·     JavaScript code in this page.                                             ·
  ·                                                                               ·
  ·     Copyright (C) 2015  Hannes Mannerheim and other contributors              ·
  ·                                                                               ·
  ·                                                                               ·
  ·     This program is free software: you can redistribute it and/or modify      ·
  ·     it under the terms of the GNU Affero General Public License as            ·
  ·     published by the Free Software Foundation, either version 3 of the        ·
  ·     License, or (at your option) any later version.                           ·
  ·                                                                               ·
  ·     This program is distributed in the hope that it will be useful,           ·
  ·     but WITHOUT ANY WARRANTY; without even the implied warranty of            ·
  ·     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             ·
  ·     GNU Affero General Public License for more details.                       ·
  ·                                                                               ·
  ·     You should have received a copy of the GNU Affero General Public License  ·
  ·     along with this program.  If not, see <http://www.gnu.org/licenses/>.     ·
  ·                                                                               ·
  ·     @licend  The above is the entire license notice                           ·
  ·     for the JavaScript code in this page.                                     ·
  ·                                                                               ·
  · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */

/* ·
   ·
   ·   Other plugins can add streams to Qvitter, by pushing streamObjects to
   ·   this array. See the structure in pathToStreamRouter()
   ·
   · · · · · · · · · */

window.pluginStreamObjects = [];

/* ·
   ·
   ·   Sets the location bar in the browser to correspond with given stream
   ·
   ·   @param streamObject: stream object returned by pathToStreamRouter
   ·
   · · · · · · · · · */

function setUrlFromStream(streamObject) {
	history.pushState({strm:streamObject.path},'','/' + streamObject.path);
	}

/* ·
   ·
   ·   Local URL to stream router
   ·
   ·   @param url: any URL
   ·
   · · · · · · · · · */

function URLtoStreamRouter(url) {

	// we don't expect protocol to matter
	url = removeProtocolFromUrl(url);

	// not a local URL
	if(url != window.siteRootDomain && url.indexOf(window.siteRootDomain + '/') != 0) {
		// console.log('not a local url: ' + url);
		return false;
		}

	// remove server
	var path = url.substring(window.siteRootDomain.length);

	return pathToStreamRouter(path);
	}

/* ·
   ·
   ·   Path to stream router
   ·
   ·   @param path: path, with or without starting slash
   ·
   · · · · · · · · · */

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);
		}

	// remove ending slash
	if(path.length>0 && path.lastIndexOf('/') == (path.length-1)) {
		path = path.substring(0,path.length-1);
		}

    // if we're on the instance base url and logged in, route to {nickname}/all
    if(window.loggedIn && path.length == 0) {
        path = window.loggedIn.screen_name + '/all';
        }

	// structure of the returned object
	var streamObject = {
		path: path,                 // this path
        name: false, 				// human readable name
		streamHeader: false,		// short header, e.g. links and buttons – no html!
		streamSubHeader: false,		// a longer header, that can include html and links
		streamDescription: false,	// description of the stream
		parentPath: false,			// a parent path can e.g. be "group/qvitter" for "group/qvitter/members"
		stream: false,				// the API path
		nickname: false,			// if we can read a nickname/screen_name from the path, add it to this property
		id: false,					// if we can read a id number string from the path, add it to this property
        maxIdOrPage: 'maxId',		// whether this stream uses 'maxId' or 'page' for paging (maxId is default)
		menu: false,				// optional menu in the header
		callbacks: false,			// functions to run after this timeline is loaded to feed-body
		type: 'notices'				// notices, notifications, users, groups, lists etc. notices is default
		};

	// instance's public timeline
	if((path.length == 0 && window.siteLocalOnlyDefaultPath) || path == 'main/public') {
		streamObject.path = 'main/public';
        streamObject.name = 'public timeline';
		streamObject.streamHeader = window.sL.publicTimeline;
		streamObject.stream = 'statuses/public_timeline.json';
		if(window.loggedIn !== false) {
			streamObject.menu = [
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_embedded_in_timeline:' + streamObject.path,
					label: window.sL.hideEmbeddedInTimeline,
					callback: 'showOrHideEmbeddedContentInTimelineFromProfilePref'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_quotes_in_timeline:' + streamObject.path,
					label: window.sL.hideQuotesInTimeline,
					callback: 'showOrHideQuotesInTimelineFromProfilePref'
					},
				{
					type: 'divider'
					},
				{
				type: 'link',
					label: window.sL.silencedPlural,
					href: window.siteInstanceURL + 'main/silenced'
					},
				{
				type: 'link',
					label: window.sL.sandboxedPlural,
					href: window.siteInstanceURL + 'main/sandboxed'
					}
				];
			streamObject.callbacks = [
				'showOrHideEmbeddedContentInTimelineFromProfilePref',
				'showOrHideQuotesInTimelineFromProfilePref'
				];
			}
		return streamObject;
		}

	// the whole known network
	if(path.length == 0 || path == 'main/all') {
        streamObject.path = 'main/all';
		streamObject.name = 'public and external timeline';
		streamObject.streamHeader = window.sL.publicAndExtTimeline;
		streamObject.stream = 'statuses/public_and_external_timeline.json';
		if(window.loggedIn !== false) {
			streamObject.menu = [
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_embedded_in_timeline:' + streamObject.path,
					label: window.sL.hideEmbeddedInTimeline,
					callback: 'showOrHideEmbeddedContentInTimelineFromProfilePref'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_quotes_in_timeline:' + streamObject.path,
					label: window.sL.hideQuotesInTimeline,
					callback: 'showOrHideQuotesInTimelineFromProfilePref'
					},
				{
					type: 'divider'
					},
				{
				type: 'link',
					label: window.sL.silencedPlural,
					href: window.siteInstanceURL + 'main/silenced'
					},
				{
				type: 'link',
					label: window.sL.sandboxedPlural,
					href: window.siteInstanceURL + 'main/sandboxed'
					}
				];
			streamObject.callbacks = [
				'showOrHideEmbeddedContentInTimelineFromProfilePref',
				'showOrHideQuotesInTimelineFromProfilePref'
				];
			}
		return streamObject;
		}

	// groups directory, qvitter can't handle that yet
	if(path == 'groups') {
		streamObject.name = 'group directory';
		return streamObject;
		}

	// search/notice?q={urlencoded search terms}
	if(path.indexOf('search/notice?q=') == 0) {
		var searchQuery = replaceHtmlSpecialChars(path.replace('search/notice?q=',''));
		if(searchQuery.length>0) {
			streamObject.name = 'search';
            streamObject.streamHeader = window.sL.searchVerb + ': ' + replaceHtmlSpecialChars(decodeURIComponent(searchQuery));
            streamObject.stream = 'search.json?q=' + searchQuery;
            streamObject.id = searchQuery;
            streamObject.maxIdOrPage = 'page';
			if(window.loggedIn !== false) {
				streamObject.menu = [
					{
						type: 'profile-prefs-toggle',
						namespace: 'qvitter',
						topic: 'hide_embedded_in_timeline:' + streamObject.path,
						label: window.sL.hideEmbeddedInTimeline,
						callback: 'showOrHideEmbeddedContentInTimelineFromProfilePref'
						},
					{
						type: 'profile-prefs-toggle',
						namespace: 'qvitter',
						topic: 'hide_quotes_in_timeline:' + streamObject.path,
						label: window.sL.hideQuotesInTimeline,
						callback: 'showOrHideQuotesInTimelineFromProfilePref'
						}
					];
				streamObject.callbacks = [
					'showOrHideEmbeddedContentInTimelineFromProfilePref',
					'showOrHideQuotesInTimelineFromProfilePref'
					];
				}
			return streamObject;
			}
		}

	// main/silenced
	if(path == 'main/silenced') {
		streamObject.name = 'silenced profiles';
        streamObject.streamHeader = window.sL.silencedPlural;
        streamObject.streamSubHeader = window.sL.silencedUsersOnThisInstance;
		streamObject.streamDescription = window.sL.silencedStreamDescription;
		streamObject.stream = 'qvitter/silenced.json?count=20';
        streamObject.maxIdOrPage = 'page';
		streamObject.type = 'users';
		streamObject.menu = [
			{
			type: 'link',
				label: window.sL.sandboxedPlural,
				href: window.siteInstanceURL + 'main/sandboxed'
				}
			];
		return streamObject;
		}

	// main/sandboxed
	if(path == 'main/sandboxed') {
		streamObject.name = 'sandboxed profiles';
        streamObject.streamHeader = window.sL.sandboxedPlural;
        streamObject.streamSubHeader = window.sL.sandboxedUsersOnThisInstance;
		streamObject.streamDescription = window.sL.sandboxedStreamDescription;
		streamObject.stream = 'qvitter/sandboxed.json?count=20';
        streamObject.maxIdOrPage = 'page';
		streamObject.type = 'users';
		streamObject.menu = [
			{
			type: 'link',
				label: window.sL.silencedPlural,
				href: window.siteInstanceURL + 'main/silenced'
				}
			];
		return streamObject;
		}

	// {screen_name}
	if(/^[a-zA-Z0-9]+$/.test(path)) {
        streamObject.name = 'profile';
        if(window.loggedIn.screen_name == path) {
            streamObject.name = 'my profile';
            }
        streamObject.nickname = path;
        streamObject.streamHeader = '@' + replaceHtmlSpecialChars(streamObject.nickname);
        streamObject.streamSubHeader = window.sL.notices + '
/ ' + window.sL.mentions + ' / ' + window.sL.favoritesNoun +'
';
		streamObject.stream = 'statuses/user_timeline.json?screen_name=' + streamObject.nickname + '&withuserarray=1';
		return streamObject;
		}

	var pathSplit = path.split('/');

	// tag/{tag}
	if(pathSplit.length == 2 && pathSplit[0] == 'tag') {
		streamObject.name = 'tag stream';
        streamObject.streamHeader = '#' + replaceHtmlSpecialChars(pathSplit[1]);
        streamObject.id = pathSplit[1];
		streamObject.stream = 'statusnet/tags/timeline/' + streamObject.id + '.json';
		if(window.loggedIn !== false) {
			streamObject.menu = [
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_embedded_in_timeline:' + streamObject.path,
					label: window.sL.hideEmbeddedInTimeline,
					callback: 'showOrHideEmbeddedContentInTimelineFromProfilePref'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_quotes_in_timeline:' + streamObject.path,
					label: window.sL.hideQuotesInTimeline,
					callback: 'showOrHideQuotesInTimelineFromProfilePref'
					}
				];
			streamObject.callbacks = [
				'showOrHideEmbeddedContentInTimelineFromProfilePref',
				'showOrHideQuotesInTimelineFromProfilePref'
				];
			}
		return streamObject;
		}

	// notice/{id}
	if(pathSplit.length == 2 && pathSplit[0] == 'notice' && /^[0-9]+$/.test(pathSplit[1])) {
		streamObject.name = 'notice';
        streamObject.streamHeader = replaceHtmlSpecialChars(path);
        streamObject.id = pathSplit[1];
		streamObject.stream = 'statuses/show/' + streamObject.id + '.json';
		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';
        streamObject.nickname = userArrayCacheGetUserNicknameById(pathSplit[1]);
        if(streamObject.nickname === false) {
            streamObject.streamHeader = replaceHtmlSpecialChars(path);
            }
        else {
            streamObject.streamHeader = '@' + streamObject.nickname;
            streamObject.parentPath = streamObject.nickname;
            streamObject.streamSubHeader = window.sL.notices + '
/ ' + window.sL.mentions + ' / ' + window.sL.favoritesNoun +'
';
            }
        streamObject.id = pathSplit[1];
		streamObject.stream = 'statuses/user_timeline.json?id=' + streamObject.id + '&withuserarray=1';
		return streamObject;
		}

	// group/{group_nickname}
	if(pathSplit.length == 2 && pathSplit[0] == 'group' && /^[a-zA-Z0-9]+$/.test(pathSplit[1])) {
		streamObject.name = 'group notice stream';
        streamObject.nickname = pathSplit[1];
        streamObject.streamHeader = '!' + replaceHtmlSpecialChars(pathSplit[1]);
		streamObject.stream = 'statusnet/groups/timeline/' + streamObject.nickname + '.json';
		if(window.loggedIn !== false) {
			streamObject.menu = [
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_embedded_in_timeline:' + streamObject.path,
					label: window.sL.hideEmbeddedInTimeline,
					callback: 'showOrHideEmbeddedContentInTimelineFromProfilePref'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_quotes_in_timeline:' + streamObject.path,
					label: window.sL.hideQuotesInTimeline,
					callback: 'showOrHideQuotesInTimelineFromProfilePref'
					}
				];
			streamObject.callbacks = [
				'showOrHideEmbeddedContentInTimelineFromProfilePref',
				'showOrHideQuotesInTimelineFromProfilePref'
				];
			}
		return streamObject;
		}

	// group/{id}/id
	if(pathSplit.length == 3 && pathSplit[0] == 'group' && /^[0-9]+$/.test(pathSplit[1]) && pathSplit[2] == 'id') {
		streamObject.name = 'group notice stream by id';
        streamObject.id = pathSplit[1];
        streamObject.streamHeader = replaceHtmlSpecialChars(path);
		streamObject.stream = 'statusnet/groups/timeline/' + streamObject.id + '.json';
		return streamObject;
		}

	// group/{group_nickname}/members
	if(pathSplit.length == 3 && pathSplit[0] == 'group' && /^[a-zA-Z0-9]+$/.test(pathSplit[1]) && pathSplit[2] == 'members') {
		streamObject.name = 'group member list';
        streamObject.nickname = pathSplit[1];
        streamObject.parentPath = 'group/' + streamObject.nickname;
        streamObject.streamHeader = '!' + replaceHtmlSpecialChars(pathSplit[1]);
        streamObject.streamSubHeader = window.sL.memberCount;
		streamObject.stream = 'statusnet/groups/membership/' + streamObject.nickname + '.json?count=20';
        streamObject.maxIdOrPage = 'page';
		streamObject.type = 'users';
		return streamObject;
		}

	// group/{group_nickname}/admins
	if(pathSplit.length == 3 && pathSplit[0] == 'group' && /^[a-zA-Z0-9]+$/.test(pathSplit[1]) && pathSplit[2] == 'admins') {
		streamObject.name = 'group admin list';
        streamObject.nickname = pathSplit[1];
        streamObject.parentPath = 'group/' + streamObject.nickname;
        streamObject.streamHeader = '!' + replaceHtmlSpecialChars(pathSplit[1]);
        streamObject.streamSubHeader = window.sL.adminCount;
		streamObject.stream = 'statusnet/groups/admins/' + streamObject.nickname + '.json?count=20';
        streamObject.maxIdOrPage = 'page';
		streamObject.type = 'users';
		return streamObject;
		}

	// {screen_name}/all
	if(pathSplit.length == 2 && /^[a-zA-Z0-9]+$/.test(pathSplit[0]) && pathSplit[1] == 'all') {
        streamObject.name = 'friends timeline';
		streamObject.nickname = pathSplit[0];
        streamObject.streamHeader = replaceHtmlSpecialChars(path);
		if(window.loggedIn.screen_name == streamObject.nickname) {
			streamObject.stream = 'statuses/friends_timeline.json';
            streamObject.streamSubHeader = window.sL.timeline;
			streamObject.menu = [
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_replies',
					label: window.sL.hideRepliesToPeopleIDoNotFollow
					},
				{
					type: 'divider'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_embedded_in_timeline:' + streamObject.path,
					label: window.sL.hideEmbeddedInTimeline,
					callback: 'showOrHideEmbeddedContentInTimelineFromProfilePref'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_quotes_in_timeline:' + streamObject.path,
					label: window.sL.hideQuotesInTimeline,
					callback: 'showOrHideQuotesInTimelineFromProfilePref'
					}
				];
			streamObject.callbacks = [
				'showOrHideEmbeddedContentInTimelineFromProfilePref',
				'showOrHideQuotesInTimelineFromProfilePref'
				];
			}
		else {
			streamObject.stream = 'statuses/friends_timeline.json?screen_name=' + streamObject.nickname + '&withuserarray=1';
            streamObject.parentPath = streamObject.nickname;
			}
		return streamObject;
		}

	// {screen_name}/replies
	if(pathSplit.length == 2 && /^[a-zA-Z0-9]+$/.test(pathSplit[0]) && pathSplit[1] == 'replies') {
		streamObject.name = 'mentions';
        streamObject.nickname = pathSplit[0];
		if(window.loggedIn.screen_name == streamObject.nickname) {
			streamObject.stream = 'statuses/mentions.json';
            streamObject.streamHeader = window.sL.mentions;
			}
		else {
            streamObject.parentPath = streamObject.nickname;
			streamObject.stream = 'statuses/mentions.json?screen_name=' + streamObject.nickname + '&withuserarray=1';
            streamObject.streamSubHeader = '
' + window.sL.notices + ' /
' + window.sL.mentions + '
/ ' + window.sL.favoritesNoun + '
';
			}
		if(window.loggedIn !== false) {
			streamObject.menu = [
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_embedded_in_timeline:' + streamObject.path,
					label: window.sL.hideEmbeddedInTimeline,
					callback: 'showOrHideEmbeddedContentInTimelineFromProfilePref'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_quotes_in_timeline:' + streamObject.path,
					label: window.sL.hideQuotesInTimeline,
					callback: 'showOrHideQuotesInTimelineFromProfilePref'
					}
				];
			streamObject.callbacks = [
				'showOrHideEmbeddedContentInTimelineFromProfilePref',
				'showOrHideQuotesInTimelineFromProfilePref'
				];
			}
		return streamObject;
		}

	// {screen_name}/notifications
	if(pathSplit.length == 2 && /^[a-zA-Z0-9]+$/.test(pathSplit[0]) && pathSplit[1] == 'notifications') {
		streamObject.name = 'notifications';
        streamObject.nickname = pathSplit[0];
		// only accessible to the logged in user
		if(window.loggedIn.screen_name == streamObject.nickname) {
			streamObject.stream = 'qvitter/statuses/notifications.json';
            streamObject.streamHeader = '@' + replaceHtmlSpecialChars(streamObject.nickname);
            streamObject.streamSubHeader = window.sL.notifications;
			streamObject.type = 'notifications';
			streamObject.menu = [
				{
					type: 'function',
					functionName: 'markAllNotificationsAsSeen',
					label: window.sL.markAllNotificationsAsSeen
					},
				{
					type: 'divider'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_embedded_in_timeline:' + streamObject.path,
					label: window.sL.hideEmbeddedInTimeline,
					callback: 'showOrHideEmbeddedContentInTimelineFromProfilePref'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_quotes_in_timeline:' + streamObject.path,
					label: window.sL.hideQuotesInTimeline,
					callback: 'showOrHideQuotesInTimelineFromProfilePref'
					},
				{
					type: 'divider'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'only_show_notifications_from_users_i_follow',
					label: window.sL.onlyShowNotificationsFromUsersIFollow,
					callback: 'reloadCurrentStreamAndClearCache'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_notifications_from_muted_users',
					label: window.sL.hideNotificationsFromMutedUsers,
					callback: 'showOrHideNoticesFromMutedUsersInNotifications'
					},
				{
					type: 'divider'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'disable_notify_replies_and_mentions',
					label: window.sL.notifyRepliesAndMentions,
					callback: 'reloadCurrentStreamAndClearCache'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'disable_notify_favs',
					label: window.sL.notifyFavs,
					callback: 'reloadCurrentStreamAndClearCache'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'disable_notify_repeats',
					label: window.sL.notifyRepeats,
					callback: 'reloadCurrentStreamAndClearCache'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'disable_notify_follows',
					label: window.sL.notifyFollows,
					callback: 'reloadCurrentStreamAndClearCache'
					}
				];
			streamObject.callbacks = [
				'showOrHideEmbeddedContentInTimelineFromProfilePref',
				'showOrHideQuotesInTimelineFromProfilePref',
				'showOrHideNoticesFromMutedUsersInNotifications'
				];
			}
		return streamObject;
		}

	// {screen_name}/favorites
	if(pathSplit.length == 2 && /^[a-zA-Z0-9]+$/.test(pathSplit[0]) && pathSplit[1] == 'favorites') {
		streamObject.name = 'favorites';
        streamObject.nickname = pathSplit[0];
		if(window.loggedIn.screen_name == streamObject.nickname) {
			streamObject.stream = 'favorites.json';
            streamObject.streamSubHeader = window.sL.favoritesNoun;
			}
		else {
            streamObject.parentPath = streamObject.nickname;
			streamObject.stream = 'favorites.json?screen_name=' + streamObject.nickname + '&withuserarray=1';
            streamObject.streamHeader = '@' + replaceHtmlSpecialChars(streamObject.nickname);
            streamObject.streamSubHeader = '
' + window.sL.notices + ' / ' + window.sL.mentions + ' /
' + window.sL.favoritesNoun;
			}
		if(window.loggedIn !== false) {
			streamObject.menu = [
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_embedded_in_timeline:' + streamObject.path,
					label: window.sL.hideEmbeddedInTimeline,
					callback: 'showOrHideEmbeddedContentInTimelineFromProfilePref'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_quotes_in_timeline:' + streamObject.path,
					label: window.sL.hideQuotesInTimeline,
					callback: 'showOrHideQuotesInTimelineFromProfilePref'
					}
				];
			streamObject.callbacks = [
				'showOrHideEmbeddedContentInTimelineFromProfilePref',
				'showOrHideQuotesInTimelineFromProfilePref'
				];
			}
		return streamObject;
		}

	// {screen_name}/subscribers
	if(pathSplit.length == 2 && /^[a-zA-Z0-9]+$/.test(pathSplit[0]) && pathSplit[1] == 'subscribers') {
		streamObject.name = 'subscribers';
        streamObject.nickname = pathSplit[0];
        streamObject.parentPath = streamObject.nickname;
        streamObject.streamHeader = '@' + replaceHtmlSpecialChars(streamObject.nickname);
        streamObject.streamSubHeader = '
' + window.sL.following + ' /
' + window.sL.followers;
		streamObject.stream = 'statuses/followers.json?count=20&screen_name=' + streamObject.nickname + '&withuserarray=1';
        streamObject.maxIdOrPage = 'page';
		streamObject.type = 'users';
		return streamObject;
		}

	// {screen_name}/subscriptions
	if(pathSplit.length == 2 && /^[a-zA-Z0-9]+$/.test(pathSplit[0]) && pathSplit[1] == 'subscriptions') {
		streamObject.name = 'subscriptions';
        streamObject.nickname = pathSplit[0];
        streamObject.parentPath = streamObject.nickname;
        streamObject.streamHeader = '@' + replaceHtmlSpecialChars(streamObject.nickname);
        streamObject.streamSubHeader = window.sL.following + '
/ ' + window.sL.followers + '
';
		streamObject.stream = 'statuses/friends.json?count=20&screen_name=' + streamObject.nickname + '&withuserarray=1';
        streamObject.maxIdOrPage = 'page';
		streamObject.type = 'users';
		return streamObject;
		}

	// {screen_name}/blocks
	if(pathSplit.length == 2 && /^[a-zA-Z0-9]+$/.test(pathSplit[0]) && pathSplit[1] == 'blocks') {
		streamObject.name = 'user blocks';
        streamObject.nickname = pathSplit[0];
        streamObject.streamHeader = window.sL.userBlocked;
        streamObject.streamSubHeader = window.sL.userBlocks;
		streamObject.stream = 'qvitter/blocks.json?count=20&id=' + streamObject.nickname + '&withuserarray=1';
        streamObject.maxIdOrPage = 'page';
		streamObject.type = 'users';
		return streamObject;
		}

	// {screen_name}/mutes
	if(pathSplit.length == 2 && /^[a-zA-Z0-9]+$/.test(pathSplit[0]) && pathSplit[1] == 'mutes') {
		streamObject.name = 'user mutes';
        streamObject.nickname = pathSplit[0];
        streamObject.streamHeader = window.sL.userMuted;
        streamObject.streamSubHeader = window.sL.userMutes;
		streamObject.streamDescription = window.sL.mutedStreamDescription;
		streamObject.stream = 'qvitter/mutes.json?count=20&withuserarray=1';
        streamObject.maxIdOrPage = 'page';
		streamObject.type = 'users';
		return streamObject;
		}

	// {screen_name}/groups
	if(pathSplit.length == 2 && /^[a-zA-Z0-9]+$/.test(pathSplit[0]) && pathSplit[1] == 'groups') {
		streamObject.name = 'user group list';
        streamObject.nickname = pathSplit[0];
        streamObject.parentPath = streamObject.nickname;
        streamObject.streamHeader = '@' + replaceHtmlSpecialChars(streamObject.nickname);
        streamObject.streamSubHeader = window.sL.groups;
		streamObject.stream = 'statusnet/groups/list.json?count=10&screen_name=' + streamObject.nickname + '&withuserarray=1';
		streamObject.maxIdOrPage = 'page';
		streamObject.type = 'groups';
		return streamObject;
		}

	// {screen_name}/all/{listname}
	if(pathSplit.length == 3 && /^[a-zA-Z0-9]+$/.test(pathSplit[0]) && pathSplit[1] == 'all' && /^[a-zA-Z0-9]+$/.test(pathSplit[2])) {
		streamObject.name = 'list notice stream';
        streamObject.nickname = pathSplit[2];
		streamObject.stream = 'qvitter/' + pathSplit[0] + '/lists/' + pathSplit[2] + '/statuses.json';
		streamObject.type = 'notices';
		if(window.loggedIn.screen_name == pathSplit[0]) {
			streamObject.streamHeader = window.sL.myListWithListName.replace('{list-name}',streamObject.nickname);
			streamObject.streamSubHeader = window.sL.myListWithListName.replace('{list-name}',streamObject.nickname) + '
/ ' + window.sL.listMembers + ' / ' + window.sL.listSubscribers + '
';
			}
		else {
			streamObject.streamHeader = window.sL.nicknamesListWithListName.replace('{list-name}',streamObject.nickname).replace('{nickname}',pathSplit[0]);
			streamObject.streamSubHeader = window.sL.nicknamesListWithListName.replace('{list-name}',streamObject.nickname).replace('{nickname}',pathSplit[0]) + '
/ ' + window.sL.listMembers + ' / ' + window.sL.listSubscribers + '
';
			}
		if(window.loggedIn !== false) {
			streamObject.menu = [
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_embedded_in_timeline:' + streamObject.path,
					label: window.sL.hideEmbeddedInTimeline,
					callback: 'showOrHideEmbeddedContentInTimelineFromProfilePref'
					},
				{
					type: 'profile-prefs-toggle',
					namespace: 'qvitter',
					topic: 'hide_quotes_in_timeline:' + streamObject.path,
					label: window.sL.hideQuotesInTimeline,
					callback: 'showOrHideQuotesInTimelineFromProfilePref'
					}
				];
			streamObject.callbacks = [
				'showOrHideEmbeddedContentInTimelineFromProfilePref',
				'showOrHideQuotesInTimelineFromProfilePref'
				];
			}
		return streamObject;
		}

	// {screen_name}/all/{listname}/members
	if(pathSplit.length == 4 && /^[a-zA-Z0-9]+$/.test(pathSplit[0]) && pathSplit[1] == 'all' && /^[a-zA-Z0-9]+$/.test(pathSplit[2]) && pathSplit[3] == 'tagged') {
		streamObject.name = 'list members';
        streamObject.nickname = pathSplit[2];
		streamObject.parentPath = pathSplit[0] + '/all/' + pathSplit[2];
		streamObject.stream = 'qvitter/' + pathSplit[0] + '/lists/' + pathSplit[2] + '/members.json';
		streamObject.maxIdOrPage = 'page';
		streamObject.type = 'users';
		if(window.loggedIn.screen_name == pathSplit[0]) {
			streamObject.streamHeader = window.sL.myListWithListName.replace('{list-name}',streamObject.nickname);
			streamObject.streamSubHeader = '
' + window.sL.myListWithListName.replace('{list-name}',streamObject.nickname) + ' /
' + window.sL.listMembers + '
/ ' + window.sL.listSubscribers + '
';
			}
		else {
			streamObject.streamHeader = window.sL.nicknamesListWithListName.replace('{list-name}',streamObject.nickname).replace('{nickname}',pathSplit[0]);
			streamObject.streamSubHeader = '
' + window.sL.nicknamesListWithListName.replace('{list-name}',streamObject.nickname).replace('{nickname}',pathSplit[0]) + ' /
' + window.sL.listMembers + '
/ ' + window.sL.listSubscribers + '
';
			}
		return streamObject;
		}

	// {screen_name}/all/{listname}/subscribers
	if(pathSplit.length == 4 && /^[a-zA-Z0-9]+$/.test(pathSplit[0]) && pathSplit[1] == 'all' && /^[a-zA-Z0-9]+$/.test(pathSplit[2]) && pathSplit[3] == 'subscribers') {
		streamObject.name = 'list subscribers';
        streamObject.nickname = pathSplit[2];
		streamObject.parentPath = pathSplit[0] + '/all/' + pathSplit[2];
		streamObject.stream = 'qvitter/' + pathSplit[0] + '/lists/' + pathSplit[2] + '/subscribers.json';
		streamObject.maxIdOrPage = 'page';
		streamObject.type = 'users';
		if(window.loggedIn.screen_name == pathSplit[0]) {
			streamObject.streamHeader = window.sL.myListWithListName.replace('{list-name}',streamObject.nickname);
			streamObject.streamSubHeader = '
' + window.sL.myListWithListName.replace('{list-name}',streamObject.nickname) + ' / ' + window.sL.listMembers + ' /
' + window.sL.listSubscribers;
			}
		else {
			streamObject.streamHeader = window.sL.nicknamesListWithListName.replace('{list-name}',streamObject.nickname).replace('{nickname}',pathSplit[0]);
			streamObject.streamSubHeader = '
' + window.sL.nicknamesListWithListName.replace('{list-name}',streamObject.nickname).replace('{nickname}',pathSplit[0]) + ' / ' + window.sL.listMembers + ' /
' + window.sL.listSubscribers;
			}
		return streamObject;
		}

	// other plugins can add streams to Qvitter
	if(window.pluginStreamObjects.length > 0) {
		$.each(window.pluginStreamObjects,function(k,pluginStreamObject) {
			if(typeof pluginStreamObject.pathRegExp != 'undefined' && pluginStreamObject.pathRegExp.test(path)){
				$.extend(streamObject,pluginStreamObject);
				return false;
				}
			});
		return streamObject;
		}

	return false;
	}

/* ·
   ·
   ·   Get stream from location bar
   ·
   · · · · · · · · · */

function getStreamFromUrl() {

	var streamObject = URLtoStreamRouter(window.location.href);

	if(streamObject.stream) {
		return streamObject;
		}
	// fallback to friends timeline or public timeline if URLtoStreamRouter can't find a stream
	else if(window.loggedIn) {
		return pathToStreamRouter(window.loggedIn.screen_name + '/all');
		}
	else if(window.siteLocalOnlyDefaultPath) {
		return pathToStreamRouter('main/public');
		}
	else {
		return pathToStreamRouter('main/all');
		}

	}

license: mit


code:
/* · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
  ·                                                                             ·
  ·                                                                             ·
  ·                             Q V I T T E R                                   ·
  ·                                                                             ·
  ·                      https://git.gnu.io/h2p/Qvitter                         ·
  ·                                                                             ·
  ·                                                                             ·
  ·                                 <o)                                         ·
  ·                                  /_////                                     ·
  ·                                 (____/                                      ·
  ·                                          (o<                                ·
  ·                                   o> \\\\_\                                 ·
  ·                                 \\)   \____)                                ·
  ·                                                                             ·
  ·                                                                             ·
  ·                                                                             ·
  ·  Qvitter is free  software:  you can  redistribute it  and / or  modify it  ·
  ·  under the  terms of the GNU Affero General Public License as published by  ·
  ·  the Free Software Foundation,  either version three of the License or (at  ·
  ·  your option) any later version.                                            ·
  ·                                                                             ·
  ·  Qvitter is distributed  in hope that  it will be  useful but  WITHOUT ANY  ·
  ·  WARRANTY;  without even the implied warranty of MERCHANTABILTY or FITNESS  ·
  ·  FOR A PARTICULAR PURPOSE.  See the  GNU Affero General Public License for  ·
  ·  more details.                                                              ·
  ·                                                                             ·
  ·  You should have received a copy of the  GNU Affero General Public License  ·
  ·  along with Qvitter. If not, see <http://www.gnu.org/licenses/>.            ·
  ·                                                                             ·
  ·   Contact h@nnesmannerhe.im if you have any questions.                      ·
  ·                                                                             ·
  · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */

/* ·
   ·
   ·   Qvitter link in default GNU Social UI, toggle setting in api and reload page when finished
   ·
   · · · · · · · · · · · · · */

if(qvitterEnabled) {
	$('#site_nav_global_primary').find('.nav').first().prepend('
' + toggleText + '
');
	}
else {
	$('#site_nav_global_primary').find('.nav').first().prepend('
' + toggleText + '
');

	$('#toggleqvitter > a').click(function(e){
		e.preventDefault();
		$.get(toggleQvitterAPIURL,function(data){
			if(data.success === true) {
				window.location.href = qvitterAllLink;
				}
			});

		});
	}


directionality: rtl

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} صباحًا

time12pm: {time} مساءً

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: هل أنت جديد على ترك؟

signUp: سجّل الآن!

signUpFullName: الاسم الكامل

signUpEmail: البريد الإلكترونيّ

signUpButtonText: التسجيل في ترك

welcomeHeading: مرحبًا بك في ترك.

registerNickname: اسم المستخدم

registerHomepage: موقع إلكتروني

registerBio: النبذة التعريفيّة

registerLocation: الموقع الجغرافي

registerRepeatPassword: تأكيد كلمة المرور

moreSettings: مزيد من الإعدادات

editMyProfile: تعديل الملف الشخصي

notifications: التنبيهات

xFavedYourQueet: بتفضيل تغريدتك

xRepeatedYourQueet: بإعادة تغريد

xStartedFollowingYou: بمتابعتك

followsYou: يُتابعك

FAQ: FAQ

inviteAFriend: دعوة أصدقائك!

goToExternalProfile: اذهب إلى الملف الشخصي الكامل

cropAndSave: قُص و احفظ.

showTerms: Read our Terms of Use

ellipsisMore: More

blockUser: Block

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

ERRORfailedMarkingAllNotificationsAsRead: Failed marking all notifications as seen.

thisIsANoticeFromABlockedUser: Warning: This is a notice from a user you have blocked. Click to show it.

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

tooltipBlocksYou: You are blocked from following {username}.

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

thisIsANoticeFromAMutedUser: You have muted the author of this quip. Click here to show it anyway.

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.

thisIsABookmark: This is a bookmark created in the Classic interface


directionality: ltr

languageName: Asturianu

loginUsername: Nome d'usuariu o corréu-e

loginPassword: Contraseña

loginSignIn: Aniciar sesión

loginRememberMe: Recordar los mios datos

loginForgotPassword: ¿Escaecisti la contraseña?

notices: Queets

followers: Siguidores

following: Siguiendo

groups: Grupos

compose: Crear un Queet nuevu...

queetVerb: Quittiar

queetsNounPlural: Queets

logout: Zarrar sesión

languageSelected: Llingua:

viewMyProfilePage: Ver la mio páxina de perfil

expand: Abrir

collapse: Contrayer

details: Detalles

expandFullConversation: Ver la conversación entera

replyVerb: Responder

requeetVerb: Requittiar

favoriteVerb: Favoritu

requeetedVerb: Requittiáu

favoritedVerb: Marcáu como favoritu

replyTo: Responder a

requeetedBy: Requittiáu por {requeeted-by}

favoriteNoun: Favoritu

favoritesNoun: Favoritos

requeetNoun: Requeet

requeetsNoun: Requeets

newQueet: {new-notice-count} Queet nuevu

newQueets: {new-notice-count} Queets nuevos

longmonthsJanuary: xineru

longmonthsFebruary: febreru

longmonthsMars: marzu

longmonthsApril: abril

longmonthsMay: mayu

longmonthsJune: xunu

longmonthsJuly: xunetu

longmonthsAugust: agostu

longmonthsSeptember: setiembre

longmonthsOctober: ochobre

longmonthsNovember: payares

longmonthsDecember: avientu

shortmonthsJanuary: xin

shortmonthsFebruary: feb

shortmonthsMars: mar

shortmonthsApril: abr

shortmonthsMay: may

shortmonthsJune: xun

shortmonthsJuly: xnt

shortmonthsAugust: ago

shortmonthsSeptember: set

shortmonthsOctober: och

shortmonthsNovember: pay

shortmonthsDecember: avi

time12am: {time} AM

time12pm: {time} PM

longDateFormat: {time24} - {day} {month} {year}

shortDateFormatSeconds: {seconds}s

shortDateFormatMinutes: {minutes}min

shortDateFormatHours: {hours}h

now: agora

posting: unviando

viewMoreInConvBefore: ← Ver más na conversación

viewMoreInConvAfter: Ver más na conversación →

mentions: Menciones

timeline: Llinia temporal

publicTimeline: Llinia temporal pública

publicAndExtTimeline: Tola rede conocida

searchVerb: Guetar

deleteVerb: Desaniciar

cancelVerb: Encaboxar

deleteConfirmation: ¿Daveres que quies desaniciar esti queet?

userExternalFollow: Siguir

userExternalFollowHelp: ID de la cuenta (p.ex. user@rainbowdash.net).

userFollow: Siguir

userFollowing: Siguiendo

userUnfollow: Dexar de siguir

joinGroup: Xunise al grupu

joinExternalGroup: Xunise al grupu

isMemberOfGroup: Miembru

leaveGroup: Dexar el grupu

memberCount: Miembros

adminCount: Alministradores

settings: Axustes

saveChanges: Guardar cambeos

linkColor: Color del enllaz

backgroundColor: Color de fondu

newToQuitter: ¿Yes nuevu en {site-title}?

signUp: Rexístrate

signUpFullName: Nome completu

signUpEmail: Corréu electrónicu

signUpButtonText: Rexístrate en {site-title}

welcomeHeading: Bienllegáu a {site-title}

welcomeText:
Somos una
« Federación » significa que nun has tener una cuenta de {site-title} pa siguir usuarios, que te sigan o comunicar con ellos. ¡Pues rexistrate con cualquier sirvidor StatusNet o GNU social, o cualquier serviciu usando'l protocolu OStatus! Tampoco nun tienes que xunite en nengún serviciu pa participar - namái instala'l software GNU social nel to sirvidor. (:
federación de microblogueros que, como tu, tán motivaos por ética y solidaridá y quieren abandonar los servicios capitalistes centralizaos.

registerNickname: Nome d'usuariu

registerHomepage: Sitiu web

registerBio: Biografía

otherServers: De mou alternativu, pues facer una cuenta n'otru sirvidor de la rede GNU social. Comparativa


languageName: Català

loginUsername: Nom d'usuari o correu electrònic

loginPassword: Contrasenya

loginSignIn: Inicia sessió

loginRememberMe: Recorda les dades

loginForgotPassword: Has oblidat la contrasenya?

followers: Seguidors

following: Seguint

groups: Grups

compose: Crea un queet nou...

queetVerb: Quitta

logout: Tanca la sessió

languageSelected: Llengua:

viewMyProfilePage: Mostra la pàgina de perfil

expand: Obre

collapse: Redueix

details: Detalls

expandFullConversation: Mostra tota la conversa

replyVerb: Respon

requeetVerb: Requitta

favoriteVerb: Marca com a preferit

requeetedVerb: Requitta;

favoritedVerb: Marcat com a preferit

replyTo: Contesta

requeetedBy: Requittat per

favoriteNoun: Preferit

favoritesNoun: Preferits

newQueet: {new-notice-count} queet nou

newQueets: {new-notice-count} queets nous

longmonthsJanuary: gener

longmonthsFebruary: febrer

longmonthsMars: març

longmonthsMay: maig

longmonthsJune: juny

longmonthsJuly: juliol

longmonthsAugust: agost

longmonthsSeptember: setembre

longmonthsOctober: octubre

longmonthsNovember: novembre

longmonthsDecember: desembre

shortmonthsJanuary: gen.

shortmonthsFebruary: febr.

shortmonthsMars: març

shortmonthsApril: abr.

shortmonthsMay: maig

shortmonthsJune: juny

shortmonthsJuly: jul.

shortmonthsAugust: ag.

shortmonthsSeptember: set.

shortmonthsOctober: oct.

shortmonthsNovember: nov.

shortmonthsDecember: des.

time12am: {time} a.m.

time12pm: {time} p.m.

now: ara

posting: enviant

viewMoreInConvBefore: ← Mostra més en la conversa

viewMoreInConvAfter: Mostra més en la conversa →

mentions: Mencions

timeline: Línia temporal

publicTimeline: Línia temporal pública

publicAndExtTimeline: Tota la xarxa coneguda

searchVerb: Cerca

deleteVerb: Esborra

cancelVerb: Cancel·la

deleteConfirmation: Estàs segur de voler eliminar aquest queet?

userExternalFollow: Segueix

userExternalFollowHelp: Identificador del teu compte (p. ex. usuari@rainbowdash.net)

userFollow: Segueix

userFollowing: Seguint

userUnfollow: Deixa de seguir

joinGroup: Uneix-me al grup

joinExternalGroup: Uneix-me al grup

isMemberOfGroup: Membre

leaveGroup: Abandona el grup

memberCount: Membres

adminCount: Administradors

settings: Configuracions

saveChanges: Desa els canvis

linkColor: Color de l'enllaç

backgroundColor: Color de fons

newToQuitter: Ets nou a {site-title}?

signUp: Registra't

signUpFullName: Nom

signUpEmail: Correu electrònic

signUpButtonText: Registra't en {site-title}.

welcomeHeading: Benvingut a {site-title}.

welcomeText:
Som una
"Federació". És a dir, no et cal un compte a {site-title} per a poder seguir, ser seguit o interactuar amb els usuaris de {site-title}. Et pots inscriure en qualsevol servidor, o qualsevol servei, basat en el protocol Ostatus OStatus! Fins i tot no cal que et registris en cap servei - intenta instal·lar el magnífic programa GNU social en el teu propi servidor! :)
federació de microbloggers que es preocupen per l'ètica i la solidaritat i volen deixar els serveis capitalistes centralitzats.

registerNickname: Nom d'usuari

registerHomepage: Lloc web

registerBio: Biografia

otherServers: De manera alternativa, pots crear un compte en un altre servidor de la xarxa GNU social. Comparativa

accessibilityToggleLink: Per una millor accesibilitat, clica l'enllaç per canviar a la vista clàssica

tooltipBookmarkStream: Afegeix aquest flux de dades a les teves adreces d'interès

ERRORmustBeLoggedIn: Has d'estar connectat per veure aquest flux de dades.

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

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

ERRORfailedMarkingAllNotificationsAsRead: Error al marcar totes les notificacions com vistes.

thisIsANoticeFromABlockedUser: Atenció: Això és una notificació d'un usuari que has bloquejat. Clic per mostrar-lo.

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


languageName: Deutsch

loginUsername: Benutzername oder E-Mail

loginPassword: Passwort

loginSignIn: Anmelden

loginRememberMe: Angemeldet bleiben

loginForgotPassword: Passwort vergessen?

followers: Follower

following: Folgt

groups: Gruppen

compose: Verfasse einen neuen Queet…

queetVerb: Quittern

logout: Abmelden

languageSelected: Sprache:

viewMyProfilePage: Mein Profil ansehen

expand: Öffnen

collapse: Schließen

details: Details

expandFullConversation: Vollständiges Gespräch

replyVerb: Antworten

requeetVerb: Requeeten

favoriteVerb: Favorisieren

requeetedVerb: Requeetet

favoritedVerb: Favorisiert

replyTo: Antwort an

requeetedBy: Requeetet von {requeeted-by}

favoriteNoun: Favorisieren

favoritesNoun: Favoriten

newQueet: {new-notice-count} neuer Queet

newQueets: {new-notice-count} neue Queets

longmonthsJanuary: Januar

longmonthsFebruary: Februar

longmonthsMars: März

longmonthsApril: April

longmonthsMay: Mai

longmonthsJune: Juni

longmonthsJuly: Juli

longmonthsAugust: August

longmonthsSeptember: September

longmonthsOctober: Oktober

longmonthsNovember: November

longmonthsDecember: Dezember

shortmonthsJanuary: Jan

shortmonthsFebruary: Feb

shortmonthsMars: Mär

shortmonthsApril: Apr

shortmonthsMay: Mai

shortmonthsJune: Jun

shortmonthsJuly: Jul

shortmonthsAugust: Aug

shortmonthsSeptember: Sep

shortmonthsOctober: Okt

shortmonthsNovember: Nov

shortmonthsDecember: Dez

longDateFormat: {time24} - {day}. {month} {year}

shortDateFormatSeconds: {seconds} Sek

shortDateFormatMinutes: {minutes} Min

shortDateFormatHours: {hours} Std

shortDateFormatDate: {day}. {month}

shortDateFormatDateAndY: {day}. {month} {year}

now: jetzt

posting: wird gesendet

viewMoreInConvBefore: ← Mehr im Gespräch anzeigen

viewMoreInConvAfter: Mehr im Gespräch anzeigen →

mentions: Erwähnungen

timeline: Timeline

publicTimeline: Öffentliche Timeline

publicAndExtTimeline: Gesamtes bekanntes Netzwerk

searchVerb: Suche

deleteVerb: Löschen

cancelVerb: Abbrechen

deleteConfirmation: Bist du sicher, dass du diesen Queet löschen möchtest?

userExternalFollow: Folgen

userExternalFollowHelp: Deine Konto-ID (z.B. user@rainbowdash.net).

userFollow: Folgen

userFollowing: Folge ich

userUnfollow: Entfolgen

joinGroup: Der Gruppe beitreten

joinExternalGroup: Der Gruppe beitreten

isMemberOfGroup: Gruppe verlassen

leaveGroup: Gruppe verlassen

memberCount: Mitglieder

adminCount: Administratoren

settings: Einstellungen

saveChanges: Änderungen speichern

linkColor: Linkfarbe

backgroundColor: Hintergrundfarbe

newToQuitter: Neu bei {site-title}?

signUp: Registriere dich!

signUpFullName: Vollständiger Name

signUpEmail: E-Mail

signUpButtonText: Registriere dich bei {site-title}!

welcomeHeading: Willkommen bei {site-title}!

welcomeText:
Wir sind eine Community von Microbloggern, verteilt über einen weltweiten
"Verbund" bedeutet, dass du nicht selbst einen {site-title}-Account brauchst, um mit {site-title}-Nutzern zu kommunizieren, ihnen zu folgen oder Follower bei {site-title} zu haben. Du kannst dich genauso gut bei einem der anderen GNU-Social-Server registrieren oder einem anderen Dienst, der das OStatus-Protokoll unterstützt. Du kannst sogar ganz ohne Anmeldung teilnehmen, wenn du dir GNU social auf deinem eigenen Server installierst.
Verbund unabhängiger GNU-Social-Server, auch bekannt als StatusNet. Wir sind genau das Richtige für Leute wie dich, denen Ethik und Solidarität etwas bedeuten und die sich nicht mehr an zentralisierten kommerziellen Diensten beteiligen wollen.

registerNickname: Nutzername

registerHomepage: Webseite

registerBio: Über dich

otherServers: Du kannst dir auch gerne ein Konto auf einem anderen Server des GNU social-Netzwerks einrichten. Übersicht

accessibilityToggleLink: Nutzer von Screenreadern klicken bitte hier, um zur klassischen Version von {site-title} zu gelangen.

tooltipBookmarkStream: Diesen Datenstrom zu den Lesezeichen beifügen

ERRORmustBeLoggedIn: Du musst eingeloggt sein, um dies lesen zu können.

ERRORcouldNotFindUserWithNickname: Konnte Nutzer mit Name "{nickname}" nicht finden

ERRORcouldNotFindGroupWithNickname: Konnte Gruppe mit Bezeichnung "{nickname}" nicht finden

ERRORnoContactWithServer: Konnte keine Verbindung zu diesem Server herstellen. Der Server könnte überlastet sein oder es besteht ein Problem mit deiner Internetverbindung. Bitte versuche es später erneut!

ERRORattachmentUploadFailed: Der Upload ist fehlgeschlagen. Entweder wird das Dateiformat nicht unterstützt oder die Datei ist zu groß.

hideRepliesToPeopleIDoNotFollow: Verstecke Antworten von Personen, denen ich nicht folge

markAllNotificationsAsSeen: Markiere alle Benachrichtigungen als gelesen

ERRORfailedSavingYourSetting: Speichern deiner Einstellungen fehlgeschlagen

ERRORfailedMarkingAllNotificationsAsRead: Alle Benachrichtigungen als gelesen markieren fehlgeschlagen.

thisIsANoticeFromABlockedUser: Achtung: Dies ist ein Queet von einem Nutzer, den du blockiert hast. Klicke, um ihn anzuzeigen.

addEditLanguageLink: Hilf mit, {site-title} in eine andere Sprache zu übersetzen

onlyPartlyTranslated: {site-title} ist nur teilweise in {language-name} übersetzt ({percent}%). Du kannst im Qvitter-Repository mithelfen, die Übersetzung zu vervollständigen

hideEmbeddedInTimeline: Eingebettete Inhaltsvorschau in dieser Timeline nicht anzeigen

failedBlockingUser: Blockieren des Benutzers fehlgeschlagen.

failedUnblockingUser: Aufheben der Blockierung fehlgeschlagen.

tooltipBlocksYou: {username} blockiert dich, sodass du ihm nicht folgen kannst.

silencedStreamDescription: Gesperrte Benutzer können sich nicht einloggen oder posten und das, was bereits geschrieben wurde, wird nicht mehr angezeigt. Für lokale Benutzer ist das wie ein Löschvorgang, der wiederherstellbar ist, für entfernte Benutzer ist dies ein seitenweiter Block.

sandboxedStreamDescription: Mitteilungen von Benutzern im Sandkasten werden sowohl aus der öffentlichen Zeitleiste als auch im gesamtbekannten Netz ausgeblendet. Mitteilungen von Benutzern im Sandkasten werden auch nicht nachträglich veröffentlicht.

onlyShowNotificationsFromUsersIFollow: Nur Benachrichtigungen von Nutzern anzeigen, denen ich folge

ERRORfailedSandboxingUser: Fehler beim Versetzen in die Sandbox/Wiederzulassen des Benutzers

thisIsANoticeFromAMutedUser: Du hast diesen Benutzer ausgeblendet. Hier kannst Du die Mitteilung trotzdem sichtbar machen.

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".


languageName: English

loginUsername: Username or e-mail

loginPassword: Password

loginSignIn: Sign in

loginRememberMe: Remember me

loginForgotPassword: Forgot password?

notices: Quips

followers: Followers

following: Following

groups: Groups

compose: What's quipping?

queetVerb: Send

queetsNounPlural: Quips

logout: Sign out

languageSelected: Language:

viewMyProfilePage: View my profile page

expand: Expand

collapse: Collapse

expandFullConversation: Expand full conversation

replyVerb: Reply

requeetVerb: Requip

favoriteVerb: Favorite

requeetedVerb: Requipped

favoritedVerb: Favorited

replyTo: Reply to

requeetedBy: Requipped by {requeeted-by}

favoriteNoun: Favorite

favoritesNoun: Favorites

requeetNoun: Requip

requeetsNoun: Requips

newQueet: {new-notice-count} new quip

newQueets: {new-notice-count} new quips

longmonthsJanuary: January

longmonthsFebruary: February

longmonthsMars: March

longmonthsMay: May

longmonthsJune: June

longmonthsJuly: July

longmonthsOctober: October

longmonthsDecember: December

shortmonthsJanuary: jan

shortmonthsApril: apr

shortmonthsJune: jun

shortmonthsJuly: jul

shortmonthsAugust: aug

shortmonthsSeptember: sep

shortmonthsOctober: oct

shortmonthsNovember: nov

shortmonthsDecember: dec

time12am: {time} am

time12pm: {time} pm

shortDateFormatMinutes: {minutes}m

now: now

posting: posting

viewMoreInConvBefore: ← View more in conversation

viewMoreInConvAfter: View more in conversation →

mentions: Mentions

publicTimeline: Public Timeline

publicAndExtTimeline: The Whole Known Network

searchVerb: Search

deleteVerb: Delete

cancelVerb: Cancel

deleteConfirmation: Are you sure you want to delete this quip?

userExternalFollow: Remote follow

userExternalFollowHelp: Your account ID (e.g. user@rainbowdash.net).

userFollow: Follow

userFollowing: Following

userUnfollow: Unfollow

joinGroup: Join

joinExternalGroup: Join remotely

isMemberOfGroup: Member

leaveGroup: Leave

memberCount: Members

adminCount: Admins

settings: Settings

saveChanges: Save changes

linkColor: Link color

backgroundColor: Background color

newToQuitter: New to {site-title}?

signUp: Sign up

signUpFullName: Full name

signUpEmail: Email

signUpButtonText: Sign up to {site-title}

welcomeHeading: Welcome to {site-title}.

welcomeText:
We are a
"Federation" means that you don't need a {site-title} account to be able to follow, be followed by or interact with {site-title} users. You can register on any StatusNet or GNU social server or any service based on the the Ostatus protocol! You don't even have to join a service – try installing the lovely GNU social software on your own server! :)
federation of microbloggers who care about social justice and solidarity and want to quit the centralised capitalist services.

registerNickname: Nickname

registerHomepage: Homepage

registerBio: Bio

otherServers: Alternatively you can create an account on another server of the GNU social network. Comparison

ERRORnoContactWithServer: Can not establish a connection to the server. The server could be overloaded, or there might be a problem with your internet connection. Please try again later!

thisIsANoticeFromABlockedUser: Warning: This is a quip from a user you have blocked. Click to show it.

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.


languageName: Esperanto

loginUsername: Uzantnomo aŭ retpoŝtadreso

loginPassword: Pasvorto

loginSignIn: Ensaluti

loginRememberMe: Memoru min

loginForgotPassword: Ĉu vi forgesis vian pasvorton?

notices: Pepoj

followers: Sekvantoj

following: Sekvatoj

groups: Grupoj

compose: Krei novan pepon...

queetVerb: Sendi

queetsNounPlural: Pepoj

logout: Elsaluti

languageSelected: Lingvo:

viewMyProfilePage: Vidi mian profilpaĝon

expand: Malkaŝi

collapse: Kaŝi

details: Detaloj

expandFullConversation: Malkaŝi la tutan konversacion

replyVerb: Respondi

requeetVerb: Repepi

favoriteVerb: Stelsigni

requeetedVerb: Repepita

favoritedVerb: Stelsignita

replyTo: Respondi al

requeetedBy: Repepita de {requeeted-by}

favoriteNoun: Stelsignita

favoritesNoun: Stelsignitaj

requeetNoun: Repepo

requeetsNoun: Repepoj

newQueet: {new-notice-count} nova pepo

newQueets: {new-notice-count} novaj pepoj

longmonthsJanuary: januaro

longmonthsFebruary: februaro

longmonthsMars: marto

longmonthsApril: aprilo

longmonthsMay: majo

longmonthsJune: junio

longmonthsJuly: julio

longmonthsAugust: aŭgusto

longmonthsSeptember: septembro

longmonthsOctober: oktobro

longmonthsNovember: novembro

longmonthsDecember: decembro

shortmonthsMay: maj

shortmonthsAugust: aŭg

shortmonthsOctober: okt

time12am: {time} a.t.m.

time12pm: {time} p.t.m.

now: nun

posting: sendado

viewMoreInConvBefore: ← Legi pli en la konversacio

viewMoreInConvAfter: Legi pli en la konversacio →

mentions: Mencioj

timeline: Tempolinio

publicTimeline: Publika tempolinio

publicAndExtTimeline: La tuta konata reto

searchVerb: Serĉi

deleteVerb: Forigi

cancelVerb: Nuligi

deleteConfirmation: Ĉu vi certas, ke vi volas forigi tiun ĉi pepon?

userExternalFollow: Sekvi

userExternalFollowHelp: Identigilo de via konto (Ekz. uzanto@rainbowdash.net)

userFollow: Sekvi

userFollowing: Sekvato

userUnfollow: Malsekvi

joinGroup: Membriĝi

joinExternalGroup: Membriĝi

isMemberOfGroup: Membro

leaveGroup: Forlasi la grupon

memberCount: Membroj

adminCount: Administrantoj

settings: Agordoj

saveChanges: Konservi ŝanĝojn

linkColor: Koloro de la ligiloj

backgroundColor: Fona koloro

newToQuitter: Ĉu vi estas nova ĉe {site-title}?

signUp: Registriĝi

signUpFullName: Plena nomo

signUpEmail: Retpoŝtadreso

signUpButtonText: Registriĝi ĉe {site-title}

welcomeHeading: Bonvenon al {site-title}.

welcomeText:
Ni estas
Helpindiko por «federacio»: «federacio» signifas, ke vi ne bezonas konton ĉe {site-title} por povi sekvi iliajn uzantojn, aŭ ke ili povu sekvi vin kaj/aŭ interagi kun la uzantoj de {site-title}. Vi povas registriĝi ĉe ajna servilo de StatusNet aŭ GNU social, aŭ ajna servilo, kiu baziĝas sur la protokolo OStatus! Eĉ ne necesas registriĝi en iu el la ekzistantaj serviloj – Vi mem povas instali la belan programon GNU social en via propra servilo! :)
federacio de mikroblogantoj, kiuj zorgas pri etiko kaj solidareco, kaj kiuj volas forlasi centralizitajn kapitalismajn servojn.

registerNickname: Uzantnomo

registerHomepage: Retejo

registerBio: Biografio

otherServers: Alternative, vi povas krei konton ĉe alia servilo de la reto GNU social.

accessibilityToggleLink: Por pli bona alirebleco, alklaku ĉi tiun ligilon por ŝanĝi al la klasika fasado

ERRORmustBeLoggedIn: Vi bezonas esti ensalutinta por vidi ĉi tiun fluon.

ERRORcouldNotFindUserWithNickname: Ne eblis trovi uzanton kun la nomo "{nickname}" en ĉi tiu servilo

ERRORcouldNotFindGroupWithNickname: Ne eblis trovi grupon kun la nomo "{nickname}" en ĉi tiu servilo

ERRORnoContactWithServer: Ne eblas konektadi al la servilo. Eble la servilo estas superŝarĝita, aŭ estas problemo kun via interreta konekto. Bonvole reprovu poste!

ERRORattachmentUploadFailed: La alŝutado malsukcesis. La dosierformo eble ne estas subtenata aŭ ĝi tro grandas.

hideRepliesToPeopleIDoNotFollow: Kaŝi respondoj al homoj kiuj mi ne sekvas

ERRORfailedMarkingAllNotificationsAsRead: Malsukcesis marki ĉiujn sciigojn kiel viditaj.

thisIsANoticeFromABlockedUser: Averto: Ĉi tiu estas pepo de uzanto, kiu vi blokis. Alklaku por montri ĝin.

addEditLanguageLink: Helpu traduki {site-title} al alia lingvo

onlyPartlyTranslated: {site-title} estas nur parte tradukita al {language-name} ({percent}%). Vi povas kompletigi la tradukon ĉe la deponejo de Qvitter

hideEmbeddedInTimeline: Kaŝi enkorpigitajn enhavojn en ĉi tiu tempolinio

silencedStreamDescription: Silentigaj uzantoj ne povas ensaluti aŭ sendi pepojn, kaj la pepoj ili jam sendis estas kaŝitaj. Por lokaj uzantoj, ĝi estas simila al forigo, kiu povas inversi, sed por foraj uzantoj estas simila al tutreteja bloko.

sandboxedStreamDescription: Pepoj de sablokestigaj uzantoj estas forviŝitaj el la publika tempolinio kaj la tuta konata reto. Pepoj senditaj dum tempo en la sablokesto ne estos en la publikaj tempolinioj se la uzanto estas malsablokestigita.

onlyShowNotificationsFromUsersIFollow: Nur montri sciigojn de uzantoj, kiujn mi sekvas

ERRORfailedSandboxingUser: Malsukcesis sablokestigi/malsablokestigi la uzanton

ERRORfailedSilencingUser: Malsukcesis silentigi/malsilentigi la uzanton


languageName: Español

loginUsername: Nombre de usuario o correo electrónico

loginSignIn: Iniciar sesión

loginRememberMe: Recordar mis datos

loginForgotPassword: ¿Olvidaste tu contraseña?

followers: Seguidores

compose: Crear un nuevo Queet...

queetVerb: Quittear

logout: Cerrar sesión

languageSelected: Idioma:

viewMyProfilePage: Ver mi perfil

collapse: Reducir

requeetVerb: Requittear

favoriteVerb: Favorito

requeetedVerb: Requitteado

favoritedVerb: Marcado como favorito

requeetedBy: Requitteado por {requeeted-by}

favoriteNoun: Favorito

newQueet: {new-notice-count} nuevo Queet

newQueets: {new-notice-count} nuevos Queets

longmonthsJanuary: enero

longmonthsFebruary: febrero

longmonthsMars: marzo

longmonthsMay: mayo

longmonthsAugust: agosto

longmonthsSeptember: septiembre

longmonthsNovember: noviembre

longmonthsDecember: diciembre

shortmonthsJanuary: ene

shortmonthsSeptember: sept

shortmonthsDecember: dic

now: ahora

posting: enviando

viewMoreInConvBefore: ← Ver más en la conversación

viewMoreInConvAfter: Ver más en la conversación →

timeline: Línea temporal

publicTimeline: Línea temporal pública

publicAndExtTimeline: Toda la red conocida

searchVerb: Buscar

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

userUnfollow: Dejar de seguir

joinGroup: Unirse al grupo

joinExternalGroup: Unirse al grupo

isMemberOfGroup: Miembro

leaveGroup: Abandonar grupo

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 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

otherServers: De manera alternativa, puedes crear una cuenta en otro servidor de la red GNU social. Comparativa

accessibilityToggleLink: Para una mejor accesibilidad, clica en este enlace para cambiar a la vista clásica

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

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

ERRORfailedMarkingAllNotificationsAsRead: Error al marcar todas las notificaciones como vistas.

thisIsANoticeFromABlockedUser: Atención: Ésta es una nota de un usuario que bloqueaste. Pulsa para mostrarla.

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

hideEmbeddedInTimeline: Ocultar contenido incrustado en esta línea temporal

silencedStreamDescription: Los usuarios prohibidos no pueden iniciar sesión ni publicar queets y los ya publicados se ocultarán. Para usuarios locales es como una eliminación reversible; para usuarios remotos es como un bloqueo global.

sandboxedStreamDescription: Los queets de usuarios aislados están excluidos de la línea temporal pública y de toda la red conocida. Los queets publicados durante el aislamiento no se incluirán en las líneas temporales públicas aunque se desactive el aislamiento al usuario.

onlyShowNotificationsFromUsersIFollow: Sólo mostrar notificaciones de usuarios a quienes sigo

ERRORfailedSandboxingUser: Falló el aislamiento o su desactivación del usuario

ERRORfailedSilencingUser: Falló la prohibición o su desactivación del usuario

hideNotificationsFromMutedUsers: Ocultar notificaciones de usuarios silenciados

thisIsANoticeFromAMutedUser: Has silenciado al autor de este queet. Haz clic para mostrarlo igualmente.

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.


languageName: Español (Latinoamérica)

expandFullConversation: Ver toda la plática

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.

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

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

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

ERRORfailedMarkingAllNotificationsAsRead: Falló al marcar todas tus notificaciones como vistas.

thisIsANoticeFromABlockedUser: Advertencia: Esta noticia es de un usuario que bloqueaste. Click para verla.

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

hideEmbeddedInTimeline: Ocultar contenido embebido en esta línea de tiempo

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

ERRORfailedSilencingUser: Falló al silenciar/no silenciar al usuario

hideNotificationsFromMutedUsers: Ocultar notificaciones de los usuarios mudos

thisIsANoticeFromAMutedUser: Haz puesto en mudo al autor de esta ocurrencia. Click aquí para mostrarlo de todos modos.

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.


languageName: Español (ahorita)

loginSignIn: Iniciar sesión ahorita

logout: Cerrar sesión ahorita

now: ahorita

searchVerb: Buscar ahorita

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.

ERRORfailedSandboxingUser: Falló el aislamiento/desaislamiento del usuario

ERRORfailedSilencingUser: Falló el silenciamiento/desilenciamiento del usuario

thisIsANoticeFromAMutedUser: Has silenciado al autor de este quid. Haz clic para mostrarlo igualmente.


languageName: Euskara

loginUsername: Erabiltzaile edo emaila

loginPassword: Pasahitza

loginSignIn: Saioa hasi

loginRememberMe: Gogoratu

loginForgotPassword: Pasahitz galdua?

notices: Txioak

followers: Jarraitzaile

following: Jarraitzen

groups: Taldeak

compose: Idatzi txio berri bat

queetVerb: Txio

queetsNounPlural: Txioak

logout: Irten

languageSelected: Hizkuntza

viewMyProfilePage: Ikusi zure profila

expand: Zabaldu

collapse: Bildu

details: Xehetasunak

expandFullConversation: Zabaldu elkarrizketa osoa

replyVerb: Erantzun

requeetVerb: Bertxiotu

favoriteVerb: Gogoko

requeetedVerb: Bertxiotua

favoritedVerb: Gogokoa

replyTo: Erantzun

requeetedBy: Bertxiotzailea {requeeted-by}

favoriteNoun: Gogokoa

favoritesNoun: Gogokoak

requeetNoun: Bertxio

requeetsNoun: Bertxioak

newQueet: {new-notice-count} Txio berria

newQueets: {new-notice-count} Txio berriak

longmonthsJanuary: Urtarrila

longmonthsFebruary: Otsaila

longmonthsMars: Martxoa

longmonthsApril: Apirila

longmonthsMay: Maiatza

longmonthsJune: Ekaina

longmonthsJuly: Uztaila

longmonthsAugust: Abuztua

longmonthsSeptember: Iraila

longmonthsOctober: Urria

longmonthsNovember: Azaroa

longmonthsDecember: Abendua

shortmonthsJanuary: urt

shortmonthsFebruary: ots

shortmonthsApril: api

shortmonthsMay: mai

shortmonthsJune: eka

shortmonthsJuly: uzt

shortmonthsAugust: abu

shortmonthsSeptember: ira

shortmonthsOctober: urr

shortmonthsNovember: aza

shortmonthsDecember: abe

longDateFormat: {year} {month} {day} {time12}

shortDateFormatHours: {hours}o

shortDateFormatDate: {month} {day}

shortDateFormatDateAndY: {year} {month} {day}

now: orain

posting: idazten

viewMoreInConvBefore: ← Ikusi elkarrizketa +

viewMoreInConvAfter: Ikusi elkarrizketa + →

mentions: Aipuak

timeline: Denboralerroa

publicTimeline: Denboralerro publikoa

publicAndExtTimeline: Sare ezagun osoa

searchVerb: Bilatu

deleteVerb: Ezabatu

cancelVerb: Utzi

deleteConfirmation: Ziur txio hau ezabatu nahi duzula?

userExternalFollow: Urruneko jarraitzaiilea

userExternalFollowHelp: Zure kontuaren IDa (adz. dejong@bull.net)

userFollow: Jarraitu

userFollowing: Jarraitzen

userUnfollow: Utzi

joinGroup: Batu

joinExternalGroup: Batu hurrunera

isMemberOfGroup: Kidea

leaveGroup: Utzi

memberCount: Kideak

adminCount: Adminak

settings: Aukerak

saveChanges: Gorde aldaketak

linkColor: Esteka kolorea

backgroundColor: Hondoko kolorea

newToQuitter: Berria Quiterren?

signUp: Izena eman

signUpFullName: Izen osoa

signUpEmail: Emaila

signUpButtonText: Izen eman Quiterren

welcomeHeading: Ongi etorri Quiterrera.

welcomeText:
Zerbitzu kapitalista zentralizatuetatik ihes egin nahi duen eta etika zein elkartasuna axola zaizkion mikroblogintza
"Federazioak" esan nahi duz ez duzula behar {site-title} kontu bat jarraitzaile izan, jarraitua izateko edo {site-title} erabiltzaileekin elkarreragiteko. StatusNet, GNU social edo Ostatus protokoloa darabilen edozein zerbitzutan erregistratu zaitezke!  Zure zerbitzari propioan GNU social maitagarria instalatzen baduzu, ez duzu besteen zerbitzutan zertan erregistratu ere! :)
federazio bat gara. 2010 urteaz geroztik gabiltz hontan eta beti jarraituko dugu irabazi asmorik gabekoak izaten.

registerNickname: Ezizena

registerHomepage: Hasera

otherServers: GNU social sareko beste nodo batean sor dezakezu kontu bat nahi izanez gero. Alderatu


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: فوريه

longmonthsApril: اوريل

longmonthsMay: مه

longmonthsJune: ژوئن

longmonthsJuly: ژوئیه

longmonthsAugust: اوت

longmonthsSeptember: سپتامبر

longmonthsOctober: اكتبر

longmonthsNovember: نوامبر

longmonthsDecember: دسامبر

shortmonthsJanuary: ژانويه

shortmonthsFebruary: فوريه

shortmonthsApril: اوريل

shortmonthsMay: مه

shortmonthsJune: ژوئن

shortmonthsJuly: ژوئیه

shortmonthsAugust: اوت

shortmonthsSeptember: سپتامبر

shortmonthsOctober: اكتبر

shortmonthsNovember: نوامبر

shortmonthsDecember: دسامبر

shortDateFormatSeconds: {seconds} ثانیه

shortDateFormatMinutes: {minutes} دقیقه

shortDateFormatHours: {hours} ساعت

now: همین اکنون

posting: در حال ارسال

viewMoreInConvBefore: → نمایش  بیشتر در گفتگوها

viewMoreInConvAfter: نمایش  بیشتر در گفتگوها ←

mentions: رونوشت‌ها

timeline: توييت

publicTimeline: خط‌زمانی عمومی

publicAndExtTimeline: کل شبکه

searchVerb: جستجو

cancelVerb: انصراف

deleteConfirmation: آیا مطمئن هستید که می‌خواهید این توییت را پاک کنید؟

userExternalFollow: دنبال کنید

userExternalFollowHelp: شناسه حساب شما (بعنوان مثال user@rainbowdash.net)

userFollow: دنبال کنید

userFollowing: دنبال می‌کنید

userUnfollow: دنبال نكن

joinGroup: پیوستن به گروه

joinExternalGroup: پیوستن به گروه

isMemberOfGroup: عضو گروه

leaveGroup: ترک گروه

memberCount: اعضا

adminCount: مدیران

settings: تنظیمات

saveChanges: ذخیره تغییرات

linkColor: رنگ پیوند

backgroundColor: رنگ پس‌زمینه

newToQuitter: تازه واردید؟

signUp: همین حالا ثبت نام کنید

signUpFullName: نام و نام‌خانوادگی

signUpEmail: ایمیل

signUpButtonText: عضو توییتر شوید

welcomeHeading: به واگذارنده خوش آمدید.

registerNickname: شناسه

registerHomepage: وب‌سایت

registerBio: زندگینامه

registerLocation: مکان

registerRepeatPassword: تایید گذرواژه

moreSettings: تنظیمات بیشتر

editMyProfile: ویرایش نمایه

notifications: آگاه‌سازی‌ها

xFavedYourQueet: موارد دلخواه خود را صدای جیر جیر

xRepeatedYourQueet: توییت شما را باز توییت کرد.

xStartedFollowingYou: شما را دنبال کرد

followsYou: شما را دنبال می‌کند

inviteAFriend: دعوت از دوستانتان

goToExternalProfile: رفتن به نمایه کامل

cropAndSave: Crop and save

blockUser: Block {username}