From f28b21f99d563b08e9d0ddb4a27fb223ad1ce432 Mon Sep 17 00:00:00 2001 From: Michael Meer Date: Wed, 22 Jan 2014 09:16:22 +0100 Subject: start with hubloc ping --- mod/admin.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mod/admin.php b/mod/admin.php index 749b94de2..a373fa772 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -457,6 +457,15 @@ function admin_page_site(&$a) { } function admin_page_hubloc_post(&$a){ check_form_security_token_redirectOnErr('/admin/hubloc', 'admin_hubloc'); + + //prepare for ping + logger('POST input: '.$_POST , LOGGER_DEBUG); + //perform ping + //handle results and set the hubloc flags in db to make results visible + + //in case of repair store new pub key for tested hubloc (all channel with this hubloc) in db + //after repair set hubloc flags to 0 + goaway($a->get_baseurl(true) . '/admin/hubloc' ); return; } -- cgit v1.2.3 From ffabb4cc867f59d86380eced3253053d368327f2 Mon Sep 17 00:00:00 2001 From: Michael Meer Date: Wed, 22 Jan 2014 11:29:49 +0100 Subject: reorg formula data for hubloc checks --- mod/admin.php | 11 ++++++++++- view/tpl/admin_hubloc.tpl | 9 +++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/mod/admin.php b/mod/admin.php index a373fa772..57e285781 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -459,7 +459,16 @@ function admin_page_hubloc_post(&$a){ check_form_security_token_redirectOnErr('/admin/hubloc', 'admin_hubloc'); //prepare for ping - logger('POST input: '.$_POST , LOGGER_DEBUG); + logger('POST input: '. print_r($_POST,true), LOGGER_DEBUG); + + if ( $_POST['hublocid']) { + logger('hublocid is not empty: ' . $_POST['hublocid'], LOGGER_DEBUG); + } + + //if ( $_POST'' == "check" ) { + // //todo + //} + //perform ping //handle results and set the hubloc flags in db to make results visible diff --git a/view/tpl/admin_hubloc.tpl b/view/tpl/admin_hubloc.tpl index 6e7629094..ea840e1b3 100755 --- a/view/tpl/admin_hubloc.tpl +++ b/view/tpl/admin_hubloc.tpl @@ -1,9 +1,6 @@

{{$title}} - {{$page}}

-
- - @@ -14,9 +11,13 @@ {{foreach $hubloc as $hub}} - + {{/foreach}}
{{$hub.hubloc_id}}{{$hub.hubloc_addr}}{{$hub.hubloc_host}}{{$hub.hubloc_status}} + + + +
-- cgit v1.2.3 From 524fff3a17fec184c87e855d09bf6a60f68e4e88 Mon Sep 17 00:00:00 2001 From: Michael Meer Date: Thu, 23 Jan 2014 12:09:35 +0100 Subject: preperation for ping, need training in SQL :( --- mod/admin.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mod/admin.php b/mod/admin.php index 57e285781..33b42d264 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -462,7 +462,12 @@ function admin_page_hubloc_post(&$a){ logger('POST input: '. print_r($_POST,true), LOGGER_DEBUG); if ( $_POST['hublocid']) { - logger('hublocid is not empty: ' . $_POST['hublocid'], LOGGER_DEBUG); + $hublocid = $_POST['hublocid']; + logger('hublocid is not empty: ' . $hublocid , LOGGER_DEBUG); + $hublocurl = q("SELECT hubloc_url FROM hubloc WHERE hubloc_id = %d ", + intval($hublocid) + ); + logger('hubloc_url : ' . print_r($hublocurl, true) , LOGGER_DEBUG); } //if ( $_POST'' == "check" ) { -- cgit v1.2.3 From a2b07ed2814972507bf971a5ac6ed09c399e29e7 Mon Sep 17 00:00:00 2001 From: Michael Meer Date: Thu, 23 Jan 2014 13:58:14 +0100 Subject: build url, deleted logger commands --- mod/admin.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mod/admin.php b/mod/admin.php index 33b42d264..fbd342425 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -459,15 +459,14 @@ function admin_page_hubloc_post(&$a){ check_form_security_token_redirectOnErr('/admin/hubloc', 'admin_hubloc'); //prepare for ping - logger('POST input: '. print_r($_POST,true), LOGGER_DEBUG); if ( $_POST['hublocid']) { $hublocid = $_POST['hublocid']; - logger('hublocid is not empty: ' . $hublocid , LOGGER_DEBUG); - $hublocurl = q("SELECT hubloc_url FROM hubloc WHERE hubloc_id = %d ", + $arrhublocurl = q("SELECT hubloc_url FROM hubloc WHERE hubloc_id = %d ", intval($hublocid) ); - logger('hubloc_url : ' . print_r($hublocurl, true) , LOGGER_DEBUG); + $hublocurl = $arrhublocurl[0]['hubloc_url'] . '/post'; + logger('hubloc_url : ' . $hublocurl , LOGGER_DEBUG); } //if ( $_POST'' == "check" ) { -- cgit v1.2.3 From d6a9497e4a3839d9fb4dba4634167f006bb3fe87 Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 27 Jan 2014 14:46:39 -0800 Subject: cleanup include/menu in preparation for the next phase of bookmarking --- include/menu.php | 50 +++++++++---------------------------------------- version.inc | 2 +- view/php/theme_init.php | 1 + 3 files changed, 11 insertions(+), 42 deletions(-) diff --git a/include/menu.php b/include/menu.php index 515f47758..d69c5d0d3 100644 --- a/include/menu.php +++ b/include/menu.php @@ -23,29 +23,6 @@ function menu_fetch($name,$uid,$observer_xchan) { return null; } -function bookmarks_menu_fetch($uid,$observer_xchan,$flags = MENU_BOOKMARK) { - - $sel_option = (($flags) ? ' and menu_flags = ' . intval($menu_flags) . ' ' : ''); - - $sql_options = permissions_sql($uid); - - $r = q("select * from menu where menu_channel_id = %d $sel_option limit 1", - intval($uid) - ); - if($r) { - $x = q("select * from menu_item where mitem_menu_id = %d and mitem_channel_id = %d - $sql_options - order by mitem_order asc, mitem_desc asc", - intval($r[0]['menu_id']), - intval($uid) - ); - return array('menu' => $r[0], 'items' => $x ); - } - - return null; -} - - function menu_render($menu) { if(! $menu) return ''; @@ -95,7 +72,7 @@ function menu_create($arr) { $menu_channel_id = intval($arr['menu_channel_id']); - $r = q("select * from menu where menu_name = '%s' and menu_channel_id = %d and menu_flags = %d limit 1", + $r = q("select * from menu where menu_name = '%s' and menu_channel_id = %d limit 1", dbesc($menu_name), intval($menu_channel_id), intval($menu_flags) @@ -124,8 +101,11 @@ function menu_create($arr) { } -function menu_list($channel_id) { - $r = q("select * from menu where menu_channel_id = %d order by menu_name", +function menu_list($channel_id, $flags = 0) { + + $sel_options = (($flags) ? " and ( menu_flags & " . intval($flags) . " ) " : ''); + + $r = q("select * from menu where menu_channel_id = %d $sel_options order by menu_name", intval($channel_id) ); return $r; @@ -153,9 +133,8 @@ function menu_edit($arr) { $menu_channel_id = intval($arr['menu_channel_id']); - $r = q("select menu_id from menu where menu_name = '%s' and menu_flags = %d and menu_channel_id = %d limit 1", + $r = q("select menu_id from menu where menu_name = '%s' and menu_channel_id = %d limit 1", dbesc($menu_name), - intval($menu_flags), intval($menu_channel_id) ); if(($r) && ($r[0]['menu_id'] != $menu_id)) { @@ -173,22 +152,11 @@ function menu_edit($arr) { return false; } - - $r = q("select * from menu where menu_name = '%s' and menu_channel_id = %d and menu_desc = '%s' and menu_flags = %d limit 1", - dbesc($menu_name), - intval($menu_channel_id), - dbesc($menu_desc), - intval($menu_flags) - ); - - if($r) - return false; - - - return q("update menu set menu_name = '%s', menu_desc = '%s', + return q("update menu set menu_name = '%s', menu_desc = '%s', menu_flags = %d, where menu_id = %d and menu_channel_id = %d limit 1", dbesc($menu_name), dbesc($menu_desc), + intval($menu_flags), intval($menu_id), intval($menu_channel_id) ); diff --git a/version.inc b/version.inc index d85ee0ed2..d1638dd7d 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2014-01-26.569 +2014-01-27.570 diff --git a/view/php/theme_init.php b/view/php/theme_init.php index 0e473f728..b6aa5de0f 100644 --- a/view/php/theme_init.php +++ b/view/php/theme_init.php @@ -44,6 +44,7 @@ head_add_js('docready.js'); head_add_js('library/colorbox/jquery.colorbox-min.js'); head_add_js('library/bootstrap-datetimepicker/js/moment.js'); head_add_js('library/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js'); + /** * Those who require this feature will know what to do with it. * Those who don't, won't. -- cgit v1.2.3 From 24bac92acdf04a49eb65fc947f25fafb2b2044fa Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 27 Jan 2014 15:25:04 -0800 Subject: after rposting - if there's no remote_return, go to your matrix page rather than leave you on a blank rpost page. --- mod/rpost.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mod/rpost.php b/mod/rpost.php index 8e01ef5d4..852a57d78 100644 --- a/mod/rpost.php +++ b/mod/rpost.php @@ -65,8 +65,10 @@ function rpost_content(&$a) { if($_REQUEST['remote_return']) { $_SESSION['remote_return'] = $_REQUEST['remote_return']; } - if(argc() > 1 && argv(1) === 'return' && $_SESSION['remote_return']) { - goaway($_SESSION['remote_return']); + if(argc() > 1 && argv(1) === 'return') { + if($_SESSION['remote_return']) + goaway($_SESSION['remote_return']); + goaway(z_root() . '/network'); } $plaintext = true; -- cgit v1.2.3 From d9794b981d56c0e0f6e23d33a421e64378fd78a6 Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 27 Jan 2014 15:55:08 -0800 Subject: In order to provide ajax chat accessible by remote visitors (xchans), we need to remove any core assumptions that userID is an int (which is a common centralised site assumption). Additionally we won't be able to provide guest logins, as this also assumes integer ID's; so that ability needs to be disabled by configuration. --- library/ajaxchat/chat/lib/class/AJAXChat.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/ajaxchat/chat/lib/class/AJAXChat.php b/library/ajaxchat/chat/lib/class/AJAXChat.php index 2cf7aa11f..215b2c4e1 100644 --- a/library/ajaxchat/chat/lib/class/AJAXChat.php +++ b/library/ajaxchat/chat/lib/class/AJAXChat.php @@ -60,12 +60,12 @@ class AJAXChat { function initRequestVars() { $this->_requestVars = array(); $this->_requestVars['ajax'] = isset($_REQUEST['ajax']) ? true : false; - $this->_requestVars['userID'] = isset($_REQUEST['userID']) ? (int)$_REQUEST['userID'] : null; + $this->_requestVars['userID'] = isset($_REQUEST['userID']) ? $_REQUEST['userID'] : null; $this->_requestVars['userName'] = isset($_REQUEST['userName']) ? $_REQUEST['userName'] : null; - $this->_requestVars['channelID'] = isset($_REQUEST['channelID']) ? (int)$_REQUEST['channelID'] : null; + $this->_requestVars['channelID'] = isset($_REQUEST['channelID']) ? $_REQUEST['channelID'] : null; $this->_requestVars['channelName'] = isset($_REQUEST['channelName']) ? $_REQUEST['channelName'] : null; $this->_requestVars['text'] = isset($_POST['text']) ? $_POST['text'] : null; - $this->_requestVars['lastID'] = isset($_REQUEST['lastID']) ? (int)$_REQUEST['lastID'] : 0; + $this->_requestVars['lastID'] = isset($_REQUEST['lastID']) ? $_REQUEST['lastID'] : ''; $this->_requestVars['login'] = isset($_REQUEST['login']) ? true : false; $this->_requestVars['logout'] = isset($_REQUEST['logout']) ? true : false; $this->_requestVars['password'] = isset($_REQUEST['password']) ? $_REQUEST['password'] : null; @@ -3052,14 +3052,14 @@ class AJAXChat { if($userID === null) { $userID = $this->getUserID(); } - return $userID + $this->getConfig('privateChannelDiff'); + return $userID . '.' . $this->getConfig('privateChannelDiff'); } function getPrivateMessageID($userID=null) { if($userID === null) { $userID = $this->getUserID(); } - return $userID + $this->getConfig('privateMessageDiff'); + return $userID . '.' . $this->getConfig('privateMessageDiff'); } function isAllowedToSendPrivateMessage() { -- cgit v1.2.3 From 3100b5d93e9f440a17b99d2856ee022b29d73f80 Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 27 Jan 2014 18:06:09 -0800 Subject: photo tagging still broken - but at least don't create a new linked item every time a photo is edited. --- library/ajaxchat/chat/lib/class/CustomAJAXChat.php | 2 ++ mod/photos.php | 4 ++++ view/tpl/photo_view.tpl | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/library/ajaxchat/chat/lib/class/CustomAJAXChat.php b/library/ajaxchat/chat/lib/class/CustomAJAXChat.php index a18e64069..9fff6ada9 100644 --- a/library/ajaxchat/chat/lib/class/CustomAJAXChat.php +++ b/library/ajaxchat/chat/lib/class/CustomAJAXChat.php @@ -13,6 +13,8 @@ class CustomAJAXChat extends AJAXChat { // Returns null if login is invalid function getValidLoginUserData() { + + $customUsers = $this->getCustomUsers(); if($this->getRequestVar('password')) { diff --git a/mod/photos.php b/mod/photos.php index 23733e121..c299fe778 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -778,6 +778,8 @@ function photos_content(&$a) { return; } + + $prevlink = ''; $nextlink = ''; @@ -898,6 +900,8 @@ function photos_content(&$a) { } } +// logger('mod_photo: link_item' . print_r($link_item,true)); + // FIXME - remove this when we move to conversation module $r = $r[0]['children']; diff --git a/view/tpl/photo_view.tpl b/view/tpl/photo_view.tpl index e56fd5b57..93e9abfa5 100755 --- a/view/tpl/photo_view.tpl +++ b/view/tpl/photo_view.tpl @@ -24,7 +24,7 @@ '; - if(userID === this.userID) { - this.userNodeString = str; - } - return str; - } - }, - - toggleUserMenu: function(menuID, userName, userID) { - // If the menu is empty, fill it with user node menu items before toggling it. - var isInline = false; - if (menuID.indexOf('ium') >= 0 ) { - isInline = true; - } - if(!document.getElementById(menuID).firstChild) { - this.updateDOM( - menuID, - this.getUserNodeStringItems( - this.encodeText(this.addSlashes(this.getScriptLinkValue(userName))), - userID, - isInline - ), - false, - true - ) - } - this.showHide(menuID); - this.dom['chatList'].scrollTop = this.dom['chatList'].scrollHeight; - }, - - getUserNodeStringItems: function(encodedUserName, userID, isInline) { - var menu; - if(encodedUserName !== this.encodedUserName) { - menu = '
  • ' - + this.lang['userMenuSendPrivateMessage'] - + '
  • ' - + '
  • ' - + this.lang['userMenuDescribe'] - + '
  • ' - + '
  • ' - + this.lang['userMenuOpenPrivateChannel'] - + '
  • ' - + '
  • ' - + this.lang['userMenuClosePrivateChannel'] - + '
  • ' - + '
  • ' - + this.lang['userMenuIgnore'] - + '
  • '; - if (isInline) { - menu += '
  • ' - + this.lang['userMenuInvite'] - + '
  • ' - + '
  • ' - + this.lang['userMenuUninvite'] - + '
  • ' - + '
  • ' - + this.lang['userMenuWhereis'] - + '
  • '; - } - if(this.userRole === '2' || this.userRole === '3') { - menu += '
  • ' - + this.lang['userMenuKick'] - + '
  • ' - + '
  • ' - + this.lang['userMenuWhois'] - + '
  • '; - } - } else { - menu = '
  • ' - + this.lang['userMenuLogout'] - + '
  • ' - + '
  • ' - + this.lang['userMenuWho'] - + '
  • ' - + '
  • ' - + this.lang['userMenuIgnoreList'] - + '
  • ' - + '
  • ' - + this.lang['userMenuList'] - + '
  • ' - + '
  • ' - + this.lang['userMenuAction'] - + '
  • ' - + '
  • ' - + this.lang['userMenuRoll'] - + '
  • ' - + '
  • ' - + this.lang['userMenuNick'] - + '
  • '; - if(this.userRole === '1' || this.userRole === '2' || this.userRole === '3') { - menu += '
  • ' - + this.lang['userMenuEnterPrivateRoom'] - + '
  • '; - if(this.userRole === '2' || this.userRole === '3') { - menu += '
  • ' - + this.lang['userMenuBans'] - + '
  • '; - } - } - } - menu += this.getCustomUserMenuItems(encodedUserName, userID); - return menu; - }, - - setOnlineListRowClasses: function() { - if(this.dom['onlineList']) { - var node = this.dom['onlineList'].firstChild; - var rowEven = false; - while(node) { - this.setClass(node, (rowEven ? 'rowEven' : 'rowOdd')); - node = node.nextSibling; - rowEven = !rowEven; - } - } - }, - - clearChatList: function() { - while(this.dom['chatList'].hasChildNodes()) { - this.dom['chatList'].removeChild(this.dom['chatList'].firstChild); - } - }, - - clearOnlineUsersList: function() { - this.usersList = []; - this.userNamesList = []; - if(this.dom['onlineList']) { - while(this.dom['onlineList'].hasChildNodes()) { - this.dom['onlineList'].removeChild(this.dom['onlineList'].firstChild); - } - } - }, - - getEncodedChatBotName: function() { - if(typeof arguments.callee.encodedChatBotName === 'undefined') { - arguments.callee.encodedChatBotName = this.encodeSpecialChars(this.chatBotName); - } - return arguments.callee.encodedChatBotName; - }, - - addChatBotMessageToChatList: function(messageText) { - this.addMessageToChatList( - new Date(), - this.chatBotID, - this.getEncodedChatBotName(), - 4, - null, - messageText, - null - ); - }, - - addMessageToChatList: function(dateObject, userID, userName, userRole, messageID, messageText, channelID, ip) { - // Prevent adding the same message twice: - if(this.getMessageNode(messageID)) { - return; - } - if(!this.onNewMessage(dateObject, userID, userName, userRole, messageID, messageText, channelID, ip)) { - return; - } - this.DOMbufferRowClass = this.DOMbufferRowClass === 'rowEven' ? 'rowOdd' : 'rowEven'; - this.DOMbuffer = this.DOMbuffer + - this.getChatListMessageString( - dateObject, userID, userName, userRole, messageID, messageText, channelID, ip - ); - if(!this.DOMbuffering){ - this.updateDOM('chatList', this.DOMbuffer); - this.DOMbuffer = ""; - } - }, - - getChatListMessageString: function(dateObject, userID, userName, userRole, messageID, messageText, channelID, ip) { - var rowClass = this.DOMbufferRowClass; - var userClass = this.getRoleClass(userRole); - var colon; - if(messageText.indexOf('/action') === 0 || messageText.indexOf('/me') === 0 || messageText.indexOf('/privaction') === 0) { - userClass += ' action'; - colon = ' '; - } else { - colon = ': '; - } - var dateTime = this.settings['dateFormat'] ? '' - + this.formatDate(this.settings['dateFormat'], dateObject) + ' ' : ''; - return '
    ' - + this.getDeletionLink(messageID, userID, userRole, channelID) - + dateTime - + '' - + userName - + '' - + colon - + this.replaceText(messageText) - + '
    '; - }, - - getChatListUserNameTitle: function(userID, userName, userRole, ip) { - return (ip !== null) ? ' title="IP: ' + ip + '"' : ''; - }, - - getMessageDocumentID: function(messageID) { - return ((messageID === null) ? 'ajaxChat_lm_'+(this.localID++) : 'ajaxChat_m_'+messageID); - }, - - getMessageNode: function(messageID) { - return ((messageID === null) ? null : document.getElementById(this.getMessageDocumentID(messageID))); - }, - - getUserDocumentID: function(userID) { - return 'ajaxChat_u_'+userID; - }, - - getUserNode: function(userID) { - return document.getElementById(this.getUserDocumentID(userID)); - }, - - getUserMenuDocumentID: function(userID) { - return 'ajaxChat_um_'+userID; - }, - - getInlineUserMenuDocumentID: function(menuID, index) { - return 'ajaxChat_ium_'+menuID+'_'+index; - }, - - getDeletionLink: function(messageID, userID, userRole, channelID) { - if(messageID !== null && this.isAllowedToDeleteMessage(messageID, userID, userRole, channelID)) { - if(!arguments.callee.deleteMessage) { - arguments.callee.deleteMessage = this.encodeSpecialChars(this.lang['deleteMessage']); - } - return ' '; // Adding a space - without any content Opera messes up the chatlist display - } - return ''; - }, - - isAllowedToDeleteMessage: function(messageID, userID, userRole, channelID) { - if((((this.userRole === '1' && this.allowUserMessageDelete && (userID === this.userID || - parseInt(channelID) === parseInt(this.userID)+this.privateMessageDiff || - parseInt(channelID) === parseInt(this.userID)+this.privateChannelDiff)) || - this.userRole === '2') && userRole !== '3' && userRole !== '4') || this.userRole === '3') { - return true; - } - return false; - }, - - onNewMessage: function(dateObject, userID, userName, userRole, messageID, messageText, channelID, ip) { - if(!this.customOnNewMessage(dateObject, userID, userName, userRole, messageID, messageText, channelID, ip)) { - return false; - } - if(this.ignoreMessage(dateObject, userID, userName, userRole, messageID, messageText, channelID, ip)) { - return false; - } - if(this.parseDeleteMessageCommand(messageText)) { - return false; - } - this.blinkOnNewMessage(dateObject, userID, userName, userRole, messageID, messageText, channelID, ip); - this.playSoundOnNewMessage(dateObject, userID, userName, userRole, messageID, messageText, channelID, ip); - return true; - }, - - parseDeleteMessageCommand: function(messageText) { - if(messageText.indexOf('/delete') === 0) { - var messageID = messageText.substr(8); - var messageNode = this.getMessageNode(messageID); - if(messageNode) { - var nextSibling = messageNode.nextSibling; - try { - this.dom['chatList'].removeChild(messageNode); - if(nextSibling) { - this.updateChatListRowClasses(nextSibling); - } - } catch(e) { - } - } - return true; - } - return false; - }, - - blinkOnNewMessage: function(dateObject, userID, userName, userRole, messageID, messageText, channelID, ip) { - if(this.settings['blink'] && this.lastID && !this.channelSwitch && userID !== this.userID) { - clearInterval(this.blinkInterval); - this.blinkInterval = setInterval( - 'ajaxChat.blinkUpdate(\''+this.addSlashes(this.decodeSpecialChars(userName))+'\')', - this.settings['blinkInterval'] - ); - } - }, - - blinkUpdate: function(blinkStr) { - if(!this.originalDocumentTitle) { - this.originalDocumentTitle = document.title; - } - if(!arguments.callee.blink) { - document.title = '[@ ] '+blinkStr+' - '+this.originalDocumentTitle; - arguments.callee.blink = 1; - } else if(arguments.callee.blink > this.settings['blinkIntervalNumber']) { - clearInterval(this.blinkInterval); - document.title = this.originalDocumentTitle; - arguments.callee.blink = 0; - } else { - if(arguments.callee.blink % 2 !== 0) { - document.title = '[@ ] '+blinkStr+' - '+this.originalDocumentTitle; - } else { - document.title = '[ @] '+blinkStr+' - '+this.originalDocumentTitle; - } - arguments.callee.blink++; - } - }, - - updateChatlistView: function() { - if(this.dom['chatList'].childNodes && this.settings['maxMessages']) { - while(this.dom['chatList'].childNodes.length > this.settings['maxMessages']) { - this.dom['chatList'].removeChild(this.dom['chatList'].firstChild); - } - } - - if(this.settings['autoScroll']) { - this.dom['chatList'].scrollTop = this.dom['chatList'].scrollHeight; - } - }, - - encodeText: function(text) { - return encodeURIComponent(text); - }, - - decodeText: function(text) { - return decodeURIComponent(text); - }, - - utf8Encode: function(plainText) { - var utf8Text = ''; - for(var i=0; i127) && (c<2048)) { - utf8Text += String.fromCharCode((c>>6)|192); - utf8Text += String.fromCharCode((c&63)|128); - } else { - utf8Text += String.fromCharCode((c>>12)|224); - utf8Text += String.fromCharCode(((c>>6)&63)|128); - utf8Text += String.fromCharCode((c&63)|128); - } - } - return utf8Text; - }, - - utf8Decode: function(utf8Text) { - var plainText = ''; - var c,c2,c3; - var i=0; - while(i191) && (c<224)) { - c2 = utf8Text.charCodeAt(i+1); - plainText += String.fromCharCode(((c&31)<<6) | (c2&63)); - i+=2; - } else { - c2 = utf8Text.charCodeAt(i+1); - c3 = utf8Text.charCodeAt(i+2); - plainText += String.fromCharCode(((c&15)<<12) | ((c2&63)<<6) | (c3&63)); - i+=3; - } - } - return plainText; - }, - - encodeSpecialChars: function(text) { - return text.replace( - /[&<>'"]/g, - this.encodeSpecialCharsCallback - ); - }, - - encodeSpecialCharsCallback: function(str) { - switch(str) { - case '&': - return '&'; - case '<': - return '<'; - case '>': - return '>'; - case '\'': - // As ' is not supported by IE, we use ' as replacement for ('): - return '''; - case '"': - return '"'; - default: - return str; - } - }, - - decodeSpecialChars: function(text) { - var regExp = new RegExp('(&)|(<)|(>)|(')|(")', 'g'); - - return text.replace( - regExp, - this.decodeSpecialCharsCallback - ); - }, - - decodeSpecialCharsCallback: function(str) { - switch(str) { - case '&': - return '&'; - case '<': - return '<'; - case '>': - return '>'; - case ''': - return '\''; - case '"': - return '"'; - default: - return str; - } - }, - - inArray: function(haystack, needle) { - var i = haystack.length; - while(i--) { - if(haystack[i] === needle) { - return true; - } - } - return false; - }, - - arraySearch: function(needle, haystack) { - var i = haystack.length; - while(i--) { - if(haystack[i] === needle) { - return i; - } - } - return false; - }, - - stripTags: function(str) { - if (!arguments.callee.regExp) { - arguments.callee.regExp = new RegExp('<\\/?[^>]+?>', 'g'); - } - - return str.replace(arguments.callee.regExp, ''); - }, - - stripBBCodeTags: function(str) { - if (!arguments.callee.regExp) { - arguments.callee.regExp = new RegExp('\\[\\/?[^\\]]+?\\]', 'g'); - } - - return str.replace(arguments.callee.regExp, ''); - }, - - escapeRegExp: function(text) { - if (!arguments.callee.regExp) { - var specials = new Array( - '^', '$', '*', '+', '?', '.', '|', '/', - '(', ')', '[', ']', '{', '}', '\\' - ); - arguments.callee.regExp = new RegExp( - '(\\' + specials.join('|\\') + ')', 'g' - ); - } - return text.replace(arguments.callee.regExp, '\\$1'); - }, - - addSlashes: function(text) { - // Adding slashes in front of apostrophs and backslashes to ensure a valid JavaScript expression: - return text.replace(/\\/g, '\\\\').replace(/\'/g, '\\\''); - }, - - removeSlashes: function(text) { - // Removing slashes added by calling addSlashes(text) previously: - return text.replace(/\\\\/g, '\\').replace(/\\\'/g, '\''); - }, - - formatDate: function(format, date) { - date = (date == null) ? new date() : date; - - return format - .replace(/%Y/g, date.getFullYear()) - .replace(/%m/g, this.addLeadingZero(date.getMonth()+1)) - .replace(/%d/g, this.addLeadingZero(date.getDate())) - .replace(/%H/g, this.addLeadingZero(date.getHours())) - .replace(/%i/g, this.addLeadingZero(date.getMinutes())) - .replace(/%s/g, this.addLeadingZero(date.getSeconds())); - }, - - addLeadingZero: function(number) { - number = number.toString(); - if(number.length < 2) { - number = '0'+number; - } - return number; - }, - - getUserIDFromUserName: function(userName) { - var index = this.arraySearch(userName, this.userNamesList); - if(index !== false) { - return this.usersList[index]; - } - return null; - }, - - getUserNameFromUserID: function(userID) { - var index = this.arraySearch(userID, this.usersList); - if(index !== false) { - return this.userNamesList[index]; - } - return null; - }, - - getRoleClass: function(roleID) { - switch(parseInt(roleID)) { - case 0: - return 'guest'; - case 1: - return 'user'; - case 2: - return 'moderator'; - case 3: - return 'admin'; - case 4: - return 'chatBot'; - default: - return 'default'; - } - }, - - handleInputFieldKeyPress: function(event) { - if(event.keyCode === 13 && !event.shiftKey) { - this.sendMessage(); - try { - event.preventDefault(); - } catch(e) { - event.returnValue = false; // IE - } - return false; - } - return true; - }, - - handleInputFieldKeyUp: function(event) { - this.updateMessageLengthCounter(); - }, - - updateMessageLengthCounter: function() { - if(this.dom['messageLengthCounter']) { - this.updateDOM( - 'messageLengthCounter', - this.dom['inputField'].value.length + '/' + this.messageTextMaxLength, - false, - true - ); - } - }, - - sendMessage: function(text) { - text = text ? text : this.dom['inputField'].value; - if(!text) { - return; - } - text = this.parseInputMessage(text); - if(text) { - clearTimeout(this.timer); - var message = 'lastID=' - + this.lastID - + '&text=' - + this.encodeText(text); - this.makeRequest(this.ajaxURL,'POST',message); - } - this.dom['inputField'].value = ''; - this.dom['inputField'].focus(); - this.updateMessageLengthCounter(); - }, - - parseInputMessage: function(text) { - var textParts; - if(text.charAt(0) === '/') { - textParts = text.split(' '); - switch(textParts[0]) { - case '/ignore': - text = this.parseIgnoreInputCommand(text, textParts); - break; - case '/clear': - this.clearChatList(); - return false; - break; - default: - text = this.parseCustomInputCommand(text, textParts); - } - if(text && this.settings['persistFontColor'] && this.settings['fontColor']) { - text = this.assignFontColorToCommandMessage(text, textParts); - } - } else { - text = this.parseCustomInputMessage(text); - if(text && this.settings['persistFontColor'] && this.settings['fontColor']) { - text = this.assignFontColorToMessage(text); - } - } - return text; - }, - - assignFontColorToMessage: function(text) { - return '[color='+this.settings['fontColor']+']'+text+'[/color]'; - }, - - assignFontColorToCommandMessage: function(text, textParts) { - switch(textParts[0]) { - case '/msg': - case '/describe': - if(textParts.length > 2) { - return textParts[0]+' '+textParts[1]+' ' - + '[color='+this.settings['fontColor']+']' - + textParts.slice(2).join(' ') - + '[/color]'; - } - break; - case '/me': - case '/action': - if(textParts.length > 1) { - return textParts[0]+' ' - + '[color='+this.settings['fontColor']+']' - + textParts.slice(1).join(' ') - + '[/color]'; - } - break; - } - return text; - }, - - parseIgnoreInputCommand: function(text, textParts) { - var userName, ignoredUserNames = this.getIgnoredUserNames(), i; - if(textParts.length > 1) { - userName = this.encodeSpecialChars(textParts[1]); - // Prevent adding the chatBot or current user to the list: - if(userName === this.userName || userName === this.getEncodedChatBotName()) { - // Display the list of ignored users instead: - return this.parseIgnoreInputCommand(null, new Array('/ignore')); - } - if(ignoredUserNames.length > 0) { - i = ignoredUserNames.length; - while(i--) { - if(ignoredUserNames[i] === userName) { - ignoredUserNames.splice(i,1); - this.addChatBotMessageToChatList('/ignoreRemoved '+userName); - this.setIgnoredUserNames(ignoredUserNames); - this.updateChatlistView(); - return null; - } - } - } - ignoredUserNames.push(userName); - this.addChatBotMessageToChatList('/ignoreAdded '+userName); - this.setIgnoredUserNames(ignoredUserNames); - } else { - if(ignoredUserNames.length === 0) { - this.addChatBotMessageToChatList('/ignoreListEmpty -'); - } else { - this.addChatBotMessageToChatList('/ignoreList '+ignoredUserNames.join(' ')); - } - } - this.updateChatlistView(); - return null; - }, - - getIgnoredUserNames: function() { - var ignoredUserNamesString; - if(!this.ignoredUserNames) { - ignoredUserNamesString = this.getSetting('ignoredUserNames'); - if(ignoredUserNamesString) { - this.ignoredUserNames = ignoredUserNamesString.split(' '); - } else { - this.ignoredUserNames = []; - } - } - return this.ignoredUserNames; - }, - - setIgnoredUserNames: function(ignoredUserNames) { - this.ignoredUserNames = ignoredUserNames; - this.setSetting('ignoredUserNames', ignoredUserNames.join(' ')); - }, - - ignoreMessage: function(dateObject, userID, userName, userRole, messageID, messageText, channelID, ip) { - var textParts; - if(userID === this.chatBotID && messageText.charAt(0) === '/') { - textParts = messageText.split(' '); - if(textParts.length > 1) { - switch(textParts[0]) { - case '/invite': - case '/uninvite': - case '/roll': - userName = textParts[1]; - break; - } - } - } - if(this.inArray(this.getIgnoredUserNames(), userName)) { - return true; - } - return false; - }, - - deleteMessage: function(messageID) { - var messageNode = this.getMessageNode(messageID), originalClass, nextSibling; - if(messageNode) { - originalClass = this.getClass(messageNode); - this.setClass(messageNode, originalClass+' deleteSelected'); - if(confirm(this.lang['deleteMessageConfirm'])) { - nextSibling = messageNode.nextSibling; - try { - this.dom['chatList'].removeChild(messageNode); - if(nextSibling) { - this.updateChatListRowClasses(nextSibling); - } - this.updateChat('&delete='+messageID); - } catch(e) { - this.setClass(messageNode, originalClass); - } - } else { - this.setClass(messageNode, originalClass); - } - } - }, - - updateChatListRowClasses: function(node) { - var previousNode, rowEven; - if(!node) { - node = this.dom['chatList'].firstChild; - } - if(node) { - previousNode = node.previousSibling; - rowEven = (previousNode && this.getClass(previousNode) === 'rowOdd') ? true : false; - while(node) { - this.setClass(node, (rowEven ? 'rowEven' : 'rowOdd')); - node = node.nextSibling; - rowEven = !rowEven; - } - } - }, - - getClass: function(node) { - if(typeof node.className !== 'undefined') { - return node.className; // IE - } else { - return node.getAttribute('class'); - } - }, - - setClass: function(node, className) { - if(typeof node.className !== 'undefined') { - node.className = className; // IE - } else { - node.setAttribute('class', className); - } - }, - - scriptLinkEncode: function(text) { - return this.encodeText(this.addSlashes(this.decodeSpecialChars(text))); - }, - - scriptLinkDecode: function(text) { - return this.encodeSpecialChars(this.removeSlashes(this.decodeText(text))); - }, - - getScriptLinkValue: function(value) { - // This method returns plainText encoded values from javascript links - // The value has to be utf8Decoded for MSIE and Opera: - if(typeof arguments.callee.utf8Decode === 'undefined') { - switch(navigator.appName) { - case 'Microsoft Internet Explorer': - case 'Opera': - arguments.callee.utf8Decode = true; - return this.utf8Decode(value); - default: - arguments.callee.utf8Decode = false; - return value; - } - } else if(arguments.callee.utf8Decode) { - return this.utf8Decode(value); - } else { - return value; - } - }, - - sendMessageWrapper: function(text) { - this.sendMessage(this.getScriptLinkValue(text)); - }, - - insertMessageWrapper: function(text) { - this.insertText(this.getScriptLinkValue(text), true); - }, - - switchChannel: function(channel) { - if(!this.chatStarted) { - this.clearChatList(); - this.channelSwitch = true; - this.loginChannelID = null; - this.loginChannelName = channel; - this.requestTeaserContent(); - return; - } - clearTimeout(this.timer); - var message = 'lastID=' - + this.lastID - + '&channelName=' - + this.encodeText(channel); - this.makeRequest(this.ajaxURL,'POST',message); - if(this.dom['inputField'] && this.settings['autoFocus']) { - this.dom['inputField'].focus(); - } - }, - - logout: function() { - clearTimeout(this.timer); - var message = 'logout=true'; - this.makeRequest(this.ajaxURL,'POST',message); - }, - - handleLogout: function(url) { - window.location.href = url; - }, - - toggleSetting: function(setting, buttonID) { - this.setSetting(setting, !this.getSetting(setting)); - if(buttonID) { - this.updateButton(setting, buttonID); - } - }, - - updateButton: function(setting, buttonID) { - var node = document.getElementById(buttonID); - if(node) { - this.setClass(node, (this.getSetting(setting) ? 'button' : 'button off')); - } - }, - - showHide: function(id, styleDisplay, displayInline) { - var node = document.getElementById(id); - if(node) { - if(styleDisplay) { - node.style.display = styleDisplay; - } else { - if(node.style.display === 'none') { - node.style.display = (displayInline ? 'inline' : 'block'); - } else { - node.style.display = 'none'; - } - } - } - }, - - setPersistFontColor: function(bool) { - this.settings['persistFontColor'] = bool; - if(!this.settings['persistFontColor']) { - this.settings['fontColor'] = null; - if(this.dom['inputField']) { - this.dom['inputField'].style.color = ''; - } - } - }, - - setFontColor: function(color) { - if(this.settings['persistFontColor']) { - this.settings['fontColor'] = color; - if(this.dom['inputField']) { - this.dom['inputField'].style.color = color; - } - if(this.dom['colorCodesContainer']) { - this.dom['colorCodesContainer'].style.display = 'none'; - if(this.dom['inputField']) { - this.dom['inputField'].focus(); - } - } - } else { - this.insert('[color=' + color + ']', '[/color]'); - } - }, - - insertText: function(text, clearInputField) { - if(clearInputField) { - this.dom['inputField'].value = ''; - } - this.insert(text, ''); - }, - - insertBBCode: function(bbCode) { - switch(bbCode) { - case 'url': - var url = prompt(this.lang['urlDialog'], 'http://'); - if(url) - this.insert('[url=' + url + ']', '[/url]'); - else - this.dom['inputField'].focus(); - break; - default: - this.insert('[' + bbCode + ']', '[/' + bbCode + ']'); - } - }, - - insert: function(startTag, endTag) { - this.dom['inputField'].focus(); - // Internet Explorer: - if(typeof document.selection !== 'undefined') { - // Insert the tags: - var range = document.selection.createRange(); - var insText = range.text; - range.text = startTag + insText + endTag; - // Adjust the cursor position: - range = document.selection.createRange(); - if (insText.length === 0) { - range.move('character', -endTag.length); - } else { - range.moveStart('character', startTag.length + insText.length + endTag.length); - } - range.select(); - } - // Firefox, etc. (Gecko based browsers): - else if(typeof this.dom['inputField'].selectionStart !== 'undefined') { - // Insert the tags: - var start = this.dom['inputField'].selectionStart; - var end = this.dom['inputField'].selectionEnd; - var insText = this.dom['inputField'].value.substring(start, end); - this.dom['inputField'].value = this.dom['inputField'].value.substr(0, start) - + startTag - + insText - + endTag - + this.dom['inputField'].value.substr(end); - // Adjust the cursor position: - var pos; - if (insText.length === 0) { - pos = start + startTag.length; - } else { - pos = start + startTag.length + insText.length + endTag.length; - } - this.dom['inputField'].selectionStart = pos; - this.dom['inputField'].selectionEnd = pos; - } - // Other browsers: - else { - var pos = this.dom['inputField'].value.length; - this.dom['inputField'].value = this.dom['inputField'].value.substr(0, pos) - + startTag - + endTag - + this.dom['inputField'].value.substr(pos); - } - }, - - replaceText: function(text) { - try{ - text = this.replaceLineBreaks(text); - if(text.charAt(0) === '/') { - text = this.replaceCommands(text); - } else { - text = this.replaceBBCode(text); - text = this.replaceHyperLinks(text); - text = this.replaceEmoticons(text); - } - text = this.breakLongWords(text); - text = this.replaceCustomText(text); - } catch(e){ - //alert(e); - } - return text; - }, - - replaceCommands: function(text) { - try { - if(text.charAt(0) !== '/') { - return text; - } - var textParts = text.split(' '); - switch(textParts[0]) { - case '/login': - return this.replaceCommandLogin(textParts); - case '/logout': - return this.replaceCommandLogout(textParts); - case '/channelEnter': - return this.replaceCommandChannelEnter(textParts); - case '/channelLeave': - return this.replaceCommandChannelLeave(textParts); - case '/privmsg': - return this.replaceCommandPrivMsg(textParts); - case '/privmsgto': - return this.replaceCommandPrivMsgTo(textParts); - case '/privaction': - return this.replaceCommandPrivAction(textParts); - case '/privactionto': - return this.replaceCommandPrivActionTo(textParts); - case '/me': - case '/action': - return this.replaceCommandAction(textParts); - case '/invite': - return this.replaceCommandInvite(textParts); - case '/inviteto': - return this.replaceCommandInviteTo(textParts); - case '/uninvite': - return this.replaceCommandUninvite(textParts); - case '/uninviteto': - return this.replaceCommandUninviteTo(textParts); - case '/queryOpen': - return this.replaceCommandQueryOpen(textParts); - case '/queryClose': - return this.replaceCommandQueryClose(textParts); - case '/ignoreAdded': - return this.replaceCommandIgnoreAdded(textParts); - case '/ignoreRemoved': - return this.replaceCommandIgnoreRemoved(textParts); - case '/ignoreList': - return this.replaceCommandIgnoreList(textParts); - case '/ignoreListEmpty': - return this.replaceCommandIgnoreListEmpty(textParts); - case '/kick': - return this.replaceCommandKick(textParts); - case '/who': - return this.replaceCommandWho(textParts); - case '/whoChannel': - return this.replaceCommandWhoChannel(textParts); - case '/whoEmpty': - return this.replaceCommandWhoEmpty(textParts); - case '/list': - return this.replaceCommandList(textParts); - case '/bans': - return this.replaceCommandBans(textParts); - case '/bansEmpty': - return this.replaceCommandBansEmpty(textParts); - case '/unban': - return this.replaceCommandUnban(textParts); - case '/whois': - return this.replaceCommandWhois(textParts); - case '/whereis': - return this.replaceCommandWhereis(textParts); - case '/roll': - return this.replaceCommandRoll(textParts); - case '/nick': - return this.replaceCommandNick(textParts); - case '/error': - return this.replaceCommandError(textParts); - default: - return this.replaceCustomCommands(text, textParts); - } - } catch(e) { - //alert(e); - } - return text; - }, - - replaceCommandLogin: function(textParts) { - return '' - + this.lang['login'].replace(/%s/, textParts[1]) - + ''; - }, - - replaceCommandLogout: function(textParts) { - var type = ''; - if(textParts.length === 3) - type = textParts[2]; - return '' - + this.lang['logout' + type].replace(/%s/, textParts[1]) - + ''; - }, - - replaceCommandChannelEnter: function(textParts) { - return '' - + this.lang['channelEnter'].replace(/%s/, textParts[1]) - + ''; - }, - - replaceCommandChannelLeave: function(textParts) { - return '' - + this.lang['channelLeave'].replace(/%s/, textParts[1]) - + ''; - }, - - replaceCommandPrivMsg: function(textParts) { - var privMsgText = textParts.slice(1).join(' '); - privMsgText = this.replaceBBCode(privMsgText); - privMsgText = this.replaceHyperLinks(privMsgText); - privMsgText = this.replaceEmoticons(privMsgText); - return '' - + this.lang['privmsg'] - + ' ' - + privMsgText; - }, - - replaceCommandPrivMsgTo: function(textParts) { - var privMsgText = textParts.slice(2).join(' '); - privMsgText = this.replaceBBCode(privMsgText); - privMsgText = this.replaceHyperLinks(privMsgText); - privMsgText = this.replaceEmoticons(privMsgText); - return '' - + this.lang['privmsgto'].replace(/%s/, textParts[1]) - + ' ' - + privMsgText; - }, - - replaceCommandPrivAction: function(textParts) { - var privActionText = textParts.slice(1).join(' '); - privActionText = this.replaceBBCode(privActionText); - privActionText = this.replaceHyperLinks(privActionText); - privActionText = this.replaceEmoticons(privActionText); - return '' - + privActionText - + ' ' - + this.lang['privmsg'] - + ' '; - }, - - replaceCommandPrivActionTo: function(textParts) { - var privActionText = textParts.slice(2).join(' '); - privActionText = this.replaceBBCode(privActionText); - privActionText = this.replaceHyperLinks(privActionText); - privActionText = this.replaceEmoticons(privActionText); - return '' - + privActionText - + ' ' - + this.lang['privmsgto'].replace(/%s/, textParts[1]) - + ' '; - }, - - replaceCommandAction: function(textParts) { - var actionText = textParts.slice(1).join(' '); - actionText = this.replaceBBCode(actionText); - actionText = this.replaceHyperLinks(actionText); - actionText = this.replaceEmoticons(actionText); - return '' - + actionText - + ''; - }, - - replaceCommandInvite: function(textParts) { - var inviteText = this.lang['invite'] - .replace(/%s/, textParts[1]) - .replace( - /%s/, - '' - + textParts[2] - + '' - ); - return '' - + inviteText - + ''; - }, - - replaceCommandInviteTo: function(textParts) { - var inviteText = this.lang['inviteto'] - .replace(/%s/, textParts[1]) - .replace(/%s/, textParts[2]); - return '' - + inviteText - + ''; - }, - - replaceCommandUninvite: function(textParts) { - var uninviteText = this.lang['uninvite'] - .replace(/%s/, textParts[1]) - .replace(/%s/, textParts[2]); - return '' - + uninviteText - + ''; - }, - - replaceCommandUninviteTo: function(textParts) { - var uninviteText = this.lang['uninviteto'] - .replace(/%s/, textParts[1]) - .replace(/%s/, textParts[2]); - return '' - + uninviteText - + ''; - }, - - replaceCommandQueryOpen: function(textParts) { - return '' - + this.lang['queryOpen'].replace(/%s/, textParts[1]) - + ''; - }, - - replaceCommandQueryClose: function(textParts) { - return '' - + this.lang['queryClose'].replace(/%s/, textParts[1]) - + ''; - }, - - replaceCommandIgnoreAdded: function(textParts) { - return '' - + this.lang['ignoreAdded'].replace(/%s/, textParts[1]) - + ''; - }, - - replaceCommandIgnoreRemoved: function(textParts) { - return '' - + this.lang['ignoreRemoved'].replace(/%s/, textParts[1]) - + ''; - }, - - replaceCommandIgnoreList: function(textParts) { - return '' - + this.lang['ignoreList'] + ' ' - + this.getInlineUserMenu(textParts.slice(1)) - + ''; - }, - - replaceCommandIgnoreListEmpty: function(textParts) { - return '' - + this.lang['ignoreListEmpty'] - + ''; - }, - - replaceCommandKick: function(textParts) { - return '' - + this.lang['logoutKicked'].replace(/%s/, textParts[1]) - + ''; - }, - - replaceCommandWho: function(textParts) { - return '' - + this.lang['who'] + ' ' - + this.getInlineUserMenu(textParts.slice(1)) - + ''; - }, - - replaceCommandWhoChannel: function(textParts) { - return '' - + this.lang['whoChannel'].replace(/%s/, textParts[1]) + ' ' - + this.getInlineUserMenu(textParts.slice(2)) - + ''; - }, - - replaceCommandWhoEmpty: function(textParts) { - return '' - + this.lang['whoEmpty'] - + ''; - }, - - replaceCommandList: function(textParts) { - var channels = textParts.slice(1); - var listChannels = []; - var channelName; - for(var i=0; i'+channels[i]+'' : channels[i]; - listChannels.push( - '' - + channelName - + '' - ); - } - return '' - + this.lang['list'] + ' ' - + listChannels.join(', ') - + ''; - }, - - replaceCommandBans: function(textParts) { - var users = textParts.slice(1); - var listUsers = []; - for(var i=0; i' - + users[i] - + '' - ); - } - return '' - + this.lang['bans'] + ' ' - + listUsers.join(', ') - + ''; - }, - - replaceCommandBansEmpty: function(textParts) { - return '' - + this.lang['bansEmpty'] - + ''; - }, - - replaceCommandUnban: function(textParts) { - return '' - + this.lang['unban'].replace(/%s/, textParts[1]) - + ''; - }, - - replaceCommandWhois: function(textParts) { - return '' - + this.lang['whois'].replace(/%s/, textParts[1]) + ' ' - + textParts[2] - + ''; - }, - - replaceCommandWhereis: function(textParts) { - return '' - + this.lang['whereis'].replace(/%s/, textParts[1]).replace( - /%s/, - '' - + textParts[2] - + '' - ) - + ''; - }, - - replaceCommandRoll: function(textParts) { - var rollText = this.lang['roll'].replace(/%s/, textParts[1]); - rollText = rollText.replace(/%s/, textParts[2]); - rollText = rollText.replace(/%s/, textParts[3]); - return '' - + rollText - + ''; - }, - - replaceCommandNick: function(textParts) { - return '' - + this.lang['nick'].replace(/%s/, textParts[1]).replace(/%s/, textParts[2]) - + ''; - }, - - replaceCommandError: function(textParts) { - var errorMessage = this.lang['error'+textParts[1]]; - if(!errorMessage) { - errorMessage = 'Error: Unknown.'; - } else if(textParts.length > 2) { - errorMessage = errorMessage.replace(/%s/, textParts.slice(2).join(' ')); - } - return '' - + errorMessage - + ''; - }, - - getInlineUserMenu: function(users) { - var menu = ''; - for(var i=0; i0) { - menu += ', '; - } - menu += '' - + ((users[i] === this.userName) ? ''+users[i]+'' : users[i]) - + '' - + ''; - } - this.userMenuCounter++; - return menu; - }, - - containsUnclosedTags: function(str) { - var openTags, closeTags, - regExpOpenTags = /<[^>\/]+?>/gm, - regExpCloseTags = /<\/[^>]+?>/gm; - - openTags = str.match(regExpOpenTags); - closeTags = str.match(regExpCloseTags); - // Return true if the number of tags doesn't match: - if((!openTags && closeTags) || - (openTags && !closeTags) || - (openTags && closeTags && (openTags.length !== closeTags.length))) { - return true; - } - return false; - }, - - breakLongWords: function(text) { - var newText, charCounter, currentChar, withinTag, withinEntity, i; - - if(!this.settings['wordWrap']) - return text; - - newText = ''; - charCounter = 0; - - for(i=0; i): - if(i>5 && text.substr(i-5,4) === '
    0 && text.charAt(i-1) === '>') { - withinTag = false; - // Reset the charCounter after newline tags (
    ): - if(i>4 && text.substr(i-5,4) === '
    0 && text.charAt(i-1) === ';') { - withinEntity = false; - // We only increase the charCounter once for the whole entiy: - charCounter++; - } - - if(!withinTag && !withinEntity) { - // Reset the charCounter if we encounter a word boundary: - if(currentChar === ' ' || currentChar === '\n' || currentChar === '\t') { - charCounter = 0; - } else { - // We are not within a tag or entity, increase the charCounter: - charCounter++; - } - if(charCounter > this.settings['maxWordLength']) { - // maxWordLength has been reached, break here and reset the charCounter: - newText += '​'; - charCounter = 0; - } - } - // Add the current char to the text: - newText += currentChar; - } - - return newText; - }, - - replaceBBCode: function(text) { - if(!this.settings['bbCode']) { - // If BBCode is disabled, just strip the text from BBCode tags: - return text.replace(/\[(?:\/)?(\w+)(?:=([^<>]*?))?\]/, ''); - } - // Remove the BBCode tags: - return text.replace( - /\[(\w+)(?:=([^<>]*?))?\](.+?)\[\/\1\]/gm, - this.replaceBBCodeCallback - ); - }, - - replaceBBCodeCallback: function(str, p1, p2, p3) { - // Only replace predefined BBCode tags: - if(!ajaxChat.inArray(ajaxChat.bbCodeTags, p1)) { - return str; - } - // Avoid invalid XHTML (unclosed tags): - if(ajaxChat.containsUnclosedTags(p3)) { - return str; - } - switch(p1) { - case 'color': - return ajaxChat.replaceBBCodeColor(p3, p2); - case 'url': - return ajaxChat.replaceBBCodeUrl(p3, p2); - case 'img': - return ajaxChat.replaceBBCodeImage(p3); - case 'quote': - return ajaxChat.replaceBBCodeQuote(p3, p2); - case 'code': - return ajaxChat.replaceBBCodeCode(p3); - case 'u': - return ajaxChat.replaceBBCodeUnderline(p3); - default: - return ajaxChat.replaceCustomBBCode(p1, p2, p3); - } - }, - - replaceBBCodeColor: function(content, attribute) { - if(this.settings['bbCodeColors']) { - // Only allow predefined color codes: - if(!attribute || !this.inArray(ajaxChat.colorCodes, attribute)) - return content; - return '' - + this.replaceBBCode(content) - + ''; - } - return content; - }, - - replaceBBCodeUrl: function(content, attribute) { - var url, regExpUrl; - if(attribute) - url = attribute.replace(/\s/gm, this.encodeText(' ')); - else - url = this.stripBBCodeTags(content.replace(/\s/gm, this.encodeText(' '))); - regExpUrl = new RegExp( - '^(?:(?:http)|(?:https)|(?:ftp)|(?:irc)):\\/\\/', - '' - ); - if(!url || !url.match(regExpUrl)) - return content; - return '' - + this.replaceBBCode(content) - + ''; - }, - - replaceBBCodeImage: function(url) { - var regExpUrl, maxWidth, maxHeight; - if(this.settings['bbCodeImages']) { - regExpUrl = new RegExp( - this.regExpMediaUrl, - '' - ); - if(!url || !url.match(regExpUrl)) - return url; - url = url.replace(/\s/gm, this.encodeText(' ')); - maxWidth = this.dom['chatList'].offsetWidth-50; - maxHeight = this.dom['chatList'].offsetHeight-50; - return '' - +''; - } - return url; - }, - - replaceBBCodeQuote: function(content, attribute) { - if(attribute) - return '' - + this.lang['cite'].replace(/%s/, attribute) - + '' - + this.replaceBBCode(content) - + ''; - return '' - + this.replaceBBCode(content) - + ''; - }, - - replaceBBCodeCode: function(content) { - // Replace vertical tabs and multiple spaces with two non-breaking space characters: - return '' - + this.replaceBBCode(content.replace(/\t|(?: )/gm, '  ')) - + ''; - }, - - replaceBBCodeUnderline: function(content) { - return '' - + this.replaceBBCode(content) - + ''; - }, - - replaceHyperLinks: function(text) { - var regExp; - if(!this.settings['hyperLinks']) { - return text; - } - regExp = new RegExp( - '(^|\\s|>)((?:(?:http)|(?:https)|(?:ftp)|(?:irc)):\\/\\/[^\\s<>]+)(<\\/a>)?', - 'gm' - ); - return text.replace( - regExp, - // Specifying an anonymous function as second parameter: - function(str, p1, p2, p3) { - // Do not replace URL's inside URL's: - if(p3) { - return str; - } - return p1 - + '' - + p2 - + ''; - } - ); - }, - - replaceLineBreaks: function(text) { - var regExp = new RegExp('\\n', 'g'); - - if(!this.settings['lineBreaks']) { - return text.replace(regExp, ' '); - } else { - return text.replace(regExp, '
    '); - } - }, - - replaceEmoticons: function(text) { - if(!this.settings['emoticons']) { - return text; - } - if(!arguments.callee.regExp) { - var regExpStr = '^(.*)('; - for(var i=0; i' - + ajaxChat.replaceEmoticons(p3); - } - return str; - }, - - getActiveStyle: function() { - var cookie = this.readCookie(this.sessionName + '_style'); - var style = cookie ? cookie : this.getPreferredStyleSheet(); - return style; - }, - - initStyle: function() { - this.styleInitiated = true; - this.setActiveStyleSheet(this.getActiveStyle()); - }, - - persistStyle: function() { - if(this.styleInitiated) { - this.createCookie(this.sessionName + '_style', this.getActiveStyleSheet(), this.cookieExpiration); - } - }, - - setSelectedStyle: function() { - if(this.dom['styleSelection']) { - var style = this.getActiveStyle(); - var styleOptions = this.dom['styleSelection'].getElementsByTagName('option'); - for(var i=0; imenuItem ) - // encodedUserName contains the userName ready to be used for javascript links - // userID is only available for the online users menu - not for the inline user menu - // use (encodedUserName == this.encodedUserName) to check for the current user - getCustomUserMenuItems: function(encodedUserName, userID) { - return ''; - }, - - // Override to parse custom input messages: - // Return replaced text - // text contains the whole message - parseCustomInputMessage: function(text) { - return text; - }, - - // Override to parse custom input commands: - // Return parsed text - // text contains the whole message, textParts the message split up as words array - parseCustomInputCommand: function(text, textParts) { - return text; - }, - - // Override to replace custom text: - // Return replaced text - // text contains the whole message - replaceCustomText: function(text) { - return text; - }, - - // Override to replace custom commands: - // Return replaced text for custom commands - // text contains the whole message, textParts the message split up as words array - replaceCustomCommands: function(text, textParts) { - return text; - }, - - // Override to replace custom BBCodes: - // Return replaced text and call replaceBBCode recursively for the content text - // tag contains the BBCode tag, attribute the BBCode attribute and content the content text - // This method is only called for BBCode tags which are in the bbCodeTags list - replaceCustomBBCode: function(tag, attribute, content) { - return '<' + tag + '>' + this.replaceBBCode(content) + ''; - }, - - // Override to perform custom actions on new messages: - // Return true if message is to be added to the chatList, else false - customOnNewMessage: function(dateObject, userID, userName, userRole, messageID, messageText, channelID, ip) { - return true; - } - -}; \ No newline at end of file diff --git a/library/ajaxchat/chat/js/config.js b/library/ajaxchat/chat/js/config.js deleted file mode 100644 index a4d3c3f75..000000000 --- a/library/ajaxchat/chat/js/config.js +++ /dev/null @@ -1,261 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat config parameters: -var ajaxChatConfig = { - - // The channelID of the channel to enter on login (the loginChannelName is used if set to null): - loginChannelID: null, - // The channelName of the channel to enter on login (the default channel is used if set to null): - loginChannelName: null, - - // The time in ms between update calls to retrieve new chat messages: - timerRate: 2000, - - // The URL to retrieve the XML chat messages (must at least contain one parameter): - ajaxURL: './?ajax=true', - // The base URL of the chat directory, used to retrieve media files (images, sound files, etc.): - baseURL: './', - - // A regular expression for allowed source URL's for media content (e.g. images displayed inline); - regExpMediaUrl: '^((http)|(https)):\\/\\/', - - // If set to false the chat update is delayed until the event defined in ajaxChat.setStartChatHandler(): - startChatOnLoad: true, - - // Defines the IDs of DOM nodes accessed by the chat: - domIDs: { - // The ID of the chat messages list: - chatList: 'chatList', - // The ID of the online users list: - onlineList: 'onlineList', - // The ID of the message text input field: - inputField: 'inputField', - // The ID of the message text length counter: - messageLengthCounter: 'messageLengthCounter', - // The ID of the channel selection: - channelSelection: 'channelSelection', - // The ID of the style selection: - styleSelection: 'styleSelection', - // The ID of the emoticons container: - emoticonsContainer: 'emoticonsContainer', - // The ID of the color codes container: - colorCodesContainer: 'colorCodesContainer', - // The ID of the flash interface container: - flashInterfaceContainer: 'flashInterfaceContainer' - }, - - // Defines the settings which can be modified by users: - settings: { - // Defines if BBCode tags are replaced with the associated HTML code tags: - bbCode: true, - // Defines if image BBCode is replaced with the associated image HTML code: - bbCodeImages: true, - // Defines if color BBCode is replaced with the associated color HTML code: - bbCodeColors: true, - // Defines if hyperlinks are made clickable: - hyperLinks: true, - // Defines if line breaks are enabled: - lineBreaks: true, - // Defines if emoticon codes are replaced with their associated images: - emoticons: true, - - // Defines if the focus is automatically set to the input field on chat load or channel switch: - autoFocus: true, - // Defines if the chat list scrolls automatically to display the latest messages: - autoScroll: true, - // The maximum count of messages displayed in the chat list (will be ignored if set to 0): - maxMessages: 0, - - // Defines if long words are wrapped to avoid vertical scrolling: - wordWrap: true, - // Defines the maximum length before a word gets wrapped: - maxWordLength: 32, - - // Defines the format of the date and time displayed for each chat message: - dateFormat: '(%H:%i:%s)', - - // Defines if font colors persist without the need to assign them to each message: - persistFontColor: false, - // The default font color, uses the page default font color if set to null: - fontColor: null, - - // Defines if sounds are played: - audio: true, - // Defines the sound volume (0.0 = mute, 1.0 = max): - audioVolume: 1.0, - - // Defines the sound that is played when normal messages are reveived: - soundReceive: 'sound_1', - // Defines the sound that is played on sending normal messages: - soundSend: 'sound_2', - // Defines the sound that is played on channel enter or login: - soundEnter: 'sound_3', - // Defines the sound that is played on channel leave or logout: - soundLeave: 'sound_4', - // Defines the sound that is played on chatBot messages: - soundChatBot: 'sound_5', - // Defines the sound that is played on error messages: - soundError: 'sound_6', - - // Defines if the document title blinks on new messages: - blink: true, - // Defines the blink interval in ms: - blinkInterval: 500, - // Defines the number of blink intervals: - blinkIntervalNumber: 10 - }, - - // Defines a list of settings which are not to be stored in a session cookie: - nonPersistentSettings: [], - - // Defines the list of allowed BBCodes: - bbCodeTags:[ - 'b', - 'i', - 'u', - 'quote', - 'code', - 'color', - 'url', - 'img' - ], - - // Defines the list of allowed color codes: - colorCodes: [ - 'gray', - 'silver', - 'white', - 'yellow', - 'orange', - 'red', - 'fuchsia', - 'purple', - 'navy', - 'blue', - 'aqua', - 'teal', - 'green', - 'lime', - 'olive', - 'maroon', - 'black' - ], - - // Defines the list of allowed emoticon codes: - emoticonCodes: [ - ':)', - ':(', - ';)', - ':P', - ':D', - ':|', - ':O', - ':?', - '8)', - '8o', - 'B)', - ':-)', - ':-(', - ':-*', - 'O:-D', - '>:-D', - ':o)', - ':idea:', - ':important:', - ':help:', - ':error:', - ':warning:', - ':favorite:' - ], - - // Defines the list of emoticon files associated with the emoticon codes: - emoticonFiles: [ - 'smile.png', - 'sad.png', - 'wink.png', - 'razz.png', - 'grin.png', - 'plain.png', - 'surprise.png', - 'confused.png', - 'glasses.png', - 'eek.png', - 'cool.png', - 'smile-big.png', - 'crying.png', - 'kiss.png', - 'angel.png', - 'devilish.png', - 'monkey.png', - 'idea.png', - 'important.png', - 'help.png', - 'error.png', - 'warning.png', - 'favorite.png' - ], - - // Defines the available sounds loaded on chat start: - soundFiles: { - sound_1: 'sound_1.mp3', - sound_2: 'sound_2.mp3', - sound_3: 'sound_3.mp3', - sound_4: 'sound_4.mp3', - sound_5: 'sound_5.mp3', - sound_6: 'sound_6.mp3' - }, - - - // Once users have been logged in, the following values are overridden by those in config.php. - // You should set these to be the same as the ones in config.php to avoid confusion. - - // Session identification, used for style and setting cookies: - sessionName: 'ajax_chat', - - // The time in days until the style and setting cookies expire: - cookieExpiration: 365, - // The path of the cookies, '/' allows to read the cookies from all directories: - cookiePath: '/', - // The domain of the cookies, defaults to the hostname of the server if set to null: - cookieDomain: null, - // If enabled, cookies must be sent over secure (SSL/TLS encrypted) connections: - cookieSecure: null, - - // The name of the chat bot: - chatBotName: 'ChatBot', - // The userID of the chat bot: - chatBotID: 2147483647, - - // Allow/Disallow registered users to delete their own messages: - allowUserMessageDelete: true, - - // Minutes until a user is declared inactive (last status update) - the minimum is 2 minutes: - inactiveTimeout: 2, - - // UserID plus this value are private channels (this is also the max userID and max channelID): - privateChannelDiff: 500000000, - // UserID plus this value are used for private messages: - privateMessageDiff: 1000000000, - - // Defines if login/logout and channel enter/leave are displayed: - showChannelMessages: true, - - // Max messageText length: - messageTextMaxLength: 1040, - - // Defines if the socket server is enabled: - socketServerEnabled: false, - // Defines the hostname of the socket server used to connect from client side: - socketServerHost: 'localhost', - // Defines the port of the socket server: - socketServerPort: 1935, - // This ID can be used to distinguish between different chat installations using the same socket server: - socketServerChatID: 0 - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/custom.js b/library/ajaxchat/chat/js/custom.js deleted file mode 100644 index 6d801534e..000000000 --- a/library/ajaxchat/chat/js/custom.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Overriding client side functionality: - -/* -// Example - Overriding the replaceCustomCommands method: -ajaxChat.replaceCustomCommands = function(text, textParts) { - return text; -} - */ \ No newline at end of file diff --git a/library/ajaxchat/chat/js/index.html b/library/ajaxchat/chat/js/index.html deleted file mode 100644 index e69de29bb..000000000 diff --git a/library/ajaxchat/chat/js/lang/ar.js b/library/ajaxchat/chat/js/lang/ar.js deleted file mode 100644 index 7fd18db10..000000000 --- a/library/ajaxchat/chat/js/lang/ar.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author pepotiger (www.dd4bb.com) - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s دخول.', - logout: '%s خروج.', - logoutTimeout: '%s تم تسجيل الخروج (Timeout).', - logoutIP: '%s تم تسجيل الخروج (Invalid IP address).', - logoutKicked: '%s تم تسجيل الخروج (Kicked).', - channelEnter: '%s دخول المحطة.', - channelLeave: '%s خروج.', - privmsg: '(رسالة خاصة)', - privmsgto: '(رسالة خاصة الى %s)', - invite: '%s يدعوك الى %s.', - inviteto: 'دعوتك لـ %s للإنضمام الى %s تم ارسالها.', - uninvite: '%s الغاء دعوتك من %s.', - uninviteto: 'الغاء الدعوة من %s للـ %s تم ارسالها.', - queryOpen: 'تم فتح نافذة خاصة مع %s.', - queryClose: 'النافذة الخاصة مع %s تم غلقها.', - ignoreAdded: 'اضيف %s الى قائمة التجاهل.', - ignoreRemoved: 'حذف %s من قائمة التجاهل.', - ignoreList: 'اعضاء متجاهلين:', - ignoreListEmpty: 'لا يوجد اعضاء تم تجاهلهم.', - who: 'المستخدمين المتواجدين:', - whoChannel: 'Online Users in channel %s:', - whoEmpty: 'لا يوجد اعضاء بهذه المحطة.', - list: 'المحطات المتوفرة:', - bans: 'اعضاء محجوبين:', - bansEmpty: 'لا يوجد اعضاء محجوبين.', - unban: 'حظر العضو %s تم الغائه.', - whois: 'الأى بى للعضو %s:', - whereis: 'User %s is in channel %s.', - roll: '%s rolls %s and gets %s.', - nick: '%s is now known as %s.', - toggleUserMenu: 'Toggle user menu for %s', - userMenuLogout: 'Logout', - userMenuWho: 'List online users', - userMenuList: 'List available channels', - userMenuAction: 'Describe action', - userMenuRoll: 'Roll dice', - userMenuNick: 'Change username', - userMenuEnterPrivateRoom: 'Enter private room', - userMenuSendPrivateMessage: 'Send private message', - userMenuDescribe: 'Send private action', - userMenuOpenPrivateChannel: 'Open private channel', - userMenuClosePrivateChannel: 'Close private channel', - userMenuInvite: 'Invite', - userMenuUninvite: 'Uninvite', - userMenuIgnore: 'Ignore/Accept', - userMenuIgnoreList: 'List ignored users', - userMenuWhereis: 'Display channel', - userMenuKick: 'Kick/Ban', - userMenuBans: 'List banned users', - userMenuWhois: 'Display IP', - unbanUser: 'Revoke ban of user %s', - joinChannel: 'الإنضمام للمحطة %s', - cite: '%s كتب:', - urlDialog: 'من فضلك ادخل الرابط (URL) لعنوان الأنترنت:', - deleteMessage: 'Delete this chat message', - deleteMessageConfirm: 'Really delete the selected chat message?', - errorCookiesRequired: 'الكوكييز مطلوبة لهذا الشات.', - errorUserNameNotFound: 'خطأ: العضو %s لم يتم العثور عليه.', - errorMissingText: 'خطأ: نص الرسالة مفقود.', - errorMissingUserName: 'خطأ: اسم المستخدم مفقود.', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Username already in use.', - errorMissingChannelName: 'خطأ: اسم المحطة مفقود.', - errorInvalidChannelName: 'خطأ: اسم المحطة غير صحيح: %s', - errorPrivateMessageNotAllowed: 'خطأ: غير مسموح بالرسائل الخاصة.', - errorInviteNotAllowed: 'خطأ: غير مسموح بدعوة الأخرين.', - errorUninviteNotAllowed: 'خطأ: غير مسموح بإلغاء دعوات الأخرين.', - errorNoOpenQuery: 'خطأ: لم يتم فتح اى نوافذ خاصة.', - errorKickNotAllowed: 'خطأ: غير مسموح لك بطرد احد %s.', - errorCommandNotAllowed: 'خطأ: غير مسموح بالأمر: %s', - errorUnknownCommand: 'خطأ: امر غير معروف: %s', - errorMaxMessageRate: 'Error: You exceeded the maximum number of messages per minute.', - errorConnectionTimeout: 'خطأ: وقت الأتصال استنفذ. من فضلك حاول مرة اخرى.', - errorConnectionStatus: 'خطأ: حالة الأتصال: %s', - errorSoundIO: 'Error: Failed to load sound file (Flash IO Error).', - errorSocketIO: 'Error: Connection to socket server failed (Flash IO Error).', - errorSocketSecurity: 'Error: Connection to socket server failed (Flash Security Error).', - errorDOMSyntax: 'Error: Invalid DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/bg.js b/library/ajaxchat/chat/js/lang/bg.js deleted file mode 100644 index c1e1886ad..000000000 --- a/library/ajaxchat/chat/js/lang/bg.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Borislav Manolov - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s влезе в чата.', - logout: '%s излезе от чата.', - logoutTimeout: '%s излезе автоматично от чата (Изтичане на времето).', - logoutIP: '%s излезе автоматично от чата (Грешен айпи адрес).', - logoutKicked: '%s излезе автоматично от чата (Изритване).', - channelEnter: '%s влезе в канала.', - channelLeave: '%s напусна канала.', - privmsg: '(прошепва)', - privmsgto: '(прошепва на %s)', - invite: '%s ви кани да се присъедините към %s.', - inviteto: 'Поканата ви към %s да се присъедини към канала %s беше изпратена.', - uninvite: '%s отмени поканата ви за канала %s.', - uninviteto: 'Отмяната на поканата ви към %s за канала %s беше изпратена.', - queryOpen: 'Отворен е личен канал за %s.', - queryClose: 'Затворен е личен канал за %s.', - ignoreAdded: '%s беше добавен към списъка с пренебрегнатите.', - ignoreRemoved: '%s беше изваден от списъка с пренебрегнатите.', - ignoreList: 'Пренебрегнати потребители:', - ignoreListEmpty: 'Няма пренебрегнати потребители.', - who: 'Потребители на линия:', - whoChannel: 'Потребители на линия в канала %s:', - whoEmpty: 'В дадения канал няма потребители на линия.', - list: 'Налични канали:', - bans: 'Изгонени потребители:', - bansEmpty: 'Няма изгонени потребители.', - unban: 'Изгонването на потребителя %s е отменено.', - whois: 'Потребител %s — айпи адрес:', - whereis: 'Потребителят %s е в канала %s.', - roll: '%s хвърли %s и получи %s.', - nick: '%s вече се казва %s.', - toggleUserMenu: 'Показване/скриване на потребителското меню за %s', - userMenuLogout: 'Изход', - userMenuWho: 'Потребители на линия', - userMenuList: 'Налични канали', - userMenuAction: 'Описване на действие', - userMenuRoll: 'Хвърляне на зар', - userMenuNick: 'Смяна на името', - userMenuEnterPrivateRoom: 'Влизане в личната стая', - userMenuSendPrivateMessage: 'Изпращане на лично съобщение', - userMenuDescribe: 'Изпращане на лично действие', - userMenuOpenPrivateChannel: 'Отваряне на личен канал', - userMenuClosePrivateChannel: 'Затваряне на личен канал', - userMenuInvite: 'Покана', - userMenuUninvite: 'Отмяна на покана', - userMenuIgnore: 'Пренебрегване/Приемане', - userMenuIgnoreList: 'Пренебрегнати потребители', - userMenuWhereis: 'Преглед на канал', - userMenuKick: 'Изритване/Изгонване', - userMenuBans: 'Изгонени потребители', - userMenuWhois: 'Преглед на айпи адреса', - unbanUser: 'Отмяна на изгонването на %s', - joinChannel: 'Присъединяване към канала %s', - cite: '%s каза:', - urlDialog: 'Моля, въведете адреса (URL) на страницата:', - deleteMessage: 'Изтриване на съобщението', - deleteMessageConfirm: 'Наистина ли желаете да изтриете съобщението?', - errorCookiesRequired: 'За чата се изискват бисквитки (cookies).', - errorUserNameNotFound: 'Грешка: Не е намерен потребител %s.', - errorMissingText: 'Грешка: Липсва текст на съобщението.', - errorMissingUserName: 'Грешка: Липсва потребителско име.', - errorInvalidUserName: 'Грешка: Невалидно потребителско име.', - errorUserNameInUse: 'Грешка: Това потребителско име вече се използва.', - errorMissingChannelName: 'Грешка: Липсва име на канал.', - errorInvalidChannelName: 'Грешка: Невалидно име на канал: %s', - errorPrivateMessageNotAllowed: 'Грешка: Личните съобщения не са позволени.', - errorInviteNotAllowed: 'Грешка: Не ви е позволено да каните потребители в този канал.', - errorUninviteNotAllowed: 'Грешка: Не ви е позволено да отменяте покани в този канал.', - errorNoOpenQuery: 'Грешка: Не е отворен личен канал.', - errorKickNotAllowed: 'Грешка: Не ви е позволено да изритвате %s.', - errorCommandNotAllowed: 'Грешка: Командата не е позволена: %s', - errorUnknownCommand: 'Грешка: Непозната команда: %s', - errorMaxMessageRate: 'Грешка: Превишихте допустимия брой съобщения в минута.', - errorConnectionTimeout: 'Грешка: Изтичане на времето за връзка. Моля, опитайте отново!', - errorConnectionStatus: 'Грешка: Състояние на връзката: %s', - errorSoundIO: 'Грешка: Неуспешно зареждане на звуковия файл (Входно-изходна грешка при Флаш).', - errorSocketIO: 'Грешка: Неуспешна връзка към сокетния сървър (Входно-изходна грешка при Флаш).', - errorSocketSecurity: 'Грешка: Неуспешна връзка към сокетния сървър (Грешка в сигурността при Флаш).', - errorDOMSyntax: 'Грешка: Неправилен синтаксис при DOM (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/ca.js b/library/ajaxchat/chat/js/lang/ca.js deleted file mode 100644 index 83eab4df5..000000000 --- a/library/ajaxchat/chat/js/lang/ca.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Manu Quintans - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - login: '%s ha entrat al xat.', - logout: '%s ha sortit del xat.', - logoutTimeout: '%s s\'ha desconnectat (Temps d\'espera esgotat).', - logoutIP: '%s s\'ha desconnectat (Adreça IP no vàlida).', - logoutKicked: '%s s\'ha desconnectat (Patejat).', - channelEnter: '%s entra al canal.', - channelLeave: '%s se\'n va del canal.', - privmsg: '(xiuxiueigs)', - privmsgto: '(xiuxiueigs a %s)', - invite: '%s et convida a unir-te a %s.', - inviteto: 'El teu convit a %s per a unir-se a %s ha estat enviat.', - uninvite: '%s no et convida a %s.', - uninviteto: 'El teu no convit a %s per al canal %s ha estat enviat', - queryOpen: 'Canal privat obert %s.', - queryClose: 'Canal privat tancat %s tancat', - ignoreAdded: 'Agregat %s a la llista de usuaris ignorats.', - ignoreRemoved: 'Eliminant %s de la llista de usuaris ignorats.', - ignoreList: 'Usuaris ignorats', - ignoreListEmpty: 'Llista d\'usuaris no ignorats.', - who: 'Usuaris connectats:', - whoChannel: 'Usuaris en línia al canal %s:', - whoEmpty: 'No hi ha usuaris connectats ara.', - list: 'Canals disponibles:', - bans: 'Usuaris Bannejats:', - bansEmpty: 'No s\'han registrat usuaris bannejats.', - unban: 'Ban de l\'usuari %s revocat.', - whois: 'Usuari %s - Adreça IP:', - whereis: 'L\'usuari %s és al canal %s.', - roll: '%s tirà els daus %s i aconsegueix %s.', - nick: '%s es fa dir ara %s.', - toggleUserMenu: 'Tanca menu de l\'usuari per a %s', - userMenuLogout: 'Tancar sessió', - userMenuWho: 'Llista d\'usuaris en línia', - userMenuList: 'Llista de canals disponibles', - userMenuAction: 'Descriure una acció', - userMenuRoll: 'Tirar daus', - userMenuNick: 'Canviar el nom de l\'usuari', - userMenuEnterPrivateRoom: 'Entrar en un lloc privat', - userMenuSendPrivateMessage: 'Enviar un missatge privat', - userMenuDescribe: 'Enviar una acció privada', - userMenuOpenPrivateChannel: 'Obrir un canal privat', - userMenuClosePrivateChannel: 'Tancar un canal privat', - userMenuInvite: 'Convidar', - userMenuUninvite: 'Desconvidar', - userMenuIgnore: 'Ignorar/Acceptar', - userMenuIgnoreList: 'Llista d\'usuaris ignorats', - userMenuWhereis: 'Visualitzar el canal', - userMenuKick: 'Pateig/Banneig', - userMenuBans: 'Llista d\'usuaris banejats', - userMenuWhois: 'Mostrar IP', - unbanUser: 'Cancel·lar banejament de usuari %s', - joinChannel: 'Unir-se al canal %s', - cite: '%s va dir:', - urlDialog: 'Si us plau, introdueix la adreça (URL) de la pàgina web:', - deleteMessage: 'Esborra aquest missatge', - deleteMessageConfirm: 'Realment vols esborrar el missatge seleccionat?', - errorCookiesRequired: 'Les galetes són necessaries per aquest xat .', - errorUserNameNotFound: 'Error: usuari %s no s\'ha trobat.', - errorMissingText: 'Error: Missatge perdut.', - errorMissingUserName: 'Error: Usuari no trobat.', - errorInvalidUserName: 'Error: Nom d\'usuari no vàlid.', - errorUserNameInUse: 'Error: El nom d\'usuari ja està en ús.', - errorMissingChannelName: 'Error: No es troba el canal.', - errorInvalidChannelName: 'Error: nombre del canal invàlid: %s', - errorPrivateMessageNotAllowed: 'Error: Els missatges privats no t\'estan permesos.', - errorInviteNotAllowed: 'Error: No t\'està permés convidar a ningú a aquest canal.', - errorUninviteNotAllowed: 'Error: No t\'està permés desconvidar ningú d\'aquest canal.', - errorNoOpenQuery: 'Error: Cap canal privat obert.', - errorKickNotAllowed: 'Error: No t\'està permés expulsar a ningú %s.', - errorCommandNotAllowed: 'Error: Ordre desconeguda: %s', - errorUnknownCommand: 'Error: Ordre desconeguda: %s', - errorMaxMessageRate: 'Error: has excedit el màxim nombre de missatges per minut.', - errorConnectionTimeout: 'Error: Temps d\'espera de la connexió expirat. Reintenta-ho de nou.', - errorConnectionStatus: 'Error: Estat de la connexió: %s', - errorSoundIO: 'Error: No ha estat possible carregar el so (Flash IO Error).', - errorSocketIO: 'Error: La connexió al servidor ha fallat (Flash IO Error).', - errorSocketSecurity: 'Error: La connexió al servidor ha fallat (Flash Security Error).', - errorDOMSyntax: 'Error: Sintaxi DOM invàlida (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/cy.js b/library/ajaxchat/chat/js/lang/cy.js deleted file mode 100644 index fd63aea95..000000000 --- a/library/ajaxchat/chat/js/lang/cy.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - * @translation Alan Davies, ardavies@tiscali.co.uk - * @language: Welsh (Cymraeg) - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: 'Mae %s wedi mewngofnodi.', - logout: 'Allgofnododd %s.', - logoutTimeout: 'Allgofnodwyd %s (Terfyn amser).', - logoutIP: 'Allgofnodwyd %s (Cyfeiriad IP annilys).', - logoutKicked: 'Allgofnodwyd %s (Cic).', - channelEnter: 'Mae %s wedi ymuno \'r sianel.', - channelLeave: 'Mae %s wedi gadael y sianel.', - privmsg: '(sibrwd)', - privmsgto: '(sibrwd i %s)', - invite: 'Mae %s yn eich gwahodd i ymuno %s.', - inviteto: 'Mae eich gwahoddiad i %s i ymuno sianel %s wedi\'i anfon.', - uninvite: 'Mae %s yn tynnu\'r gwahoddiad i sianel %s yn l.', - uninviteto: 'Mae\'r neges yn tynnu\'r gwahoddiad i sianel %s yn l wedi\'i hanfon.', - queryOpen: 'Agorwyd sianel breifat i %s.', - queryClose: 'Ceuwyd sianel breifat i %s.', - ignoreAdded: 'Ychwanegwyd %s i\'r anwybyddion.', - ignoreRemoved: 'Tynnwyd %s bant o\'r anwybyddion.', - ignoreList: 'Anwybyddion:', - ignoreListEmpty: 'Dim anwybyddion wedi\'u rhestru.', - who: 'Defnyddwyr Ar-lein:', - whoChannel: 'Defnyddwyr Ar-lein ar sianel %s:', - whoEmpty: 'Dim defnyddwyr ar-lein ar y sianel hon.', - list: 'Sianeli ar gael:', - bans: 'Gwaharddogion:', - bansEmpty: 'Dim gwaharddogion wedi\'u rhestru.', - unban: 'Diddymwyd gwaharddiad %s.', - whois: 'Defnyddiwr %s - cyfeiriad IP:', - whereis: 'Mae defnyddiwr %s yn y sianel %s.', - roll: 'Mae %s yn rholio %s a chael %s.', - nick: 'Enw %s nawr yw %s.', - toggleUserMenu: 'Togl dewislen defnyddiwr ar gyfer %s', - userMenuLogout: 'Allgofnodi', - userMenuWho: 'Rhestr ddefnyddwyr ar-lein', - userMenuList: 'Rhestr sianeli ar gael', - userMenuAction: 'Disgrifio gweithred', - userMenuRoll: 'Rholio dis', - userMenuNick: 'Newid enw', - userMenuEnterPrivateRoom: 'Myned i mewn i ystafell breifat', - userMenuSendPrivateMessage: 'Anfon neges breifat', - userMenuDescribe: 'Anfon gweithred breifat', - userMenuOpenPrivateChannel: 'Agor sianel breifat', - userMenuClosePrivateChannel: 'Cau sianel breifat', - userMenuInvite: 'Gwahodd', - userMenuUninvite: 'Tynnu gwahoddiad', - userMenuIgnore: 'Anwybyddu/Derbyn', - userMenuIgnoreList: 'Rhestr anwybyddion', - userMenuWhereis: 'Dangos sianel', - userMenuKick: 'Cic/Gwahardd', - userMenuBans: 'Rhestr waharddogion', - userMenuWhois: 'Dangos IP', - unbanUser: 'Diddynu gwaharddiad %s', - joinChannel: 'Ymuno sianel %s', - cite: 'Dywedodd %s:', - urlDialog: 'Rhowch gyfeiriad (URL) y wefan:', - deleteMessage: 'Dilwch y neges hon', - deleteMessageConfirm: 'Ydych wir am ddileu\'r neges hon?', - errorCookiesRequired: 'Mae nagen cwcis ar gyfer y sgwrs hon.', - errorUserNameNotFound: 'Gwall: Heb ffeindio %s.', - errorMissingText: 'Gwall: testun neges ar goll.', - errorMissingUserName: 'Gwall: Enw ar goll.', - errorInvalidUserName: 'Gwall: Enw annilys.', - errorUserNameInUse: 'Gwall: Enw\'n bodoli eisoes.', - errorMissingChannelName: 'Gwall: Enw sianel ar goll.', - errorInvalidChannelName: 'Gwall: Enw sianel annilys: %s', - errorPrivateMessageNotAllowed: 'Gwall: Ni chaniateir negesuon preifat.', - errorInviteNotAllowed: 'Gwall: Nid oes hawl gwahodd rhywun i\'r sianel hon.', - errorUninviteNotAllowed: 'Gwall: Nid oes hawl tynnu gwahaoddiad yn l o\'r sianel hon.', - errorNoOpenQuery: 'Gwall: Dim sianel breifat ar agor.', - errorKickNotAllowed: 'Gwall: Nid oes hawl cicio %s.', - errorCommandNotAllowed: 'Gwall: Nid oes hawl defnyddio\'r gorchymyn: %s', - errorUnknownCommand: 'Gwall: Gorchymyn anhysbys: %s', - errorMaxMessageRate: 'Gwall: Rydych wedi myn dros y nifer o negeseuon sydd hawl gennych anfon pob munud.', - errorConnectionTimeout: 'Gwall: Terfyn amser cysylltiad. Ceisiwch eto.', - errorConnectionStatus: 'Gwall: Statws cysylltiad: %s', - errorSoundIO: 'Gwall: Methu llwytho ffeil sain (Gwall Flash IO).', - errorSocketIO: 'Gwall: Cysylltiad i\'r gweinyddwr soced wedi methu (Gwall Flash IO).', - errorSocketSecurity: 'Gwall: Cysylltiad i\'r gweinyddwr soced wedi methu (Gwall Diogelwch Flash).', - errorDOMSyntax: 'Gwall: Cystrawen DOM Annilys (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/cz.js b/library/ajaxchat/chat/js/lang/cz.js deleted file mode 100644 index 4a0a7b8b2..000000000 --- a/library/ajaxchat/chat/js/lang/cz.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s se přihlásil.', - logout: '%s se odhlásil.', - logoutTimeout: '%s byl odhlášen (překročen timeout).', - logoutIP: '%s byl odhlášen (neplatná IP adresa).', - logoutKicked: '%s byl vyhozen.', - channelEnter: '%s vstoupil do místnosti.', - channelLeave: '%s odešel z místnosti.', - privmsg: '(šeptá)', - privmsgto: '(šeptá %s)', - invite: '%s tě zve do místnosti %s.', - inviteto: 'Tvoje pozvání %s do místnosti %s bylo odesláno.', - uninvite: '%s odmítl pozvání do pokoje %s.', - uninviteto: 'Tvoje pozvání %s do pokoje %s bylo odmítnuto.', - queryOpen: 'Soukromý rozhovor s %s byl započat.', - queryClose: 'Soukromý rozhovor s %s byl ukončen.', - ignoreAdded: '%s byl přidán do seznamu ignorovaných.', - ignoreRemoved: '%s byl odebrán ze seznamu ignorovaných.', - ignoreList: 'Seznam ignorovaných:', - ignoreListEmpty: 'Seznam je prázdný...', - who: 'Přihlášení uživatelé:', - whoChannel: 'Uživatelé, přihlášení v místnosti %s:', - whoEmpty: 'Tady nikdo není...', - list: 'Dostupné místnosti:', - bans: 'Vyhození uživatelé:', - bansEmpty: 'Seznam je prázdný...', - unban: 'Uživatel %s byl omilostněn.', - whois: 'Uživatel %s - IP adresa:', - whereis: 'Uživatel %s je v místnosti %s.', - roll: '%s hodil %s a vyhrává %s.', - nick: '%s se nyní jmenuje %s.', - toggleUserMenu: 'Vyvolej/zhasni uživatelskou nabídku pro %s', - userMenuLogout: 'Odhlásit', - userMenuWho: 'Seznam přihlášených uživatelů', - userMenuList: 'Seznam místností', - userMenuAction: 'Co právě dělám', - userMenuRoll: 'Hodit kostkou', - userMenuNick: 'Změnit jméno uživatele', - userMenuEnterPrivateRoom: 'Vstoupit do soukromé místnosti', - userMenuSendPrivateMessage: 'Poslat soukromou zprávu', - userMenuDescribe: 'Co právě dělám (soukromě)', - userMenuOpenPrivateChannel: 'Zahájit soukromý rozhovor', - userMenuClosePrivateChannel: 'Ukončit soukromý rozhovor', - userMenuInvite: 'Pozvat', - userMenuUninvite: 'Odmítnout pozvání', - userMenuIgnore: 'Ignorovat/Přijmout', - userMenuIgnoreList: 'Seznam ignorovaných uživatelů', - userMenuWhereis: 'Zobrazit místnost', - userMenuKick: 'Vyhodit/Zablokovat', - userMenuBans: 'Seznam vyhozených uživatelů', - userMenuWhois: 'Zobrazit IP adresu', - unbanUser: 'Omilostnit uživatele %s', - joinChannel: 'Vstoupit do místnosti %s', - cite: '%s prohlásil:', - urlDialog: 'Zadej, prosím adresu (URL) stránky:', - deleteMessage: 'Vymazat zprávu', - deleteMessageConfirm: 'Opravdu vymazat tuto zprávu ?', - errorCookiesRequired: 'Pro tento chat je nutno povolit Cookies.', - errorUserNameNotFound: 'Chyba: Uživatel %s nebyl nalezen.', - errorMissingText: 'Chyba: Schází text zprávy.', - errorMissingUserName: 'Chyba: Schází jméno uživatele.', - errorInvalidUserName: 'Chyba: Neplatné jméno uživatele.', - errorUserNameInUse: 'Chyba: Jméno uživatele už je používáno.', - errorMissingChannelName: 'Chyba: Schází název místnosti.', - errorInvalidChannelName: 'Chyba: Neplatný název místnosti: %s', - errorPrivateMessageNotAllowed: 'Chyba: Soukromé zprávy nejsou povoleny.', - errorInviteNotAllowed: 'Chyba: Nejsi oprávněn zvát do této místnosti.', - errorUninviteNotAllowed: 'Chyba: Nejsi oprávněn odmítat pozvání z této místnosti.', - errorNoOpenQuery: 'Chyba: Nebyl zahájen žádný soukromý rozhovor.', - errorKickNotAllowed: 'Chyba: Nemáš právo vyhodit %s.', - errorCommandNotAllowed: 'Chyba: Tento příkaz není povolen: %s', - errorUnknownCommand: 'Chyba: Neznámý příkaz: %s', - errorMaxMessageRate: 'Chyba: Překročil jsi maximální počet zpráv za minutu.', - errorConnectionTimeout: 'Chyba: Čas připojení vypršel. Připoj se znovu.', - errorConnectionStatus: 'Chyba: Stav připojení: %s', - errorSoundIO: 'Chyba: Nepodařilo se přehrát zvukový soubor (Flash IO Error).', - errorSocketIO: 'Chyba: Nepodařilo se připojení k serveru (Flash IO Error).', - errorSocketSecurity: 'Chyba: Připojení k serveru selhalo (Flash Security Error).', - errorDOMSyntax: 'Chyba: Neplatná syntaxe DOM (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/da.js b/library/ajaxchat/chat/js/lang/da.js deleted file mode 100644 index c6e537aad..000000000 --- a/library/ajaxchat/chat/js/lang/da.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s Logger dig ind.', - logout: '%s Logger dig ud.', - logoutTimeout: '%s Er logget ud (Timeout).', - logoutIP: '%s er logget ud (ugyldig IP addresse).', - logoutKicked: '%s er logget ud (Kicked).', - channelEnter: '%s kom ind i kanalen.', - channelLeave: '%s forlod kanalen.', - privmsg: '(hvisker)', - privmsgto: '(hvisker til %s)', - invite: '%s inviterede dig til at joine %s.', - inviteto: 'Din invitation %s til at joine kanal %s er blevet sendt.', - uninvite: '%s Du er nu ikke længere inviteret til %s.', - uninviteto: 'Anullere invitation for %s på kanal %s.', - queryOpen: 'Privat kanal åben for %s.', - queryClose: 'Privat kanal for %s lukket.', - ignoreAdded: 'Tilføjede %s til ignorerings listen.', - ignoreRemoved: 'fjernede %s fra ignorerings listen.', - ignoreList: 'Ignorerede brugere:', - ignoreListEmpty: 'Ingen ignorerede brugere.', - who: 'Online brugere:', - whoChannel: 'Online brugere på kanal %s:', - whoEmpty: 'ingen online brugere på den angivne kanal.', - list: 'Tilgængelige kanaler:', - bans: 'Banlyste brugere:', - bansEmpty: 'Ingen banlyste brugere på listen.', - unban: 'Banlysning af %s ophævet.', - whois: 'bruger %s - IP addresse:', - whereis: 'brugeren %s er på kanal %s.', - roll: '%s Kastede terninger %s og fik %s.', - nick: '%s Er nu kendt som %s.', - toggleUserMenu: 'skift bruger menu for %s', - userMenuLogout: 'Log ud', - userMenuWho: 'Vis online brugere', - userMenuList: 'Vis tilgængelige kanaler', - userMenuAction: 'Beskrivende handling', - userMenuRoll: 'Kast terninger', - userMenuNick: 'Skift brugernavn', - userMenuEnterPrivateRoom: 'Gå ind i privat rum.', - userMenuSendPrivateMessage: 'Send privat besked', - userMenuDescribe: 'Send privat handling', - userMenuOpenPrivateChannel: 'Åben privat kanal', - userMenuClosePrivateChannel: 'Luk privat kanal', - userMenuInvite: 'Inviter', - userMenuUninvite: 'Anuller invitation', - userMenuIgnore: 'Ignorer/Accepter', - userMenuIgnoreList: 'Vis ignorerede brugere', - userMenuWhereis: 'vis kanal', - userMenuKick: 'Spark ud/Banlys', - userMenuBans: 'Vis banlyste brugere', - userMenuWhois: 'Vis IP adresse', - unbanUser: 'Fjernede banlysning af brugere %s', - joinChannel: 'Deltag i en kanal %s', - cite: '%s sagde:', - urlDialog: 'Venligst indsæt adressen (URL) for den pågældende hjemmeside:', - deleteMessage: 'Fjern denne chat besked', - deleteMessageConfirm: 'Vil du virkelig fjerne denne besked?', - errorCookiesRequired: 'Cookies er nødvændige for denne chat', - errorUserNameNotFound: 'FEJL: bruger %s ikke fundet.', - errorMissingText: 'FEJL: Manglende besked.', - errorMissingUserName: 'FEJL: Manglende brugernavn.', - errorInvalidUserName: 'FEJL: Ugyldigt brugernavn.', - errorUserNameInUse: 'FEJL: Brugernavnet er allerede i brug.', - errorMissingChannelName: 'FEJL: Manglende kanal navn.', - errorInvalidChannelName: 'FEJL: Ugyldigt kanal navn: %s', - errorPrivateMessageNotAllowed: 'FEJL: Privat beskeder er ikke tilladt.', - errorInviteNotAllowed: 'FEJL: Du har ikke tilstrækkelige rettigheder til at invitere til denne kanal.', - errorUninviteNotAllowed: 'FEJL: Du har ikke tilstrækkelige rettigheder til at anullere invitationer for denne kanal.', - errorNoOpenQuery: 'FEJL: Ingen privat kanal åben.', - errorKickNotAllowed: 'FEJL: Du har ikke tilstrækkelige rettigheder til at sparke. %s.', - errorCommandNotAllowed: 'FEJL: Kommando ikke tillad: %s', - errorUnknownCommand: 'FEJL: Ukendt kommando: %s', - errorMaxMessageRate: 'FEJL: Du har overskredet max antal beskeder per minut.', - errorConnectionTimeout: 'FEJL: Forbindelses timeout. Prøv venligst igen.', - errorConnectionStatus: 'FEJL: Status for forbindelse. %s', - errorSoundIO: 'FEJL: Kunne ikke indlæse lydfil (Flash IO Fejl).', - errorSocketIO: 'FEJL: Connection to socket server failed (Flash IO fejl).', - errorSocketSecurity: 'FEJL: forbindelse til til socket server fejlede (Flash sikkerheds fejl).', - errorDOMSyntax: 'FEJL: Ugyldig DOM Syntaks(DOM ID: %s).' - -} diff --git a/library/ajaxchat/chat/js/lang/de.js b/library/ajaxchat/chat/js/lang/de.js deleted file mode 100644 index b46b3f323..000000000 --- a/library/ajaxchat/chat/js/lang/de.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s betritt den Chat.', - logout: '%s verlässt den Chat.', - logoutTimeout: '%s wurde ausgeloggt (Timeout).', - logoutIP: '%s wurde ausgeloggt (Ungültige IP-Adresse).', - logoutKicked: '%s wurde ausgeloggt (Ausschluss).', - channelEnter: '%s betritt den Raum.', - channelLeave: '%s verlässt den Raum.', - privmsg: '(flüstert)', - privmsgto: '(flüstert zu %s)', - invite: '%s lädt dich ein den Raum %s zu betreten.', - inviteto: 'Deine Einladung an %s den Raum %s zu betreten wurde versendet.', - uninvite: '%s hat dich wieder ausgeladen den Raum %s zu betreten.', - uninviteto: 'Deine Ausladung an %s den Raum %s zu betreten wurde versendet.', - queryOpen: 'Privater Kanal zu %s geöffnet.', - queryClose: 'Privater Kanal zu %s geschlossen.', - ignoreAdded: '%s wurde auf die Ignorier-Liste gesetzt.', - ignoreRemoved: '%s wurde von der Ignorier-Liste entfernt.', - ignoreList: 'Ignorierte Benutzer:', - ignoreListEmpty: 'Keine Benutzer werden ignoriert.', - who: 'Benutzer online:', - whoChannel: 'Benutzer online im Raum %s:', - whoEmpty: 'Keine Benutzer online im angegebenen Kanal.', - list: 'Verfügbare Räume:', - bans: 'Ausgeschlossene Nutzer:', - bansEmpty: 'Keine ausgeschlossenen Nutzer vorhanden.', - unban: 'Ausschluss des Benutzers %s aufgehoben.', - whois: 'Benutzer %s - IP-Adresse:', - whereis: 'Benutzer %s ist im Raum %s.', - roll: '%s würfelt %s und erhält %s.', - nick: '%s heißt jetzt %s.', - toggleUserMenu: 'Benutzer-Menü für %s anzeigen/ausblenden', - userMenuLogout: 'Logout', - userMenuWho: 'Online Benutzer auflisten', - userMenuList: 'Verfügbare Räume auflisten', - userMenuAction: 'Aktion beschreiben', - userMenuRoll: 'Würfeln', - userMenuNick: 'Benutzernamen ändern', - userMenuEnterPrivateRoom: 'Privaten Raum betreten', - userMenuSendPrivateMessage: 'Private Nachricht schicken', - userMenuDescribe: 'Private Aktion schicken', - userMenuOpenPrivateChannel: 'Privaten Kanal öffnen', - userMenuClosePrivateChannel: 'Privaten Kanal schließen', - userMenuInvite: 'Einladen', - userMenuUninvite: 'Ausladen', - userMenuIgnore: 'Ignorieren / Akzeptieren', - userMenuIgnoreList: 'Ignorierte Benutzer auflisten', - userMenuWhereis: 'Raum anzeigen', - userMenuKick: 'Ausschließen / Verbannen', - userMenuBans: 'Ausgeschlossene Benutzer auflisten', - userMenuWhois: 'IP anzeigen', - unbanUser: 'Ausschluss von %s aufheben', - joinChannel: 'Raum %s betreten', - cite: '%s sagte:', - urlDialog: 'Bitte die Adresse (URL) der Webseite eingeben:', - deleteMessage: 'Diese Chat-Nachricht löschen', - deleteMessageConfirm: 'Die ausgewählte Chat-Nachricht wirklich löschen?', - errorCookiesRequired: 'Cookies werden für diesen Chat benötigt.', - errorUserNameNotFound: 'Fehler: Benutzer %s wurde nicht gefunden.', - errorMissingText: 'Fehler: Nachrichtentext fehlt.', - errorMissingUserName: 'Fehler: Benutzername fehlt.', - errorInvalidUserName: 'Fehler: Ungültiger Benutzername.', - errorUserNameInUse: 'Fehler: Benutzername schon vergeben.', - errorMissingChannelName: 'Fehler: Raumname fehlt.', - errorInvalidChannelName: 'Fehler: Ungültiger Raumname: %s', - errorPrivateMessageNotAllowed: 'Fehler: Private Nachrichten sind nicht erlaubt.', - errorInviteNotAllowed: 'Fehler: Du kannst niemanden zu diesem Raum Einladen.', - errorUninviteNotAllowed: 'Fehler: Du kannst niemanden von diesem Raum Ausladen.', - errorNoOpenQuery: 'Fehler: Kein privater Kanal offen.', - errorKickNotAllowed: 'Fehler: Du kannst %s nicht ausschließen.', - errorCommandNotAllowed: 'Fehler: Befehl nicht erlaubt: %s', - errorUnknownCommand: 'Fehler: Unbekannter Befehl: %s', - errorMaxMessageRate: 'Fehler: Du hast die maximale Anzahl an Nachrichten pro Minute überschritten.', - errorConnectionTimeout: 'Fehler: Verbindungsabbruch. Bitte erneut versuchen.', - errorConnectionStatus: 'Fehler: Verbindungsstatus: %s', - errorSoundIO: 'Fehler: Laden einer Sound-Datei fehlgeschlagen (Flash IO Error).', - errorSocketIO: 'Fehler: Verbindung zum Socket Server fehlgeschlagen (Flash IO Error).', - errorSocketSecurity: 'Fehler: Verbindung zum Socket Server fehlgeschlagen (Flash Security Error).', - errorDOMSyntax: 'Error: Invalid DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/el.js b/library/ajaxchat/chat/js/lang/el.js deleted file mode 100644 index 2864c3a76..000000000 --- a/library/ajaxchat/chat/js/lang/el.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author panas - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s μπήκε στο Chat.', - logout: '%s βγήκε από το Chat.', - logoutTimeout: '%s βγήκε από το Chat (Ανενεργό).', - logoutIP: '%s βγήκε από το Chat (Λανθασμένη IP).', - logoutKicked: '%s βγήκε από το Chat (Kicked).', - channelEnter: '%s μπήκε στο κανάλι.', - channelLeave: '%s βγήκε από το κανάλι.', - privmsg: '(ψιθυρίζει)', - privmsgto: '( ψιθυρίζει σε %s)', - invite: '%s σας καλεί να συμμετάσχετε στο %s.', - inviteto: 'Η πρόσκληση σας σε %s να συμμετάσχει στο κανάλι %s έχει σταλεί.', - uninvite: '%s τερματίζει την πρόσκληση σας για το κανάλι %s.', - uninviteto: 'Η πρόσκληση σας σε %s για το κανάλι %s έχει σταλεί.', - queryOpen: 'Άνοιξε πρίβε κανάλι σε %s.', - queryClose: ' Το πρίβε κανάλι %s έκλεισε.', - ignoreAdded: '%s προστέθηκε στη λίστα αγνόησης.', - ignoreRemoved: ' %s αφαιρέθηκε από τη λίστα αγνόησης .', - ignoreList: 'Αγνοήμενοι χρήστες:', - ignoreListEmpty: 'Δεν υπάρχουν αγνοημένοι χρήστες.', - who: 'Χρήστες παρόν:', - whoChannel: 'Χρήστες συνδεδεμένοι στο κανάλι %s:', - whoEmpty: 'Δεν υπάρχουν χρήστες στο συγκεκριμένο κανάλι.', - list: 'Διαθέσιμα κανάλια:', - bans: 'Αποκλεισμένοι χρήστες:', - bansEmpty: 'Δεν υπάρχουν αποκλεισμένοι χρήστες.', - unban: 'Ο αποκλεισμός %s αφαιρέθηκε.', - whois: ' %s - IP διεύθυνση:', - whereis: 'Χρήστης %s είναι στο κανάλι %s.', - roll: '%s ρίχνει %s και φέρνει %s.', - nick: '%s άλλαξε το όνομα σε %s.', - toggleUserMenu: 'Αλλαγή μενού χρήστη για %s', - userMenuLogout: 'Αποσύνδεση', - userMenuWho: 'Εμφάνιση λίστας συνδεδεμένων', - userMenuList: 'Εμφάνιση λίστας διαθέσιμων καναλιών', - userMenuAction: 'Περιγραφή ενέργειας', - userMenuRoll: 'Ρίξιμο ζαριών', - userMenuNick: 'Αλλαγή ονόματος', - userMenuEnterPrivateRoom: 'Εισαγωγή σε πριβέ δωμάτιο', - userMenuSendPrivateMessage: 'Αποστολή προσωπικού μηνύματος', - userMenuDescribe: 'Αποστολή προσωπικής ενέργειας', - userMenuOpenPrivateChannel: 'Άνοιγμα πριβέ καναλιού', - userMenuClosePrivateChannel: 'Κλείσιμο πριβέ καναλιού', - userMenuInvite: 'Πρόσκληση', - userMenuUninvite: 'Ακύρωση πρόσκλησης', - userMenuIgnore: 'Αγνόηση/Αποδοχή', - userMenuIgnoreList: 'Εμφάνιση λίστας αγνοημένων', - userMenuWhereis: 'Εμφάνιση καναλιού', - userMenuKick: 'Kick/Ban', - userMenuBans: 'Εμφάνιση λίστας αποκλεισμένων', - userMenuWhois: 'Εμφάνιση IP', - unbanUser: 'Επαναφορά αποκλεισμού για %s', - joinChannel: 'Μπαίνει στο κανάλι %s', - cite: '%s είπε:', - urlDialog: 'παρακαλούμε εισάγετε την διεύθυνση (URL) της ιστοσελίδας:', - deleteMessage: 'Διαγραφή αυτού του μηνύματος', - deleteMessageConfirm: 'Θέλετε να διαγράψετε το επιλεγμένο μήνυμα?', - errorCookiesRequired: 'Τα cookies είναι απαραίτητα για το chat.', - errorUserNameNotFound: 'Σφάλμα: Ο χρήστης %s δεν βρέθηκε.', - errorMissingText: 'Σφάλμα: Λείπει το μήνυμα.', - errorMissingUserName: ': Λείπει ο χρήστης.', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Username already in use.', - errorMissingChannelName: 'Σφάλμα: Λείπει το όνομα του καναλιού.', - errorInvalidChannelName: 'Σφάλμα: Ακατάλληλο όνομα καναλιού: %s', - errorPrivateMessageNotAllowed: 'Σφάλμα: Τα προσωπικά μηνύματα δεν επιτρέπονται.', - errorInviteNotAllowed: 'Σφάλμα: Δεν σας επιτρέπετε να καλέσετε άλλούς στο κανάλι.', - errorUninviteNotAllowed: 'Σφάλμα: Δεν σας επιτρέπετε να τερματίσετε την πρόσκληση άλλων από το κανάλι.', - errorNoOpenQuery: ': Δεν ανοίχθηκε πρίβε κανάλι.', - errorKickNotAllowed: 'Δεν σας επιτρέπετε να πετάξετε %s.', - errorCommandNotAllowed: 'Σφάλμα: Δεν επιτρέπετε η εντολή: %s', - errorUnknownCommand: 'Σφάλμα: Άγνωστη εντολή: %s', - errorMaxMessageRate: 'Σφάλμα: Υπερβήκατε τον μέγιστο αριθμό μηνυμάτων ανά λεπτό.', - errorConnectionTimeout: 'Σφάλμα: Έληξε ο χρόνος σύνδεσης. Προσπαθήστε ξανά.', - errorConnectionStatus: 'Σφάλμα: Κατάσταση σύνδεσης: %s', - errorSoundIO: 'Σφάλμα: Απέτυχε η φόρτωση του αρχείου ήχου (Flash IO Σφάλμα).', - errorSocketIO: 'Σφάλμα: Η σύνδεση στο socket του διακομιστή απέτυχε (Flash IO Σφάλμα).', - errorSocketSecurity: 'Σφάλμα:Η σύνδεση στο socket του διακομιστή απέτυχε (Σφάλμα ασφαλείας του Flash ).', - errorDOMSyntax: 'Σφάλμα: Άκυρη DOM σύνταξη (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/en.js b/library/ajaxchat/chat/js/lang/en.js deleted file mode 100644 index 16b4ab472..000000000 --- a/library/ajaxchat/chat/js/lang/en.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s logs into the Chat.', - logout: '%s logs out of the Chat.', - logoutTimeout: '%s has been logged out (Timeout).', - logoutIP: '%s has been logged out (Invalid IP address).', - logoutKicked: '%s has been logged out (Kicked).', - channelEnter: '%s enters the channel.', - channelLeave: '%s leaves the channel.', - privmsg: '(whispers)', - privmsgto: '(whispers to %s)', - invite: '%s invites you to join %s.', - inviteto: 'Your invitation to %s to join channel %s has been sent.', - uninvite: '%s uninvites you from channel %s.', - uninviteto: 'Your uninvitation to %s for channel %s has been sent.', - queryOpen: 'Private channel opened to %s.', - queryClose: 'Private channel to %s closed.', - ignoreAdded: 'Added %s to the ignore list.', - ignoreRemoved: 'Removed %s from the ignore list.', - ignoreList: 'Ignored Users:', - ignoreListEmpty: 'No ignored Users listed.', - who: 'Online Users:', - whoChannel: 'Online Users in channel %s:', - whoEmpty: 'No online users in the given channel.', - list: 'Available channels:', - bans: 'Banned Users:', - bansEmpty: 'No banned Users listed.', - unban: 'Ban of user %s revoked.', - whois: 'User %s - IP address:', - whereis: 'User %s is in channel %s.', - roll: '%s rolls %s and gets %s.', - nick: '%s is now known as %s.', - toggleUserMenu: 'Toggle user menu for %s', - userMenuLogout: 'Logout', - userMenuWho: 'List online users', - userMenuList: 'List available channels', - userMenuAction: 'Describe action', - userMenuRoll: 'Roll dice', - userMenuNick: 'Change username', - userMenuEnterPrivateRoom: 'Enter private room', - userMenuSendPrivateMessage: 'Send private message', - userMenuDescribe: 'Send private action', - userMenuOpenPrivateChannel: 'Open private channel', - userMenuClosePrivateChannel: 'Close private channel', - userMenuInvite: 'Invite', - userMenuUninvite: 'Uninvite', - userMenuIgnore: 'Ignore/Accept', - userMenuIgnoreList: 'List ignored users', - userMenuWhereis: 'Display channel', - userMenuKick: 'Kick/Ban', - userMenuBans: 'List banned users', - userMenuWhois: 'Display IP', - unbanUser: 'Revoke ban of user %s', - joinChannel: 'Join channel %s', - cite: '%s said:', - urlDialog: 'Please enter the address (URL) of the webpage:', - deleteMessage: 'Delete this chat message', - deleteMessageConfirm: 'Really delete the selected chat message?', - errorCookiesRequired: 'Cookies are required for this chat.', - errorUserNameNotFound: 'Error: User %s not found.', - errorMissingText: 'Error: Missing message text.', - errorMissingUserName: 'Error: Missing username.', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Username already in use.', - errorMissingChannelName: 'Error: Missing channel name.', - errorInvalidChannelName: 'Error: Invalid channel name: %s', - errorPrivateMessageNotAllowed: 'Error: Private messages are not allowed.', - errorInviteNotAllowed: 'Error: You are not allowed to invite someone to this channel.', - errorUninviteNotAllowed: 'Error: You are not allowed to uninvite someone from this channel.', - errorNoOpenQuery: 'Error: No private channel open.', - errorKickNotAllowed: 'Error: You are not allowed to kick %s.', - errorCommandNotAllowed: 'Error: Command not allowed: %s', - errorUnknownCommand: 'Error: Unknown command: %s', - errorMaxMessageRate: 'Error: You exceeded the maximum number of messages per minute.', - errorConnectionTimeout: 'Error: Connection timeout. Please try again.', - errorConnectionStatus: 'Error: Connection status: %s', - errorSoundIO: 'Error: Failed to load sound file (Flash IO Error).', - errorSocketIO: 'Error: Connection to socket server failed (Flash IO Error).', - errorSocketSecurity: 'Error: Connection to socket server failed (Flash Security Error).', - errorDOMSyntax: 'Error: Invalid DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/es.js b/library/ajaxchat/chat/js/lang/es.js deleted file mode 100644 index 393467a8c..000000000 --- a/library/ajaxchat/chat/js/lang/es.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Manu Quintans / KeScI [www.e-nologia.com] - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s entra al Chat.', - logout: '%s sale del Chat.', - logoutTimeout: '%s se ha desconectado (Tiempo de espera agotado).', - logoutIP: '%s se ha desconectado (Direccion IP no valida).', - logoutKicked: '%s se ha desconectado (Pateado).', - channelEnter: '%s entra en el canal.', - channelLeave: '%s se va del canal.', - privmsg: '(susurra)', - privmsgto: '(susurra a %s)', - invite: '%s te invita a unirte a %s.', - inviteto: 'Su invitación a %s para unirse al canal %s se ha enviado.', - uninvite: '%s le retira la invitación del canal %s.', - uninviteto: 'Su retirada de invitación a %s para el canal %s se ha enviado.', - queryOpen: 'Privado abierto a %s.', - queryClose: 'Privado cerrado a %s.', - ignoreAdded: 'Agregado %s a la lista de usuarios ignorados.', - ignoreRemoved: 'Eliminado %s de la lista de usuarios ignorados.', - ignoreList: 'Usuarios ignorados', - ignoreListEmpty: 'Lista de usuarios no ignorados.', - who: 'Usuarios conectados:', - whoChannel: 'Usuarios conectados en el canal %s:', - whoEmpty: 'No hay usuarios conectados en este momento.', - list: 'Canales disponibles:', - bans: 'Usuarios Baneados:', - bansEmpty: 'No se han listado usuarios baneados.', - unban: 'Ban del usuario %s retirado.', - whois: 'Usuario %s - Direccion IP:', - whereis: 'Usuario %s está en el canal %s.', - roll: '%s lanza %s y obtiene un %s.', - nick: '%s es ahora %s.', - toggleUserMenu: 'Abrir/Cerrar menú del usuario %s', - userMenuLogout: 'Desconectar', - userMenuWho: 'Mostrar usuarios conectados', - userMenuList: 'Mostrar canales disponibles', - userMenuAction: 'Describir acción', - userMenuRoll: 'Tirar dado', - userMenuNick: 'Cambiar Nombre de Usuario', - userMenuEnterPrivateRoom: 'Entrar en canal privado', - userMenuSendPrivateMessage: 'Enviar mensaje privado', - userMenuDescribe: 'Enviar acción privada', - userMenuOpenPrivateChannel: 'Abrir canal privado', - userMenuClosePrivateChannel: 'Cerrar canal privado', - userMenuInvite: 'Invitar', - userMenuUninvite: 'Quitar invitación', - userMenuIgnore: 'Ignorar/Aceptar', - userMenuIgnoreList: 'Mostrar usuarios ignorados', - userMenuWhereis: 'Mostrar canal', - userMenuKick: 'Patada/Ban', - userMenuBans: 'Mostrar usuarios baneados', - userMenuWhois: 'Mostrar la IP', - unbanUser: 'Quitar el ban al usuario %s', - joinChannel: 'Entrar al canal %s', - cite: '%s dijo:', - urlDialog: 'Por favor intruduzca la dirección (URL) de la página web:', - deleteMessage: 'Borrar este mensaje del chat', - deleteMessageConfirm: 'Really delete the selected chat message?', - errorCookiesRequired: 'Se necesitan las Cookies para este chat.', - errorUserNameNotFound: 'Error: usuario %s no se ha encontrado.', - errorMissingText: 'Error: Mensaje perdido.', - errorMissingUserName: 'Error: Usuario no encontrado.', - errorInvalidUserName: 'Error: Nombre de usuario no válido.', - errorUserNameInUse: 'Error: Nombre de usuario está en uso.', - errorMissingChannelName: 'Error: No se encuentra el canal.', - errorInvalidChannelName: 'Error: Nombre invalido del canal: %s', - errorPrivateMessageNotAllowed: 'Error: No se permiten mensajes privados.', - errorInviteNotAllowed: 'Error: No está autorizado a invitar a alguien a este canal.', - errorUninviteNotAllowed: 'Error: No está autorizado a quitar la invitación a alguien de este canal.', - errorNoOpenQuery: 'Error: Ningún privado abierto.', - errorKickNotAllowed: 'Error: No está autorizado a patear a %s.', - errorCommandNotAllowed: 'Error: Comando no permitido: %s', - errorUnknownCommand: 'Error: Comando desconocido: %s', - errorMaxMessageRate: 'Error: Ha sobrepasado el número máximo de mensajes por minuto.', - errorConnectionTimeout: 'Error: Connection timeout. Please try again.', - errorConnectionStatus: 'Error: Estado de la conexión: %s', - errorSoundIO: 'Error: No se ha podido cargar el fichero de sonido (Error IO Flash).', - errorSocketIO: 'Error: No se ha podido conectar al servidor socket (Error IO Flash).', - errorSocketSecurity: 'Error: No se ha podido conectar al servidor socket (Error Seguridad Flash).', - errorDOMSyntax: 'Error: Sintaxis DOM No Válida (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/et.js b/library/ajaxchat/chat/js/lang/et.js deleted file mode 100644 index e83c986b9..000000000 --- a/library/ajaxchat/chat/js/lang/et.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s logis jutukasse.', - logout: '%s logis jutukast välja.', - logoutTimeout: '%s logiti jutukast välja (Aeg otsas).', - logoutIP: '%s logiti jutukast välja (Vigane IP aadress).', - logoutKicked: '%s logiti jutukast välja (Välja heidetud).', - channelEnter: '%s sisenes kanalisse.', - channelLeave: '%s lahkus kanalist.', - privmsg: '(sosinad)', - privmsgto: '(sosinad %s -le)', - invite: '%s kutsub sind %s.', - inviteto: 'Sinu kutse %s -le ühineda kanaliga %s saadeti ära.', - uninvite: '%s palub sul lahkuda kanalist %s.', - uninviteto: 'Sinu palve %s -le lahkuda kanalist %s saadeti ära.', - queryOpen: 'Privaat kanal avati %s -le.', - queryClose: 'Privaat kanal %s -le suleti.', - ignoreAdded: ' %s -t ignoreeritakse.', - ignoreRemoved: ' %s ignoreerimine tühistati.', - ignoreList: 'Ignoreeritud kasutajad:', - ignoreListEmpty: 'Ignoreeritud kasutajad puuduvad.', - who: 'Sisse loginud kasutajad:', - whoChannel: 'Sisse loginud kasutajad kanalis %s:', - whoEmpty: 'Antud kanalis sisse loginud kasutajaid ei ole.', - list: 'Vabad kanalid:', - bans: 'Kasutajate must nimekiri:', - bansEmpty: 'Mustas nimekirjas kasutajaid ei ole.', - unban: 'Kasutaja %s eemaldati mustast nimekirjast.', - whois: 'Kasutaja %s - IP aadress:', - whereis: 'Kasutaja %s on kanalis %s.', - roll: '%s veeretas %s ja sai %s.', - nick: '%s nimetas end ümber: %s.', - toggleUserMenu: 'Näita/ära näita kasutaja menüüd', - userMenuLogout: 'Lahku', - userMenuWho: 'Näita sisse loginud kasutajaid', - userMenuList: 'Näita vabad kanalid', - userMenuAction: 'Kirjelda tegevust', - userMenuRoll: 'Veereta täringut', - userMenuNick: 'Muuda kasutajanimi', - userMenuEnterPrivateRoom: 'Sisene privaat-ruumi', - userMenuSendPrivateMessage: 'Saada privaat-sõnum', - userMenuDescribe: 'Saada privaat-tegevus', - userMenuOpenPrivateChannel: 'Ava privaat-kanal', - userMenuClosePrivateChannel: 'Sulge privaat-kanal', - userMenuInvite: 'Kutsu', - userMenuUninvite: 'Palu lahkuda', - userMenuIgnore: 'Ignoreeri/Tunnusta', - userMenuIgnoreList: 'Ignoreeritud kasutajad', - userMenuWhereis: 'Asukoha kanal', - userMenuKick: 'Viska välja/Lisa musta nimekirja', - userMenuBans: 'Musta nimekirja kasutajad', - userMenuWhois: 'Näita IP-d', - unbanUser: 'Eemalda %s mustast nimekirjast', - joinChannel: 'Liitu kanaliga %s', - cite: '%s ütles:', - urlDialog: 'Palun sisesta oma veebilehe (URL):', - deleteMessage: 'Kustuta see jutuka teade', - deleteMessageConfirm: 'Kas tahad tõesti kustutada seda sõnumit??', - errorCookiesRequired: 'Luba "küpsised", et kasutada seda jutukat.', - errorUserNameNotFound: 'Viga: Kasutajat nimega %s ei leitud.', - errorMissingText: 'Viga: Sõnumi tekst kadunud.', - errorMissingUserName: 'Viga: Kasutajanimi puuduv.', - errorInvalidUserName: 'Viga: Vigane kasutajanimi.', - errorUserNameInUse: 'Viga: Kasutajanimi on juba võetud.', - errorMissingChannelName: 'Viga: Kanali nimi on kadunud.', - errorInvalidChannelName: 'Viga: Vigane kanali nimi: %s', - errorPrivateMessageNotAllowed: 'Viga: Privaat-sõnumid ei ole lubatud.', - errorInviteNotAllowed: 'Viga: Sul ei ole lubatud kutsuda kedagi siia kanalisse.', - errorUninviteNotAllowed: 'Viga: Sul ei ole lubatud kedagi sellest kanalist lahkuma paluda.', - errorNoOpenQuery: 'Viga: htegi privaat-kanalit pole avatud.', - errorKickNotAllowed: 'Viga: Sul ei ole lubatud välja visata %s.', - errorCommandNotAllowed: 'Viga: Korraldus pole lubatud: %s', - errorUnknownCommand: 'Viga: Tundmatu korraldus: %s', - errorMaxMessageRate: 'Viga: Sinu maksimum sõnumite hulk, minuti vältel, on ületatud.', - errorConnectionTimeout: 'Viga: hendus aegus. Please proovi uuesti.', - errorConnectionStatus: 'Viga: henduse olek: %s', - errorSoundIO: 'Viga: Helifaili ei õnnestunud laadida (Flash IO Viga).', - errorSocketIO: 'Viga: hendus socket serveriga ebaõnnestus (Flash IO Viga).', - errorSocketSecurity: 'Viga: hendus socket serveriga ebaõnnestus (Flash Turvalisuse Viga).', - errorDOMSyntax: 'Viga: Vigane DOM Süntaks (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/fi.js b/library/ajaxchat/chat/js/lang/fi.js deleted file mode 100644 index 68a536c73..000000000 --- a/library/ajaxchat/chat/js/lang/fi.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Asmo Soinio - * @author Saku Laukkanen - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s kirjautui sisään.', - logout: '%s kirjautui ulos.', - logoutTimeout: '%s kirjautui ulos (Aikakatkaisu).', - logoutIP: '%s kirjautui ulos (virheellinen IP-osoite).', - logoutKicked: '%s kirjautui ulos (Potkut).', - channelEnter: '%s liittyi kanavalle.', - channelLeave: '%s poistui kanavalta.', - privmsg: '(kuiskaa)', - privmsgto: '(kuiskaa käyttäjälle %s)', - invite: '%s kutsuu sinut liittymään kanavalle %s.', - inviteto: 'Sinun kutsusi käyttäjälle %s, liittymisestä kanavalle %s, on lähetetty.', - uninvite: '%s peruu kutsun kanavalle %s.', - uninviteto: 'Kutsusi peruminen käyttäjälle %s kanavaa %s varten, on lähetetty.', - queryOpen: 'Yksityinen kanava käyttäjälle %s on avattu.', - queryClose: 'Yksityinen kanava käyttäjälle %s on suljettu.', - ignoreAdded: 'Käyttäjä %s on lisätty huomiotta jätettäviin.', - ignoreRemoved: 'Käyttäjä %s on poistettu huomiotta jätettävistä.', - ignoreList: 'Huomiotta jätettävät käyttäjät:', - ignoreListEmpty: 'Ei huomiotta jätettäviä käyttäjiä.', - who: 'Paikallaolijat:', - whoChannel: 'Paikallaolijat kanavalla %s:', - whoEmpty: 'Ei käyttäjiä annetulla kanavalla.', - list: 'Käytettävät kanavat:', - bans: 'Potkitut käyttäjät:', - bansEmpty: 'Ei potkittuja käyttäjiä.', - unban: 'Käyttäjän %s potkut on poistettu.', - whois: 'Käyttäjän %s IP osoite:', - whereis: 'Käyttäjä %s on kanavalla %s.', - roll: '%s heittää %s ja saa %s.', - nick: '%s on nyt %s.', - toggleUserMenu: 'Näytä/piilota valikko käyttäjälle %s', - userMenuLogout: 'Poistu', - userMenuWho: 'Listaa paikallaolijat', - userMenuList: 'Listaa käytettävissä olevat kanavat', - userMenuAction: 'Määrittele toiminta', - userMenuRoll: 'Heitä noppaa', - userMenuNick: 'Vaihda käyttäjätunnusta', - userMenuEnterPrivateRoom: 'Mene yksityiseen kanavaasi', - userMenuSendPrivateMessage: 'Lähetä yksityinen viesti', - userMenuDescribe: 'Lähetä yksityinen toiminto', - userMenuOpenPrivateChannel: 'Avaa yksityinen kanava', - userMenuClosePrivateChannel: 'Sulje yksityinen kanava', - userMenuInvite: 'Kutsu', - userMenuUninvite: 'Peru kutsu', - userMenuIgnore: 'Ohita/Hyväksy', - userMenuIgnoreList: 'Listaa huomiota jätettävät käyttäjät', - userMenuWhereis: 'Näytä kanavat', - userMenuKick: 'Poista/Porttikielto', - userMenuBans: 'Listaa käyttäjät, joilla porttikielto', - userMenuWhois: 'Näytä IP-osoite', - unbanUser: 'Poista käyttäjän %s porttikielto', - joinChannel: 'Liity kanavalle %s', - cite: '%s sanoi:', - urlDialog: 'Lisää nettisivujen osoite (URL):', - deleteMessage: 'Poista tämä viesti', - deleteMessageConfirm: 'Poistetaanko viesti?', - errorCookiesRequired: 'Evästeiden pitää olla sallituja käyttääksesi tätä keskustelua.', - errorUserNameNotFound: 'Virhe: Käyttäjää %s ei löydetty.', - errorMissingText: 'Virhe: Puuttuva viestin teksti.', - errorMissingUserName: 'Virhe: Puuttuva käyttäjänimi.', - errorInvalidUserName: 'Virhe: Virheellinen käyttäjätunnus.', - errorUserNameInUse: 'Virhe: Käyttäjätunnus on jo käytössä.', - errorMissingChannelName: 'Virhe: Puuttuva kanavan nimi.', - errorInvalidChannelName: 'Virhe: Virheellinen kanavan nimi: %s', - errorPrivateMessageNotAllowed: 'Virhe: Yksityisviestit eivät ole sallittuja.', - errorInviteNotAllowed: 'Virhe: Sinulla ei ole oikeutta kutsua ketään kanavalle.', - errorUninviteNotAllowed: 'Virhe: Sinulla ei ole oikeutta perua kutsua tälle kanavalle.', - errorNoOpenQuery: 'Virhe: Ei yksityistä kanavaa auki.', - errorKickNotAllowed: 'Virhe: Sinulla ei ole oikeutta potkia käyttäjää %s.', - errorCommandNotAllowed: 'Virhe: Komento ei ole sallittu: %s', - errorUnknownCommand: 'Virhe: Tuntematon komento: %s', - errorMaxMessageRate: 'Virhe: Liikaa viestejä minuutissa.', - errorConnectionTimeout: 'Virhe: Yhteyden aikakatkaisu, olkaa hyvä ja yrittäkää uudelleen.', - errorConnectionStatus: 'Virhe: Yhteyden tila: %s', - errorSoundIO: 'Virhe: Äänitiedoston lataus epäonnistui (Flash IO-virhe).', - errorSocketIO: 'Virhe: Yhteys socket palvelimeen epäonnistui (Flash IO-virhe).', - errorSocketSecurity: 'Virhe: Yhteys socket palvelimeen epäonnistui (Flash-turvallisuus virhe).', - errorDOMSyntax: 'Virhe: Virheellinen DOM-syntaksi (DOM-tunniste: %s).' - -} diff --git a/library/ajaxchat/chat/js/lang/fr.js b/library/ajaxchat/chat/js/lang/fr.js deleted file mode 100644 index 35846f95e..000000000 --- a/library/ajaxchat/chat/js/lang/fr.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @contributors Ettelcar, Massimiliano Tiraboschi, Xytovl - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s se connecte au Chat.', - logout: '%s se déconnecte du Chat.', - logoutTimeout: '%s a été déconnecté (Temps écoulé).', - logoutIP: '%s a été déconnecté (Adresse IP invalide).', - logoutKicked: '%s a été déconnecté (Éjecté).', - channelEnter: '%s entre dans le salon.', - channelLeave: '%s sort du salon.', - privmsg: '(murmure)', - privmsgto: '(murmure à l’oreille de %s)', - invite: '%s vous invite à rejoindre %s.', - inviteto: 'Votre invation pour %s à rejoindre le salon %s a bien été envoyée.', - uninvite: '%s annule son invitation pour le salon %s.', - uninviteto: 'Votre annulaton d’invitation pour %s au salon %s a bien été envoyée.', - queryOpen: 'Salon privé ouvert sous le titre %s.', - queryClose: 'Le salon privé %s a été fermé.', - ignoreAdded: '%s a été ajouté à la liste des personnes ignorées.', - ignoreRemoved: '%s a été enlevé de la liste des personnes ignorées.', - ignoreList: 'Utilisateurs ignorés:', - ignoreListEmpty: 'Aucun utilisateur ignoré référencé.', - who: 'Utilisateurs en ligne:', - whoChannel: 'Utilisateurs en ligne dans le salon %s :', - whoEmpty: 'Aucun utilisateur en ligne dans le salon concerné.', - list: 'Salons disponibles :', - bans: 'Utilisateurs bannis :', - bansEmpty: 'Aucun utilisateur banni référencé.', - unban: 'Le ban de l’utilisateur %s a été levé.', - whois: 'Utilisateur %s - Adresse IP:', - whereis: 'L’utilisateur %s est dans le salon %s.', - roll: '%s jette %s et obtient %s.', - nick: '%s est maintenant %s.', - toggleUserMenu: 'Montrer/cacher menu pour %s', - userMenuLogout: 'Déconnexion', - userMenuWho: 'Liste membres en ligne', - userMenuList: 'Liste salons disponibles', - userMenuAction: 'Décrire une action', - userMenuRoll: 'Jeter un dé', - userMenuNick: 'Changer nom', - userMenuEnterPrivateRoom: 'Rejoindre un salon privé', - userMenuSendPrivateMessage: 'Envoyer un message privé', - userMenuDescribe: 'Envoyer une action privé', - userMenuOpenPrivateChannel: 'Ouvrir un salon privé', - userMenuClosePrivateChannel: 'Fermer un salon privé', - userMenuInvite: 'Inviter', - userMenuUninvite: 'Uninvite', - userMenuIgnore: 'Ignorer/Accepter', - userMenuIgnoreList: 'Liste utilisateurs ignorés', - userMenuWhereis: 'Montrer les salons', - userMenuKick: 'Éjecter/bannir', - userMenuBans: 'Liste utilisateurs bannis', - userMenuWhois: 'Display IP', - unbanUser: 'Revoke ban of user %s', - joinChannel: 'Rejoindre le salon %s', - cite: '%s a dit:', - urlDialog: 'Veuillez entrer l’addresse (URL) de la page web:', - deleteMessage: 'Effacer ce message', - deleteMessageConfirm: 'Effacer le message selectionné ?', - errorCookiesRequired: 'Ce Chat requiert l’acceptation des cookies.', - errorUserNameNotFound: 'Erreur : Utilisateur %s introuvable.', - errorMissingText: 'Erreur : Texte du message manquant.', - errorMissingUserName: 'Erreur : Nom d’utilisateur manquant.', - errorMissingChannelName: 'Erreur : Nom de salon manquant.', - errorInvalidChannelName: 'Erreur : Mauvais nom de salon: %s', - errorPrivateMessageNotAllowed: 'Erreur : Les messages privés sont interdits.', - errorInviteNotAllowed: 'Erreur : Vous n’êtes pas autorisé à inviter quelqu’un à ce salon.', - errorUninviteNotAllowed: 'Erreur : Vous n’êtes pas autorisé à annuler une invitation à ce salon.', - errorNoOpenQuery: 'Erreur : Aucun salon privé ouvert.', - errorKickNotAllowed: 'Erreur : Vous n’êtes pas autorisé à éjecter %s.', - errorCommandNotAllowed: 'Erreur : Commande interdite: %s', - errorUnknownCommand: 'Erreur : Commande inconnue: %s', - errorMaxMessageRate: 'Error : You exceeded the maximum number of messages per minute.', - errorConnectionTimeout: 'Erreur : Temps de connexion écoulé. Veuillez réessayer.', - errorConnectionStatus: 'Erreur : Statut de connexion: %s', - errorSoundIO: 'Erreur : Impossible de charger le fichier son (Erreur E/S Flash).', - errorSocketIO: 'Erreur : Connexion au serveur échouée (Erreur E/S Flash).', - errorSocketSecurity: 'Erreur : Connexion au serveur échouée (Erreur de sécurité Flash).', - errorDOMSyntax: 'Erreur : Syntaxe DOM invalide (ID DOM : %s).' - -} - - diff --git a/library/ajaxchat/chat/js/lang/gl.js b/library/ajaxchat/chat/js/lang/gl.js deleted file mode 100644 index 314e226f8..000000000 --- a/library/ajaxchat/chat/js/lang/gl.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Manu Quintans - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s logs dentro de Chat.', - logout: '%s logs fora del Chat.', - logoutTimeout: '%s desconectouse(Tempo de espera esgotado).', - logoutIP: '%s desconectouse (Dirección IP non válida ).', - logoutKicked: '%s desconectouse (Pateado).', - channelEnter: '%s Entra no chat.', - channelLeave: '%s Vaise do chat.', - privmsg: '(whispers)', - privmsgto: '(whispers to %s)', - invite: '%s invítache a unirte a %s.', - inviteto: 'A túa invitación a %s para unirse a %s foi enviada.', - uninvite: '%s rechazado en %s.', - uninviteto: 'O teu rechazo a %s para %s foi enviado.', - queryOpen: 'Chat privado aberto %s.', - queryClose: 'Chat privado pechado %s pechado.', - ignoreAdded: 'Engadido %s a lista de usuarios ignorados.', - ignoreRemoved: 'Eliminado %s da lista de usuarios ignorados.', - ignoreList: 'Usuarios ignorados', - ignoreListEmpty: 'Lista de usuarios non ignorados.', - who: 'Usuarios conectados:', - whoChannel: 'Usuarios en liña na canle %s:', - whoEmpty: 'Non hai usuarios conectados neste momento.', - list: 'Chats disponibles:', - bans: 'Usuarios Baneados:', - bansEmpty: 'Non hai usuarios baneados.', - unban: 'Baneo do usuario %s revocado.', - whois: 'Usuario %s - Direccion IP:', - whereis: 'Usuario %s en chat %s.', - roll: '%s rolls %s e toma %s.', - nick: '%s agora como %s.', - toggleUserMenu: 'Cambiar menu de usuario para %s', - userMenuLogout: 'Sair', - userMenuWho: 'Listar usuarios en liña', - userMenuList: 'Canles disponibles', - userMenuAction: 'Describe acción', - userMenuRoll: 'Roll di', - userMenuNick: 'Cambiar nome de usuario', - userMenuEnterPrivateRoom: 'Entrar nun privado', - userMenuSendPrivateMessage: 'Enviar mensaxe privada', - userMenuDescribe: 'Enviar accion en privado', - userMenuOpenPrivateChannel: 'Abrir privado', - userMenuClosePrivateChannel: 'Pechar privado', - userMenuInvite: 'Invitar', - userMenuUninvite: 'Rechazar invitado', - userMenuIgnore: 'Ignorar/Aceptar', - userMenuIgnoreList: 'Lista usuarios ignorados', - userMenuWhereis: 'Amosar canle', - userMenuKick: 'Banear', - userMenuBans: 'Lista usuarios baneados', - userMenuWhois: 'Amosar IP', - unbanUser: 'Eliminar baneo de %s', - joinChannel: 'Unirte a %s', - cite: '%s dixo:', - urlDialog: 'Por favor, introduce a URL da paxina web:', - deleteMessage: 'Eliminar mensaxe', - deleteMessageConfirm: 'Queres borra-la mensaxe?', - errorCookiesRequired: 'As Cookies son necesarias para o chat.', - errorUserNameNotFound: 'Error: usuario %s non encontrado.', - errorMissingText: 'Error: mensaxe perdida.', - errorMissingUserName: 'Error: Usuario non encontrado.', - errorInvalidUserName: 'Error: Nome de usuario non valido.', - errorUserNameInUse: 'Error: Usuario en uso.', - errorMissingChannelName: 'Error: No se atopa a canle.', - errorInvalidChannelName: 'Error: Nome inválido de canle: %s', - errorPrivateMessageNotAllowed: 'Error: mensaxes privadas non permitidas.', - errorInviteNotAllowed: 'Error: Non se che permite invitar nesta canle.', - errorUninviteNotAllowed: 'Error: Non se che permite rechazar invitados nesta canle.', - errorNoOpenQuery: 'Error: Ningunha canle privado aberto.', - errorKickNotAllowed: 'Error: Non podes banear %s.', - errorCommandNotAllowed: 'Error: Comando non permitido: %s', - errorUnknownCommand: 'Error: Comando descoñecido: %s', - errorMaxMessageRate: 'Error: Excedes o numero maximo de mensaxes por minuto.', - errorConnectionTimeout: 'Error: Tempo superado. Téntao de novo.', - errorConnectionStatus: 'Error: Estado de conexión: %s', - errorSoundIO: 'Error: Error o reproducir son(Flash IO Error).', - errorSocketIO: 'Error: Conexión co servidor fallida (Flash IO Error).', - errorSocketSecurity: 'Error: Conexión co servidor fallida(Flash Security Error).', - errorDOMSyntax: 'Error: Sintaxis DOM Inválida(DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/he.js b/library/ajaxchat/chat/js/lang/he.js deleted file mode 100644 index 94bbdc5e1..000000000 --- a/library/ajaxchat/chat/js/lang/he.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Smiley Barry - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s נכנס לתוך הצאט.', - logout: '%s יוצא מהצאט.', - logoutTimeout: '%s הוצא מהצאט (היה לא זמין).', - logoutIP: '%s הוצא מהצאט (כתובת מחשב בלתי חוקית).', - logoutKicked: '%s הוצא מהצאט (הועף/נבעט).', - channelEnter: '%s נכנס לתוך הערוץ.', - channelLeave: '%s יוצא מהערוץ.', - privmsg: '(לוחש)', - privmsgto: '(לוחש ל%s)', - invite: '%s מזמין אותך להצטרף לערוץ %s.', - inviteto: 'ההזמנה שלך עבור %s להצטרף לערוץ %s נשלחה.', - uninvite: '%s ביטל את הזמנתו לערוץ %s.', - uninviteto: 'ביטול ההזמנה שלך עבור %s להצטרף לערוץ %s נשלח.', - queryOpen: 'ערוץ פרטי עבור %s נפתח.', - queryClose: 'ערוץ פרטי עבור %s נסגר.', - ignoreAdded: 'המשתמש %s נוסף לרשימת ההתעלמות.', - ignoreRemoved: 'המשתמש %s נמחק מרשימת ההתעלמות.', - ignoreList: 'משתמשים אשר אתה מתעלם מהם:', - ignoreListEmpty: 'אין משתמשים ברשימה.', - who: 'משתמשים מחוברים:', - whoChannel: 'Online Users in channel %s:', - whoEmpty: 'אין משתמשים מחוברים בערוץ.', - list: 'ערוצים פתוחים:', - bans: 'משתמשים חסומים:', - bansEmpty: 'אין משתמשים חסומים.', - unban: 'בוטלה החסימה נגד המשתמש %s.', - whois: 'כתובת המחשב של המשתמש %s:', - whereis: 'User %s is in channel %s.', - roll: '%s מגלגל %s ומקבל %s.', - nick: '%s is now known as %s.', - toggleUserMenu: 'Toggle user menu for %s', - userMenuLogout: 'Logout', - userMenuWho: 'List online users', - userMenuList: 'List available channels', - userMenuAction: 'Describe action', - userMenuRoll: 'Roll dice', - userMenuNick: 'Change username', - userMenuEnterPrivateRoom: 'Enter private room', - userMenuSendPrivateMessage: 'Send private message', - userMenuDescribe: 'Send private action', - userMenuOpenPrivateChannel: 'Open private channel', - userMenuClosePrivateChannel: 'Close private channel', - userMenuInvite: 'Invite', - userMenuUninvite: 'Uninvite', - userMenuIgnore: 'Ignore/Accept', - userMenuIgnoreList: 'List ignored users', - userMenuWhereis: 'Display channel', - userMenuKick: 'Kick/Ban', - userMenuBans: 'List banned users', - userMenuWhois: 'Display IP', - unbanUser: 'Revoke ban of user %s', - joinChannel: 'הצטרף לערוץ %s', - cite: '%s אמר:', - urlDialog: 'אנא הכנס את כתובת האינטרנט (URL) של הדף:', - deleteMessage: 'Delete this chat message', - deleteMessageConfirm: 'Really delete the selected chat message?', - errorCookiesRequired: 'הצאט מבקש עוגיות כדי לפעול. אנא רד לחנות לקנות.', - errorUserNameNotFound: 'שגיאה: המשתמש %s לא נמצא.', - errorMissingText: 'שגיאה: חסר טקסט בהודעה.', - errorMissingUserName: 'שגיאה: חסר שם משתמש.', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Username already in use.', - errorMissingChannelName: 'שגיאה: חסר שם ערוץ.', - errorInvalidChannelName: 'שגיאה: שם ערוץ לא חוקי: %s', - errorPrivateMessageNotAllowed: 'שגיאה: הודעות פרטיות אסורות לשימוש.', - errorInviteNotAllowed: 'שגיאה: אסור לך להזמין אנשים לערוץ זה.', - errorUninviteNotAllowed: 'שגיאה: אסור לך לבטל הזמנות של אנשים לערוץ זה.', - errorNoOpenQuery: 'שגיאה: ערוץ פרטי לא פתוח.', - errorKickNotAllowed: 'שגיאה: אסור לך להעיף את %s.', - errorCommandNotAllowed: 'שגיאה: פקודה אסורה: %s', - errorUnknownCommand: 'שגיאה: פקודה לא ידועה: %s', - errorMaxMessageRate: 'Error: You exceeded the maximum number of messages per minute.', - errorConnectionTimeout: 'שגיאה: זמן חיבור פג. אנא נסה שנית.', - errorConnectionStatus: 'שגיאת חיבור: %s', - errorSoundIO: 'Error: Failed to load sound file (Flash IO Error).', - errorSocketIO: 'Error: Connection to socket server failed (Flash IO Error).', - errorSocketSecurity: 'Error: Connection to socket server failed (Flash Security Error).', - errorDOMSyntax: 'Error: Invalid DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/hr.js b/library/ajaxchat/chat/js/lang/hr.js deleted file mode 100644 index 6f72e64de..000000000 --- a/library/ajaxchat/chat/js/lang/hr.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: 'Korisnik %s prijavio se u brbljanje.', - logout: 'Korisnik %s odjavio se iz brbljanja.', - logoutTimeout: 'Korisnik %s je odjavljen (neaktivnost).', - logoutIP: 'Korisnik %s je odjavljen (nepravilna IP adresa).', - logoutKicked: 'Korisnik %s je odjavljen (prognan).', - channelEnter: 'Korisnik %s pristupa kanalu.', - channelLeave: 'Korisnik %s napušta kanal.', - privmsg: '(šapuće)', - privmsgto: '(šapuće korisniku %s)', - invite: 'Korisnik %s poziva vas da se pridružite kanalu %s.', - inviteto: 'Vaš poziv korisniku %s da se pridruži kanalu %s je poslan.', - uninvite: 'Korisnik %s povukao je svoj poziv za kanal %s.', - uninviteto: 'Vaš opoziv korisniku %s za pridruživanje kanalu %s je poslan.', - queryOpen: 'Otvoren je privatni kanal za %s.', - queryClose: 'Privatni kanal za %s je zatvoren.', - ignoreAdded: 'Korisnik %s je dodan na popis ignoriranih.', - ignoreRemoved: 'Korisnik %s je uklonjen s popisa ignoriranih.', - ignoreList: 'Ignorirani korisnici:', - ignoreListEmpty: 'Nema ignoriranih korisnika.', - who: 'Prisutni korisnici:', - whoChannel: 'Prisutni korisnici u kanalu %s.', - whoEmpty: 'U odabranom kanalu nema prisutnih korisnika.', - list: 'Dostupni kanali:', - bans: 'Zabranjeni korisnici:', - bansEmpty: 'Nema zabranjenih korisnika.', - unban: 'Opozvana je zabrana korisnika %s.', - whois: 'Korisnik %s - IP adresa:', - whereis: 'Korisnik %s je u kanalu %s.', - roll: 'Korisnik %s baca %s i dobiva %s.', - nick: 'Korisnik %s je sad poznat kao %s.', - toggleUserMenu: 'Prebaci korisnički zbornik za %s', - userMenuLogout: 'Odjava', - userMenuWho: 'Ispiši prisutne korisnike', - userMenuList: 'Ispiši dostupne kanale', - userMenuAction: 'Aktivnost', - userMenuRoll: 'Baci kocku', - userMenuNick: 'Promijeni korisničko ime', - userMenuEnterPrivateRoom: 'Pristupi privatnoj sobi', - userMenuSendPrivateMessage: 'Pošalji privatnu poruku', - userMenuDescribe: 'Pošalji privatnu aktivnost', - userMenuOpenPrivateChannel: 'Otvori privatni kanal', - userMenuClosePrivateChannel: 'Zatvori privatni kanal', - userMenuInvite: 'Pozovi', - userMenuUninvite: 'Opozovi', - userMenuIgnore: 'Ignoriraj / Prihvati', - userMenuIgnoreList: 'Ispiši ignorirane korisnike', - userMenuWhereis: 'Prikaži kanal', - userMenuKick: 'Prognaj / Zabrani', - userMenuBans: 'Ispiši zabranjene korisnike', - userMenuWhois: 'Prikaži IP', - unbanUser: 'Opozovi zabranu korisnika %s.', - joinChannel: 'Pridruži se kanalu %s', - cite: 'Korisnik %s je rekao:', - urlDialog: 'Unesite URL adresu web-stranice:', - deleteMessage: 'Izbriši ovu poruku', - deleteMessageConfirm: 'Želite li zaista izbrisati ovu poruku?', - errorCookiesRequired: 'Ovo brbljanje zahtjeva omogućene kolačiće.', - errorUserNameNotFound: 'Pogreška: Korisnik %s nije pronađen.', - errorMissingText: 'Pogreška: Nedostaje tekst poruke.', - errorMissingUserName: 'Pogreška: Nedostaje korisničko ime.', - errorInvalidUserName: 'Pogreška: Nepravilno korisničko ime.', - errorUserNameInUse: 'Pogreška: Korisničko ime već je u upotrebi.', - errorMissingChannelName: 'Pogreška: Nedostaje naziv kanala.', - errorInvalidChannelName: 'Pogreška: Nepravilan naziv kanala: %s', - errorPrivateMessageNotAllowed: 'Pogreška: Privatne poruke nisu dopuštene.', - errorInviteNotAllowed: 'Pogreška: Nemate dopuštenja za pozivanje drugih osoba u ovaj kanal.', - errorUninviteNotAllowed: 'Pogreška: Nemate dopuštenja za opozivanje drugih osoba u ovom kanalu.', - errorNoOpenQuery: 'Pogreška: Nema otvorenog privatnog kanala.', - errorKickNotAllowed: 'Pogreška: Nemate dopuštenja za progon korisnika %s.', - errorCommandNotAllowed: 'Pogreška: Naredba nije dopuštena: %s', - errorUnknownCommand: 'Pogreška: Nepoznata naredba: %s', - errorMaxMessageRate: 'Pogreška: Premašili ste najveći dopušteni broj poruka u minuti.', - errorConnectionTimeout: 'Pogreška: Neaktivna veza. Pokušajte ponovo.', - errorConnectionStatus: 'Pogreška: Stanje veze: %s', - errorSoundIO: 'Pogreška: Učitavanje datoteke zvuka nije uspjelo (Flash IO pogreška).', - errorSocketIO: 'Pogreška: Povezivanje s priključkom poslužitelja nije uspjelo (Flash IO pogreška).', - errorSocketSecurity: 'Pogreška: Povezivanje s priključkom poslužitelja nije uspjelo (Flash sigurnosna pogreška).', - errorDOMSyntax: 'Pogreška: Nepravilna DOM sintaksa (DOM ID: %s).' - -} diff --git a/library/ajaxchat/chat/js/lang/hu.js b/library/ajaxchat/chat/js/lang/hu.js deleted file mode 100644 index ec2a45e14..000000000 --- a/library/ajaxchat/chat/js/lang/hu.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s belépett a chatre.', - logout: '%s kilépett a chatről.', - logoutTimeout: '%s kilépett a chatről (Időtúllépés).', - logoutIP: '%s kilépett a chatről (Hamis IP cím).', - logoutKicked: '%s ki lett rúgva a chatről.', - channelEnter: '%s belépett a szobába.', - channelLeave: '%s kilépett a szobából.', - privmsg: '(suttog)', - privmsgto: '(suttog %s felhasználónak)', - invite: '%s meghívott a következő szobába: %s.', - inviteto: 'A meghívása %s részére a(z) %s szobába elküldve.', - uninvite: '%s hívatlan vendégnek tart a(z) %s szobában.', - uninviteto: 'Hívatlan vendég jelzője %s számára elküldve a(z) %s szobában.', - queryOpen: 'Privát szoba megnyitva %s felhasználónak.', - queryClose: 'Privát szoba bezárva %s felhasználóval.', - ignoreAdded: '%s hozzáadva a figyelmen kívül hagyottakhoz.', - ignoreRemoved: '%s eltávolítva a figyelmen kívül hagyottak közül.', - ignoreList: 'Figyelmen kívül hagyott felhasználók:', - ignoreListEmpty: 'Nincsenek figyelmen kívül hagyott felhasználók.', - who: 'Jelenlévők:', - whoChannel: 'Jelenlévők a(z) %s szobában:', - whoEmpty: 'Senki nincs a megadott szobában.', - list: 'Szobák:', - bans: 'Kitiltott felhasználók:', - bansEmpty: 'Nincs kitiltott felhasználó.', - unban: '%s tiltása törölve.', - whois: '%s IP címe:', - whereis: '%s a következő szobákban van: %s.', - roll: '%s rolls %s and gets %s.', - nick: '%s új nickje %s.', - toggleUserMenu: '%s - felhasználói menüjének mutatása', - userMenuLogout: 'Kilépés', - userMenuWho: 'Jelenlévők listája', - userMenuList: 'Szobák listája', - userMenuAction: 'Akció küldése', - userMenuRoll: 'Dobókocka játék', - userMenuNick: 'Nick cseréje', - userMenuEnterPrivateRoom: 'Privát szobába lépés', - userMenuSendPrivateMessage: 'Privát üzenet küldése', - userMenuDescribe: 'Privát akció küldése', - userMenuOpenPrivateChannel: 'Privát szoba nyitása', - userMenuClosePrivateChannel: 'Privát szoba bezárása', - userMenuInvite: 'Meghívás', - userMenuUninvite: 'Hívatlan vendég', - userMenuIgnore: 'Figyelmen kívül hagy/engedélyez', - userMenuIgnoreList: 'Figyelmen kívül hagyottak', - userMenuWhereis: 'Szobák mutatása, ahol jelen van', - userMenuKick: 'Kirúgás/kitiltás', - userMenuBans: 'Kitiltottak listája', - userMenuWhois: 'IP megjelenítése', - unbanUser: '%s kitiltásának feloldása', - joinChannel: 'Belépés a szobába %s', - cite: '%s azt mondja:', - urlDialog: 'Kérem írja be a honlap URL-jét:', - deleteMessage: 'Chat üzenet törlése', - deleteMessageConfirm: 'Valóban törölni akarja az üzenetet?', - errorCookiesRequired: 'A cookiek engedélyezése szükséges a chat használatához.', - errorUserNameNotFound: 'Hiba: A %s felhasználó nem található.', - errorMissingText: 'Hiba: hiányzó üzenet.', - errorMissingUserName: 'Hiba: hiányzó felhasználónév.', - errorInvalidUserName: 'Hiba: hamis felhasználónév.', - errorUserNameInUse: 'Hiba: a név már használatban van.', - errorMissingChannelName: 'Hiba: hiányzó szoba név.', - errorInvalidChannelName: 'Hiba: hamis szoba név: %s', - errorPrivateMessageNotAllowed: 'Hiba: a privát üzenetek nem engedélyezettek.', - errorInviteNotAllowed: 'Hiba: nem vagy jogosult felhasználókat meghívni a szobába.', - errorUninviteNotAllowed: 'Hiba: nem vagy jogosult hívatlan vendégnek titulálni bárkit a szobában.', - errorNoOpenQuery: 'Hiba: nincs jogod szobát nyitni.', - errorKickNotAllowed: 'Hiba: nincs jogod kirúgni %s-t.', - errorCommandNotAllowed: 'Hiba: a parancs nem engedélyezett: %s', - errorUnknownCommand: 'Hiba: ismeretlen parancs: %s', - errorMaxMessageRate: 'Hiba: elérted a percenként küldhető maximális üzenet számot.', - errorConnectionTimeout: 'Hiba: időtúllépés! Próbáld újra!.', - errorConnectionStatus: 'Hiba: a kapcsolat állapota: %s', - errorSoundIO: 'Hiba: a hangfájl betöltése sikertelen. (I/O)', - errorSocketIO: 'Hiba: kapcsolódás a socket szerverhez sikertelen. (I/O)', - errorSocketSecurity: 'Hiba: kapcsolódás a socket szerverhez sikertelen. (Biztonsági hiba!)', - errorDOMSyntax: 'Hiba: Hibás DOM szintaxis (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/in.js b/library/ajaxchat/chat/js/lang/in.js deleted file mode 100644 index 582b9703b..000000000 --- a/library/ajaxchat/chat/js/lang/in.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s masuk ke chat.', - logout: '%s keluar dari chat.', - logoutTimeout: '%s telah keluar dari saluran (Timeout).', - logoutIP: '%s elah keluar dari saluran (Invalid IP address).', - logoutKicked: '%s elah keluar dari saluran (Kicked).', - channelEnter: '%s masuk saluran.', - channelLeave: '%s meninggalkan.', - privmsg: '(berbisik)', - privmsgto: '(berbisik ke %s)', - invite: '%s mengundang anda untuk gabung ke %s.', - inviteto: 'Undangan anda ke %s untuk gabung saluran %s telah dikirim.', - uninvite: '%s membatalkan untuk mengundang anda dari saluran %s.', - uninviteto: 'Pembatalan undangan anda ke %s untuk salura %s telah dikirim.', - queryOpen: 'Saluran Privasi telah dibuka untuk %s.', - queryClose: 'Saluran Privasi untuk %s telah ditutup.', - ignoreAdded: 'Menambah %s ke daftar yang diacuhkan.', - ignoreRemoved: 'Mencabut %s dari daftar yang diacuhkan.', - ignoreList: 'Acuhkan pengguna:', - ignoreListEmpty: 'Tidak ada nama dalam daftar yang diacuhkan.', - who: 'Pengguna online:', - whoChannel: 'Pengguna-2 yang online di saluran %s:', - whoEmpty: 'Tidak ada pengguna yang online di saluran tersebut.', - list: 'Saluran yang tersedia:', - bans: 'Pengguna yang diblok:', - bansEmpty: 'Tidak ada pengguna yang diblok.', - unban: 'Pembatalan Blok pengguna %s .', - whois: 'Alamat IP Pengguna %s :', - whereis: 'Pengguna %s ada di saluran %s.', - roll: '%s melempar %s dan mendapatkan %s.', - nick: '%s sekarang dikenal sebagai %s.', - toggleUserMenu: 'Tombol menu pengguna untuk %s', - userMenuLogout: 'Keluar', - userMenuWho: 'Daftar pengguna yang online', - userMenuList: 'Daftar saluran-saluran yang tersedia', - userMenuAction: 'Menjelaskan tindakan', - userMenuRoll: 'Melempar Dadu', - userMenuNick: 'Mengganti Nama', - userMenuEnterPrivateRoom: 'Memasuki ruang privasi', - userMenuSendPrivateMessage: 'Kirim pesan pribadi', - userMenuDescribe: 'Kirim tindakan pribadi', - userMenuOpenPrivateChannel: 'Buka Saluran Privasi', - userMenuClosePrivateChannel: 'Tutup Saluran Privasi', - userMenuInvite: 'Mengundang', - userMenuUninvite: 'Tidak Mengundang', - userMenuIgnore: 'Acuhkan/Terima', - userMenuIgnoreList: 'Daftar Pengguna yang diacuhkan', - userMenuWhereis: 'Tampilkan Saluran', - userMenuKick: 'Tendang/Blok', - userMenuBans: 'Daftar Pengguna yang diblok', - userMenuWhois: 'Tampilkan IP', - unbanUser: 'Batalkan blok pengguna %s', - joinChannel: 'Gabung Saluran %s', - cite: '%s berkata:', - urlDialog: 'Mohon masukan alamat (URL) of the web:', - deleteMessage: 'Hapus pesan chat ini', - deleteMessageConfirm: 'Yakin akan menghapus pesan chat yang dipilih?', - errorCookiesRequired: 'Cookies diperlukan untuk chat.', - errorUserNameNotFound: 'Error: Pengguna %s tidak ada.', - errorMissingText: 'Error: Teks pesan tidak ada.', - errorMissingUserName: 'Error: Nama tidak ada.', - errorInvalidUserName: 'Error: Kesalahan pada Nama.', - errorUserNameInUse: 'Error: Nama telah dipakai.', - errorMissingChannelName: 'Error: Nama saluran belum ada.', - errorInvalidChannelName: 'Error: Kesalahan pada nama saluran: %s', - errorPrivateMessageNotAllowed: 'Error: Pesan pribadi tidak diijinkan.', - errorInviteNotAllowed: 'Error: Anda tidak diijinkan untuk mengundang orang lain ke saluran ini.', - errorUninviteNotAllowed: 'Error: Anda tidak diijinkan untuk tidak mengundang seseorang ke saluran ini.', - errorNoOpenQuery: 'Error: Tidak ada saluran privasi yang dibuka.', - errorKickNotAllowed: 'Error: Anda tidak diijinkan untuk menendang %s.', - errorCommandNotAllowed: 'Error: Perintah tidak diijinkan: %s', - errorUnknownCommand: 'Error: Perintah tidak diketahui: %s', - errorMaxMessageRate: 'Error: Anda telah melampaui batas pesan maksimum per menitnya.', - errorConnectionTimeout: 'Error: Koneksi putus. Mohon dicoba kembali.', - errorConnectionStatus: 'Error: Status koneksi: %s', - errorSoundIO: 'Error: Gagal mengeluarkan suara (Flash IO Error).', - errorSocketIO: 'Error: Gagal mengadakan koneksi ke server (Flash IO Error).', - errorSocketSecurity: 'Error: Gagal mengadakan koneksi ke server (Flash Security Error).', - errorDOMSyntax: 'Error: Sintaks DOM yang tidak dikenal(DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/index.html b/library/ajaxchat/chat/js/lang/index.html deleted file mode 100644 index e69de29bb..000000000 diff --git a/library/ajaxchat/chat/js/lang/it.js b/library/ajaxchat/chat/js/lang/it.js deleted file mode 100644 index a84c47ff9..000000000 --- a/library/ajaxchat/chat/js/lang/it.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author s8s8 - * @author Massimiliano Tiraboschi - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s entra in Chat.', - logout: '%s esce dalla Chat.', - logoutTimeout: '%s esce (TimeOut).', - logoutIP: '%s esce (IP non valido).', - logoutKicked: '%s esce (Kicked).', - channelEnter: '%s entra nel canale.', - channelLeave: '%s lascia il canale.', - privmsg: '(privato)', - privmsgto: '(privato a %s)', - invite: '%s ti invita a entrare in %s.', - inviteto: 'Il tuo invito ad entrare nel canale %s è stato inviato a %s.', - uninvite: '%s ha rimosso il tuo invito per %s.', - uninviteto: 'Rimosso invito per %s per il canale %s.', - queryOpen: 'Canale privato aperto con %s.', - queryClose: 'Canale privato con %s chiuso.', - ignoreAdded: '%s aggiunto agli ingorati.', - ignoreRemoved: '%s rimosso dagli ignorati.', - ignoreList: 'Utenti Ignorati:', - ignoreListEmpty: 'Utenti permessi.', - who: 'Utenti Online:', - whoChannel: 'Utenti Online nel canale %s:', - whoEmpty: 'Nessun utente in linea nel canale.', - list: 'Canali disponibili:', - bans: 'Utenti Bannati:', - bansEmpty: 'Nessun utente bannato in lista.', - unban: 'Ban di %s rimosso.', - whois: '%s - IP:', - whereis: 'User %s is in channel %s.', - roll: '%s lancia %s e fa %s.', - nick: '%s è conosciuto ora come %s.', - toggleUserMenu: 'Mostra/Nascondi menu per %s', - userMenuLogout: 'Esci', - userMenuWho: 'Lista utenti online', - userMenuList: 'Lista canali disponibili', - userMenuAction: 'Descrivi azione', - userMenuRoll: 'Getta dadi', - userMenuNick: 'Cambia username', - userMenuEnterPrivateRoom: 'Entra canale privato', - userMenuSendPrivateMessage: 'Invia messaggio privato', - userMenuDescribe: 'Invia azione privata', - userMenuOpenPrivateChannel: 'Apri canale privato', - userMenuClosePrivateChannel: 'Chiudi canale privato', - userMenuInvite: 'Invita', - userMenuUninvite: 'Disinvita', - userMenuIgnore: 'Ignora/Accetta', - userMenuIgnoreList: 'Lista utenti ignorati', - userMenuWhereis: 'Mostra canale', - userMenuKick: 'Butta fuori/Banna', - userMenuBans: 'Lista utenti bannati', - userMenuWhois: 'Mostra IP', - unbanUser: 'Revoca il ban per l\'utente %s', - joinChannel: 'Entra nel canale %s', - cite: '%s dice:', - urlDialog: 'Inserire indirizzo (URL) della pagina Web:', - deleteMessage: 'Cancella questo messaggio', - deleteMessageConfirm: 'Sicuro di cancellare il messaggio selezionato ?', - errorCookiesRequired: 'I Cookies sono richiesti per questa chat.', - errorUserNameNotFound: 'Errore: Utente %s non trovato.', - errorMissingText: 'Errore: Messaggio di testo non trovato.', - errorMissingUserName: 'Errore: Nome Utente non trovato.', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Username already in use.', - errorMissingChannelName: 'Errore: Canale non trovato.', - errorInvalidChannelName: 'Errore: Nome canale non valido: %s', - errorPrivateMessageNotAllowed: 'Errore: Messaggi privati non permessi.', - errorInviteNotAllowed: 'Errore: Non hai il permesso di invitare in questo canale.', - errorUninviteNotAllowed: 'Errore: Non hai il permesso di rimuovere inviti per queso canale.', - errorNoOpenQuery: 'Errore: Nessun canale privato aperto.', - errorKickNotAllowed: 'Errore: Non sei abilitato a Kikkare %s.', - errorCommandNotAllowed: 'Errore: Comando non permesso: %s', - errorUnknownCommand: 'Errore: Comando sconosciuto: %s', - errorMaxMessageRate: 'Errore: Hai superato il numero massimo di messaggi per minuto.', - errorConnectionTimeout: 'Errore: Connessione persa. Riprovare.', - errorConnectionStatus: 'Errore: Stato di Connessione: %s', - errorSoundIO: 'Errore: Caricamento files suono fallito (Flash IO Error).', - errorSocketIO: 'Errore: Connection to socket server failed (Flash IO Error).', - errorSocketSecurity: 'Error: Connection to socket server failed (Flash Security Error).', - errorDOMSyntax: 'Error: Invalid DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/ja.js b/library/ajaxchat/chat/js/lang/ja.js deleted file mode 100644 index 5d87d2eea..000000000 --- a/library/ajaxchat/chat/js/lang/ja.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s さんがログインしました', - logout: '%s さんがログアウトしました', - logoutTimeout: '%s さんが強制的にログアウトされました (タイムアウト)', - logoutIP: '%s さんが強制的にログアウトされました (不正な IPアドレス)', - logoutKicked: '%s さんが強制的にログアウトされました (キック).', - channelEnter: '%s さんが入室しました', - channelLeave: '%s さんが退室しました', - privmsg: '(プライベートメッセージ)', - privmsgto: '(%s さんへプライベートメッセージ)', - invite: '%s さんから チャンネル %s への招待 が届いています', - inviteto: '%s さんへ チャンネル %s への招待 を送りました', - uninvite: '%s さんから チャンネル %s への招待 を取り消されました', - uninviteto: '%s さんの チャンネル %s への招待 を取り消しました', - queryOpen: '二人きりモードを %s さんと開始しました', - queryClose: '%s さんとの二人きりモードを終了しました', - ignoreAdded: '%s さんを無視ユーザーリストに追加しました', - ignoreRemoved: '%s さんを無理ユーザーリストから削除しました', - ignoreList: '無視ユーザーリスト :', - ignoreListEmpty: 'あなたはどのユーザーも無視していません', - who: 'オンラインユーザー :', - whoChannel: 'チャンネル %s に入室中のユーザー :', - whoEmpty: 'そのチャンネルに入室中のユーザーは一人もいません', - list: '入室可能なチャンネル :', - bans: 'アクセス禁止ユーザーリスト :', - bansEmpty: 'アクセス禁止されたユーザーは一人もいません', - unban: 'ユーザー %s のアクセス禁止を取り消しました', - whois: 'ユーザー %s の IPアドレス :', - whereis: 'ユーザー %s はチャンネル %s にいます', - roll: '%s さんがサイコロを振りました。 %s - 結果 %s', - nick: '%s さんのニックネームは以降 %s です', - toggleUserMenu: '%s さんのユーザーメニューを表示する/表示しない', - userMenuLogout: 'ログアウト', - userMenuWho: 'オンラインユーザーリスト', - userMenuList: '入室可能なチャンネルのリスト', - userMenuAction: '感情を表現する', - userMenuRoll: 'サイコロを振る', - userMenuNick: 'ニックネーム', - userMenuEnterPrivateRoom: 'プライベートルームへ移動する', - userMenuSendPrivateMessage: 'プライベートメッセージを送る', - userMenuDescribe: '感情を表現する', - userMenuOpenPrivateChannel: '二人きりモードを開始する', - userMenuClosePrivateChannel: '二人きりモードを終了する', - userMenuInvite: '招待する', - userMenuUninvite: '招待を取り消す', - userMenuIgnore: '無視する/無視しない', - userMenuIgnoreList: '無視ユーザーリスト', - userMenuWhereis: 'ユーザーの居場所', - userMenuKick: 'キック/アクセス禁止', - userMenuBans: 'アクセス禁止ユーザーリスト', - userMenuWhois: 'IPアドレス', - unbanUser: 'ユーザー %s のアクセス禁止を取り消す', - joinChannel: 'チャンネル %s へ移動する', - cite: '%s さんが言いました :', - urlDialog: 'サイトのアドレス (URL) を入力してください :', - deleteMessage: 'このチャットメッセージを削除する', - deleteMessageConfirm: 'チャットメッセージを本当に削除してもよろしいですか?', - errorCookiesRequired: 'このチャットシステムを利用するには Cookie を有効にしておく必要があります', - errorUserNameNotFound: 'エラー : ユーザー %s が見つかりませんでした', - errorMissingText: 'エラー : メッセージが未入力です', - errorMissingUserName: 'エラー : ユーザー名が未入力です', - errorInvalidUserName: 'エラー : ユーザー名が正しくありません', - errorUserNameInUse: 'エラー : そのユーザー名は既に使われています', - errorMissingChannelName: 'エラー : チャンネル名が未入力です', - errorInvalidChannelName: 'エラー : チャンネル名が正しくありません : %s', - errorPrivateMessageNotAllowed: 'エラー : プライベートメッセージが許可されていません', - errorInviteNotAllowed: 'エラー : あなたはこのチャンネルで誰かを招待することを許可されていません', - errorUninviteNotAllowed: 'エラー : あなたはこのチャンネルで誰かの招待を取り消すことを許可されていません', - errorNoOpenQuery: 'エラー : 二人きりモードが開始されていません', - errorKickNotAllowed: 'エラー : あなたは %s さんをキックすることを許可されていません', - errorCommandNotAllowed: 'エラー : コマンドが許可されていません : %s', - errorUnknownCommand: 'エラー : コマンドが不正です : %s', - errorMaxMessageRate: 'エラー : 1分あたりに発言できる最大文字数を超えています', - errorConnectionTimeout: 'エラー : 接続がタイムアウトしました。再度試してください。', - errorConnectionStatus: 'エラー : 接続ステータス : %s', - errorSoundIO: 'エラー : サウンドファイルの読み込みに失敗しました (Flash IO Error)', - errorSocketIO: 'エラー : ソケットサーバへの接続に失敗しました (Flash IO Error)', - errorSocketSecurity: 'エラー : ソケットサーバへの接続に失敗しました (Flash Security Error)', - errorDOMSyntax: 'エラー : DOM の文法が不正です (DOM ID: %s)' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/ka.js b/library/ajaxchat/chat/js/lang/ka.js deleted file mode 100644 index 6f0a24d72..000000000 --- a/library/ajaxchat/chat/js/lang/ka.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s ჩატში შემოვიდა.', - logout: '%s ჩატიდან გავიდა.', - logoutTimeout: '%s ჩატი დატოვა (დრო ამოიწურა).', - logoutIP: '%s ჩატი დატოვა (არასწორი IP მისამართი).', - logoutKicked: '%s ჩატი დატოვა (ამოარტყეს).', - channelEnter: '%s უერთდება არხს.', - channelLeave: '%s ტოვებს არხს.', - privmsg: '(ჩურჩულებს)', - privmsgto: '(%s-ს უჩურჩულებს)', - invite: '%s გეპაიჟებათ შეუერთდეთ %s-ს.', - inviteto: '%s-თვის შექმნილი მოსაწვევი, რათა შეუერთდეს არხ %s-ს, გაგზავნილია.', - uninvite: '%s თავის დაპატიჟებას არხ %s-თვის აუქმებს.', - uninviteto: '%s-თვის დაწერილი, %s არხის მოსაწვევის გაუქმება გაგხავნილია.', - queryOpen: 'პირადი არხი %s-სთან გასხნილია.', - queryClose: 'პირადი არხი %s-სთან დახურულია.', - ignoreAdded: '%s იგნორირების სიას დაემატა.', - ignoreRemoved: '%s იგნორირების სიიდან ამოღებულია.', - ignoreList: 'იგნორირებულები:', - ignoreListEmpty: 'იგნორირებული წევრები არაა.', - who: 'ხაზზე არიან:', - whoChannel: 'არხ %s-ში ხაზზე არიან:', - whoEmpty: 'მოცემულ არხში ხაზზე არავინაა.', - list: 'ხელმისაწვდომი არხები:', - bans: 'დაბლოკილი წევრები:', - bansEmpty: 'დაბლოკილი წევრები არაა.', - unban: '%s წევრის ბლოკი მოხსნილია.', - whois: '%s წევრის - IP მისამართი:', - whereis: 'წევრი %s იმყოფება %s არხში.', - roll: '%s აგდებს %s-ს და იღებს %s-ს.', - nick: '%s ახლა ცნობილია როგორც %s.', - toggleUserMenu: 'წევრის მენიუს %s-თვის ჩართვა/გათიშვა', - userMenuLogout: 'გასვლა', - userMenuWho: 'ჩამოწერე ხაზზე ვინაა', - userMenuList: 'ჩამოწერე ხელმისაწვდომი არხები', - userMenuAction: 'აღწერე ქმედება', - userMenuRoll: 'კამათლების გაგორება', - userMenuNick: 'მეტსახელის შეცვლა', - userMenuEnterPrivateRoom: 'პირად ოთახში შესვლა', - userMenuSendPrivateMessage: 'პირადი მიმოწერა', - userMenuDescribe: 'პირადი ქმედების გაგზავნა', - userMenuOpenPrivateChannel: 'გახსენი პირადი არხი', - userMenuClosePrivateChannel: 'დახურე პირადი არხი', - userMenuInvite: 'დაპატიჟება', - userMenuUninvite: 'დაპატიჟების გაუქმება', - userMenuIgnore: 'იგნორირება/მიღება', - userMenuIgnoreList: 'ჩამოწერე იგნორირებულები', - userMenuWhereis: 'მაჩვენე არხი', - userMenuKick: 'ამორტყმა/დაბლოკვა', - userMenuBans: 'დაბლოკილების ჩამოწერა', - userMenuWhois: 'IP-ს ჩვენება', - unbanUser: '%s წევრის ბლოკის მოხსნა', - joinChannel: '%s არხში შესვლა', - cite: '%s თქვა:', - urlDialog: 'გთხოვთ შეიყვანოთ ვებ-გვერდის მისამართი (URL):', - deleteMessage: 'გზავნილის წაშლა', - deleteMessageConfirm: 'მართლა წავშალოთ ეს გზავნილი?', - errorCookiesRequired: 'ჩატისთვის cookies არიან საჭირო.', - errorUserNameNotFound: 'შეცდომა: წევრი %s არ მოიძებნა.', - errorMissingText: 'შეცდომა: გზავნილის ტექსტი აკლია.', - errorMissingUserName: 'შეცდომა: აკლია მეტსახელი.', - errorInvalidUserName: 'შეცდომა: არასწორი მეტსახელი.', - errorUserNameInUse: 'შეცდომა: მეტსახელი დაკავებულია.', - errorMissingChannelName: 'შეცდომა: აკლია არხის სახელი.', - errorInvalidChannelName: 'შეცდომა: არხის სახელი - %s - არასწორია', - errorPrivateMessageNotAllowed: 'შეცდომა: პირადი მიმოწერა აკრზალულია.', - errorInviteNotAllowed: 'შეცდომა: უფლება არ გაქვთ მიმდინარე არხში ვინმე მოიწვიოთ.', - errorUninviteNotAllowed: 'შეცდომა: უფლება არ გაქავთ მინდინარე არხიდან ვინმესი გაგდება.', - errorNoOpenQuery: 'შეცდომა: პირადი არხები გახსნილი არაა.', - errorKickNotAllowed: 'შეცდომა: უფლება არ გაგჩნიათ %s-ს ამოარტყათ.', - errorCommandNotAllowed: 'შეცდომა: ბრზანება - %s - აკრძალულია', - errorUnknownCommand: 'შეცდომა: ბრძანება - %s - უცნობია', - errorMaxMessageRate: 'შეცდომა: თქვენ მიაღწიეთ წუთში მაქსიმალურ შესაძლებელ გზავნილების რიცხვს.', - errorConnectionTimeout: 'შეცდომა: კავშირს ვადა გაუვიდა. გთხოვთ, კიდევ სცადეთ.', - errorConnectionStatus: 'შეცდომა: კავშირის სტატუსი: %s', - errorSoundIO: 'შეცდომა: ხმის ფაილი ვერ ჩაიტვირთა (Flash IO Error).', - errorSocketIO: 'შეცდომა: სერვერის სოკეტთან დაკავშირება ჩაიშალა (Flash IO Error).', - errorSocketSecurity: 'შეცდომა: სერვერის სოკეტთან დაკავშირება ჩაიშალა (Flash Security Error).', - errorDOMSyntax: 'შეცდომა: არასწორი DOM სინტაქსი (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/kr.js b/library/ajaxchat/chat/js/lang/kr.js deleted file mode 100644 index 27ef9196d..000000000 --- a/library/ajaxchat/chat/js/lang/kr.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s께서 접속하였습니다.', - logout: '%s님께서 접속을 종료하였습니다.', - logoutTimeout: '%s님께서 시간초과로 나가셨습니다.', - logoutIP: '%s님께서 IP주소문제로 나가셨습니다.', - logoutKicked: '%s님께서 추방되었습니다.', - channelEnter: '%s님께서 들어오셨습니다.', - channelLeave: '%s님께서 나가셨습니다.', - privmsg: '(귓속말)', - privmsgto: '(%s에게 귓속말)', - invite: '%s님께서 %s채널에서 초대하셨습니다.', - inviteto: '%s을 %s채널로 초대하는 메시지를 보냈습니다..', - uninvite: '%s님께서 %s채널로의 초대를 취소하였습니다.', - uninviteto: '%s님께 %s채널로의 초대를 취소하는 메시지를 보냈습니다', - queryOpen: '%s님의 개인채널이 열렸습니다.', - queryClose: '%s님의 개인채널이 닫혔습니다.', - ignoreAdded: '%s님을 대화차단 목록에 추가하였습니다.', - ignoreRemoved: '%s님을 대화차단 목록에서 삭제하였습니다.', - ignoreList: '차단된 사용자:', - ignoreListEmpty: '차단된 사용자가 없습니다.', - who: '접속중인 사용자:', - whoChannel: '%s채널에 접속중인 사용자:', - whoEmpty: '해당 채널에 접속중인 사용자가 없습니다.', - list: '사용가능한 채널:', - bans: '추방된 사용자:', - bansEmpty: '추방된 사용자가 없습니다.', - unban: '%s을 다시 복구하였습니다.', - whois: '%s - IP주소:', - whereis: '%s님은 %s 채널에 계십니다.', - roll: '%s 롤 %s 및 도착 %s.', - nick: '%s님의 닉네임은 %s입니다.', - toggleUserMenu: '에 대한 전환 사용자 메뉴 %s', - userMenuLogout: '로그아웃', - userMenuWho: '접속중인 사용자', - userMenuList: '채널목록', - userMenuAction: '작업을 설명', - userMenuRoll: '주사위', - userMenuNick: '대화명 변경', - userMenuEnterPrivateRoom: '개인 대화방 입장', - userMenuSendPrivateMessage: '귓속말 전송', - userMenuDescribe: '개인 작업을 보내기', - userMenuOpenPrivateChannel: '개인 채널 개설', - userMenuClosePrivateChannel: '개인 채널 닫기', - userMenuInvite: '초대', - userMenuUninvite: '초대 취소', - userMenuIgnore: '차단/수락', - userMenuIgnoreList: '대화차단 목록', - userMenuWhereis: '채널확인', - userMenuKick: '추방', - userMenuBans: '추방된 사용자 목록', - userMenuWhois: '접속주소 확인', - unbanUser: '%s 사용자를 추방취소', - joinChannel: '%s 채널에 접속', - cite: '%s님의 말:', - urlDialog: '웹페이지의 주소를 입력하세요:', - deleteMessage: '이 메시지 삭제', - deleteMessageConfirm: '선택한 메시지를 삭제하시겠습니까?', - errorCookiesRequired: '쿠키 사용으로 설정하세요.', - errorUserNameNotFound: '오류: %s님을 찾을 수 없습니다.', - errorMissingText: '오류: 메시지를 찾을 수 없습니다.', - errorMissingUserName: '오류: 대화명을 찾을 수 없습니다.', - errorInvalidUserName: '오류: 잘못된 대화명입니다.', - errorUserNameInUse: '오류: 이미 사용중인 대화명입니다.', - errorMissingChannelName: '오류: 채널명을 찾을 수 없습니다.', - errorInvalidChannelName: '오류: %s 채널이 없습니다.', - errorPrivateMessageNotAllowed: '오류: 귓속말을 사용할 수 없습니다.', - errorInviteNotAllowed: '오류: 이 채널로 다른 사용자를 초대하는 권한이 없습니다.', - errorUninviteNotAllowed: '오류: 다른 사용자의 초대를 취소할 권한이 없습니다.', - errorNoOpenQuery: '오류: 열려있는 개인 채널이 없습니다..', - errorKickNotAllowed: '오류: %s를 추방할 수 있는 권한이 없습니다.', - errorCommandNotAllowed: '오류: %s 명령을 사용할 수 없습니다.', - errorUnknownCommand: '오류: %s은 없는 명령어입니다.', - errorMaxMessageRate: '오류: 1분동안 연속해서 입력할 수 있는 메시지 수를 초과하였습니다.', - errorConnectionTimeout: '오류: 접속시간을 초과하였습니다.', - errorConnectionStatus: '오류: 접속 상태: %s', - errorSoundIO: '오류: 입출력 실패로 소리파일을 불러오는데 실패하였습니다.', - errorSocketIO: '오류: 입출력 실패로 서버에 접속하는데 실패하였습니다.', - errorSocketSecurity: '오류: 보안문제로 서버에 접속하는데 실패하였습니다.', - errorDOMSyntax: '오류: DOM 문법이 잘못되었습니다. (DOM ID: %s).' - -} diff --git a/library/ajaxchat/chat/js/lang/mk.js b/library/ajaxchat/chat/js/lang/mk.js deleted file mode 100644 index 8ca441112..000000000 --- a/library/ajaxchat/chat/js/lang/mk.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Nebojsa Ilijoski - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ -var ajaxChatLang={login:"%s се приклучи на четот.",logout:"%s излезе од четот.",logoutTimeout:"%s излезе автоматски од четот (Истече времето).",logoutIP:"%s излезе автоматски од четот (Погрешна IP адреса).",logoutKicked:"%s излезе автоматски од четот (Злоупотреба).",channelEnter:"%s се прилкучи на каналот.",channelLeave:"%s го напушти канала.",privmsg:"(шепоти)",privmsgto:"(шепоти на %s)",invite:"%s ве кани да се приклучите со него %s.",inviteto:"Поканата за %s да се приклучи на каналот %s беше испратена.",uninvite:"%s е отпоканет на поканата за каналот %s.",uninviteto:"Отпоканата на поканата до %s за каналот %s беше испратена.",queryOpen:"Отворен е приватен канал за %s.",queryClose:"Затворен е приватен канал за %s.",ignoreAdded:"%s е ставен на списокот на игнорирани.",ignoreRemoved:"%s беше отстранет од списокот на игнорирани.",ignoreList:"Игнорирани корисници:",ignoreListEmpty:"Нема игнорирани корисници.",who:"Оnline корисници:",whoChannel:"Online корисници на каналот %s:",whoEmpty:"На дадениот канал нема online корисници.",list:"Приватни канали:",bans:"Блокирани корисници:",bansEmpty:"Нема блокирани корисници.",unban:"Блокирањето на корисникот %s е завршено.",whois:"Корисникот %s — IP адреса:",whereis:"Корисникот %s е на канал %s.",roll:"%s фрли %s и доби %s.",nick:"%s веќе се нарекува %s.",toggleUserMenu:"Прикажување/скривање на корисничкото мени за %s",userMenuLogout:"Излези",userMenuWho:"Online корисници",userMenuList:"Приватни канали",userMenuAction:"Опис на дејство",userMenuRoll:"Фрлање на коцка",userMenuNick:"Промена на името",userMenuEnterPrivateRoom:"Влез во приватна соба",userMenuSendPrivateMessage:"Испраќање на приватна порака",userMenuDescribe:"Испраќање на приватно дејство",userMenuOpenPrivateChannel:"Отварање на приватен канал",userMenuClosePrivateChannel:"Затварање на приватен канал",userMenuInvite:"Покана",userMenuUninvite:"Одговор на покана",userMenuIgnore:"Одбивање/прифаќање",userMenuIgnoreList:"Игнорирани корисници",userMenuWhereis:"Преглед на канал",userMenuKick:"Прифаќање/Блокирање",userMenuBans:"Блокирани корисници",userMenuWhois:"Преглед на IP адреса",unbanUser:"Одблокирање на %s",joinChannel:"Присоединување кон каналот %s",cite:"%s рече:",urlDialog:"Ве молам, внесете адреса (URL) на страницата:",deleteMessage:"Бришење на пораката",deleteMessageConfirm:"Дали сте сигурни дека сакате да е избришете пораката?",errorCookiesRequired:"За четот е потребно да се активни cookies.",errorUserNameNotFound:"Грешка: Корисникот %s не е пронајден.",errorMissingText:"Грешка: Недостасува текст од пораката.",errorMissingUserName:"Грешка: Недостасува корисничкото име.",errorInvalidUserName:"Грешка: Погрешно корисничко име.",errorUserNameInUse:"Грешка: Корисничкото име веќе е во употреба.",errorMissingChannelName:"Грешка: Недостасува името на каналот.",errorInvalidChannelName:"Грешка: Името на каналот не е валидно: %s",errorPrivateMessageNotAllowed:"Грешка: Лични пораки не се дозволени.",errorInviteNotAllowed:"Грешка: Не ви е позволено да каните корисници на овој канал.",errorUninviteNotAllowed:"Грешка: Не ви е дозволено да отпоканување на овој канал.",errorNoOpenQuery:"Грешка: Не е отворен приватен канал.",errorKickNotAllowed:"Грешка: Не ви е дозволено да исфрлате %s.",errorCommandNotAllowed:"Грешка: Командата не е дозволена: %s",errorUnknownCommand:"Грешка: Непозната команда: %s",errorMaxMessageRate:"Грешка: Го надминавте максималниот број пораки во минута.",errorConnectionTimeout:"Грешка: Истече на времето на врската. Ве молам обидете се повторно!",errorConnectionStatus:"Грешка: Состојба на врската: %s",errorSoundIO:"Грешка: Неуспешно поставување на звукот (Влезно-излезна грешка на Флешот).",errorSocketIO:"Грешка: Неуспешна врска кон сокетниот сервер (Влезно-излезна грешка на Флешот).",errorSocketSecurity:"Грешка: Неуспешна врска кон сокетниот сервер (Грешка во сигурноста на Флашот).",errorDOMSyntax:"Грешка: Погрешна синтакса на DOM (DOM ID: %s)."}; \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/nl-be.js b/library/ajaxchat/chat/js/lang/nl-be.js deleted file mode 100644 index 4184ce7c9..000000000 --- a/library/ajaxchat/chat/js/lang/nl-be.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Nic Mertens - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s komt in het chatkanaal.', - logout: '%s verlaat het chatkanaal.', - logoutTimeout: '%s verlaat het chatkanaal (Timeout).', - logoutIP: '%s is afgemeld (Ongeldig IP address).', - logoutKicked: '%s is afgemeld (Kick door admin of moderator).', - channelEnter: '%s komt het kanaal binnen.', - channelLeave: '%s verlaat het kanaal.', - privmsg: '(fluistert)', - privmsgto: '(fluistert naar %s)', - invite: '%s nodigt je uit om naar %s te komen.', - inviteto: 'Je uitnodiging naar %s om het kanaal %s te bezoeken, werd verstuurd.', - uninvite: '%s annuleert de uitnodiging van kanaal %s.', - uninviteto: 'De annulatie van je uitnodiging aan %s voor het kanaal %s werd verstuurd.', - queryOpen: 'Privékanaal geopend naar %s.', - queryClose: 'Privékanaal naar %s wordt gesloten.', - ignoreAdded: '%s is toegevoegd aan de negeer lijst.', - ignoreRemoved: '%s werd verwijderd van de negeerlijst.', - ignoreList: 'Genegeerde gebruikers:', - ignoreListEmpty: 'Er zijn geen genegeerde gebruikers.', - who: 'Online gebruikers:', - whoChannel: 'Online gebruikers in channel %s:', - whoEmpty: 'Er zijn geen gebruikers in het gekozen kanaal.', - list: 'Beschikbare kanalen:', - bans: 'Gebande gebruikers:', - bansEmpty: 'Er zijn geen gebande gebruikers.', - unban: 'Ban van gebruiker %s opgeheven.', - whois: 'Gebruiker %s - IP adres:', - whereis: 'User %s is in channel %s.', - roll: '%s smijt %s en krijgt %s.', - nick: '%s heet nu %s.', - toggleUserMenu: 'Open menu voor gebruiker %s', - userMenuLogout: 'Afmelden', - userMenuWho: 'Lijst online gebruikers', - userMenuList: 'Lijst beschikbaare kanalen', - userMenuAction: 'Beschrijf actie', - userMenuRoll: 'Rol dobbelsteen', - userMenuNick: 'Wijzig gebruikersnaam', - userMenuEnterPrivateRoom: 'Ga privékanaal binnen', - userMenuSendPrivateMessage: 'Stuur privé bericht', - userMenuDescribe: 'Stuur privé actie', - userMenuOpenPrivateChannel: 'Open privé kanaal', - userMenuClosePrivateChannel: 'Sluit privé kanaal', - userMenuInvite: 'Nodig uit', - userMenuUninvite: 'Uitnodiging intrekken', - userMenuIgnore: 'Negeren/aanvaarden', - userMenuIgnoreList: 'Lijst genegeerde gebruikers', - userMenuWhereis: 'Toon kanaal', - userMenuKick: 'Verwijderen/Verbannen', - userMenuBans: 'Lijst verbande gebruikers', - userMenuWhois: 'Toon IP', - unbanUser: 'Gebande gebruiker %s terug toelaten', - joinChannel: 'Betreedt kanaal %s', - cite: '%s zei:', - urlDialog: 'Gelieve het (URL) adres van de webpagina in te geven:', - deleteMessage: 'Verwijder dit chat bericht', - deleteMessageConfirm: 'Bent u zeker dat u dit bericht wil verwijderen?', - errorCookiesRequired: 'Cookies moeten aangeschakeld zijn voor deze chat.', - errorUserNameNotFound: 'Fout: Gebruiker %s werd niet gevonden.', - errorMissingText: 'Fout: Ontbrekende berichttekst.', - errorMissingUserName: 'Fout: Ontbrekende Gebruikersnaam.', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Gebruikersnaam wordt al gebruikt', - errorMissingChannelName: 'Fout: Ontbrekende kanaalnaam.', - errorInvalidChannelName: 'Fout: Ongeldige kanaalnaam: %s', - errorPrivateMessageNotAllowed: 'Error: Private berichten zijn niet toegestaan.', - errorInviteNotAllowed: 'Fout: Je bent niet geautoriseerd om iemand uit te nodigen naar dit kanaal.', - errorUninviteNotAllowed: 'Fout: Je bent niet geautoriseerd om een uitnodiging naar iemand te annuleren op dit kanaal.', - errorNoOpenQuery: 'Fout: Er is geen privékanaal geopend.', - errorKickNotAllowed: 'Fout: Je ben niet geautoriseerd om %s te kicken.', - errorCommandNotAllowed: 'Fout: Opdracht is niet toegestaan: %s', - errorUnknownCommand: 'Fout: Onbekende opdracht: %s', - errorMaxMessageRate: 'Error: Je hebt de limiet voor het aantal berichten per minuut overschreven.', - errorConnectionTimeout: 'Fout: Connection timeout. Gelieve opnieuw te proberen.', - errorConnectionStatus: 'Fout: Verbindingsstatus: %s', - errorSoundIO: 'Error: Geluidsbestand kon niet geladen worden (Flash IO Error).', - errorSocketIO: 'Error: Verbinding met Socket server is verloren (Flash IO Error).', - errorSocketSecurity: 'Error: Verbinding met Socket server is verloren (Flash Security Error).', - errorDOMSyntax: 'Error: Ongeldige DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/nl.js b/library/ajaxchat/chat/js/lang/nl.js deleted file mode 100644 index 179d0e703..000000000 --- a/library/ajaxchat/chat/js/lang/nl.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Dutch localisation: Patrick Donker - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s betreedt het chatkanaal.', - logout: '%s verlaat het chatkanaal.', - logoutTimeout: '%s verlaat het chatkanaal (Timeout).', - logoutIP: '%s is afgemeld (Ongeldig IP address).', - logoutKicked: '%s is afgemeld (Verbannen door admin of moderator).', - channelEnter: '%s betreedt het kanaal.', - channelLeave: '%s verlaat het kanaal.', - privmsg: '(fluistert)', - privmsgto: '(fluistert naar %s)', - invite: '%s nodigt je uit om naar %s te komen.', - inviteto: 'Je uitnodiging naar %s om het kanaal %s te bezoeken, is verzonden.', - uninvite: '%s annuleert de uitnodiging van kanaal %s.', - uninviteto: 'De annulering van je uitnodiging aan %s voor het kanaal %s is verzonden.', - queryOpen: 'Privékanaal geopend voor %s.', - queryClose: 'Privékanaal naar %s wordt gesloten.', - ignoreAdded: '%s is toegevoegd aan de negeer lijst.', - ignoreRemoved: '%s is verwijderd van de negeerlijst.', - ignoreList: 'Genegeerde gebruikers:', - ignoreListEmpty: 'Er zijn geen genegeerde gebruikers.', - who: 'Aanwezige gebruikers:', - whoChannel: 'aanwezige gebruikers in channel %s:', - whoEmpty: 'Het gekozen kanaal is leeg.', - list: 'Beschikbare kanalen:', - bans: 'Verbannen gebruikers:', - bansEmpty: 'Er zijn geen gebruikers verbannen.', - unban: 'Ban van gebruiker %s opgeheven.', - whois: 'Gebruiker %s - IP adres:', - whereis: 'Gebruiker %s is in kanaal %s.', - roll: '%s gooit %s en krijgt %s.', - nick: '%s heet nu %s.', - toggleUserMenu: 'Open gebuikersmenu %s', - userMenuLogout: 'Afmelden', - userMenuWho: 'Lijst aanwezige gebruikers', - userMenuList: 'Lijst beschikbare kanalen', - userMenuAction: 'Beschrijf actie', - userMenuRoll: 'Rol dobbelsteen', - userMenuNick: 'Wijzig gebruikersnaam', - userMenuEnterPrivateRoom: 'Betreed privékanaal', - userMenuSendPrivateMessage: 'Stuur privé bericht', - userMenuDescribe: 'Stuur privé actie', - userMenuOpenPrivateChannel: 'Open privé kanaal', - userMenuClosePrivateChannel: 'Sluit privé kanaal', - userMenuInvite: 'Nodig uit', - userMenuUninvite: 'Uitnodiging intrekken', - userMenuIgnore: 'Negeren/aanvaarden', - userMenuIgnoreList: 'Lijst genegeerde gebruikers', - userMenuWhereis: 'Toon kanaal', - userMenuKick: 'Verwijderen/Verbannen', - userMenuBans: 'Lijst verbannen gebruikers', - userMenuWhois: 'Toon IP adres', - unbanUser: 'Verbannen gebruiker %s weer toelaten', - joinChannel: 'Betreed kanaal %s', - cite: '%s zei:', - urlDialog: 'Geef het adres (URL) van de webpagina op:', - deleteMessage: 'Verwijder dit bericht', - deleteMessageConfirm: 'Weet u zeker dat u dit bericht wilt verwijderen?', - errorCookiesRequired: 'Cookies moeten ingeschakeld zijn voor deze chat.', - errorUserNameNotFound: 'Fout: Gebruiker %s is niet gevonden.', - errorMissingText: 'Fout: Ontbrekende berichttekst.', - errorMissingUserName: 'Fout: Ontbrekende gebruikersnaam.', - errorInvalidUserName: 'Error: Ongeldige gebruikersnaam.', - errorUserNameInUse: 'Error: Gebruikersnaam is in gebruik.', - errorMissingChannelName: 'Fout: Ontbrekende kanaalnaam.', - errorInvalidChannelName: 'Fout: Ongeldige kanaalnaam: %s', - errorPrivateMessageNotAllowed: 'Fout: Privéberichten zijn niet toegestaan.', - errorInviteNotAllowed: 'Fout: U bent niet geautoriseerd uitnodigingen te versturen voor dit kanaal.', - errorUninviteNotAllowed: 'Fout: U bent niet geautoriseerd uitnodigingen te annuleren voor dit kanaal.', - errorNoOpenQuery: 'Fout: Geen privékanaal beschikbaar.', - errorKickNotAllowed: 'Fout: U ben niet geautoriseerd om %s te verbannen.', - errorCommandNotAllowed: 'Fout: Opdracht niet toegestaan: %s', - errorUnknownCommand: 'Fout: Onbekende opdracht: %s', - errorMaxMessageRate: 'Error: U hebt het maximaal aantal berichten per minuut bereikt.', - errorConnectionTimeout: 'Fout: Connection timeout. Probeer opnieuw.', - errorConnectionStatus: 'Fout: Verbindingsstatus: %s', - errorSoundIO: 'Error: Geluidsbestand kan worden geladen (Flash IO Error).', - errorSocketIO: 'Error: Verbinding met Socket server is verbroken (Flash IO Error).', - errorSocketSecurity: 'Error: Verbinding met Socket server is verbroken (Flash Security Error).', - errorDOMSyntax: 'Error: Ongeldige DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/no.js b/library/ajaxchat/chat/js/lang/no.js deleted file mode 100644 index 4a9a5ac3f..000000000 --- a/library/ajaxchat/chat/js/lang/no.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author DagArneKirkerod - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s logger inn på Chat.', - logout: '%s logger ut av Chat.', - logoutTimeout: '%s har blitt utlogget (Tidsbegrensning).', - logoutIP: '%s har blitt logget ut (Ugyldig IP Adresse).', - logoutKicked: '%s har blitt logget ut (sparket ut).', - channelEnter: '%s kommer inn på kanalen.', - channelLeave: '%s forlater kanalen.', - privmsg: '(hviskere)', - privmsgto: '(hvisker til %s)', - invite: '%s inviterer deg til å delta %s.', - inviteto: 'Din invitasjon til %s å delta på kanal %s er sendt.', - uninvite: '%s trekker din invitasjon fra kanal %s.', - uninviteto: 'Din tilbaketrekkning av invitasjon til %s for kanal %s er sendt.', - queryOpen: 'Privat kanal åpnet til %s.', - queryClose: 'Privat kanal til %s er stengt.', - ignoreAdded: 'Lagt %s til listen over ignorerte brukere.', - ignoreRemoved: 'Fjernet %s fra liste over ignorerte brukere.', - ignoreList: 'Ignorerte Brukere:', - ignoreListEmpty: 'Ingen ignorerte brukere på lista.', - who: 'Påloggede Brukere:', - whoChannel: 'Online Brukere i kanal %s:', - whoEmpty: 'Ingen påloggede brukere på valgt kanal.', - list: 'Tilgjenglige kanaler:', - bans: 'Utsparkede Brukere:', - bansEmpty: 'Ingen utsparkede brukere på lista.', - unban: 'Bruker %s fjernet fra liste over utsparkede brukere.', - whois: 'Bruker %s - IP adresse:', - whereis: 'User %s is in channel %s.', - roll: '%s triller %s og får %s.', - nick: '%s is now known as %s.', - toggleUserMenu: 'Toggle user menu for %s', - userMenuLogout: 'Logout', - userMenuWho: 'List online users', - userMenuList: 'List available channels', - userMenuAction: 'Describe action', - userMenuRoll: 'Roll dice', - userMenuNick: 'Endre brukernavn', - userMenuEnterPrivateRoom: 'Skriv privat rom', - userMenuSendPrivateMessage: 'Send en privat melding', - userMenuDescribe: 'Send privat handling', - userMenuOpenPrivateChannel: 'Åpne privat kanal', - userMenuClosePrivateChannel: 'Lukk privat kanal', - userMenuInvite: 'Invite', - userMenuUninvite: 'Uninvite', - userMenuIgnore: 'Ignore/Accept', - userMenuIgnoreList: 'Liste med ignorerte brukere', - userMenuWhereis: 'Vise kanal', - userMenuKick: 'Kick/Ban', - userMenuBans: 'Liste sperrede brukere', - userMenuWhois: 'Vise IP', - unbanUser: 'Tilbakekalle forbud av brukeren %s', - joinChannel: 'Delta på kanal %s', - cite: '%s sa:', - urlDialog: 'Skriv inn adressen (URL) på web siden:', - deleteMessage: 'Slett denne chat-melding', - deleteMessageConfirm: 'Vil du virkelig slette den valgte chat-melding?', - errorCookiesRequired: 'Cookies er påkrevet på denne chatten.', - errorUserNameNotFound: 'Feil: Bruker %s ble ikke funnet.', - errorMissingText: 'Feil: Mangler meldingstekst.', - errorMissingUserName: 'Feil: Mangler Brukernavn.', - errorInvalidUserName: 'Feil: Ugyldig brukernavn.', - errorUserNameInUse: 'Feil: Brukernavnet er allerede i bruk.', - errorMissingChannelName: 'Feil: Mangler navn på kanal.', - errorInvalidChannelName: 'Feil: Feil navn på kanal: %s', - errorPrivateMessageNotAllowed: 'Feil: Private meldinger ikke tillatt.', - errorInviteNotAllowed: 'Feil: Du har ikke lov til å invitere noen til denne kanalen.', - errorUninviteNotAllowed: 'Feil: Du har ikke lov til å fjerne invitasjon til noen brukere på denne kanalen.', - errorNoOpenQuery: 'Feil: Ingen private kanaler er åpne.', - errorKickNotAllowed: 'Feil: Du har ikke lov til å sparke ut %s.', - errorCommandNotAllowed: 'Feil: Kommando ikke tillatt: %s', - errorUnknownCommand: 'Feil: Ukjent kommando: %s', - errorMaxMessageRate: 'Feil: Du overskredet maksimalt antall meldinger per minutt.', - errorConnectionTimeout: 'Feil: Oppkoblingstid utgått. Forsøk forsøk igjen.', - errorConnectionStatus: 'Feil: Oppkoblingsstatus: %s', - errorSoundIO: 'Feil: Kunne ikke laste lydfil (Flash IO Error).', - errorSocketIO: 'Feil: Tilkobling til stikkontakt server mislyktes (Flash IO Error).', - errorSocketSecurity: 'Feil: Tilkobling til stikkontakt server mislyktes (Flash Security Error).', - errorDOMSyntax: 'Feil: Ugyldig DOM Syntaks (DOM ID: %s).' - -} diff --git a/library/ajaxchat/chat/js/lang/pl.js b/library/ajaxchat/chat/js/lang/pl.js deleted file mode 100644 index 3353d1bdd..000000000 --- a/library/ajaxchat/chat/js/lang/pl.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Tomasz Topa, http://tomasz.topa.pl/ - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s wszedł na czat.', - logout: '%s wyszedł na czat.', - logoutTimeout: '%s został rozłączony (Przekroczony czas połączenia).', - logoutIP: '%s został rozłączony (Nieprawidłowy adres IP).', - logoutKicked: '%s został wyrzucony.', - channelEnter: '%s wszedł do pokoju.', - channelLeave: '%s wyszedł z pokoju.', - privmsg: '(szept)', - privmsgto: '(szept do %s)', - invite: '%s zaprasza Cię do pokoju %s.', - inviteto: 'Twoje zaprosznie dla %s do wejścia do pokoju %s zostało wysłane.', - uninvite: '%s cofa zaproszenie do pokoju %s.', - uninviteto: 'Twoje zaproszenie dla %s do wejścia do pokoju %s zostało wycofane.', - queryOpen: 'Prywatna rozmowa z %s rozpoczęta.', - queryClose: 'Prywatna rozmowa z %s zakończona.', - ignoreAdded: '%s dodany do listy ignorowanych.', - ignoreRemoved: '%s usunięty z listy ignorowanych.', - ignoreList: 'Ignorowani użytkownicy:', - ignoreListEmpty: 'Brak ignorowanych użytkowników.', - who: 'Użytkownicy online:', - whoChannel: 'Użytkownicy online w pokoju %s:', - whoEmpty: 'W wybranym pokoju nikogo obecnie nie ma.', - list: 'Dostępne pokoje:', - bans: 'Zablokowani użytkownicy:', - bansEmpty: 'Brak zablokowanych użytkowników', - unban: 'Blokada dla %s zdjęta.', - whois: 'Adres IP użytkownika %s:', - whereis: 'Użytkownik %s jest w pokoju %s.', - roll: '%s rzuca kostką %s i uzyskuje wynik(i): %s.', - nick: '%s zmienia nick na %s.', - toggleUserMenu: 'Włącz/wyłącz menu użytkownika %s', - userMenuLogout: 'Wyloguj', - userMenuWho: 'Użytkownicy online', - userMenuList: 'Dostępne pokoje', - userMenuAction: 'Napisz co teraz robisz', - userMenuRoll: 'Rzuć kostką', - userMenuNick: 'Zmień nick', - userMenuEnterPrivateRoom: 'Wejdź do prywatnego pokoju', - userMenuSendPrivateMessage: 'Wyślij prywatną wiadomość', - userMenuDescribe: 'Napisz prywatnie co teraz robisz', - userMenuOpenPrivateChannel: 'Rozpocznij prywatną rozmowę', - userMenuClosePrivateChannel: 'Zakończ prywatną rozmowę', - userMenuInvite: 'Zaproś', - userMenuUninvite: 'Wycofaj zaproszenie', - userMenuIgnore: 'Ignoruj/akceptuj', - userMenuIgnoreList: 'Lista ignorowanych użytkowników', - userMenuWhereis: 'Pokaż pokój', - userMenuKick: 'Wyrzuć/Zablokuj', - userMenuBans: 'Lista zablokowanych użytkowników', - userMenuWhois: 'Pokaż IP', - unbanUser: 'Zdejmij blokadę dla użytkownika %s', - joinChannel: 'Wejdź do pokoju %s', - cite: '%s powiedział:', - urlDialog: 'Podaj adres (URL) strony:', - deleteMessage: 'Usuń tę wiadomość', - deleteMessageConfirm: 'Na pewno usunać tę wiadomość?', - errorCookiesRequired: 'Do poprawnego działania czat wymaga obsługi Cookies.', - errorUserNameNotFound: 'Błąd: Użytkownik %s nie został znaleziony.', - errorMissingText: 'Błąd: Nie wpisano tekstu.', - errorMissingUserName: 'Błąd: Nie wpisano nicka.', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Username already in use.', - errorMissingChannelName: 'Błąd: Nie wpisano nazwy pokoju.', - errorInvalidChannelName: 'Błąd: Nieprawidłowa nazwa pokoju: %s', - errorPrivateMessageNotAllowed: 'Błąd: Prywatne wiadomości zostały zablokowane.', - errorInviteNotAllowed: 'Błąd: Nie możesz wysyłać zaproszeń do tego pokoju.', - errorUninviteNotAllowed: 'Błąd: Nie możesz cofać zaproszeń z tego pokoju.', - errorNoOpenQuery: 'Błąd: Brak prywatnych rozmów.', - errorKickNotAllowed: 'Błąd: Nie możesz wyrzucić użytkownika %s.', - errorCommandNotAllowed: 'Błąd: Nieprawidłowe polecenie: %s', - errorUnknownCommand: 'Błąd: Nieznane polecenie: %s', - errorMaxMessageRate: 'Błąd: Przekroczyłeś maksymalną liczbę wiadomości wysyłanych w ciągu minuty. Poczekaj chwilę...', - errorConnectionTimeout: 'Błąd: Czas połączenia przekroczony. Spróbuj ponownie.', - errorConnectionStatus: 'Błąd: Stan połączenia: %s', - errorSoundIO: 'Błąd: nie można pobrać pliku dźwiękowego (Flash IO Error).', - errorSocketIO: 'Bład: nie można połączyć się z serwerem (Flash IO Error).', - errorSocketSecurity: 'Błąd: Połączenie z serwerem nie powiodło się (Flash Security Error).', - errorDOMSyntax: 'Błąd: Nieprawidłowa składnia DOM (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/pt-br.js b/library/ajaxchat/chat/js/lang/pt-br.js deleted file mode 100644 index eebfce0df..000000000 --- a/library/ajaxchat/chat/js/lang/pt-br.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author vitoalvaro - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s acaba de entrar no Chat.', - logout: '%s acaba de sair no Chat.', - logoutTimeout: '%s desconectou (Tempo esgotado).', - logoutIP: '%s desconectou (Endereço de IP inválido).', - logoutKicked: '%s desconectou (Expulso do canal).', - channelEnter: '%s entrou no canal.', - channelLeave: '%s saiu do canal.', - privmsg: '(sussurra)', - privmsgto: '(Sussurrar para %s)', - invite: '%s convida você para participar %s.', - inviteto: 'O seu convite para se juntar ao %s do canal %s foi enviado.', - uninvite: '%s desconvidou você do canal %s.', - uninviteto: 'Seu desconvidamento %s do canal %s foi enviada.', - queryOpen: 'Canal privado aberto para %s.', - queryClose: 'Canal privado para %s fechado.', - ignoreAdded: 'Adicionar %s para a lista do igrnorado.', - ignoreRemoved: 'Remover %s da lista do ignorado.', - ignoreList: 'Usuários ignorados:', - ignoreListEmpty: 'Nenhuma lista usuários ignorados.', - who: 'Usuários Online:', - whoChannel: 'Usuários online no canal %s:', - whoEmpty: 'Nenhum usuários online na determinado canal.', - list: 'Os canais disponíveis:', - bans: 'Usuários banidos:', - bansEmpty: 'Nenhuma lista usuários banidos.', - unban: 'Usuário de banido %s revogado.', - whois: 'Usuário %s - enderenço IP:', - whereis: 'Usuário %s está no canal %s.', - roll: '%s rolas %s e começa %s.', - nick: '%s é agora conhecido como %s.', - toggleUserMenu: 'Alternar usuário menu de %s', - userMenuLogout: 'Deslogar', - userMenuWho: 'Lista usuários online', - userMenuList: 'Lista os canais disponíveis', - userMenuAction: 'Descreva ação', - userMenuRoll: 'Jogar dados', - userMenuNick: 'Trocar usuário', - userMenuEnterPrivateRoom: 'Entrar sala privada', - userMenuSendPrivateMessage: 'Enviar mensagem privada', - userMenuDescribe: 'Enviar ação privada', - userMenuOpenPrivateChannel: 'Abrir canal privada', - userMenuClosePrivateChannel: 'Fechar canal privada', - userMenuInvite: 'Convidar', - userMenuUninvite: 'Desconvidar', - userMenuIgnore: 'Ignorar/Aceitar', - userMenuIgnoreList: 'Lista usuários banidos', - userMenuWhereis: 'Exibir canais', - userMenuKick: 'Kickar/Banir', - userMenuBans: 'Lista usuários banidos', - userMenuWhois: 'Exibir IP', - unbanUser: 'Revogar usuário de banido %s', - joinChannel: 'Entrar canal %s', - cite: '%s cita:', - urlDialog: 'Digite o endereço (URL) da página:', - deleteMessage: 'Excluir esta mensagem', - deleteMessageConfirm: 'Realmente apagar a mensagem selecionada chat?', - errorCookiesRequired: 'Os cookies são requeridas para este Chat.', - errorUserNameNotFound: 'Erro: Usuário %s não encontrado.', - errorMissingText: 'Erro: Faltando mensagem texto.', - errorMissingUserName: 'Erro: Usuário faltando.', - errorInvalidUserName: 'Erro: Usuário inválido.', - errorUserNameInUse: 'Erro: Usuário já em uso.', - errorMissingChannelName: 'Erro: Faltando nome do canal.', - errorInvalidChannelName: 'Erro: Inválido nome do canal: %s', - errorPrivateMessageNotAllowed: 'Erro: Mensagens privadas não são permitidos.', - errorInviteNotAllowed: 'Erro: Você não tem permissão para convidar alguém para este canal.', - errorUninviteNotAllowed: 'Erro: Você não está autorizado a desconvidar alguém deste canal.', - errorNoOpenQuery: 'Erro: Nenhum canal privado aberto.', - errorKickNotAllowed: 'Erro: Você não está autorizado a kickar %s.', - errorCommandNotAllowed: 'Erro: Comando não permitido: %s', - errorUnknownCommand: 'Erro: Comando desconhecido: %s', - errorMaxMessageRate: 'Erro: Você excedeu o número máximo de mensagens por minuto.', - errorConnectionTimeout: 'Erro: Intervalo de parada da conexão. Por favor, tente novamente..', - errorConnectionStatus: 'Erro: Status da conexão: %s', - errorSoundIO: 'Erro: Falha ao carregar som arquivo (Flash IO Error).', - errorSocketIO: 'Erro: Conexão para socket servidor falhou (Flash IO Error).', - errorSocketSecurity: 'Erro: Conexão para socket servidor falhou (Flash Security Error).', - errorDOMSyntax: 'Erro: Inválido DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/pt-pt.js b/library/ajaxchat/chat/js/lang/pt-pt.js deleted file mode 100644 index fd6a0cbd5..000000000 --- a/library/ajaxchat/chat/js/lang/pt-pt.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author of translate Carlos Rocha (aka Broas@) - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s acaba de entrar no chat.', - logout: '%s acaba de sair no chat.', - logoutTimeout: '%s desligou-se (Tempo esgotado).', - logoutIP: '%s desligou-se (Endereço de IP inválido).', - logoutKicked: '%s desligou-se (Expulso da sala).', - channelEnter: '%s entrou na sala.', - channelLeave: '%s saiu da sala.', - privmsg: '(Mensagem privada)', - privmsgto: '(Mensagem privada enviada para %s)', - invite: '%s convidou-te para entrar na sala %s.', - inviteto: 'O teu convite para %s se juntar à sala %s foi enviado.', - uninvite: '%s cancelou o convite para entrares na sala %s.', - uninviteto: 'O cancelamento do convite para %s entrar na sala %s foi enviado.', - queryOpen: 'Sala privada aberta para %s.', - queryClose: 'A sala privada para %s está fechada.', - ignoreAdded: 'Adicionaste %s à a lista do ignorados.', - ignoreRemoved: 'Removeste %s da lista de ignorados.', - ignoreList: 'Utilizadores ignorados:', - ignoreListEmpty: 'Ninguém está ignorado.', - who: 'Utilizadores online:', - whoChannel: 'Utilizadores online na sala %s:', - whoEmpty: 'Nenhum utilizador online na determinada sala.', - list: 'Salas disponíveis:', - bans: 'Utilizadores banidos:', - bansEmpty: 'Ninguém está banido.', - unban: 'O utilizador %s foi desbanido.', - whois: 'Endereço IP do utilizador %s:', - whereis: 'O utilizador %s está na sala %s.', - roll: '%s rola %s e começa com %s.', - nick: '%s mudou o nick para %s.', - toggleUserMenu: 'Menu de alternância de %s', - userMenuLogout: 'Logout', - userMenuWho: 'Lista de utilizadores online', - userMenuList: 'Lista de salas disponíveis', - userMenuAction: 'Acção administrativa', - userMenuRoll: 'Jogar dados', - userMenuNick: 'Trocar de nick', - userMenuEnterPrivateRoom: 'Entrar na sala privada', - userMenuSendPrivateMessage: 'Enviar mensagem privada', - userMenuDescribe: 'Enviar acção administrativa em privado', - userMenuOpenPrivateChannel: 'Abrir sala privada', - userMenuClosePrivateChannel: 'Fechar sala privada', - userMenuInvite: 'Convidar', - userMenuUninvite: 'Cancelar convite', - userMenuIgnore: 'Recusar/Aceitar', - userMenuIgnoreList: 'Lista utilizadores ignorados', - userMenuWhereis: 'Mostrar salas', - userMenuKick: 'Kickar/Banir', - userMenuBans: 'Lista de utilizadores banidos', - userMenuWhois: 'Mostrar IP', - unbanUser: 'Desbanir %s', - joinChannel: 'Entrar na sala %s', - cite: '%s cita:', - urlDialog: 'Digita o endereço (URL) da página:', - deleteMessage: 'Eliminar esta mensagem', - deleteMessageConfirm: 'Tens a certeza que queres eliminar a mensagem selecionada do chat?', - errorCookiesRequired: 'Os cookies são requeridos para utilizar o chat.', - errorUserNameNotFound: 'Erro: O utilizador %s não foi encontrado.', - errorMissingText: 'Erro: Falta o texto.', - errorMissingUserName: 'Erro: Falta o utilizador.', - errorInvalidUserName: 'Erro: Utilizador inválido.', - errorUserNameInUse: 'Erro: Utilizador em uso.', - errorMissingChannelName: 'Erro: Falta o nome da sala.', - errorInvalidChannelName: 'Erro: O nome da sala é inválido: %s', - errorPrivateMessageNotAllowed: 'Erro: Não são premitidas mensagens privadas.', - errorInviteNotAllowed: 'Erro: Não tens permissão para convidar alguém para uma sala.', - errorUninviteNotAllowed: 'Erro: Não estás autorizado a cancelar algum convite.', - errorNoOpenQuery: 'Erro: Nenhuma sala privada aberta.', - errorKickNotAllowed: 'Erro: Não tens permissão para kickar %s.', - errorCommandNotAllowed: 'Erro: O comando %s não é permitido.', - errorUnknownCommand: 'Erro: Comando desconhecido: %s', - errorMaxMessageRate: 'Erro: Excedeste o número máximo de mensagens permitidas por minuto.', - errorConnectionTimeout: 'Erro: O tempo de limite para a conexão esgotou. Por favor, tenta novamente..', - errorConnectionStatus: 'Erro: Estado da conexão: %s', - errorSoundIO: 'Erro: Falha ao carregar o ficheiro de som (Erro Flash IO).', - errorSocketIO: 'Erro: A conexão socket para o servidor falhou (Erro Flash IO).', - errorSocketSecurity: 'Erro: A conexão socket para o servidor falhou (Erro de segurança Flash).', - errorDOMSyntax: 'Erro: Síntese DOM inválida (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/ro.js b/library/ajaxchat/chat/js/lang/ro.js deleted file mode 100644 index 7a03947aa..000000000 --- a/library/ajaxchat/chat/js/lang/ro.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author K.Z. - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s se autentifică pe Chat.', - logout: '%s iese de pe Chat.', - logoutTimeout: '%s a fost scos de pe Chat (Timeout).', - logoutIP: '%s a fost scos de pe Chat (Adresă IP incorectă).', - logoutKicked: '%s a fost scos de pe Chat (Dat afară).', - channelEnter: '%s se alătură canalului.', - channelLeave: '%s părăseşte canalul.', - privmsg: '(şopteşte)', - privmsgto: '(şopteşte lui %s)', - invite: '%s vă invită să vă alăturaţi %s.', - inviteto: 'Invitaţia trimisă de dumneavoastră către %s de a se alătura canalului %s a fost trimisă.', - uninvite: '%s vă cere să paraşiţi canalul %s.', - uninviteto: 'Cererea dumnevoastră către %s de a părăsi canalul %s a fost trimisă.', - queryOpen: 'Canal privat deschis către %s.', - queryClose: 'Canalul privat către %s s-a închis.', - ignoreAdded: 'Am adăugat utilizatorul %s la lista de utilizatori ignoraţi.', - ignoreRemoved: 'Am şters utilizatorul %s din lista de utilizatori ignoraţi.', - ignoreList: 'Utilizatori ignoraţi:', - ignoreListEmpty: 'Nu a fost listat nici-un utilizator ignorat.', - who: 'Utilizatori activi:', - whoChannel: 'Online Users in channel %s:', - whoEmpty: 'Nici-un utilzator activ in canalul respectiv.', - list: 'Canale disponibile:', - bans: 'Utilizatori care au accesul interzis la chat:', - bansEmpty: 'Nu a fost listat nici-un utilizator care are accesul interzis.', - unban: 'Interzicerea accesului pentru utilizatorul %s a fost revocată.', - whois: 'Utilizatorul %s - adresă IP:', - whereis: 'User %s is in channel %s.', - roll: '%s aruncă %s si îi cade %s.', - nick: '%s is now known as %s.', - toggleUserMenu: 'Toggle user menu for %s', - userMenuLogout: 'Logout', - userMenuWho: 'List online users', - userMenuList: 'List available channels', - userMenuAction: 'Describe action', - userMenuRoll: 'Roll dice', - userMenuNick: 'Change username', - userMenuEnterPrivateRoom: 'Enter private room', - userMenuSendPrivateMessage: 'Send private message', - userMenuDescribe: 'Send private action', - userMenuOpenPrivateChannel: 'Open private channel', - userMenuClosePrivateChannel: 'Close private channel', - userMenuInvite: 'Invite', - userMenuUninvite: 'Uninvite', - userMenuIgnore: 'Ignore/Accept', - userMenuIgnoreList: 'List ignored users', - userMenuWhereis: 'Display channel', - userMenuKick: 'Kick/Ban', - userMenuBans: 'List banned users', - userMenuWhois: 'Display IP', - unbanUser: 'Revoke ban of user %s', - joinChannel: 'Alăturăte canalului %s', - cite: '%s a spus:', - urlDialog: 'Vă rugăm introduceţi adresa (URL) al paginii web:', - deleteMessage: 'Delete this chat message', - deleteMessageConfirm: 'Really delete the selected chat message?', - errorCookiesRequired: 'Aveţi nevoie de cookies activate pentru acest chat.', - errorUserNameNotFound: 'Eroare: Utilizatorul %s nu a fost găsit.', - errorMissingText: 'Eroare: Nu aţi introdus nici-un text.', - errorMissingUserName: 'Eroare: Nu aţi introdus nici-un nume de utilizator.', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Username already in use.', - errorMissingChannelName: 'Eroare: Nu aţi introdus nici-un canal.', - errorInvalidChannelName: 'Eroare: Nume de canal incorect: %s', - errorPrivateMessageNotAllowed: 'Eroare: Mesajele private sunt interzise.', - errorInviteNotAllowed: 'Eroare: Nu aveţi voie să invitaţi pe nimeni pe acest canal.', - errorUninviteNotAllowed: 'Eroare: Nu aveţi voie sa cereţi cuiva de pe acest canal să părăsesca canalul.', - errorNoOpenQuery: 'Eroare: Nici-un canal privat deschis.', - errorKickNotAllowed: 'Eroare: Nu aveţi voie să dati afară pe %s.', - errorCommandNotAllowed: 'Eroare: Comanda interzisă: %s', - errorUnknownCommand: 'Eroare: Comanda necunoscută: %s', - errorMaxMessageRate: 'Error: You exceeded the maximum number of messages per minute.', - errorConnectionTimeout: 'Eroare: Connection timeout. Please try again.', - errorConnectionStatus: 'Eroare: Statusul conexiunii: %s', - errorSoundIO: 'Error: Failed to load sound file (Flash IO Error).', - errorSocketIO: 'Error: Connection to socket server failed (Flash IO Error).', - errorSocketSecurity: 'Error: Connection to socket server failed (Flash Security Error).', - errorDOMSyntax: 'Error: Invalid DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/ru.js b/library/ajaxchat/chat/js/lang/ru.js deleted file mode 100644 index 847fdb82c..000000000 --- a/library/ajaxchat/chat/js/lang/ru.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author SkyKnight - * @author Dmitry Plyonkin - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s входит в чат.', - logout: '%s выходит из чата.', - logoutTimeout: '%s вышел из чата по таймоуту.', - logoutIP: '%s вышел из чата (неверный IP адрес).', - logoutKicked: '%s был вышвырнут из чата (Kicked).', - channelEnter: '%s присоединяется к каналу.', - channelLeave: '%s покидает канал.', - privmsg: '(приватное сообщение)', - privmsgto: '(приватное сообщение %s)', - invite: '%s приглашает Вас присоединиться к %s.', - inviteto: 'Ваше приглашение %s присоедениться к каналу %s было успешно отправлено.', - uninvite: '%s отзывает Ваше приглашение из канала %s.', - uninviteto: 'Вы отозвали приглашение пользователю %s для канала %s.', - queryOpen: 'Приватный канал открыт к %s.', - queryClose: 'Приватный канал к %s закрыт.', - ignoreAdded: '%s добавлен в игнорлист.', - ignoreRemoved: '%s удален из игнорлиста.', - ignoreList: 'Игнорируемые пользователи:', - ignoreListEmpty: 'Игнорируемых пользователей не найдено.', - who: 'Пользователи:', - whoChannel: 'Пользователи в канале %s:', - whoEmpty: 'В данном канале нет пользователей.', - list: 'Доступные каналы:', - bans: 'Забаненные пользователи:', - bansEmpty: 'Нет забаненных пользователей.', - unban: 'Пользователь %s разбанен.', - whois: 'Пользователь %s - IP адрес:', - whereis: 'Пользователь %s находится в канале %s.', - roll: '%s кинул кубики %s. Результат %s.', - nick: '%s сменил имя на %s.', - toggleUserMenu: 'Меню пользователя %s', - userMenuLogout: 'Выйти', - userMenuWho: 'Список пользователей', - userMenuList: 'Список каналов', - userMenuAction: 'Действие', - userMenuRoll: 'Бросить кубик', - userMenuNick: 'Сменить имя', - userMenuEnterPrivateRoom: 'Войти в комнату', - userMenuSendPrivateMessage: 'Отправить приватное сообщение', - userMenuDescribe: 'Приватное действие', - userMenuOpenPrivateChannel: 'Открыть приватный канал', - userMenuClosePrivateChannel: 'Закрыть приватный канал', - userMenuInvite: 'Пригласить', - userMenuUninvite: 'Отменить приглашение', - userMenuIgnore: 'Игнорировать/Принять', - userMenuIgnoreList: 'Список игнорируемых', - userMenuWhereis: 'В каком канале?', - userMenuKick: 'Выкинуть/Забанить', - userMenuBans: 'Список забаненных', - userMenuWhois: 'Показать IP', - unbanUser: 'Отменить бан пользователя %s', - joinChannel: ' %s присоединился к каналу', - cite: '%s сказал:', - urlDialog: 'Пожалуйста введите адрес (URL) Web-страницы:', - deleteMessage: 'Удалить сообщение', - deleteMessageConfirm: 'Вы действительно хотите удалить это сообщение?', - errorCookiesRequired: 'Необходимо включить Cookies.', - errorUserNameNotFound: 'Ошибка: Пользователь %s не найдет.', - errorMissingText: 'Ошибка: Отсутствует текст сообщения.', - errorMissingUserName: 'Ошибка: Отсутствует имя.', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Username already in use.', - errorMissingChannelName: 'Ошибка: Отсутствует имя канала.', - errorInvalidChannelName: 'Ошибка: Не верное имя канала: %s', - errorPrivateMessageNotAllowed: 'Ошибка: Приватные сообщения не разрешены.', - errorInviteNotAllowed: 'Ошибка: У Вас нет прав приглашать кого-либо в этот канал.', - errorUninviteNotAllowed: 'Ошибка: У Вас нет прав отозвать приглашение из этого канала.', - errorNoOpenQuery: 'Ошибка: Приватный канал не открыт.', - errorKickNotAllowed: 'Ошибка: У Вас нет прав забанить %s.', - errorCommandNotAllowed: 'Ошибка: Команда недоступна: %s', - errorUnknownCommand: 'Ошибка: Неизвестная команда: %s', - errorMaxMessageRate: 'Ошибка: Вы превысили ограничение на количество сообщений, отправленных за минуту.', - errorConnectionTimeout: 'Ошибка: Соединение не установлено. Пожалуйста, попробуйте еще раз.', - errorConnectionStatus: 'Ошибка: Статус соединения: %s', - errorSoundIO: 'Ошибка: Не получается загрузить звуковой файл (Flash IO Error).', - errorSocketIO: 'Ошибка: Не удалось открыть сокет (Flash IO Error).', - errorSocketSecurity: 'Ошибка: Не удалость открыть сокет (Flash Security Error).', - errorDOMSyntax: 'Ошибка: Некорректный синтаксис DOM (DOM ID: %s).' - -} diff --git a/library/ajaxchat/chat/js/lang/sk.js b/library/ajaxchat/chat/js/lang/sk.js deleted file mode 100644 index 3b9b06945..000000000 --- a/library/ajaxchat/chat/js/lang/sk.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Peter - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s sa prihlásil do chatu.', - logout: '%s sa odhlásil z chatu.', - logoutTimeout: '%s bol odhlásený pre neaktivitu.', - logoutIP: '%s bol odhlásený (nesprávna IP adresa).', - logoutKicked: '%s bol odhlásený (vylúčený).', - channelEnter: '%s vstúpil do kanálu.', - channelLeave: '%s opustil kanál.', - privmsg: '(súkromný hovor)', - privmsgto: '(súkromne hovorí s %s)', - invite: '%s vás pozýva na rozhovor %s.', - inviteto: 'Vaša pozvánka na rozhovor s %s v kanáli %s dola odoslaná.', - uninvite: '%s neprijal Vaše pozvanie z kanálu %s.', - uninviteto: 'Vaše pozvanie pre %s v kanáli %s bolo poslané.', - queryOpen: 'Súkromný kanál s %s otvorený.', - queryClose: 'Súkromný kanál s %s zatvorený.', - ignoreAdded: '%s je pridaný do zoznamu zamietnutých.', - ignoreRemoved: '%s je odstránený zo zoznamu zamietnutých.', - ignoreList: 'Zamietnutí užívatelia:', - ignoreListEmpty: 'Zoznam zamietnutých užívateľov je prázdny.', - who: 'Pripojení užívatelia:', - whoChannel: 'Online Users in channel %s:', - whoEmpty: 'Žiadni pripojení užívatelia na danom kanáli.', - list: 'Dostupné kanály:', - bans: 'Vylúčení užívatelia:', - bansEmpty: 'Zoznam vylúčených užívateľov je prázdny.', - unban: 'Vylúčenie užívateľa %s je zrušené.', - whois: 'Užívateľová %s - IP adresa:', - whereis: 'User %s is in channel %s.', - roll: '%s hodil %s a padlo mu číslo %s.', - nick: '%s is now known as %s.', - toggleUserMenu: 'Toggle user menu for %s', - userMenuLogout: 'Logout', - userMenuWho: 'List online users', - userMenuList: 'List available channels', - userMenuAction: 'Describe action', - userMenuRoll: 'Roll dice', - userMenuNick: 'Change username', - userMenuEnterPrivateRoom: 'Enter private room', - userMenuSendPrivateMessage: 'Send private message', - userMenuDescribe: 'Send private action', - userMenuOpenPrivateChannel: 'Open private channel', - userMenuClosePrivateChannel: 'Close private channel', - userMenuInvite: 'Invite', - userMenuUninvite: 'Uninvite', - userMenuIgnore: 'Ignore/Accept', - userMenuIgnoreList: 'List ignored users', - userMenuWhereis: 'Display channel', - userMenuKick: 'Kick/Ban', - userMenuBans: 'List banned users', - userMenuWhois: 'Display IP', - unbanUser: 'Revoke ban of user %s', - joinChannel: 'Pripojiť kanál %s', - cite: '%s povedal:', - urlDialog: 'Prosím, vložte adresu (URL) webstránky:', - deleteMessage: 'Delete this chat message', - deleteMessageConfirm: 'Really delete the selected chat message?', - errorCookiesRequired: 'Tento chat vyžaduje mať povolené Cookies.', - errorUserNameNotFound: 'Chyba: Užívateľ %s nenájdený.', - errorMissingText: 'Chyba: Chýba text správy.', - errorMissingUserName: 'Chyba: Chýba meno užívateľa.', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Username already in use.', - errorMissingChannelName: 'Chyba: Chýba meno kanálu.', - errorInvalidChannelName: 'Chyba: Nesprávne meno kanálu: %s', - errorPrivateMessageNotAllowed: 'Chyba: Súkromné správy nie sú povolené.', - errorInviteNotAllowed: 'Chyba: Nemáte povolenie pozívať užívateľov do tohoto kanálu.', - errorUninviteNotAllowed: 'Chyba: Nemáte povolenie zamietnuť pozvanie užívateľov z tohoto kanálu.', - errorNoOpenQuery: 'Chyba: Súkromný kanál nie je otvorený.', - errorKickNotAllowed: 'Chyba: Nie ste oprávnený vylúčiť %s.', - errorCommandNotAllowed: 'Chyba: Príkaz nie je povolený: %s', - errorUnknownCommand: 'Chyba: Neznámy príkaz: %s', - errorMaxMessageRate: 'Error: You exceeded the maximum number of messages per minute.', - errorConnectionTimeout: 'Chyba: Vypršal časový limit pripojenia. Skúste prosím znovu.', - errorConnectionStatus: 'Chyba: Stav pripojenia: %s', - errorSoundIO: 'Error: Failed to load sound file (Flash IO Error).', - errorSocketIO: 'Error: Connection to socket server failed (Flash IO Error).', - errorSocketSecurity: 'Error: Connection to socket server failed (Flash Security Error).', - errorDOMSyntax: 'Error: Invalid DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/sl.js b/library/ajaxchat/chat/js/lang/sl.js deleted file mode 100644 index 9b9b4b4ae..000000000 --- a/library/ajaxchat/chat/js/lang/sl.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Valter Pepelkoˇ - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s prijavljen-a na Klepetu.', - logout: '%s odjavljen-a iz Klepeta.', - logoutTimeout: '%s je prijava potekla (Timeout).', - logoutIP: '%s je prijava potekla (Nepopolna IP adresa).', - logoutKicked: '%s je prijava potekla (Kicked).', - channelEnter: '%s je vstopil-a v sobo.', - channelLeave: '%s odšel-a iz sobe.', - privmsg: '(privatno sporoÄŤilo)', - privmsgto: '(se privatno pogovarja z %s)', - invite: '%s vas vabi na razgovor v %s.', - inviteto: 'Vaše vabilo za razgovor z %s v sobi %s je poslano.', - uninvite: '%s se ne Ĺľeli odzvati vašemu vabilu v sobi %s.', - uninviteto: 'Vaš preklic vabila za %s v sobi %s je poslano.', - queryOpen: 'Privatna soba za %s je odprta.', - queryClose: 'Privatna soba za %s je zaprta.', - ignoreAdded: '%s je dodan na seznam ignoriranih.', - ignoreRemoved: '%s je odstranjen iz seznama ignoriranih.', - ignoreList: 'Ignorirani uporabniki:', - ignoreListEmpty: 'Seznam ignoriranih uporabnikov je prazen.', - who: 'Prisotni:', - whoChannel: 'Prisotni v sobi %s:', - whoEmpty: 'V tej sobi ni uporabnikov.', - list: 'Dostopne sobe:', - bans: 'Uporabniki s prepovedjo dostopa:', - bansEmpty: 'Seznam uporabnikov s prepovedjo dostopa je prazen.', - unban: 'Prepoved dostopa uporabniku je preklicana.', - whois: 'Uporabnik %s - IP adresa:', - whereis: 'Uporabnik %s je v sobi %s.', - roll: '%s je vrgel %s Rezultat je: %s.', - nick: '%s sedaj uporablja nick %s.', - toggleUserMenu: 'Preklopi uporabniški meni za %s', - userMenuLogout: 'Odjava', - userMenuWho: 'Seznam prisotnih uporabnikov', - userMenuList: 'Seznam dostopnih sob', - userMenuAction: 'Opiši akcijo', - userMenuRoll: 'Vrzi kocko', - userMenuNick: 'Zamenjaj uporabniško ime', - userMenuEnterPrivateRoom: 'Vstopi v privatno sobo', - userMenuSendPrivateMessage: 'Pošlji privatno sporoÄŤilo', - userMenuDescribe: 'Pošlji privatno akcijo', - userMenuOpenPrivateChannel: 'Odpri privatno sobo', - userMenuClosePrivateChannel: 'Zapri privatno sobo', - userMenuInvite: 'Poklicati', - userMenuUninvite: 'Preklicati', - userMenuIgnore: 'Ignoriraj/Sprejemi', - userMenuIgnoreList: 'Seznam ignoriranih uporabnikov', - userMenuWhereis: 'PrikaĹľi sobo', - userMenuKick: 'IzvrĹľeen/Prepovedan', - userMenuBans: 'Seznam prepovedanih uporabnikov', - userMenuWhois: 'PrikaĹľi IP adreso', - unbanUser: 'Preklicati prepoved uporabniku %s', - joinChannel: 'Vstopi v sobo %s', - cite: '%s pravi:', - urlDialog: 'Prosimo vas, vnesite naslov (URL) web strani:', - deleteMessage: 'Izbriši to sporoÄŤilo', - deleteMessageConfirm: 'Ali res izbrišem izbrano sporoÄŤilo?', - errorCookiesRequired: 'Pozor: uporaba piškotkov (cookies) je nujna za to klepetalnico!', - errorUserNameNotFound: 'Napaka: uporabnik %s ni najden!', - errorMissingText: 'Napaka: manjka besedilo sporoÄŤila!', - errorMissingUserName: 'Napaka: manjka uporabniško ime!', - errorInvalidUserName: 'Napaka: Nepravilno uporabniško ime!', - errorUserNameInUse: 'Napaka: uporabniško ime je Ĺľe v uporabi!', - errorMissingChannelName: 'Napaka: ni imena sobe!', - errorInvalidChannelName: 'Napaka: napaÄŤno ime sobe: %s', - errorPrivateMessageNotAllowed: 'Napaka: privatna sporoÄŤila niso dovoljena!', - errorInviteNotAllowed: 'Napaka: Nimate dovoljenja, da lahko druge vabite v to sobo!', - errorUninviteNotAllowed: 'Napaka: Nimate dovoljenja, da lahko druge vrĹľete iz te sobe!', - errorNoOpenQuery: 'Napaka: Privatna soba ni odprta!', - errorKickNotAllowed: 'NApaka: Nimate dovoljenja, da lahko vrĹľete %s', - errorCommandNotAllowed: 'Napaka: Ukaz ni dozvoljen: %s', - errorUnknownCommand: 'Napaka: Neznan ukaz: %s', - errorMaxMessageRate: 'NApaka: Presegli ste najveÄŤje dovoljeno število sporoÄŤil na minuto!.', - errorConnectionTimeout: 'Napaka: ÄŤas povezave se je iztekel. Poskusite znova!', - errorConnectionStatus: 'Napaka: Status povezave: %s', - errorSoundIO: 'Napaka: ZvoÄŤne datoteke ni bilo mogoÄŤe naloĹľiti (Napaka Flash IO)!', - errorSocketIO: 'Napaka: Povezava na server ni uspela (Napaka Flash IO)!', - errorSocketSecurity: 'Napaka: Povezava na server ni uspela (Napaka Flash Security)!', - errorDOMSyntax: 'Napaka: Nepopolna DOM Syntaxa (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/sr.js b/library/ajaxchat/chat/js/lang/sr.js deleted file mode 100644 index b5367b1e2..000000000 --- a/library/ajaxchat/chat/js/lang/sr.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Saša Stojanović - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s prijavljen-a na Chat.', - logout: '%s odjavljen-a sa Chata.', - logoutTimeout: '%s je prijava istekla (Timeout).', - logoutIP: '%s je prijava istekla (Invalid IP address).', - logoutKicked: '%s je prijava istekla (Kicked).', - channelEnter: '%s je ušao-la u sobu.', - channelLeave: '%s izašao-la iz sobe.', - privmsg: '(privatna poruka)', - privmsgto: '(privatno razgovara sa %s)', - invite: '%s vas poziva na razgovor u %s.', - inviteto: 'Vaš poziv za razgovor sa %s u sobu %s je poslat.', - uninvite: '%s vam otkazuje pozivnicu u sobi %s.', - uninviteto: 'Vaše otkazivanje pozivnice za %s u sobi %s je poslato.', - queryOpen: 'Privatna soba za %s je otvorena.', - queryClose: 'Privatna soba za %s je zatvorena.', - ignoreAdded: '%s je dodat u listu ignorisanih.', - ignoreRemoved: '%s je uklonjen iz liste ignorisanih.', - ignoreList: 'Ignorisani korisnici:', - ignoreListEmpty: 'Lista ignorisanih korisnika je prazna.', - who: 'Prisutni korisnici:', - whoChannel: 'Prisutni korisnici u sobi %s:', - whoEmpty: 'Nema prisutnih korisnika u toj sobi.', - list: 'Dostupne sobe:', - bans: 'Zabranjeni korisnici:', - bansEmpty: 'Lista zabranjenih korisnika je prazna.', - unban: 'Zabrana korisnika %s je povučena.', - whois: 'Korisnik %s - IP adresa:', - whereis: 'Korisnik %s je u sobi %s.', - roll: '%s je bacio %s Rezultat %s.', - nick: '%s je sada poznat kao %s.', - toggleUserMenu: 'Preklopi korisnički meni za %s', - userMenuLogout: 'Odjavljivanje', - userMenuWho: 'Lista prisutnih korisnika', - userMenuList: 'Lista dostupnih soba', - userMenuAction: 'Opiši akciju', - userMenuRoll: 'Baci kocku', - userMenuNick: 'Promeni korisničko ime', - userMenuEnterPrivateRoom: 'Uđi u privatnu sobu', - userMenuSendPrivateMessage: 'Pošalji privatnu poruku', - userMenuDescribe: 'Pošalji privatnu akciju', - userMenuOpenPrivateChannel: 'Otvori privatnu sobu', - userMenuClosePrivateChannel: 'Zatvori privatnu sobu', - userMenuInvite: 'Pozvati', - userMenuUninvite: 'Opozvati', - userMenuIgnore: 'Ignorisati/Prihvatiti', - userMenuIgnoreList: 'Lista ignorisanih korisnika', - userMenuWhereis: 'Prikaži sobu', - userMenuKick: 'Izbačen/Zabranjen', - userMenuBans: 'Lista zabranjenih korisnika', - userMenuWhois: 'Prikaži IP', - unbanUser: 'Opozvati zabranu korisnika %s', - joinChannel: 'Pristupi sobi %s', - cite: '%s reče:', - urlDialog: 'Molimo vas, unesite adresu (URL) web stranice:', - deleteMessage: 'Delete this chat message', - deleteMessageConfirm: 'Really delete the selected chat message?', - errorCookiesRequired: 'Pažnja: kolačići su neophodni za ovaj Chat.', - errorUserNameNotFound: 'Greška: korisnik %s nije pronađen.', - errorMissingText: 'Greška: nedostaje tekst poruke.', - errorMissingUserName: 'Greška: nedostaje korisničko ime.', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Username already in use.', - errorMissingChannelName: 'Greška: nedostaje ime sobe.', - errorInvalidChannelName: 'Greška: pogrešno ime sobe: %s', - errorPrivateMessageNotAllowed: 'Greška: privatne poruke nisu dozvoljene.', - errorInviteNotAllowed: 'Greška: Nije vam dozvoljeno da pozivate nekoga u ovu sobu.', - errorUninviteNotAllowed: 'Greška: Nije vam dozvoljeno da nekoga opozovete iz ove sobe.', - errorNoOpenQuery: 'Greška: Privatna soba nije otvorena.', - errorKickNotAllowed: 'Greška: Nije vam dozvoljeno da izbacite %s.', - errorCommandNotAllowed: 'Greška: Komanda nije dozvoljena: %s', - errorUnknownCommand: 'Greška: Nepoznata komanda: %s', - errorMaxMessageRate: 'Error: You exceeded the maximum number of messages per minute.', - errorConnectionTimeout: 'Greška: Vreme konekcije je isteklo. Molimo vas pokušajte ponovo.', - errorConnectionStatus: 'Greška: Status konekcije: %s', - errorSoundIO: 'Error: Failed to load sound file (Flash IO Error).', - errorSocketIO: 'Error: Connection to socket server failed (Flash IO Error).', - errorSocketSecurity: 'Error: Connection to socket server failed (Flash Security Error).', - errorDOMSyntax: 'Error: Invalid DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/sv.js b/library/ajaxchat/chat/js/lang/sv.js deleted file mode 100644 index 6c8ded6cc..000000000 --- a/library/ajaxchat/chat/js/lang/sv.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Eric [June 7,2008] - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s loggade in på Chatten.', - logout: '%s loggade ut från Chatten.', - logoutTimeout: '%s loggades ut (Timeout).', - logoutIP: '%s loggades ut (Felaktig IPadress).', - logoutKicked: '%s har loggats ut (Utsparkad).', - channelEnter: '%s ansluter till kanalen.', - channelLeave: '%s lämnade kanalen.', - privmsg: '(Viskning)', - privmsgto: '(Viskar till %s)', - invite: '%s bjuder in dig att ansluta till %s.', - inviteto: 'Din inbjudan till %s att ansluta till kanalen %s har skickats.', - uninvite: '%s upphävde inbjudan till dig från kanalen %s.', - uninviteto: 'Din uphävning av inbjudan till %s för kanalen %s har skickats.', - queryOpen: 'Privat kanal öppnad för %s.', - queryClose: 'Privat kanal för %s är stängd.', - ignoreAdded: '%s blev inlagd i ignoreringslistan.', - ignoreRemoved: 'Ta bort %s från ignoreringslistan.', - ignoreList: 'Ignorerade användare:', - ignoreListEmpty: 'Inga ignorerade Användare.', - who: 'Användare OnLine:', - whoChannel: 'Användare OnLine i kanalen %s:', - whoEmpty: 'Inga användare OnLine i kanalen.', - list: 'Tillgängliga kanaler:', - bans: 'Bannade Användare:', - bansEmpty: 'Inga bannade Användare.', - unban: 'Banningen av %s är upphävd.', - whois: '%s - IPadress:', - whereis: '%s är i kanalen %s.', - roll: '%s rullar %s och får %s.', - nick: '%s har bytt namn till %s.', - toggleUserMenu: 'Skifta användarmeny för %s', - userMenuLogout: 'Logga Ut', - userMenuWho: 'Lista användare OnLine', - userMenuList: 'Lista tillgängliga kanaler', - userMenuAction: 'Beskriv händelse', - userMenuRoll: 'Rulla tärningar', - userMenuNick: 'Ändra användarnamn', - userMenuEnterPrivateRoom: 'Gå in i privat rum', - userMenuSendPrivateMessage: 'Skicka privat meddelande', - userMenuDescribe: 'Skicka privat händelse', - userMenuOpenPrivateChannel: 'Öppna privat kanal', - userMenuClosePrivateChannel: 'Stäng privat kanal', - userMenuInvite: 'Bjud in', - userMenuUninvite: 'Upphäv inbjudan', - userMenuIgnore: 'Ignorera/Acceptera', - userMenuIgnoreList: 'Lista ignorerade användare', - userMenuWhereis: 'Visa kanal', - userMenuKick: 'Sparka ut/Banna', - userMenuBans: 'Lista bannade användare', - userMenuWhois: 'Visa IP', - unbanUser: 'Upphäv banningen av %s', - joinChannel: 'Anslut till kanalen %s', - cite: '%s sa:', - urlDialog: 'Skriv in adressen (URL) till websidan:', - deleteMessage: 'Radera detta meddelande', - deleteMessageConfirm: 'Vill du radera det valda meddelandet?', - errorCookiesRequired: 'Cookies[kakor] krävs för denna Chat.', - errorUserNameNotFound: 'Error: Användaren %s hittades inte.', - errorMissingText: 'Error: Meddelandetext saknas.', - errorMissingUserName: 'Error: Användarnamn saknas.', - errorInvalidUserName: 'Error: Ogiltigt användarnamn.', - errorUserNameInUse: 'Error: Användarnamnet används redan.', - errorMissingChannelName: 'Error: Kanalnamn saknas.', - errorInvalidChannelName: 'Error: Felaktigt kanalnamn: %s', - errorPrivateMessageNotAllowed: 'Error: Privata meddelanden är inte tillåtna.', - errorInviteNotAllowed: 'Error: Du saknar rättighet att bjuda in någon till denna kanalen.', - errorUninviteNotAllowed: 'Error: Du saknar rättighet att upphäva en inbjudan till någon i denna kanalen.', - errorNoOpenQuery: 'Error: Ingen privat kanal öppen.', - errorKickNotAllowed: 'Error: Du saknar rättighet att sparka %s.', - errorCommandNotAllowed: 'Error: Otillåtet kommando: %s', - errorUnknownCommand: 'Error: Okänt kommando: %s', - errorMaxMessageRate: 'Error: Du överskred det maxiamala antalet meddelanden per minut.', - errorConnectionTimeout: 'Error: Anslutningen fick "timeout". Var vänlig och prova igen.', - errorConnectionStatus: 'Error: Anslutningens status: %s', - errorSoundIO: 'Error: Misslyckades att ladda ljudfil (Flash IO Error).', - errorSocketIO: 'Error: Anslutningen till "socket server" misslyckades (Flash IO Error).', - errorSocketSecurity: 'Error: Anslutningen till "socket server" misslyckades (Flash Security Error).', - errorDOMSyntax: 'Error: Ogiltig DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/th.js b/library/ajaxchat/chat/js/lang/th.js deleted file mode 100644 index 35c60a51b..000000000 --- a/library/ajaxchat/chat/js/lang/th.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - * @Translate by Charge01 @ http://www.thaira2lovers.co.cc - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s เข้าสู่ห้องแชท', - logout: '%s ออกจากห้องแชท', - logoutTimeout: '%s ออกจากห้องแชทแล้ว (Timeout).', - logoutIP: '%s ออกจากระบบแล้ว (IP address ไม่ถูกต้อง).', - logoutKicked: '%s ออกจากระบบแล้ว (ถูกไล่).', - channelEnter: '%s เข้าห้องมา', - channelLeave: '%s ออกห้องไป', - privmsg: '(กระซิบ)', - privmsgto: '(กระซิบไป %s)', - invite: '%s เชิญให้ %s เข้าร่วม', - inviteto: 'การเชิญ %s เพื่อเข้าสู่ห้อง %s ถูกส่งแล้ว', - uninvite: '%s ถอนคำเชิญออกจากห้อง %s.', - uninviteto: 'การเชิญ %s สำหรับห้อง %s ถูกส่งแล้ว', - queryOpen: 'ห้องส่วนตัวถูกเปิดที่ %s', - queryClose: 'ห้องส่วนตัว %s ถูกปิด', - ignoreAdded: 'เพิ่ม %s สู่รายการไม่สนใจ', - ignoreRemoved: 'ลบ %s ออกจากรายการไม่สนใจ', - ignoreList: 'ผู้ใช้ที่ถูกไม่สนใจ:', - ignoreListEmpty: 'ไม่มีผู้ใช้ที่ไม่สนใจ', - who: 'ผู้ใช้ออนไลนอยู่:', - whoChannel: 'ผู้ใช้ออนไลน์ในห้อง %s:', - whoEmpty: 'ไม่มีผู้ใช้ออนไลน์อยู่ในห้อง', - list: 'ห้องแชทที่มีอยู่:', - bans: 'ผู้ใช้ถูกแบน:', - bansEmpty: 'ไม่มีผู้ใช้ที่ถูกแบน', - unban: 'การแบนของ %s ถูกยกเลิก', - whois: 'ผู้ใช้ %s - IP address:', - whereis: 'ผู้ใช้ %s อยู่ในห้อง %s.', - roll: '%s rolls %s and gets %s.', - nick: '%s ตอนนี้เปลี่ยนชื่อเป็น %s.', - toggleUserMenu: 'เปิดเมนูสำหรับ %s', - userMenuLogout: 'ออกจากระบบ', - userMenuWho: 'รายชื่อผู้ใช้', - userMenuList: 'รายชื่อห้องที่ปรากฎ', - userMenuAction: 'บอกกล่าวการกระทำ', - userMenuRoll: 'ทอยลูกเต๋า', - userMenuNick: 'เปลี่ยนชื่อ', - userMenuEnterPrivateRoom: 'เข้้าห้องส่วนตัว', - userMenuSendPrivateMessage: 'ส่งข้อความส่วนตัว', - userMenuDescribe: 'ส่งการกระทำส่วนตัว', - userMenuOpenPrivateChannel: 'เปิดห้องแชทส่วนตัว', - userMenuClosePrivateChannel: 'ปิดห้องแชทส่วนตัว', - userMenuInvite: 'เชิญ', - userMenuUninvite: 'ถอนคำเชิญ', - userMenuIgnore: 'ไม่สนใจ/ยอมรับ', - userMenuIgnoreList: 'รายชื่อผู้ใช้ที่ไม่สนใจ', - userMenuWhereis: 'แสดงห้องแชท', - userMenuKick: 'ไล่/แบน', - userMenuBans: 'รายชื่อที่ถูกแบน', - userMenuWhois: 'แสดง IP', - unbanUser: 'ปลดการแบนของผู้ใช้ %s', - joinChannel: 'ร่วมห้อง %s', - cite: '%s พูด:', - urlDialog: 'กรุณาใส่ที่อยู่เว็บ (URL):', - deleteMessage: 'ลบข้อความแชทนี้', - deleteMessageConfirm: 'แน่ใจว่าจะลบข้อความที่เลือกนี้?', - errorCookiesRequired: 'ห้องแชทนี้ต้องการใช้งานคุกกี้', - errorUserNameNotFound: 'Error: ไม่พบผู้ใช้ %s', - errorMissingText: 'Error: ข้อความหายไป', - errorMissingUserName: 'Error: ผู้ใช้หายไป', - errorInvalidUserName: 'Error: ผู้ใช้ไม่ถูกต้อง', - errorUserNameInUse: 'Error: ผู้ใช้นี้ถูกใช้งานอยู่', - errorMissingChannelName: 'Error: ชื่อห้องแชทหายไป', - errorInvalidChannelName: 'Error: ชื่อห้องแชทไม่ถูกต้อง: %s', - errorPrivateMessageNotAllowed: 'Error: ไม่อนุญาตข้อความส่วนตัว', - errorInviteNotAllowed: 'Error: ไม่อนุญาตให้คุณเชิญใครในห้องนี้', - errorUninviteNotAllowed: 'Error: ไม่อนุญาตให้คุณถอดการเชิญในห้องนี้', - errorNoOpenQuery: 'Error: ไม่เปิดห้องส่วนตัว', - errorKickNotAllowed: 'Error: ไม่อนุญาตให้คุณไล่ %s.', - errorCommandNotAllowed: 'Error: ไม่อนุญาตคำสั่ง : %s', - errorUnknownCommand: 'Error: คำสั่งอะไรเนีย: %s', - errorMaxMessageRate: 'Error: ส่งข้อความเกินกำหนดใน 1 นาที', - errorConnectionTimeout: 'Error: การเชื่อมต่อหมดเวลา กรุณาลองอีกครั้ง', - errorConnectionStatus: 'Error: สถานะการเชื่อมต่อ: %s', - errorSoundIO: 'Error: โหลดไฟล์เสียงผิดพลาด (อาจเกิดจาก Flash IO Error, โปรแกรมช่วยดาวน์โหลด).', - errorSocketIO: 'Error: การเชื่อมต่อถึง socket เซิร์ฟเวอร์ผิดพลาด (อาจเกิดจาก Flash IO Error).', - errorSocketSecurity: 'Error: การเชื่อมต่อถึง socket เซิร์ฟเวอร์ผิดพลาด (Flash Security Error).', - errorDOMSyntax: 'Error: DOM Syntax ไม่ถูกต้อง (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/tr.js b/library/ajaxchat/chat/js/lang/tr.js deleted file mode 100644 index 63d9b5aee..000000000 --- a/library/ajaxchat/chat/js/lang/tr.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Cydonian - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s sohbet odasına girdi.', - logout: '%s sohbet odasından çıktı.', - logoutTimeout: '%s sohbetten çıkarıldı (Bağlantı Gecikmesi).', - logoutIP: '%s sohbetten çıkarıldı (Geçersiz IP adresi).', - logoutKicked: '%s sohbetten çıkarıldı (Atıldı).', - channelEnter: '%s kanala girdi.', - channelLeave: '%s kanaldan çıktı.', - privmsg: '(fısıldıyor)', - privmsgto: '(%s size fısıldıyor)', - invite: '%s sizi %s odasına davet ediyor.', - inviteto: '%s kanalı için davetiniz %s e gönderildi.', - uninvite: '%s sizi %s kanalından çıkmaya çağırıyor.', - uninviteto: '%s kanalından çıkma davetiniz %s e gönderildi', - queryOpen: '%s e özel kanal açıldı.', - queryClose: '%s e özel kanal kapatıldı.', - ignoreAdded: '%s blok listesine eklendi.', - ignoreRemoved: '%s blok listesinden çıkarıldı.', - ignoreList: 'Blok edilen üyeler:', - ignoreListEmpty: 'Blok Listesi boş.', - who: 'Çevrimiçi üyeler:', - whoChannel: '%s kanalındaki çevrimiçi üyeler:', - whoEmpty: 'Kanalda çevrimiçi üye yoktur.', - list: 'Açık Odalar:', - bans: 'Yasaklanan Üyeler:', - bansEmpty: 'Yasaklı Listesi boş.', - unban: '%s adlı üyenin yasağı kaldırıldı.', - whois: 'Üye %s - IP adresi:', - whereis: '%s adlı üye %s kanalında.', - roll: '%s sallar %s ve alır %s.', - nick: '%s rumuzunu %s yaptı.', - toggleUserMenu: 'Toggle user menu for %s', - userMenuLogout: 'Çıkış', - userMenuWho: 'Çevrimiçi üyeleri göster', - userMenuList: 'Uygun odaları göster', - userMenuAction: 'Aksiyon:', - userMenuRoll: 'Zarları at', - userMenuNick: 'Rumuz değiştir', - userMenuEnterPrivateRoom: 'Özel odaya gir', - userMenuSendPrivateMessage: 'Özel mesaj gönder', - userMenuDescribe: 'Özel aksiyon gönder', - userMenuOpenPrivateChannel: 'Özel kanal aç', - userMenuClosePrivateChannel: 'Özel kanalı kapat', - userMenuInvite: 'Davet et', - userMenuUninvite: 'Davet etme', - userMenuIgnore: 'İptal/Kabul', - userMenuIgnoreList: 'Bloklanmış üyeleri göster', - userMenuWhereis: 'Kanalı göster', - userMenuKick: 'At/Yasakla', - userMenuBans: 'Yasaklanmış üyeleri göster', - userMenuWhois: 'IP göster', - unbanUser: 'Üye %s nin yasağını kaldır', - joinChannel: '%s kanalına Gir', - cite: '%s :', - urlDialog: 'Web sayfasının adresini (URL) giriniz:', - deleteMessage: 'Bu mesajı sil', - deleteMessageConfirm: 'İşaretli mesajı gerçekten silmek istiyor musunuz?', - errorCookiesRequired: 'Bu sohbet için Cookies açık olmalıdır.', - errorUserNameNotFound: 'Hata: %s adlı üye bulunamadı.', - errorMissingText: 'Hata: Mesaj yazısı yok.', - errorMissingUserName: 'Hata: Üye adı yok.', - errorInvalidUserName: 'Hata: Geçersiz üye adı.', - errorUserNameInUse: 'Hata: Üye adı kullanımda.', - errorMissingChannelName: 'Hata: Kanal adı yok.', - errorInvalidChannelName: 'Hata: Geçersiz kanal adı: %s', - errorPrivateMessageNotAllowed: 'Hata: Özel mesajlara izin verilmiyor.', - errorInviteNotAllowed: 'Hata: Başka bir üyeyi bu kanala davet etme izniniz yok.', - errorUninviteNotAllowed: 'Hata: Başka bir üyeyi bu kanaldan dışarı davete izniniz yok.', - errorNoOpenQuery: 'Hata: Açık özel kanal yok.', - errorKickNotAllowed: 'Hata: %s adlı üyeyi atma yetkiniz yok.', - errorCommandNotAllowed: 'Hata: Bu komuta izin yok: %s', - errorUnknownCommand: 'Hata: Bilinmeyen komut: %s', - errorMaxMessageRate: 'Hata: Bir dakika içinde atılabilecek maksimum mesaj sayısına ulaştınız.', - errorConnectionTimeout: 'Hata: Bağlantı süresi aşımı. Lütfen tekrar deneyin.', - errorConnectionStatus: 'Hata: Bağlantı durumu: %s', - errorSoundIO: 'Hata: Ses dosyası yüklenemedi (Flash IO Hatası).', - errorSocketIO: 'Hata: Socket server bağlantısı yapılamadı (Flash IO Hatası).', - errorSocketSecurity: 'Hata: Socket server bağlantısı yapılamadı(Flash Güvenlik Hatası).', - errorDOMSyntax: 'Hata: Geçersiz DOM Sözdizimi (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/uk.js b/library/ajaxchat/chat/js/lang/uk.js deleted file mode 100644 index 42f61804e..000000000 --- a/library/ajaxchat/chat/js/lang/uk.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author Yuriy Smetana (yura@stryi.com.ua, http://joomla.org.ua) - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s заходить до Чату.', - logout: '%s виходить з Чату.', - logoutTimeout: '%s залишає чат (був неактивний).', - logoutIP: '%s залишає чат (неправильна IP адреса).', - logoutKicked: '%s залишає чат (примусово).', - channelEnter: '%s заходить до кімнати.', - channelLeave: '%s залишає кімнату.', - privmsg: '(пошепки)', - privmsgto: '(пошепки до %s)', - invite: '%s запрошує відвідати кімнату %s.', - inviteto: 'Запрошення до %s відвідати кімнату %s надіслано.', - uninvite: '%s відмовив в запрошенні до кімнати %s.', - uninviteto: 'Відміну запрошення %s до кімнати %s було надіслано.', - queryOpen: 'Створено приватну кімнату з %s.', - queryClose: 'Приватну кімнату з %s зачинено.', - ignoreAdded: '%s додано до переліку ігнорованих осіб.', - ignoreRemoved: '%s вилучено з переліку ігнорованих осіб.', - ignoreList: 'Ігроновані особи:', - ignoreListEmpty: 'Ігнорованих осіб немає.', - who: 'Зараз в Чаті:', - whoChannel: 'Зараз в кімнаті %s такі користувачі:', - whoEmpty: 'Ця кімната порожня.', - list: 'Інші кімнати:', - bans: 'Заблоковані користувачі:', - bansEmpty: 'Немає заблокованих користувачів.', - unban: 'Блокування користувача %s відмінено.', - whois: 'Користувач %s - IP адреса:', - whereis: 'Користувач %s в кімнаті %s.', - roll: 'Користувачем %s кинуто %s, випало %s.', - nick: 'Користувач %s відтепер буде називатись %s.', - toggleUserMenu: 'Меню користувача %s', - userMenuLogout: 'Вийти', - userMenuWho: 'Показати присутніх', - userMenuList: 'Показати кімнати', - userMenuAction: 'Описати чим зараз займаєтесь', - userMenuRoll: 'Кинути кості', - userMenuNick: 'Змінити собі ім\'я', - userMenuEnterPrivateRoom: 'Увійти до приватної кімнати', - userMenuSendPrivateMessage: 'Надіслати особисте повідомлення', - userMenuDescribe: 'Описати чим займаєтесь (приватно)', - userMenuOpenPrivateChannel: 'Створити приватну кімнату', - userMenuClosePrivateChannel: 'Закрити приватну кімнату', - userMenuInvite: 'Запросити', - userMenuUninvite: 'Відмовити', - userMenuIgnore: 'Ігнорувати/Приймати', - userMenuIgnoreList: 'Перелік ігнорованих', - userMenuWhereis: 'Показати кімнати', - userMenuKick: 'Викинути/Заблокувати', - userMenuBans: 'Перелік заблокованих користувачів', - userMenuWhois: 'Показати IP', - unbanUser: 'Відмінити блокування користувача %s', - joinChannel: 'Зайти в кімнату %s', - cite: '%s пише:', - urlDialog: 'Будь-ласка, введіть адресу веб-сторінки:', - deleteMessage: 'Видалити це повідомлення', - deleteMessageConfirm: 'Справді видалити це повідомлення?', - errorCookiesRequired: 'Для Чату необхідно дозволити Cookies.', - errorUserNameNotFound: 'Помилка: користувач %s не існує.', - errorMissingText: 'Помилка: повідомлення відсутнє.', - errorMissingUserName: 'Помилка: відсутнє ім\'я користувача.', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Username already in use.', - errorMissingChannelName: 'Помилка: відсутня назва кімнати.', - errorInvalidChannelName: 'Помилка: хибна назва кімнати: %s', - errorPrivateMessageNotAllowed: 'Помилка: приватні повідомлення заборонені.', - errorInviteNotAllowed: 'Помилка: Вам заборонено запрошувати до цієї кімнати.', - errorUninviteNotAllowed: 'Помилка: Вам заборонено відмовляти в запрошенні до цієї кімнати.', - errorNoOpenQuery: 'Помилка: не існує приватних кімнат.', - errorKickNotAllowed: 'Помилка: Вам недозволено викидати користувачів %s.', - errorCommandNotAllowed: 'Помилка: недозволена команда: %s', - errorUnknownCommand: 'Помилка: хибна команда: %s', - errorMaxMessageRate: 'Помилка: Ви досягли максимальної кількості повідомлень за хвилину.', - errorConnectionTimeout: 'Помилка: час очікування минув. Будь-ласка, спробуйте знову.', - errorConnectionStatus: 'Помилка: стан з\'єднання: %s', - errorSoundIO: 'Помилка: Неможливо відкрити звуковий файл (Flash IO Error).', - errorSocketIO: 'Помилка: З\'єднання з сервером невдалося (Flash IO Error).', - errorSocketSecurity: 'Помилка: З\'єднання з сервером невдалося (Flash Security Error).', - errorDOMSyntax: 'Помилка: Invalid DOM Syntax (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/zh-tw.js b/library/ajaxchat/chat/js/lang/zh-tw.js deleted file mode 100644 index c6b971953..000000000 --- a/library/ajaxchat/chat/js/lang/zh-tw.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s已登入', - logout: '%s已登出', - logoutTimeout: '%s已登出(連線逾時)', - logoutIP: '%s已登出(無效的IP address)', - logoutKicked: '%s已登出(被踢掉了)', - channelEnter: '%s已進入', - channelLeave: '%s已離開', - privmsg: '(悄悄話)', - privmsgto: '(給 %s 的悄悄話)', - invite: '%s 邀請您進入 %s .', - inviteto: '請 %s 進入 %s 的邀請函已發送', - uninvite: '%s 於 %s 收回了邀請函', - uninviteto: '請 %s 進入 %s 的邀請函已收回', - queryOpen: '允許 %s 進入私人房', - queryClose: '已不允許 %s 進入私人房', - ignoreAdded: '增加 %s 至忽略清單', - ignoreRemoved: '移除 %s 自忽略清單', - ignoreList: '已忽略來自以下人士的訊息:', - ignoreListEmpty: '忽略清單是空的。', - who: '已上線會員:', - whoChannel: '在 %s 的已上線會員:', - whoEmpty: '沒有人在那裡。', - list: '可進入的房間:', - bans: '被禁止使用的人:', - bansEmpty: '沒有被禁止使用的人。', - unban: '開放之前被禁的使用者 %s :', - whois: '使用者 %s - IP address:', - whereis: '使用者 %s 正在 %s 。', - roll: '%s 擲了 %s 得到了 %s 。', - nick: '%s 現在暱稱改為 %s', - toggleUserMenu: '開啟為 %s 特製的功能表', - userMenuLogout: '登出', - userMenuWho: '顯示已上線會員', - userMenuList: '顯示可進入的房間', - userMenuAction: '描述動作', - userMenuRoll: '擲骰子', - userMenuNick: '換暱稱', - userMenuEnterPrivateRoom: '進入私人房', - userMenuSendPrivateMessage: '傳送悄悄話', - userMenuDescribe: '傳送私人動作', - userMenuOpenPrivateChannel: '允許進入私人房', - userMenuClosePrivateChannel: '不允許進入私人房', - userMenuInvite: '邀請某人(進入自己的私人房)', - userMenuUninvite: '收回邀請', - userMenuIgnore: '忽略/接受某人的訊息', - userMenuIgnoreList: '顯示忽略清單', - userMenuWhereis: '顯示所在地', - userMenuKick: '踢掉/禁人', - userMenuBans: '顯示被禁的使用者', - userMenuWhois: '顯示 IP', - unbanUser: '開放之前被禁的使用者 %s ', - joinChannel: '進入 %s', - cite: '%s 說:', - urlDialog: '請輸入網址(URL):', - deleteMessage: '刪除這條訊息', - deleteMessageConfirm: '真的要刪除這條訊息嗎?', - errorCookiesRequired: '請打開Cookies!', - errorUserNameNotFound: '錯誤:沒有使用者 %s ……', - errorMissingText: '錯誤:未輸入訊息……', - errorMissingUserName: '錯誤:未輸入使用者帳號……', - errorInvalidUserName: '錯誤:帳號錯誤……', - errorUserNameInUse: '錯誤:帳號使用中……', - errorMissingChannelName: '錯誤:不存在的房間……', - errorInvalidChannelName: '錯誤:不存在的房間: %s ……', - errorPrivateMessageNotAllowed: '錯誤:不允許使用悄悄話功能……', - errorInviteNotAllowed: '錯誤:不允許邀請別人來這裡……', - errorUninviteNotAllowed: '錯誤:不允許收回邀請……', - errorNoOpenQuery: '錯誤:沒有私人房是開放的……', - errorKickNotAllowed: '錯誤:你不能把 %s 踢掉!', - errorCommandNotAllowed: '錯誤:不允許使用的指令: %s ……', - errorUnknownCommand: '錯誤:無法辨識的命令: %s ……', - errorMaxMessageRate: '錯誤:已達到一分鐘所能發送的最大訊息數量……', - errorConnectionTimeout: '錯誤:連線逾時,請再連一次……', - errorConnectionStatus: '錯誤:連線狀態: %s ', - errorSoundIO: '錯誤:無法讀取音效檔 (Flash IO Error).', - errorSocketIO: '錯誤:無法連線到伺服器的socket (Flash IO Error).', - errorSocketSecurity: '錯誤:無法連線到伺服器的socket (Flash Security Error).', - errorDOMSyntax: '錯誤:無效的 DOM 語法 (DOM ID: %s).' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/lang/zh.js b/library/ajaxchat/chat/js/lang/zh.js deleted file mode 100644 index ba41fad7f..000000000 --- a/library/ajaxchat/chat/js/lang/zh.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @author mikespook - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Ajax Chat language Object: -var ajaxChatLang = { - - login: '%s 进入聊天室。', - logout: '%s 退出聊天室。', - logoutTimeout: '%s 因超时,退出聊天室。', - logoutIP: '%s 因不合法的 IP 地址退出。', - logoutKicked: '%s 被踢出聊天室。', - channelEnter: '%s 进入频道。', - channelLeave: '%s 退出频道。', - privmsg: '(悄悄话)', - privmsgto: '(对 %s 说悄悄话)', - invite: '%s 邀请你加入 %s。', - inviteto: '对 %s 在频道 %s 的邀请已经发送。', - uninvite: '%s 撤销了你在频道 %s 的邀请。', - uninviteto: '对 %s 在频道 %s 的撤销邀请已经发送。', - queryOpen: '私人频道对 %s 打开。', - queryClose: '私人频道对 %s 关闭。', - ignoreAdded: '将 %s 加入忽略列表。', - ignoreRemoved: '从忽略列表中移除 %s。', - ignoreList: '已忽略用户:', - ignoreListEmpty: '已列出未忽略用户。', - who: '在线用户:', - whoChannel: '频道 %s 的在线用户:', - whoEmpty: '指定频道中没有在线用户。', - list: '可用频道:', - bans: '已禁言用户:', - bansEmpty: '已列出未禁言用户。', - unban: '用户 %s 的禁言已取消。', - whois: '用户 %s - IP 地址:', - whereis: '用户 %s 进入频道 %s.', - roll: '%s 摇出了 %s 并且得到了 %s。', - nick: '%s 改名为 %s。', - toggleUserMenu: '切换用户 %s 的菜单', - userMenuLogout: '退出', - userMenuWho: '列出在线用户', - userMenuList: '列出可用的频道', - userMenuAction: '动作描述', - userMenuRoll: '摇骰子', - userMenuNick: '修改用户名', - userMenuEnterPrivateRoom: '进入私人房间', - userMenuSendPrivateMessage: '发送私人消息', - userMenuDescribe: '发送私人动作', - userMenuOpenPrivateChannel: '打开私人频道', - userMenuClosePrivateChannel: '关闭私人频道', - userMenuInvite: '邀请', - userMenuUninvite: '撤销邀请', - userMenuIgnore: '忽略/接收', - userMenuIgnoreList: '列出忽略的用户', - userMenuWhereis: '显示频道', - userMenuKick: '踢/禁', - userMenuBans: '列出禁言的用户', - userMenuWhois: '显示 IP', - unbanUser: '撤销用户 %s 禁言', - joinChannel: '加入频道 %s', - cite: '%s 说:', - urlDialog: '请输入网页地址(URL):', - deleteMessage: '删除聊天记录', - deleteMessageConfirm: '要删除已经发出的聊天记录吗?', - errorCookiesRequired: '聊天室需要开启 Cookie 功能。', - errorUserNameNotFound: '错误:未找到用户 %s。', - errorMissingText: '错误:缺少消息内容。', - errorMissingUserName: '错误:缺少用户名。', - errorInvalidUserName: 'Error: Invalid username.', - errorUserNameInUse: 'Error: Username already in use.', - errorMissingChannelName: '错误:缺少频道名。', - errorInvalidChannelName: '错误:错误的频道名:%s', - errorPrivateMessageNotAllowed: '错误:不允许发送私人消息。', - errorInviteNotAllowed: '错误:你在这个频道没有权限邀请他人。', - errorUninviteNotAllowed: '错误:你在这个频道没有权限取消邀请。', - errorNoOpenQuery: '错误:没有私人频道开放。', - errorKickNotAllowed: '错误:没有权限提出 %s。', - errorCommandNotAllowed: '错误:不允许的命令:%s', - errorUnknownCommand: '错误:未知命令:%s', - errorMaxMessageRate: '错误:超出了每分钟最大讯息数。', - errorConnectionTimeout: '错误:连接超时,请重试。', - errorConnectionStatus: '错误:连接状态:%s', - errorSoundIO: '错误:加载声音文件失败(Flash IO 错误)。', - errorSocketIO: '错误:连接 Socket 服务器失败(Flash IO 错误)。', - errorSocketSecurity: '错误:连接 Socket 服务器失败(Flash 安全错误)。', - errorDOMSyntax: '错误:错误的 DOM 语法(DOM ID:%s)。' - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/js/logs.js b/library/ajaxchat/chat/js/logs.js deleted file mode 100644 index 9ec694cee..000000000 --- a/library/ajaxchat/chat/js/logs.js +++ /dev/null @@ -1,128 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Overrides client-side functionality for the logs view: - - ajaxChat.logsMonitorMode = null; - ajaxChat.logsLastID = null; - ajaxChat.logsCommand = null; - - ajaxChat.startChatUpdate = function() { - var infos = 'userID,userName,userRole'; - if(this.socketServerEnabled) { - infos += ',socketRegistrationID'; - } - this.updateChat('&getInfos=' + this.encodeText(infos)); - } - - ajaxChat.updateChat = function(paramString) { - // Only update if we have parameters, are in monitor mode or the lastID has changed since the last update: - if(paramString || this.logsMonitorMode || !this.logsLastID || this.lastID != this.logsLastID) { - // Update the logsLastID for the lastID check: - this.logsLastID = this.lastID; - - var requestUrl = this.ajaxURL - + '&lastID=' - + this.lastID; - if(paramString) { - requestUrl += paramString; - } - requestUrl += '&' + this.getLogsCommand(); - this.makeRequest(requestUrl,'GET',null); - } else { - this.logsLastID = null; - } - } - - ajaxChat.sendMessage = function() { - this.getLogs(); - } - - ajaxChat.getLogs = function() { - clearTimeout(this.timer); - this.clearChatList(); - this.lastID = 0; - this.logsCommand = null; - this.makeRequest(this.ajaxURL,'POST',this.getLogsCommand()); - } - - ajaxChat.getLogsCommand = function() { - if(!this.logsCommand) { - if(!this.dom['inputField'].value && - parseInt(this.dom['yearSelection'].value) <= 0 && - parseInt(this.dom['hourSelection'].value) <= 0) { - this.logsMonitorMode = true; - } else { - this.logsMonitorMode = false; - } - this.logsCommand = 'command=getLogs' - + '&channelID=' + this.dom['channelSelection'].value - + '&year=' + this.dom['yearSelection'].value - + '&month=' + this.dom['monthSelection'].value - + '&day=' + this.dom['daySelection'].value - + '&hour=' + this.dom['hourSelection'].value - + '&search=' + this.encodeText(this.dom['inputField'].value); - } - return this.logsCommand; - } - - ajaxChat.onNewMessage = function(dateObject, userID, userName, userRoleClass, messageID, messageText, channelID, ip) { - if(messageText.indexOf('/delete') == 0) { - return false; - } - if(this.logsMonitorMode) { - this.blinkOnNewMessage(dateObject, userID, userName, userRoleClass, messageID, messageText, channelID, ip); - this.playSoundOnNewMessage( - dateObject, userID, userName, userRoleClass, messageID, messageText, channelID, ip - ); - } - return true; - } - - ajaxChat.logout = function() { - clearTimeout(this.timer); - this.makeRequest(this.ajaxURL,'POST','logout=true'); - } - - ajaxChat.switchLanguage = function(langCode) { - window.location.search = '?view=logs&lang='+langCode; - } - - ajaxChat.setChatUpdateTimer = function() { - clearTimeout(this.timer); - var timeout; - if(this.socketIsConnected && this.logsLastID && this.lastID == this.logsLastID) { - timeout = this.socketTimerRate; - } else { - timeout = this.timerRate; - if(this.socketServerEnabled && !this.socketReconnectTimer) { - // If the socket connection fails try to reconnect once in a minute: - this.socketReconnectTimer = setTimeout('ajaxChat.socketConnect();', 60000); - } - } - this.timer = setTimeout('ajaxChat.updateChat(null);', timeout); - } - - ajaxChat.socketUpdate = function(data) { - if(this.logsMonitorMode) { - var xmlDoc = this.loadXML(data); - if(xmlDoc) { - var selectedChannelID = parseInt(this.dom['channelSelection'].value); - var channelID = parseInt(xmlDoc.firstChild.getAttribute('channelID')); - if(selectedChannelID == -3 || channelID == selectedChannelID || - selectedChannelID == -2 && channelID >= this.privateMessageDiff || - selectedChannelID == -1 - && channelID >= this.privateChannelDiff - && channelID < this.privateMessageDiff - ) { - this.handleChatMessages(xmlDoc.getElementsByTagName('message')); - } - } - } - } - \ No newline at end of file diff --git a/library/ajaxchat/chat/js/shoutbox.js b/library/ajaxchat/chat/js/shoutbox.js deleted file mode 100644 index b283277a7..000000000 --- a/library/ajaxchat/chat/js/shoutbox.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * @package AJAX_Chat - * @author Sebastian Tschan - * @copyright (c) Sebastian Tschan - * @license Modified MIT License - * @link https://blueimp.net/ajax/ - */ - -// Overrides functionality for the shoutbox view: - - ajaxChat.handleLogout = function() { - } diff --git a/library/ajaxchat/chat/lib/.htaccess b/library/ajaxchat/chat/lib/.htaccess deleted file mode 100644 index 91e386dc9..000000000 --- a/library/ajaxchat/chat/lib/.htaccess +++ /dev/null @@ -1,4 +0,0 @@ -AuthType Basic -AuthName "Forbidden" -AuthUserFile /dev/null -require user nobody \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/AJAXChat.php b/library/ajaxchat/chat/lib/class/AJAXChat.php deleted file mode 100644 index 215b2c4e1..000000000 --- a/library/ajaxchat/chat/lib/class/AJAXChat.php +++ /dev/null @@ -1,3326 +0,0 @@ -initialize(); - } - - function initialize() { - // Initialize configuration settings: - $this->initConfig(); - - // Initialize the DataBase connection: - $this->initDataBaseConnection(); - - // Initialize request variables: - $this->initRequestVars(); - - // Initialize the chat session: - $this->initSession(); - - // Handle the browser request and send the response content: - $this->handleRequest(); - } - - function initConfig() { - $config = null; - if (!include(AJAX_CHAT_PATH.'lib/config.php')) { - echo('Error: Could not find a config.php file in "'.AJAX_CHAT_PATH.'"lib/". Check to make sure the file exists.'); - die(); - } - $this->_config = &$config; - - // Initialize custom configuration settings: - $this->initCustomConfig(); - } - - function initRequestVars() { - $this->_requestVars = array(); - $this->_requestVars['ajax'] = isset($_REQUEST['ajax']) ? true : false; - $this->_requestVars['userID'] = isset($_REQUEST['userID']) ? $_REQUEST['userID'] : null; - $this->_requestVars['userName'] = isset($_REQUEST['userName']) ? $_REQUEST['userName'] : null; - $this->_requestVars['channelID'] = isset($_REQUEST['channelID']) ? $_REQUEST['channelID'] : null; - $this->_requestVars['channelName'] = isset($_REQUEST['channelName']) ? $_REQUEST['channelName'] : null; - $this->_requestVars['text'] = isset($_POST['text']) ? $_POST['text'] : null; - $this->_requestVars['lastID'] = isset($_REQUEST['lastID']) ? $_REQUEST['lastID'] : ''; - $this->_requestVars['login'] = isset($_REQUEST['login']) ? true : false; - $this->_requestVars['logout'] = isset($_REQUEST['logout']) ? true : false; - $this->_requestVars['password'] = isset($_REQUEST['password']) ? $_REQUEST['password'] : null; - $this->_requestVars['view'] = isset($_REQUEST['view']) ? $_REQUEST['view'] : null; - $this->_requestVars['year'] = isset($_REQUEST['year']) ? (int)$_REQUEST['year'] : null; - $this->_requestVars['month'] = isset($_REQUEST['month']) ? (int)$_REQUEST['month'] : null; - $this->_requestVars['day'] = isset($_REQUEST['day']) ? (int)$_REQUEST['day'] : null; - $this->_requestVars['hour'] = isset($_REQUEST['hour']) ? (int)$_REQUEST['hour'] : null; - $this->_requestVars['search'] = isset($_REQUEST['search']) ? $_REQUEST['search'] : null; - $this->_requestVars['shoutbox'] = isset($_REQUEST['shoutbox']) ? true : false; - $this->_requestVars['getInfos'] = isset($_REQUEST['getInfos']) ? $_REQUEST['getInfos'] : null; - $this->_requestVars['lang'] = isset($_REQUEST['lang']) ? $_REQUEST['lang'] : null; - $this->_requestVars['delete'] = isset($_REQUEST['delete']) ? (int)$_REQUEST['delete'] : null; - - // Initialize custom request variables: - $this->initCustomRequestVars(); - - // Remove slashes which have been added to user input strings if magic_quotes_gpc is On: - if(get_magic_quotes_gpc()) { - // It is safe to remove the slashes as we escape user data ourself - array_walk( - $this->_requestVars, - create_function( - '&$value, $key', - 'if(is_string($value)) $value = stripslashes($value);' - ) - ); - } - } - - function initDataBaseConnection() { - // Create a new database object: - $this->db = new AJAXChatDataBase( - $this->_config['dbConnection'] - ); - // Use a new database connection if no existing is given: - if(!$this->_config['dbConnection']['link']) { - // Connect to the database server: - $this->db->connect($this->_config['dbConnection']); - if($this->db->error()) { - echo $this->db->getError(); - die(); - } - // Select the database: - $this->db->select($this->_config['dbConnection']['name']); - if($this->db->error()) { - echo $this->db->getError(); - die(); - } - } - // Unset the dbConnection array for safety purposes: - unset($this->_config['dbConnection']); - } - - function getDataBaseTable($table) { - return ($this->db->getName() ? '`'.$this->db->getName().'`.'.$this->getConfig('dbTableNames',$table) : $this->getConfig('dbTableNames',$table)); - } - - function initSession() { - // Start the PHP session (if not already started): - $this->startSession(); - - if($this->isLoggedIn()) { - // Logout if we receive a logout request, the chat has been closed or the userID could not be revalidated: - if($this->getRequestVar('logout') || !$this->isChatOpen() || !$this->revalidateUserID()) { - $this->logout(); - return; - } - // Logout if the Session IP is not the same when logged in and ipCheck is enabled: - if($this->getConfig('ipCheck') && ($this->getSessionIP() === null || $this->getSessionIP() != $_SERVER['REMOTE_ADDR'])) { - $this->logout('IP'); - return; - } - } else if( - // Login if auto-login enabled or a login, userName or shoutbox parameter is given: - $this->getConfig('forceAutoLogin') || - $this->getRequestVar('login') || - $this->getRequestVar('userName') || - $this->getRequestVar('shoutbox') - ) { - $this->login(); - } - - // Initialize the view: - $this->initView(); - - if($this->getView() == 'chat') { - $this->initChatViewSession(); - } else if($this->getView() == 'logs') { - $this->initLogsViewSession(); - } - - if(!$this->getRequestVar('ajax') && !headers_sent()) { - // Set style cookie: - $this->setStyle(); - // Set langCode cookie: - $this->setLangCodeCookie(); - } - - $this->initCustomSession(); - } - - function initLogsViewSession() { - if($this->getConfig('socketServerEnabled')) { - if(!$this->getSessionVar('logsViewSocketAuthenticated')) { - $this->updateLogsViewSocketAuthentication(); - $this->setSessionVar('logsViewSocketAuthenticated', true); - } - } - } - - function updateLogsViewSocketAuthentication() { - if($this->getUserRole() != AJAX_CHAT_ADMIN) { - $channels = array(); - foreach($this->getChannels() as $channel) { - if($this->getConfig('logsUserAccessChannelList') && !in_array($channel, $this->getConfig('logsUserAccessChannelList'))) { - continue; - } - array_push($channels, $channel); - } - array_push($channels, $this->getPrivateMessageID()); - array_push($channels, $this->getPrivateChannelID()); - } else { - // The channelID "ALL" authenticates for all channels: - $channels = array('ALL'); - } - $this->updateSocketAuthentication( - $this->getUserID(), - $this->getSocketRegistrationID(), - $channels - ); - } - - function initChatViewSession() { - // If channel is not null we are logged in to the chat view: - if($this->getChannel() !== null) { - // Check if the current user has been logged out due to inactivity: - if(!$this->isUserOnline()) { - $this->logout(); - return; - } - if($this->getRequestVar('ajax')) { - $this->initChannel(); - $this->updateOnlineStatus(); - $this->checkAndRemoveInactive(); - } - } else { - if($this->getRequestVar('ajax')) { - // Set channel, insert login messages and add to online list on first ajax request in chat view: - $this->chatViewLogin(); - } - } - } - - function isChatOpen() { - if($this->getUserRole() == AJAX_CHAT_ADMIN) - return true; - if($this->getConfig('chatClosed')) - return false; - $time = time(); - if($this->getConfig('timeZoneOffset') !== null) { - // Subtract the server timezone offset and add the config timezone offset: - $time -= date('Z', $time); - $time += $this->getConfig('timeZoneOffset'); - } - // Check the opening hours: - if($this->getConfig('openingHour') < $this->getConfig('closingHour')) - { - if(($this->getConfig('openingHour') > date('G', $time)) || ($this->getConfig('closingHour') <= date('G', $time))) - return false; - } - else - { - if(($this->getConfig('openingHour') > date('G', $time)) && ($this->getConfig('closingHour') <= date('G', $time))) - return false; - } - // Check the opening weekdays: - if(!in_array(date('w', $time), $this->getConfig('openingWeekDays'))) - return false; - return true; - } - - function handleRequest() { - if($this->getRequestVar('ajax')) { - if($this->isLoggedIn()) { - // Parse info requests (for current userName, etc.): - $this->parseInfoRequests(); - - // Parse command requests (e.g. message deletion): - $this->parseCommandRequests(); - - // Parse message requests: - $this->initMessageHandling(); - } - // Send chat messages and online user list in XML format: - $this->sendXMLMessages(); - } else { - // Display XHTML content for non-ajax requests: - $this->sendXHTMLContent(); - } - } - - function parseCommandRequests() { - if($this->getRequestVar('delete') !== null) { - $this->deleteMessage($this->getRequestVar('delete')); - } - } - - function parseInfoRequests() { - if($this->getRequestVar('getInfos')) { - $infoRequests = explode(',', $this->getRequestVar('getInfos')); - foreach($infoRequests as $infoRequest) { - $this->parseInfoRequest($infoRequest); - } - } - } - - function parseInfoRequest($infoRequest) { - switch($infoRequest) { - case 'userID': - $this->addInfoMessage($this->getUserID(), 'userID'); - break; - case 'userName': - $this->addInfoMessage($this->getUserName(), 'userName'); - break; - case 'userRole': - $this->addInfoMessage($this->getUserRole(), 'userRole'); - break; - case 'channelID': - $this->addInfoMessage($this->getChannel(), 'channelID'); - break; - case 'channelName': - $this->addInfoMessage($this->getChannelName(), 'channelName'); - break; - case 'socketRegistrationID': - $this->addInfoMessage($this->getSocketRegistrationID(), 'socketRegistrationID'); - break; - default: - $this->parseCustomInfoRequest($infoRequest); - } - } - - function sendXHTMLContent() { - $httpHeader = new AJAXChatHTTPHeader($this->getConfig('contentEncoding'), $this->getConfig('contentType')); - - $template = new AJAXChatTemplate($this, $this->getTemplateFileName(), $httpHeader->getContentType()); - - // Send HTTP header: - $httpHeader->send(); - - // Send parsed template content: - echo $template->getParsedContent(); - } - - function getTemplateFileName() { - switch($this->getView()) { - case 'chat': - return AJAX_CHAT_PATH.'lib/template/loggedIn.html'; - case 'logs': - return AJAX_CHAT_PATH.'lib/template/logs.html'; - default: - return AJAX_CHAT_PATH.'lib/template/loggedOut.html'; - } - } - - function initView() { - $this->_view = null; - // "chat" is the default view: - $view = ($this->getRequestVar('view') === null) ? 'chat' : $this->getRequestVar('view'); - if($this->hasAccessTo($view)) { - $this->_view = $view; - } - } - - function getView() { - return $this->_view; - } - - function hasAccessTo($view) { - switch($view) { - case 'chat': - case 'teaser': - if($this->isLoggedIn()) { - return true; - } - return false; - case 'logs': - if($this->isLoggedIn() && ($this->getUserRole() == AJAX_CHAT_ADMIN || - ($this->getConfig('logsUserAccess') && - ($this->getUserRole() == AJAX_CHAT_MODERATOR || $this->getUserRole() == AJAX_CHAT_USER)) - )) { - return true; - } - return false; - default: - return false; - } - } - - function login() { - // Retrieve valid login user data (from request variables or session data): - $userData = $this->getValidLoginUserData(); - - if(!$userData) { - $this->addInfoMessage('errorInvalidUser'); - return false; - } - - // If the chat is closed, only the admin may login: - if(!$this->isChatOpen() && $userData['userRole'] != AJAX_CHAT_ADMIN) { - $this->addInfoMessage('errorChatClosed'); - return false; - } - - if(!$this->getConfig('allowGuestLogins') && $userData['userRole'] == AJAX_CHAT_GUEST) { - return false; - } - - // Check if userID or userName are already listed online: - if($this->isUserOnline($userData['userID']) || $this->isUserNameInUse($userData['userName'])) { - if($userData['userRole'] == AJAX_CHAT_USER || $userData['userRole'] == AJAX_CHAT_MODERATOR || $userData['userRole'] == AJAX_CHAT_ADMIN) { - // Set the registered user inactive and remove the inactive users so the user can be logged in again: - $this->setInactive($userData['userID'], $userData['userName']); - $this->removeInactive(); - } else { - $this->addInfoMessage('errorUserInUse'); - return false; - } - } - - // Check if user is banned: - if($userData['userRole'] != AJAX_CHAT_ADMIN && $this->isUserBanned($userData['userName'], $userData['userID'], $_SERVER['REMOTE_ADDR'])) { - $this->addInfoMessage('errorBanned'); - return false; - } - - // Check if the max number of users is logged in (not affecting moderators or admins): - if(!($userData['userRole'] == AJAX_CHAT_MODERATOR || $userData['userRole'] == AJAX_CHAT_ADMIN) && $this->isMaxUsersLoggedIn()) { - $this->addInfoMessage('errorMaxUsersLoggedIn'); - return false; - } - - // Use a new session id (if session has been started by the chat): - $this->regenerateSessionID(); - - // Log in: - $this->setUserID($userData['userID']); - $this->setUserName($userData['userName']); - $this->setLoginUserName($userData['userName']); - $this->setUserRole($userData['userRole']); - $this->setLoggedIn(true); - $this->setLoginTimeStamp(time()); - - // IP Security check variable: - $this->setSessionIP($_SERVER['REMOTE_ADDR']); - - // The client authenticates to the socket server using a socketRegistrationID: - if($this->getConfig('socketServerEnabled')) { - $this->setSocketRegistrationID( - md5(uniqid(rand(), true)) - ); - } - - // Add userID, userName and userRole to info messages: - $this->addInfoMessage($this->getUserID(), 'userID'); - $this->addInfoMessage($this->getUserName(), 'userName'); - $this->addInfoMessage($this->getUserRole(), 'userRole'); - - // Purge logs: - if($this->getConfig('logsPurgeLogs')) { - $this->purgeLogs(); - } - - return true; - } - - function chatViewLogin() { - $this->setChannel($this->getValidRequestChannelID()); - $this->addToOnlineList(); - - // Add channelID and channelName to info messages: - $this->addInfoMessage($this->getChannel(), 'channelID'); - $this->addInfoMessage($this->getChannelName(), 'channelName'); - - // Login message: - $text = '/login '.$this->getUserName(); - $this->insertChatBotMessage( - $this->getChannel(), - $text, - null, - 1 - ); - } - - function getValidRequestChannelID() { - $channelID = $this->getRequestVar('channelID'); - $channelName = $this->getRequestVar('channelName'); - // Check the given channelID, or get channelID from channelName: - if($channelID === null) { - if($channelName !== null) { - $channelID = $this->getChannelIDFromChannelName($channelName); - // channelName might need encoding conversion: - if($channelID === null) { - $channelID = $this->getChannelIDFromChannelName( - $this->trimChannelName($channelName, $this->getConfig('contentEncoding')) - ); - } - } - } - // Validate the resulting channelID: - if(!$this->validateChannel($channelID)) { - if($this->getChannel() !== null) { - return $this->getChannel(); - } - return $this->getConfig('defaultChannelID'); - } - return $channelID; - } - - function initChannel() { - $channelID = $this->getRequestVar('channelID'); - $channelName = $this->getRequestVar('channelName'); - if($channelID !== null) { - $this->switchChannel($this->getChannelNameFromChannelID($channelID)); - } else if($channelName !== null) { - if($this->getChannelIDFromChannelName($channelName) === null) { - // channelName might need encoding conversion: - $channelName = $this->trimChannelName($channelName, $this->getConfig('contentEncoding')); - } - $this->switchChannel($channelName); - } - } - - function logout($type=null) { - // Update the socket server authentication for the user: - if($this->getConfig('socketServerEnabled')) { - $this->updateSocketAuthentication($this->getUserID()); - } - if($this->isUserOnline()) { - $this->chatViewLogout($type); - } - $this->setLoggedIn(false); - $this->destroySession(); - - // Re-initialize the view: - $this->initView(); - } - - function chatViewLogout($type) { - $this->removeFromOnlineList(); - if($type !== null) { - $type = ' '.$type; - } - // Logout message - $text = '/logout '.$this->getUserName().$type; - $this->insertChatBotMessage( - $this->getChannel(), - $text, - null, - 1 - ); - } - - function switchChannel($channelName) { - $channelID = $this->getChannelIDFromChannelName($channelName); - - if($channelID !== null && $this->getChannel() == $channelID) { - // User is already in the given channel, return: - return; - } - - // Check if we have a valid channel: - if(!$this->validateChannel($channelID)) { - // Invalid channel: - $text = '/error InvalidChannelName '.$channelName; - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - $text - ); - return; - } - - $oldChannel = $this->getChannel(); - - $this->setChannel($channelID); - $this->updateOnlineList(); - - // Channel leave message - $text = '/channelLeave '.$this->getUserName(); - $this->insertChatBotMessage( - $oldChannel, - $text, - null, - 1 - ); - - // Channel enter message - $text = '/channelEnter '.$this->getUserName(); - $this->insertChatBotMessage( - $this->getChannel(), - $text, - null, - 1 - ); - - $this->addInfoMessage($channelName, 'channelSwitch'); - $this->addInfoMessage($channelID, 'channelID'); - $this->_requestVars['lastID'] = 0; - } - - function addToOnlineList() { - $sql = 'INSERT INTO '.$this->getDataBaseTable('online').'( - userID, - userName, - userRole, - channel, - dateTime, - ip - ) - VALUES ( - '.$this->db->makeSafe($this->getUserID()).', - '.$this->db->makeSafe($this->getUserName()).', - '.$this->db->makeSafe($this->getUserRole()).', - '.$this->db->makeSafe($this->getChannel()).', - NOW(), - '.$this->db->makeSafe($this->ipToStorageFormat($_SERVER['REMOTE_ADDR'])).' - );'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - $this->resetOnlineUsersData(); - } - - function removeFromOnlineList() { - $sql = 'DELETE FROM - '.$this->getDataBaseTable('online').' - WHERE - userID = '.$this->db->makeSafe($this->getUserID()).';'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - $this->removeUserFromOnlineUsersData(); - } - - function updateOnlineList() { - $sql = 'UPDATE - '.$this->getDataBaseTable('online').' - SET - userName = '.$this->db->makeSafe($this->getUserName()).', - channel = '.$this->db->makeSafe($this->getChannel()).', - dateTime = NOW(), - ip = '.$this->db->makeSafe($this->ipToStorageFormat($_SERVER['REMOTE_ADDR'])).' - WHERE - userID = '.$this->db->makeSafe($this->getUserID()).';'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - $this->resetOnlineUsersData(); - } - - function initMessageHandling() { - // Don't handle messages if we are not in chat view: - if($this->getView() != 'chat') { - return; - } - - // Check if we have been uninvited from a private or restricted channel: - if(!$this->validateChannel($this->getChannel())) { - // Switch to the default channel: - $this->switchChannel($this->getChannelNameFromChannelID($this->getConfig('defaultChannelID'))); - return; - } - - if($this->getRequestVar('text') !== null) { - $this->insertMessage($this->getRequestVar('text')); - } - } - - function insertParsedMessage($text) { - - // If a queryUserName is set, sent all messages as private messages to this userName: - if($this->getQueryUserName() !== null && strpos($text, '/') !== 0) { - $text = '/msg '.$this->getQueryUserName().' '.$text; - } - - // Parse IRC-style commands: - if(strpos($text, '/') === 0) { - $textParts = explode(' ', $text); - - switch($textParts[0]) { - - // Channel switch: - case '/join': - $this->insertParsedMessageJoin($textParts); - break; - - // Logout: - case '/quit': - $this->logout(); - break; - - // Private message: - case '/msg': - case '/describe': - $this->insertParsedMessagePrivMsg($textParts); - break; - - // Invitation: - case '/invite': - $this->insertParsedMessageInvite($textParts); - break; - - // Uninvitation: - case '/uninvite': - $this->insertParsedMessageUninvite($textParts); - break; - - // Private messaging: - case '/query': - $this->insertParsedMessageQuery($textParts); - break; - - // Kicking offending users from the chat: - case '/kick': - $this->insertParsedMessageKick($textParts); - break; - - // Listing banned users: - case '/bans': - $this->insertParsedMessageBans($textParts); - break; - - // Unban user (remove from ban list): - case '/unban': - $this->insertParsedMessageUnban($textParts); - break; - - // Describing actions: - case '/me': - case '/action': - $this->insertParsedMessageAction($textParts); - break; - - - // Listing online Users: - case '/who': - $this->insertParsedMessageWho($textParts); - break; - - // Listing available channels: - case '/list': - $this->insertParsedMessageList($textParts); - break; - - // Retrieving the channel of a User: - case '/whereis': - $this->insertParsedMessageWhereis($textParts); - break; - - // Listing information about a User: - case '/whois': - $this->insertParsedMessageWhois($textParts); - break; - - // Rolling dice: - case '/roll': - $this->insertParsedMessageRoll($textParts); - break; - - // Switching userName: - case '/nick': - $this->insertParsedMessageNick($textParts); - break; - - // Custom or unknown command: - default: - if(!$this->parseCustomCommands($text, $textParts)) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error UnknownCommand '.$textParts[0] - ); - } - } - - } else { - // No command found, just insert the plain message: - $this->insertCustomMessage( - $this->getUserID(), - $this->getUserName(), - $this->getUserRole(), - $this->getChannel(), - $text - ); - } - } - - function insertParsedMessageJoin($textParts) { - if(count($textParts) == 1) { - // join with no arguments is the own private channel, if allowed: - if($this->isAllowedToCreatePrivateChannel()) { - // Private channels are identified by square brackets: - $this->switchChannel($this->getChannelNameFromChannelID($this->getPrivateChannelID())); - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error MissingChannelName' - ); - } - } else { - $this->switchChannel($textParts[1]); - } - } - - function insertParsedMessagePrivMsg($textParts) { - if($this->isAllowedToSendPrivateMessage()) { - if(count($textParts) < 3) { - if(count($textParts) == 2) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error MissingText' - ); - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error MissingUserName' - ); - } - } else { - // Get UserID from UserName: - $toUserID = $this->getIDFromName($textParts[1]); - if($toUserID === null) { - if($this->getQueryUserName() !== null) { - // Close the current query: - $this->insertMessage('/query'); - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error UserNameNotFound '.$textParts[1] - ); - } - } else { - // Insert /privaction command if /describe is used: - $command = ($textParts[0] == '/describe') ? '/privaction' : '/privmsg'; - // Copy of private message to current User: - $this->insertCustomMessage( - $this->getUserID(), - $this->getUserName(), - $this->getUserRole(), - $this->getPrivateMessageID(), - $command.'to '.$textParts[1].' '.implode(' ', array_slice($textParts, 2)) - ); - // Private message to requested User: - $this->insertCustomMessage( - $this->getUserID(), - $this->getUserName(), - $this->getUserRole(), - $this->getPrivateMessageID($toUserID), - $command.' '.implode(' ', array_slice($textParts, 2)) - ); - } - } - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error PrivateMessageNotAllowed' - ); - } - } - - function insertParsedMessageInvite($textParts) { - if($this->getChannel() == $this->getPrivateChannelID() || in_array($this->getChannel(), $this->getChannels())) { - if(count($textParts) == 1) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error MissingUserName' - ); - } else { - $toUserID = $this->getIDFromName($textParts[1]); - if($toUserID === null) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error UserNameNotFound '.$textParts[1] - ); - } else { - // Add the invitation to the database: - $this->addInvitation($toUserID); - $invitationChannelName = $this->getChannelNameFromChannelID($this->getChannel()); - // Copy of invitation to current User: - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/inviteto '.$textParts[1].' '.$invitationChannelName - ); - // Invitation to requested User: - $this->insertChatBotMessage( - $this->getPrivateMessageID($toUserID), - '/invite '.$this->getUserName().' '.$invitationChannelName - ); - } - } - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error InviteNotAllowed' - ); - } - } - - function insertParsedMessageUninvite($textParts) { - if($this->getChannel() == $this->getPrivateChannelID() || in_array($this->getChannel(), $this->getChannels())) { - if(count($textParts) == 1) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error MissingUserName' - ); - } else { - $toUserID = $this->getIDFromName($textParts[1]); - if($toUserID === null) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error UserNameNotFound '.$textParts[1] - ); - } else { - // Remove the invitation from the database: - $this->removeInvitation($toUserID); - $invitationChannelName = $this->getChannelNameFromChannelID($this->getChannel()); - // Copy of uninvitation to current User: - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/uninviteto '.$textParts[1].' '.$invitationChannelName - ); - // Uninvitation to requested User: - $this->insertChatBotMessage( - $this->getPrivateMessageID($toUserID), - '/uninvite '.$this->getUserName().' '.$invitationChannelName - ); - } - } - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error UninviteNotAllowed' - ); - } - } - - function insertParsedMessageQuery($textParts) { - if($this->isAllowedToSendPrivateMessage()) { - if(count($textParts) == 1) { - if($this->getQueryUserName() !== null) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/queryClose '.$this->getQueryUserName() - ); - // Close the current query: - $this->setQueryUserName(null); - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error NoOpenQuery' - ); - } - } else { - if($this->getIDFromName($textParts[1]) === null) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error UserNameNotFound '.$textParts[1] - ); - } else { - if($this->getQueryUserName() !== null) { - // Close the current query: - $this->insertMessage('/query'); - } - // Open a query to the requested user: - $this->setQueryUserName($textParts[1]); - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/queryOpen '.$textParts[1] - ); - } - } - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error PrivateMessageNotAllowed' - ); - } - } - - function insertParsedMessageKick($textParts) { - // Only moderators/admins may kick users: - if($this->getUserRole() == AJAX_CHAT_ADMIN || $this->getUserRole() == AJAX_CHAT_MODERATOR) { - if(count($textParts) == 1) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error MissingUserName' - ); - } else { - // Get UserID from UserName: - $kickUserID = $this->getIDFromName($textParts[1]); - if($kickUserID === null) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error UserNameNotFound '.$textParts[1] - ); - } else { - // Check the role of the user to kick: - $kickUserRole = $this->getRoleFromID($kickUserID); - if($kickUserRole == AJAX_CHAT_ADMIN || ($kickUserRole == AJAX_CHAT_MODERATOR && $this->getUserRole() != AJAX_CHAT_ADMIN)) { - // Admins and moderators may not be kicked: - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error KickNotAllowed '.$textParts[1] - ); - } else { - // Kick user and insert message: - $channel = $this->getChannelFromID($kickUserID); - $banMinutes = (count($textParts) > 2) ? $textParts[2] : null; - $this->kickUser($textParts[1], $banMinutes, $kickUserID); - // If no channel found, user logged out before he could be kicked - if($channel !== null) { - $this->insertChatBotMessage( - $channel, - '/kick '.$textParts[1], - null, - 1 - ); - // Send a copy of the message to the current user, if not in the channel: - if($channel != $this->getChannel()) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/kick '.$textParts[1], - null, - 1 - ); - } - } - } - } - } - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error CommandNotAllowed '.$textParts[0] - ); - } - } - - function insertParsedMessageBans($textParts) { - // Only moderators/admins may see the list of banned users: - if($this->getUserRole() == AJAX_CHAT_ADMIN || $this->getUserRole() == AJAX_CHAT_MODERATOR) { - $this->removeExpiredBans(); - $bannedUsers = $this->getBannedUsers(); - if(count($bannedUsers) > 0) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/bans '.implode(' ', $bannedUsers) - ); - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/bansEmpty -' - ); - } - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error CommandNotAllowed '.$textParts[0] - ); - } - } - - function insertParsedMessageUnban($textParts) { - // Only moderators/admins may unban users: - if($this->getUserRole() == AJAX_CHAT_ADMIN || $this->getUserRole() == AJAX_CHAT_MODERATOR) { - $this->removeExpiredBans(); - if(count($textParts) == 1) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error MissingUserName' - ); - } else { - if(!in_array($textParts[1], $this->getBannedUsers())) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error UserNameNotFound '.$textParts[1] - ); - } else { - // Unban user and insert message: - $this->unbanUser($textParts[1]); - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/unban '.$textParts[1] - ); - } - } - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error CommandNotAllowed '.$textParts[0] - ); - } - } - - function insertParsedMessageAction($textParts) { - if(count($textParts) == 1) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error MissingText' - ); - } else { - if($this->getQueryUserName() !== null) { - // If we are in query mode, sent the action to the query user: - $this->insertMessage('/describe '.$this->getQueryUserName().' '.implode(' ', array_slice($textParts, 1))); - } else { - $this->insertCustomMessage( - $this->getUserID(), - $this->getUserName(), - $this->getUserRole(), - $this->getChannel(), - implode(' ', $textParts) - ); - } - } - } - - function insertParsedMessageWho($textParts) { - if(count($textParts) == 1) { - if($this->isAllowedToListHiddenUsers()) { - // List online users from any channel: - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/who '.implode(' ', $this->getOnlineUsers()) - ); - } else { - // Get online users for all accessible channels: - $channels = $this->getChannels(); - // Add the own private channel if allowed: - if($this->isAllowedToCreatePrivateChannel()) { - array_push($channels, $this->getPrivateChannelID()); - } - // Add the invitation channels: - foreach($this->getInvitations() as $channelID) { - if(!in_array($channelID, $channels)) { - array_push($channels, $channelID); - } - } - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/who '.implode(' ', $this->getOnlineUsers($channels)) - ); - } - } else { - $channelName = $textParts[1]; - $channelID = $this->getChannelIDFromChannelName($channelName); - if(!$this->validateChannel($channelID)) { - // Invalid channel: - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error InvalidChannelName '.$channelName - ); - } else { - // Get online users for the given channel: - $onlineUsers = $this->getOnlineUsers(array($channelID)); - if(count($onlineUsers) > 0) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/whoChannel '.$channelName.' '.implode(' ', $onlineUsers) - ); - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/whoEmpty -' - ); - } - } - } - } - - function insertParsedMessageList($textParts) { - // Get the names of all accessible channels: - $channelNames = $this->getChannelNames(); - // Add the own private channel, if allowed: - if($this->isAllowedToCreatePrivateChannel()) { - array_push($channelNames, $this->getPrivateChannelName()); - } - // Add the invitation channels: - foreach($this->getInvitations() as $channelID) { - $channelName = $this->getChannelNameFromChannelID($channelID); - if($channelName !== null && !in_array($channelName, $channelNames)) { - array_push($channelNames, $channelName); - } - } - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/list '.implode(' ', $channelNames) - ); - } - - function insertParsedMessageWhereis($textParts) { - if(count($textParts) == 1) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error MissingUserName' - ); - } else { - // Get UserID from UserName: - $whereisUserID = $this->getIDFromName($textParts[1]); - if($whereisUserID === null) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error UserNameNotFound '.$textParts[1] - ); - } else { - $channelID = $this->getChannelFromID($whereisUserID); - if($this->validateChannel($channelID)) { - $channelName = $this->getChannelNameFromChannelID($channelID); - } else { - $channelName = null; - } - if($channelName === null) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error UserNameNotFound '.$textParts[1] - ); - } else { - // List user information: - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/whereis '.$textParts[1].' '.$channelName - ); - } - } - } - } - - function insertParsedMessageWhois($textParts) { - // Only moderators/admins: - if($this->getUserRole() == AJAX_CHAT_ADMIN || $this->getUserRole() == AJAX_CHAT_MODERATOR) { - if(count($textParts) == 1) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error MissingUserName' - ); - } else { - // Get UserID from UserName: - $whoisUserID = $this->getIDFromName($textParts[1]); - if($whoisUserID === null) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error UserNameNotFound '.$textParts[1] - ); - } else { - // List user information: - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/whois '.$textParts[1].' '.$this->getIPFromID($whoisUserID) - ); - } - } - } else { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error CommandNotAllowed '.$textParts[0] - ); - } - } - - function insertParsedMessageRoll($textParts) { - if(count($textParts) == 1) { - // default is one d6: - $text = '/roll '.$this->getUserName().' 1d6 '.$this->rollDice(6); - } else { - $diceParts = explode('d', $textParts[1]); - if(count($diceParts) == 2) { - $number = (int)$diceParts[0]; - $sides = (int)$diceParts[1]; - - // Dice number must be an integer between 1 and 100, else roll only one: - $number = ($number > 0 && $number <= 100) ? $number : 1; - - // Sides must be an integer between 1 and 100, else take 6: - $sides = ($sides > 0 && $sides <= 100) ? $sides : 6; - - $text = '/roll '.$this->getUserName().' '.$number.'d'.$sides.' '; - for($i=0; $i<$number; $i++) { - if($i != 0) - $text .= ','; - $text .= $this->rollDice($sides); - } - } else { - // if dice syntax is invalid, roll one d6: - $text = '/roll '.$this->getUserName().' 1d6 '.$this->rollDice(6); - } - } - $this->insertChatBotMessage( - $this->getChannel(), - $text - ); - } - - function insertParsedMessageNick($textParts) { - if(!$this->getConfig('allowNickChange') || - (!$this->getConfig('allowGuestUserName') && $this->getUserRole() == AJAX_CHAT_GUEST)) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error CommandNotAllowed '.$textParts[0] - ); - } else if(count($textParts) == 1) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error MissingUserName' - ); - } else { - $newUserName = implode(' ', array_slice($textParts, 1)); - if($newUserName == $this->getLoginUserName()) { - // Allow the user to regain the original login userName: - $prefix = ''; - $suffix = ''; - } else if($this->getUserRole() == AJAX_CHAT_GUEST) { - $prefix = $this->getConfig('guestUserPrefix'); - $suffix = $this->getConfig('guestUserSuffix'); - } else { - $prefix = $this->getConfig('changedNickPrefix'); - $suffix = $this->getConfig('changedNickSuffix'); - } - $maxLength = $this->getConfig('userNameMaxLength') - - $this->stringLength($prefix) - - $this->stringLength($suffix); - $newUserName = $this->trimString($newUserName, 'UTF-8', $maxLength, true); - if(!$newUserName) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error InvalidUserName' - ); - } else { - $newUserName = $prefix.$newUserName.$suffix; - if($this->isUserNameInUse($newUserName)) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error UserNameInUse' - ); - } else { - $oldUserName = $this->getUserName(); - $this->setUserName($newUserName); - $this->updateOnlineList(); - // Add info message to update the client-side stored userName: - $this->addInfoMessage($this->getUserName(), 'userName'); - $this->insertChatBotMessage( - $this->getChannel(), - '/nick '.$oldUserName.' '.$newUserName, - null, - 2 - ); - } - } - } - } - - function insertMessage($text) { - if(!$this->isAllowedToWriteMessage()) - return; - - if(!$this->floodControl()) - return; - - $text = $this->trimMessageText($text); - if($text == '') - return; - - if(!$this->onNewMessage($text)) - return; - - $text = $this->replaceCustomText($text); - - $this->insertParsedMessage($text); - } - - function deleteMessage($messageID) { - // Retrieve the channel of the given message: - $sql = 'SELECT - channel - FROM - '.$this->getDataBaseTable('messages').' - WHERE - id='.$this->db->makeSafe($messageID).';'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - $row = $result->fetch(); - - if($row['channel'] !== null) { - $channel = $row['channel']; - - if($this->getUserRole() == AJAX_CHAT_ADMIN) { - $condition = ''; - } else if($this->getUserRole() == AJAX_CHAT_MODERATOR) { - $condition = ' AND - NOT (userRole='.$this->db->makeSafe(AJAX_CHAT_ADMIN).') - AND - NOT (userRole='.$this->db->makeSafe(AJAX_CHAT_CHATBOT).')'; - } else if($this->getUserRole() == AJAX_CHAT_USER && $this->getConfig('allowUserMessageDelete')) { - $condition = 'AND - ( - userID='.$this->db->makeSafe($this->getUserID()).' - OR - ( - channel = '.$this->db->makeSafe($this->getPrivateMessageID()).' - OR - channel = '.$this->db->makeSafe($this->getPrivateChannelID()).' - ) - AND - NOT (userRole='.$this->db->makeSafe(AJAX_CHAT_ADMIN).') - AND - NOT (userRole='.$this->db->makeSafe(AJAX_CHAT_CHATBOT).') - )'; - } else { - return false; - } - - // Remove given message from the database: - $sql = 'DELETE FROM - '.$this->getDataBaseTable('messages').' - WHERE - id='.$this->db->makeSafe($messageID).' - '.$condition.';'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - if($result->affectedRows() == 1) { - // Insert a deletion command to remove the message from the clients chatlists: - $this->insertChatBotMessage($channel, '/delete '.$messageID); - return true; - } - } - return false; - } - - function floodControl() { - // Moderators and Admins need no flood control: - if($this->getUserRole() == AJAX_CHAT_MODERATOR || $this->getUserRole() == AJAX_CHAT_ADMIN) { - return true; - } - $time = time(); - // Check the time of the last inserted message: - if($this->getInsertedMessagesRateTimeStamp()+60 < $time) { - $this->setInsertedMessagesRateTimeStamp($time); - $this->setInsertedMessagesRate(1); - } else { - // Increase the inserted messages rate: - $rate = $this->getInsertedMessagesRate()+1; - $this->setInsertedMessagesRate($rate); - // Check if message rate is too high: - if($rate > $this->getConfig('maxMessageRate')) { - $this->insertChatBotMessage( - $this->getPrivateMessageID(), - '/error MaxMessageRate' - ); - // Return false so the message is not inserted: - return false; - } - } - return true; - } - - function isAllowedToWriteMessage() { - if($this->getUserRole() != AJAX_CHAT_GUEST) - return true; - if($this->getConfig('allowGuestWrite')) - return true; - return false; - } - - function insertChatBotMessage($channelID, $messageText, $ip=null, $mode=0) { - $this->insertCustomMessage( - $this->getConfig('chatBotID'), - $this->getConfig('chatBotName'), - AJAX_CHAT_CHATBOT, - $channelID, - $messageText, - $ip, - $mode - ); - } - - function insertCustomMessage($userID, $userName, $userRole, $channelID, $text, $ip=null, $mode=0) { - // The $mode parameter is used for socket updates: - // 0 = normal messages - // 1 = channel messages (e.g. login/logout, channel enter/leave, kick) - // 2 = messages with online user updates (nick) - - $ip = $ip ? $ip : $_SERVER['REMOTE_ADDR']; - - $sql = 'INSERT INTO '.$this->getDataBaseTable('messages').'( - userID, - userName, - userRole, - channel, - dateTime, - ip, - text - ) - VALUES ( - '.$this->db->makeSafe($userID).', - '.$this->db->makeSafe($userName).', - '.$this->db->makeSafe($userRole).', - '.$this->db->makeSafe($channelID).', - NOW(), - '.$this->db->makeSafe($this->ipToStorageFormat($ip)).', - '.$this->db->makeSafe($text).' - );'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - if($this->getConfig('socketServerEnabled')) { - $this->sendSocketMessage( - $this->getSocketBroadcastMessage( - $this->db->getLastInsertedID(), - time(), - $userID, - $userName, - $userRole, - $channelID, - $text, - $mode - ) - ); - } - } - - function getSocketBroadcastMessage( - $messageID, - $timeStamp, - $userID, - $userName, - $userRole, - $channelID, - $text, - $mode - ) { - // The $mode parameter: - // 0 = normal messages - // 1 = channel messages (e.g. login/logout, channel enter/leave, kick) - // 2 = messages with online user updates (nick) - - // Get the message XML content: - $xml = ''; - if($mode) { - // Add the list of online users if the user list has been updated ($mode > 0): - $xml .= $this->getChatViewOnlineUsersXML(array($channelID)); - } - if($mode != 1 || $this->getConfig('showChannelMessages')) { - $xml .= ''; - $xml .= $this->getChatViewMessageXML( - $messageID, - $timeStamp, - $userID, - $userName, - $userRole, - $channelID, - $text - ); - $xml .= ''; - } - $xml .= ''; - return $xml; - } - - function sendSocketMessage($message) { - // Open a TCP socket connection to the socket server: - if($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) { - if(@socket_connect($socket, $this->getConfig('socketServerIP'), $this->getConfig('socketServerPort'))) { - // Append a null-byte to the string as EOL (End Of Line) character - // which is required by Flash XML socket communication: - $message .= "\0"; - @socket_write( - $socket, - $message, - strlen($message) // Using strlen to count the bytes instead of the number of UTF-8 characters - ); - } - @socket_close($socket); - } - } - - function updateSocketAuthentication($userID, $socketRegistrationID=null, $channels=null) { - // If no $socketRegistrationID or no $channels are given the authentication is removed for the given user: - $authentication = ''; - if($channels) { - foreach($channels as $channelID) { - $authentication .= ''; - } - } - $authentication .= ''; - $this->sendSocketMessage($authentication); - } - - function setSocketRegistrationID($value) { - $this->setSessionVar('SocketRegistrationID', $value); - } - - function getSocketRegistrationID() { - return $this->getSessionVar('SocketRegistrationID'); - } - - function rollDice($sides) { - // seed with microseconds since last "whole" second: - mt_srand((double)microtime()*1000000); - - return mt_rand(1, $sides); - } - - function kickUser($userName, $banMinutes=null, $userID=null) { - if($userID === null) { - $userID = $this->getIDFromName($userName); - } - if($userID === null) { - return; - } - - $banMinutes = $banMinutes ? $banMinutes : $this->getConfig('defaultBanTime'); - - if($banMinutes) { - // Ban User for the given time in minutes: - $this->banUser($userName, $banMinutes, $userID); - } - - // Remove given User from online list: - $sql = 'DELETE FROM - '.$this->getDataBaseTable('online').' - WHERE - userID = '.$this->db->makeSafe($userID).';'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - // Update the socket server authentication for the kicked user: - if($this->getConfig('socketServerEnabled')) { - $this->updateSocketAuthentication($userID); - } - - $this->removeUserFromOnlineUsersData($userID); - } - - function getBannedUsersData($key=null, $value=null) { - if($this->_bannedUsersData === null) { - $this->_bannedUsersData = array(); - - $sql = 'SELECT - userID, - userName, - ip - FROM - '.$this->getDataBaseTable('bans').' - WHERE - NOW() < dateTime;'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - while($row = $result->fetch()) { - $row['ip'] = $this->ipFromStorageFormat($row['ip']); - array_push($this->_bannedUsersData, $row); - } - - $result->free(); - } - - if($key) { - $bannedUsersData = array(); - foreach($this->_bannedUsersData as $bannedUserData) { - if(!isset($bannedUserData[$key])) { - return $bannedUsersData; - } - if($value) { - if($bannedUserData[$key] == $value) { - array_push($bannedUsersData, $bannedUserData); - } else { - continue; - } - } else { - array_push($bannedUsersData, $bannedUserData[$key]); - } - } - return $bannedUsersData; - } - - return $this->_bannedUsersData; - } - - function getBannedUsers() { - return $this->getBannedUsersData('userName'); - } - - function banUser($userName, $banMinutes=null, $userID=null) { - if($userID === null) { - $userID = $this->getIDFromName($userName); - } - $ip = $this->getIPFromID($userID); - if(!$ip || $userID === null) { - return; - } - - // Remove expired bans: - $this->removeExpiredBans(); - - $banMinutes = (int)$banMinutes; - if(!$banMinutes) { - // If banMinutes is not a valid integer, use the defaultBanTime: - $banMinutes = $this->getConfig('defaultBanTime'); - } - - $sql = 'INSERT INTO '.$this->getDataBaseTable('bans').'( - userID, - userName, - dateTime, - ip - ) - VALUES ( - '.$this->db->makeSafe($userID).', - '.$this->db->makeSafe($userName).', - DATE_ADD(NOW(), interval '.$this->db->makeSafe($banMinutes).' MINUTE), - '.$this->db->makeSafe($this->ipToStorageFormat($ip)).' - );'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - } - - function unbanUser($userName) { - $sql = 'DELETE FROM - '.$this->getDataBaseTable('bans').' - WHERE - userName = '.$this->db->makeSafe($userName).';'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - } - - function removeExpiredBans() { - $sql = 'DELETE FROM - '.$this->getDataBaseTable('bans').' - WHERE - dateTime < NOW();'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - } - - function setInactive($userID, $userName=null) { - $condition = 'userID='.$this->db->makeSafe($userID); - if($userName !== null) { - $condition .= ' OR userName='.$this->db->makeSafe($userName); - } - $sql = 'UPDATE - '.$this->getDataBaseTable('online').' - SET - dateTime = DATE_SUB(NOW(), interval '.(intval($this->getConfig('inactiveTimeout'))+1).' MINUTE) - WHERE - '.$condition.';'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - $this->resetOnlineUsersData(); - } - - function removeInactive() { - $sql = 'SELECT - userID, - userName, - channel - FROM - '.$this->getDataBaseTable('online').' - WHERE - NOW() > DATE_ADD(dateTime, interval '.$this->getConfig('inactiveTimeout').' MINUTE);'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - if($result->numRows() > 0) { - $condition = ''; - while($row = $result->fetch()) { - if(!empty($condition)) - $condition .= ' OR '; - // Add userID to condition for removal: - $condition .= 'userID='.$this->db->makeSafe($row['userID']); - - // Update the socket server authentication for the kicked user: - if($this->getConfig('socketServerEnabled')) { - $this->updateSocketAuthentication($row['userID']); - } - - $this->removeUserFromOnlineUsersData($row['userID']); - - // Insert logout timeout message: - $text = '/logout '.$row['userName'].' Timeout'; - $this->insertChatBotMessage( - $row['channel'], - $text, - null, - 1 - ); - } - - $result->free(); - - $sql = 'DELETE FROM - '.$this->getDataBaseTable('online').' - WHERE - '.$condition.';'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - } - } - - function updateOnlineStatus() { - // Update online status every 50 seconds (this allows update requests to be in time): - if(!$this->getStatusUpdateTimeStamp() || ((time() - $this->getStatusUpdateTimeStamp()) > 50)) { - $this->updateOnlineList(); - $this->setStatusUpdateTimeStamp(time()); - } - } - - function checkAndRemoveInactive() { - // Remove inactive users every inactiveCheckInterval: - if(!$this->getInactiveCheckTimeStamp() || ((time() - $this->getInactiveCheckTimeStamp()) > $this->getConfig('inactiveCheckInterval')*60)) { - $this->removeInactive(); - $this->setInactiveCheckTimeStamp(time()); - } - } - - function sendXMLMessages() { - $httpHeader = new AJAXChatHTTPHeader('UTF-8', 'text/xml'); - - // Send HTTP header: - $httpHeader->send(); - - // Output XML messages: - echo $this->getXMLMessages(); - } - - function getXMLMessages() { - switch($this->getView()) { - case 'chat': - return $this->getChatViewXMLMessages(); - case 'teaser': - return $this->getTeaserViewXMLMessages(); - case 'logs': - return $this->getLogsViewXMLMessages(); - default: - return $this->getLogoutXMLMessage(); - } - } - - function getMessageCondition() { - $condition = 'id > '.$this->db->makeSafe($this->getRequestVar('lastID')).' - AND ( - channel = '.$this->db->makeSafe($this->getChannel()).' - OR - channel = '.$this->db->makeSafe($this->getPrivateMessageID()).' - ) - AND - '; - if($this->getConfig('requestMessagesPriorChannelEnter') || - ($this->getConfig('requestMessagesPriorChannelEnterList') && in_array($this->getChannel(), $this->getConfig('requestMessagesPriorChannelEnterList')))) { - $condition .= 'NOW() < DATE_ADD(dateTime, interval '.$this->getConfig('requestMessagesTimeDiff').' HOUR)'; - } else { - $condition .= 'dateTime >= FROM_UNIXTIME(' . $this->getChannelEnterTimeStamp() . ')'; - } - return $condition; - } - - function getMessageFilter() { - $filterChannelMessages = ''; - if(!$this->getConfig('showChannelMessages') || $this->getRequestVar('shoutbox')) { - $filterChannelMessages = ' AND NOT ( - text LIKE (\'/login%\') - OR - text LIKE (\'/logout%\') - OR - text LIKE (\'/channelEnter%\') - OR - text LIKE (\'/channelLeave%\') - OR - text LIKE (\'/kick%\') - )'; - } - return $filterChannelMessages; - } - - function getInfoMessagesXML() { - $xml = ''; - // Go through the info messages: - foreach($this->getInfoMessages() as $type=>$infoArray) { - foreach($infoArray as $info) { - $xml .= ''; - $xml .= 'encodeSpecialChars($info).']]>'; - $xml .= ''; - } - } - $xml .= ''; - return $xml; - } - - function getChatViewOnlineUsersXML($channelIDs) { - // Get the online users for the given channels: - $onlineUsersData = $this->getOnlineUsersData($channelIDs); - $xml = ''; - foreach($onlineUsersData as $onlineUserData) { - $xml .= 'encodeSpecialChars($onlineUserData['userName']).']]>'; - $xml .= ''; - } - $xml .= ''; - return $xml; - } - - function getLogoutXMLMessage() { - $xml = ''; - $xml .= ''; - $xml .= ''; - $xml .= ''; - $xml .= 'encodeSpecialChars($this->getConfig('logoutData')).']]>'; - $xml .= ''; - $xml .= ''; - $xml .= ''; - return $xml; - } - - function getChatViewMessageXML( - $messageID, - $timeStamp, - $userID, - $userName, - $userRole, - $channelID, - $text - ) { - $message = 'encodeSpecialChars($userName).']]>'; - $message .= 'encodeSpecialChars($text).']]>'; - $message .= ''; - return $message; - } - - function getChatViewMessagesXML() { - // Get the last messages in descending order (this optimises the LIMIT usage): - $sql = 'SELECT - id, - userID, - userName, - userRole, - channel AS channelID, - UNIX_TIMESTAMP(dateTime) AS timeStamp, - text - FROM - '.$this->getDataBaseTable('messages').' - WHERE - '.$this->getMessageCondition().' - '.$this->getMessageFilter().' - ORDER BY - id - DESC - LIMIT '.$this->getConfig('requestMessagesLimit').';'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - $messages = ''; - - // Add the messages in reverse order so it is ascending again: - while($row = $result->fetch()) { - $message = $this->getChatViewMessageXML( - $row['id'], - $row['timeStamp'], - $row['userID'], - $row['userName'], - $row['userRole'], - $row['channelID'], - $row['text'] - ); - $messages = $message.$messages; - } - $result->free(); - - $messages = ''.$messages.''; - return $messages; - } - - function getChatViewXMLMessages() { - $xml = ''; - $xml .= ''; - $xml .= $this->getInfoMessagesXML(); - $xml .= $this->getChatViewOnlineUsersXML(array($this->getChannel())); - $xml .= $this->getChatViewMessagesXML(); - $xml .= ''; - return $xml; - } - - function getTeaserMessageCondition() { - $channelID = $this->getValidRequestChannelID(); - $condition = 'channel = '.$this->db->makeSafe($channelID).' - AND - '; - if($this->getConfig('requestMessagesPriorChannelEnter') || - ($this->getConfig('requestMessagesPriorChannelEnterList') && in_array($channelID, $this->getConfig('requestMessagesPriorChannelEnterList')))) { - $condition .= 'NOW() < DATE_ADD(dateTime, interval '.$this->getConfig('requestMessagesTimeDiff').' HOUR)'; - } else { - // Teaser content may not be shown for this channel: - $condition .= '0 = 1'; - } - return $condition; - } - - function getTeaserViewMessagesXML() { - // Get the last messages in descending order (this optimises the LIMIT usage): - $sql = 'SELECT - id, - userID, - userName, - userRole, - channel AS channelID, - UNIX_TIMESTAMP(dateTime) AS timeStamp, - text - FROM - '.$this->getDataBaseTable('messages').' - WHERE - '.$this->getTeaserMessageCondition().' - '.$this->getMessageFilter().' - ORDER BY - id - DESC - LIMIT '.$this->getConfig('requestMessagesLimit').';'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - $messages = ''; - - // Add the messages in reverse order so it is ascending again: - while($row = $result->fetch()) { - $message = ''; - $message .= 'encodeSpecialChars($row['userName']).']]>'; - $message .= 'encodeSpecialChars($row['text']).']]>'; - $message .= ''; - $messages = $message.$messages; - } - $result->free(); - - $messages = ''.$messages.''; - return $messages; - } - - function getTeaserViewXMLMessages() { - $xml = ''; - $xml .= ''; - $xml .= $this->getInfoMessagesXML(); - $xml .= $this->getTeaserViewMessagesXML(); - $xml .= ''; - return $xml; - } - - function getLogsViewCondition() { - $condition = 'id > '.$this->db->makeSafe($this->getRequestVar('lastID')); - - // Check the channel condition: - switch($this->getRequestVar('channelID')) { - case '-3': - // Just display messages from all accessible channels - if($this->getUserRole() != AJAX_CHAT_ADMIN) { - $condition .= ' AND (channel = '.$this->db->makeSafe($this->getPrivateMessageID()); - $condition .= ' OR channel = '.$this->db->makeSafe($this->getPrivateChannelID()); - foreach($this->getChannels() as $channel) { - if($this->getConfig('logsUserAccessChannelList') && !in_array($channel, $this->getConfig('logsUserAccessChannelList'))) { - continue; - } - $condition .= ' OR channel = '.$this->db->makeSafe($channel); - } - $condition .= ')'; - } - break; - case '-2': - if($this->getUserRole() != AJAX_CHAT_ADMIN) { - $condition .= ' AND channel = '.($this->getPrivateMessageID()); - } else { - $condition .= ' AND channel > '.($this->getConfig('privateMessageDiff')-1); - } - break; - case '-1': - if($this->getUserRole() != AJAX_CHAT_ADMIN) { - $condition .= ' AND channel = '.($this->getPrivateChannelID()); - } else { - $condition .= ' AND (channel > '.($this->getConfig('privateChannelDiff')-1).' AND channel < '.($this->getConfig('privateMessageDiff')).')'; - } - break; - default: - if(($this->getUserRole() == AJAX_CHAT_ADMIN || !$this->getConfig('logsUserAccessChannelList') || in_array($this->getRequestVar('channelID'), $this->getConfig('logsUserAccessChannelList'))) - && $this->validateChannel($this->getRequestVar('channelID'))) { - $condition .= ' AND channel = '.$this->db->makeSafe($this->getRequestVar('channelID')); - } else { - // No valid channel: - $condition .= ' AND 0 = 1'; - } - } - - // Check the period condition: - $hour = ($this->getRequestVar('hour') === null || $this->getRequestVar('hour') > 23 || $this->getRequestVar('hour') < 0) ? null : $this->getRequestVar('hour'); - $day = ($this->getRequestVar('day') === null || $this->getRequestVar('day') > 31 || $this->getRequestVar('day') < 1) ? null : $this->getRequestVar('day'); - $month = ($this->getRequestVar('month') === null || $this->getRequestVar('month') > 12 || $this->getRequestVar('month') < 1) ? null : $this->getRequestVar('month'); - $year = ($this->getRequestVar('year') === null || $this->getRequestVar('year') > date('Y') || $this->getRequestVar('year') < $this->getConfig('logsFirstYear')) ? null : $this->getRequestVar('year'); - - // If a time (hour) is given but no date (year, month, day), use the current date: - if($hour !== null) { - if($day === null) - $day = date('j'); - if($month === null) - $month = date('n'); - if($year === null) - $year = date('Y'); - } - - if($year === null) { - // No year given, so no period condition - } else if($month === null) { - // Define the given year as period: - $periodStart = mktime(0, 0, 0, 1, 1, $year); - // The last day in a month can be expressed by using 0 for the day of the next month: - $periodEnd = mktime(23, 59, 59, 13, 0, $year); - } else if($day === null) { - // Define the given month as period: - $periodStart = mktime(0, 0, 0, $month, 1, $year); - // The last day in a month can be expressed by using 0 for the day of the next month: - $periodEnd = mktime(23, 59, 59, $month+1, 0, $year); - } else if($hour === null){ - // Define the given day as period: - $periodStart = mktime(0, 0, 0, $month, $day, $year); - $periodEnd = mktime(23, 59, 59, $month, $day, $year); - } else { - // Define the given hour as period: - $periodStart = mktime($hour, 0, 0, $month, $day, $year); - $periodEnd = mktime($hour, 59, 59, $month, $day, $year); - } - - if(isset($periodStart)) - $condition .= ' AND dateTime > \''.date('Y-m-d H:i:s', $periodStart).'\' AND dateTime <= \''.date('Y-m-d H:i:s', $periodEnd).'\''; - - // Check the search condition: - if($this->getRequestVar('search')) { - if(($this->getUserRole() == AJAX_CHAT_ADMIN || $this->getUserRole() == AJAX_CHAT_MODERATOR) && strpos($this->getRequestVar('search'), 'ip=') === 0) { - // Search for messages with the given IP: - $ip = substr($this->getRequestVar('search'), 3); - $condition .= ' AND (ip = '.$this->db->makeSafe($this->ipToStorageFormat($ip)).')'; - } else if(strpos($this->getRequestVar('search'), 'userID=') === 0) { - // Search for messages with the given userID: - $userID = substr($this->getRequestVar('search'), 7); - $condition .= ' AND (userID = '.$this->db->makeSafe($userID).')'; - } else { - // Use the search value as regular expression on message text and username: - $condition .= ' AND (userName REGEXP '.$this->db->makeSafe($this->getRequestVar('search')).' OR text REGEXP '.$this->db->makeSafe($this->getRequestVar('search')).')'; - } - } - - // If no period or search condition is given, just monitor the last messages on the given channel: - if(!isset($periodStart) && !$this->getRequestVar('search')) { - $condition .= ' AND NOW() < DATE_ADD(dateTime, interval '.$this->getConfig('logsRequestMessagesTimeDiff').' HOUR)'; - } - - return $condition; - } - - function getLogsViewMessagesXML() { - $sql = 'SELECT - id, - userID, - userName, - userRole, - channel AS channelID, - UNIX_TIMESTAMP(dateTime) AS timeStamp, - ip, - text - FROM - '.$this->getDataBaseTable('messages').' - WHERE - '.$this->getLogsViewCondition().' - ORDER BY - id - LIMIT '.$this->getConfig('logsRequestMessagesLimit').';'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - $xml = ''; - while($row = $result->fetch()) { - $xml .= 'getUserRole() == AJAX_CHAT_ADMIN || $this->getUserRole() == AJAX_CHAT_MODERATOR) { - $xml .= ' ip="'.$this->ipFromStorageFormat($row['ip']).'"'; - } - $xml .= '>'; - $xml .= 'encodeSpecialChars($row['userName']).']]>'; - $xml .= 'encodeSpecialChars($row['text']).']]>'; - $xml .= ''; - } - $result->free(); - - $xml .= ''; - - return $xml; - } - - function getLogsViewXMLMessages() { - $xml = ''; - $xml .= ''; - $xml .= $this->getInfoMessagesXML(); - $xml .= $this->getLogsViewMessagesXML(); - $xml .= ''; - return $xml; - } - - function purgeLogs() { - $sql = 'DELETE FROM - '.$this->getDataBaseTable('messages').' - WHERE - dateTime < DATE_SUB(NOW(), interval '.$this->getConfig('logsPurgeTimeDiff').' DAY);'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - } - - function getInfoMessages($type=null) { - if(!isset($this->_infoMessages)) { - $this->_infoMessages = array(); - } - if($type) { - if(!isset($this->_infoMessages[$type])) { - $this->_infoMessages[$type] = array(); - } - return $this->_infoMessages[$type]; - } else { - return $this->_infoMessages; - } - } - - function addInfoMessage($info, $type='error') { - if(!isset($this->_infoMessages)) { - $this->_infoMessages = array(); - } - if(!isset($this->_infoMessages[$type])) { - $this->_infoMessages[$type] = array(); - } - if(!in_array($info, $this->_infoMessages[$type])) { - array_push($this->_infoMessages[$type], $info); - } - } - - function getRequestVars() { - return $this->_requestVars; - } - - function getRequestVar($key) { - if($this->_requestVars && isset($this->_requestVars[$key])) { - return $this->_requestVars[$key]; - } - return null; - } - - function setRequestVar($key, $value) { - if(!$this->_requestVars) { - $this->_requestVars = array(); - } - $this->_requestVars[$key] = $value; - } - - function getOnlineUsersData($channelIDs=null, $key=null, $value=null) { - if($this->_onlineUsersData === null) { - $this->_onlineUsersData = array(); - - $sql = 'SELECT - userID, - userName, - userRole, - channel, - UNIX_TIMESTAMP(dateTime) AS timeStamp, - ip - FROM - '.$this->getDataBaseTable('online').' - ORDER BY - userName;'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - while($row = $result->fetch()) { - $row['ip'] = $this->ipFromStorageFormat($row['ip']); - array_push($this->_onlineUsersData, $row); - } - - $result->free(); - } - - if($channelIDs || $key) { - $onlineUsersData = array(); - foreach($this->_onlineUsersData as $userData) { - if($channelIDs && !in_array($userData['channel'], $channelIDs)) { - continue; - } - if($key) { - if(!isset($userData[$key])) { - return $onlineUsersData; - } - if($value !== null) { - if($userData[$key] == $value) { - array_push($onlineUsersData, $userData); - } else { - continue; - } - } else { - array_push($onlineUsersData, $userData[$key]); - } - } else { - array_push($onlineUsersData, $userData); - } - } - return $onlineUsersData; - } - - return $this->_onlineUsersData; - } - - function removeUserFromOnlineUsersData($userID=null) { - if(!$this->_onlineUsersData) { - return; - } - $userID = ($userID === null) ? $this->getUserID() : $userID; - for($i=0; $i_onlineUsersData); $i++) { - if($this->_onlineUsersData[$i]['userID'] == $userID) { - array_splice($this->_onlineUsersData, $i, 1); - break; - } - } - } - - function resetOnlineUsersData() { - $this->_onlineUsersData = null; - } - - function getOnlineUsers($channelIDs=null) { - return $this->getOnlineUsersData($channelIDs, 'userName'); - } - - function getOnlineUserIDs($channelIDs=null) { - return $this->getOnlineUsersData($channelIDs, 'userID'); - } - - function startSession() { - if(!session_id()) { - // Set the session name: - session_name($this->getConfig('sessionName')); - - // Set session cookie parameters: - session_set_cookie_params( - 0, // The session is destroyed on logout anyway, so no use to set this - $this->getConfig('sessionCookiePath'), - $this->getConfig('sessionCookieDomain'), - $this->getConfig('sessionCookieSecure') - ); - - // Start the session: - session_start(); - - // We started a new session: - $this->_sessionNew = true; - } - } - - function destroySession() { - if($this->_sessionNew) { - // Delete all session variables: - $_SESSION = array(); - - // Delete the session cookie: - if (isset($_COOKIE[session_name()])) { - setcookie( - session_name(), - '', - time()-42000, - $this->getConfig('sessionCookiePath'), - $this->getConfig('sessionCookieDomain'), - $this->getConfig('sessionCookieSecure') - ); - } - - // Destroy the session: - session_destroy(); - } else { - // Unset all session variables starting with the sessionKeyPrefix: - foreach($_SESSION as $key=>$value) { - if(strpos($key, $this->getConfig('sessionKeyPrefix')) === 0) { - unset($_SESSION[$key]); - } - } - } - } - - function regenerateSessionID() { - if($this->_sessionNew) { - // Regenerate session id: - @session_regenerate_id(true); - } - } - - function getSessionVar($key, $prefix=null) { - if($prefix === null) - $prefix = $this->getConfig('sessionKeyPrefix'); - - // Return the session value if existing: - if(isset($_SESSION[$prefix.$key])) - return $_SESSION[$prefix.$key]; - else - return null; - } - - function setSessionVar($key, $value, $prefix=null) { - if($prefix === null) - $prefix = $this->getConfig('sessionKeyPrefix'); - - // Set the session value: - $_SESSION[$prefix.$key] = $value; - } - - function getSessionIP() { - return $this->getSessionVar('IP'); - } - - function setSessionIP($ip) { - $this->setSessionVar('IP', $ip); - } - - function getQueryUserName() { - return $this->getSessionVar('QueryUserName'); - } - - function setQueryUserName($userName) { - $this->setSessionVar('QueryUserName', $userName); - } - - function getInvitations() { - if($this->_invitations === null) { - $this->_invitations = array(); - - $sql = 'SELECT - channel - FROM - '.$this->getDataBaseTable('invitations').' - WHERE - userID='.$this->db->makeSafe($this->getUserID()).' - AND - DATE_SUB(NOW(), interval 1 DAY) < dateTime;'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - - while($row = $result->fetch()) { - array_push($this->_invitations, $row['channel']); - } - - $result->free(); - } - return $this->_invitations; - } - - function removeExpiredInvitations() { - $sql = 'DELETE FROM - '.$this->getDataBaseTable('invitations').' - WHERE - DATE_SUB(NOW(), interval 1 DAY) > dateTime;'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - } - - function addInvitation($userID, $channelID=null) { - $this->removeExpiredInvitations(); - - $channelID = ($channelID === null) ? $this->getChannel() : $channelID; - - $sql = 'INSERT INTO '.$this->getDataBaseTable('invitations').'( - userID, - channel, - dateTime - ) - VALUES ( - '.$this->db->makeSafe($userID).', - '.$this->db->makeSafe($channelID).', - NOW() - );'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - } - - function removeInvitation($userID, $channelID=null) { - $channelID = ($channelID === null) ? $this->getChannel() : $channelID; - - $sql = 'DELETE FROM - '.$this->getDataBaseTable('invitations').' - WHERE - userID='.$this->db->makeSafe($userID).' - AND - channel='.$this->db->makeSafe($channelID).';'; - - // Create a new SQL query: - $result = $this->db->sqlQuery($sql); - - // Stop if an error occurs: - if($result->error()) { - echo $result->getError(); - die(); - } - } - - function getUserID() { - return $this->getSessionVar('UserID'); - } - - function setUserID($id) { - $this->setSessionVar('UserID', $id); - } - - function getUserName() { - return $this->getSessionVar('UserName'); - } - - function setUserName($name) { - $this->setSessionVar('UserName', $name); - } - - function getLoginUserName() { - return $this->getSessionVar('LoginUserName'); - } - - function setLoginUserName($name) { - $this->setSessionVar('LoginUserName', $name); - } - - function getUserRole() { - $userRole = $this->getSessionVar('UserRole'); - if($userRole === null) - return AJAX_CHAT_GUEST; - return $userRole; - } - - function setUserRole($role) { - $this->setSessionVar('UserRole', $role); - } - - function getChannel() { - return $this->getSessionVar('Channel'); - } - - function setChannel($channel) { - $this->setSessionVar('Channel', $channel); - - // Save the channel enter timestamp: - $this->setChannelEnterTimeStamp(time()); - - // Update the channel authentication for the socket server: - if($this->getConfig('socketServerEnabled')) { - $this->updateSocketAuthentication( - $this->getUserID(), - $this->getSocketRegistrationID(), - array($channel,$this->getPrivateMessageID()) - ); - } - - // Reset the logs view socket authentication session var: - if($this->getSessionVar('logsViewSocketAuthenticated')) { - $this->setSessionVar('logsViewSocketAuthenticated', false); - } - } - - function isLoggedIn() { - return (bool)$this->getSessionVar('LoggedIn'); - } - - function setLoggedIn($bool) { - $this->setSessionVar('LoggedIn', $bool); - } - - function getLoginTimeStamp() { - return $this->getSessionVar('LoginTimeStamp'); - } - - function setLoginTimeStamp($time) { - $this->setSessionVar('LoginTimeStamp', $time); - } - - function getChannelEnterTimeStamp() { - return $this->getSessionVar('ChannelEnterTimeStamp'); - } - - function setChannelEnterTimeStamp($time) { - $this->setSessionVar('ChannelEnterTimeStamp', $time); - } - - function getStatusUpdateTimeStamp() { - return $this->getSessionVar('StatusUpdateTimeStamp'); - } - - function setStatusUpdateTimeStamp($time) { - $this->setSessionVar('StatusUpdateTimeStamp', $time); - } - - function getInactiveCheckTimeStamp() { - return $this->getSessionVar('InactiveCheckTimeStamp'); - } - - function setInactiveCheckTimeStamp($time) { - $this->setSessionVar('InactiveCheckTimeStamp', $time); - } - - function getInsertedMessagesRate() { - return $this->getSessionVar('InsertedMessagesRate'); - } - - function setInsertedMessagesRate($rate) { - $this->setSessionVar('InsertedMessagesRate', $rate); - } - - function getInsertedMessagesRateTimeStamp() { - return $this->getSessionVar('InsertedMessagesRateTimeStamp'); - } - - function setInsertedMessagesRateTimeStamp($time) { - $this->setSessionVar('InsertedMessagesRateTimeStamp', $time); - } - - function getLangCode() { - // Get the langCode from request or cookie: - $langCodeCookie = isset($_COOKIE[$this->getConfig('sessionName').'_lang']) ? $_COOKIE[$this->getConfig('sessionName').'_lang'] : null; - $langCode = $this->getRequestVar('lang') ? $this->getRequestVar('lang') : $langCodeCookie; - // Check if the langCode is valid: - if(!in_array($langCode, $this->getConfig('langAvailable'))) { - // Determine the user language: - $language = new AJAXChatLanguage($this->getConfig('langAvailable'), $this->getConfig('langDefault')); - $langCode = $language->getLangCode(); - } - return $langCode; - } - - function setLangCodeCookie() { - setcookie( - $this->getConfig('sessionName').'_lang', - $this->getLangCode(), - time()+60*60*24*$this->getConfig('sessionCookieLifeTime'), - $this->getConfig('sessionCookiePath'), - $this->getConfig('sessionCookieDomain'), - $this->getConfig('sessionCookieSecure') - ); - } - - function removeUnsafeCharacters($str) { - // Remove NO-WS-CTL, non-whitespace control characters (RFC 2822), decimal 1–8, 11–12, 14–31, and 127: - return AJAXChatEncoding::removeUnsafeCharacters($str); - } - - function subString($str, $start=0, $length=null, $encoding='UTF-8') { - return AJAXChatString::subString($str, $start, $length, $encoding); - } - - function stringLength($str, $encoding='UTF-8') { - return AJAXChatString::stringLength($str, $encoding); - } - - function trimMessageText($text) { - return $this->trimString($text, 'UTF-8', $this->getConfig('messageTextMaxLength')); - } - - function trimUserName($userName) { - return $this->trimString($userName, null, $this->getConfig('userNameMaxLength'), true, true); - } - - function trimChannelName($channelName) { - return $this->trimString($channelName, null, null, true, true); - } - - function trimString($str, $sourceEncoding=null, $maxLength=null, $replaceWhitespace=false, $decodeEntities=false, $htmlEntitiesMap=null) { - // Make sure the string contains valid unicode: - $str = $this->convertToUnicode($str, $sourceEncoding); - - // Make sure the string contains no unsafe characters: - $str = $this->removeUnsafeCharacters($str); - - // Strip whitespace from the beginning and end of the string: - $str = trim($str); - - if($replaceWhitespace) { - // Replace any whitespace in the userName with the underscore "_": - $str = preg_replace('/\s/u', '_', $str); - } - - if($decodeEntities) { - // Decode entities: - $str = $this->decodeEntities($str, 'UTF-8', $htmlEntitiesMap); - } - - if($maxLength) { - // Cut the string to the allowed length: - $str = $this->subString($str, 0, $maxLength); - } - - return $str; - } - - function convertToUnicode($str, $sourceEncoding=null) { - if($sourceEncoding === null) { - $sourceEncoding = $this->getConfig('sourceEncoding'); - } - return $this->convertEncoding($str, $sourceEncoding, 'UTF-8'); - } - - function convertFromUnicode($str, $contentEncoding=null) { - if($contentEncoding === null) { - $contentEncoding = $this->getConfig('contentEncoding'); - } - return $this->convertEncoding($str, 'UTF-8', $contentEncoding); - } - - function convertEncoding($str, $charsetFrom, $charsetTo) { - return AJAXChatEncoding::convertEncoding($str, $charsetFrom, $charsetTo); - } - - function encodeEntities($str, $encoding='UTF-8', $convmap=null) { - return AJAXChatEncoding::encodeEntities($str, $encoding, $convmap); - } - - function decodeEntities($str, $encoding='UTF-8', $htmlEntitiesMap=null) { - return AJAXChatEncoding::decodeEntities($str, $encoding, $htmlEntitiesMap); - } - - function htmlEncode($str) { - return AJAXChatEncoding::htmlEncode($str, $this->getConfig('contentEncoding')); - } - - function encodeSpecialChars($str) { - return AJAXChatEncoding::encodeSpecialChars($str); - } - - function decodeSpecialChars($str) { - return AJAXChatEncoding::decodeSpecialChars($str); - } - - function ipToStorageFormat($ip) { - if(function_exists('inet_pton')) { - // ipv4 & ipv6: - return @inet_pton($ip); - } - // Only ipv4: - return @pack('N',@ip2long($ip)); - } - - function ipFromStorageFormat($ip) { - if(function_exists('inet_ntop')) { - // ipv4 & ipv6: - return @inet_ntop($ip); - } - // Only ipv4: - $unpacked = @unpack('Nlong',$ip); - if(isset($unpacked['long'])) { - return @long2ip($unpacked['long']); - } - return null; - } - - function getConfig($key, $subkey=null) { - if($subkey) - return $this->_config[$key][$subkey]; - else - return $this->_config[$key]; - } - - function setConfig($key, $subkey, $value) { - if($subkey) { - if(!isset($this->_config[$key])) { - $this->_config[$key] = array(); - } - $this->_config[$key][$subkey] = $value; - } else { - $this->_config[$key] = $value; - } - } - - function getLang($key=null) { - if(!$this->_lang) { - // Include the language file: - $lang = null; - require(AJAX_CHAT_PATH.'lib/lang/'.$this->getLangCode().'.php'); - $this->_lang = &$lang; - } - if($key === null) - return $this->_lang; - if(isset($this->_lang[$key])) - return $this->_lang[$key]; - return null; - } - - function getChatURL() { - if(defined('AJAX_CHAT_URL')) { - return AJAX_CHAT_URL; - } - - return - (isset($_SERVER['HTTPS']) ? 'https://' : 'http://'). - (isset($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'].'@' : ''). - (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME']. - (isset($_SERVER['HTTPS']) && $_SERVER['SERVER_PORT'] == 443 || $_SERVER['SERVER_PORT'] == 80 ? '' : ':'.$_SERVER['SERVER_PORT']))). - substr($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/')+1); - } - - function getIDFromName($userName) { - $userDataArray = $this->getOnlineUsersData(null,'userName',$userName); - if($userDataArray && isset($userDataArray[0])) { - return $userDataArray[0]['userID']; - } - return null; - } - - function getNameFromID($userID) { - $userDataArray = $this->getOnlineUsersData(null,'userID',$userID); - if($userDataArray && isset($userDataArray[0])) { - return $userDataArray[0]['userName']; - } - return null; - } - - function getChannelFromID($userID) { - $userDataArray = $this->getOnlineUsersData(null,'userID',$userID); - if($userDataArray && isset($userDataArray[0])) { - return $userDataArray[0]['channel']; - } - return null; - } - - function getIPFromID($userID) { - $userDataArray = $this->getOnlineUsersData(null,'userID',$userID); - if($userDataArray && isset($userDataArray[0])) { - return $userDataArray[0]['ip']; - } - return null; - } - - function getRoleFromID($userID) { - $userDataArray = $this->getOnlineUsersData(null,'userID',$userID); - if($userDataArray && isset($userDataArray[0])) { - return $userDataArray[0]['userRole']; - } - return null; - } - - function getChannelNames() { - return array_flip($this->getChannels()); - } - - function getChannelIDFromChannelName($channelName) { - if(!$channelName) - return null; - $channels = $this->getAllChannels(); - if(array_key_exists($channelName,$channels)) { - return $channels[$channelName]; - } - $channelID = null; - // Check if the requested channel is the own private channel: - if($channelName == $this->getPrivateChannelName()) { - return $this->getPrivateChannelID(); - } - // Try to retrieve a private room ID: - $strlenChannelName = $this->stringLength($channelName); - $strlenPrefix = $this->stringLength($this->getConfig('privateChannelPrefix')); - $strlenSuffix = $this->stringLength($this->getConfig('privateChannelSuffix')); - if($this->subString($channelName,0,$strlenPrefix) == $this->getConfig('privateChannelPrefix') - && $this->subString($channelName,$strlenChannelName-$strlenSuffix) == $this->getConfig('privateChannelSuffix')) { - $userName = $this->subString( - $channelName, - $strlenPrefix, - $strlenChannelName-($strlenPrefix+$strlenSuffix) - ); - $userID = $this->getIDFromName($userName); - if($userID !== null) { - $channelID = $this->getPrivateChannelID($userID); - } - } - return $channelID; - } - - function getChannelNameFromChannelID($channelID) { - foreach($this->getAllChannels() as $key=>$value) { - if($value == $channelID) { - return $key; - } - } - // Try to retrieve a private room name: - if($channelID == $this->getPrivateChannelID()) { - return $this->getPrivateChannelName(); - } - $userName = $this->getNameFromID($channelID-$this->getConfig('privateChannelDiff')); - if($userName === null) { - return null; - } - return $this->getPrivateChannelName($userName); - } - - function getChannelName() { - return $this->getChannelNameFromChannelID($this->getChannel()); - } - - function getPrivateChannelName($userName=null) { - if($userName === null) { - $userName = $this->getUserName(); - } - return $this->getConfig('privateChannelPrefix').$userName.$this->getConfig('privateChannelSuffix'); - } - - function getPrivateChannelID($userID=null) { - if($userID === null) { - $userID = $this->getUserID(); - } - return $userID . '.' . $this->getConfig('privateChannelDiff'); - } - - function getPrivateMessageID($userID=null) { - if($userID === null) { - $userID = $this->getUserID(); - } - return $userID . '.' . $this->getConfig('privateMessageDiff'); - } - - function isAllowedToSendPrivateMessage() { - if($this->getConfig('allowPrivateMessages') || $this->getUserRole() == AJAX_CHAT_ADMIN) { - return true; - } - return false; - } - - function isAllowedToCreatePrivateChannel() { - if($this->getConfig('allowPrivateChannels')) { - switch($this->getUserRole()) { - case AJAX_CHAT_USER: - return true; - case AJAX_CHAT_MODERATOR: - return true; - case AJAX_CHAT_ADMIN: - return true; - default: - return false; - } - } - return false; - } - - function isAllowedToListHiddenUsers() { - // Hidden users are users within private or restricted channels: - switch($this->getUserRole()) { - case AJAX_CHAT_MODERATOR: - return true; - case AJAX_CHAT_ADMIN: - return true; - default: - return false; - } - } - - function isUserOnline($userID=null) { - $userID = ($userID === null) ? $this->getUserID() : $userID; - $userDataArray = $this->getOnlineUsersData(null,'userID',$userID); - if($userDataArray && count($userDataArray) > 0) { - return true; - } - return false; - } - - function isUserNameInUse($userName=null) { - $userName = ($userName === null) ? $this->getUserName() : $userName; - $userDataArray = $this->getOnlineUsersData(null,'userName',$userName); - if($userDataArray && count($userDataArray) > 0) { - return true; - } - return false; - } - - function isUserBanned($userName, $userID=null, $ip=null) { - if($userID !== null) { - $bannedUserDataArray = $this->getBannedUsersData('userID',$userID); - if($bannedUserDataArray && isset($bannedUserDataArray[0])) { - return true; - } - } - if($ip !== null) { - $bannedUserDataArray = $this->getBannedUsersData('ip',$ip); - if($bannedUserDataArray && isset($bannedUserDataArray[0])) { - return true; - } - } - $bannedUserDataArray = $this->getBannedUsersData('userName',$userName); - if($bannedUserDataArray && isset($bannedUserDataArray[0])) { - return true; - } - return false; - } - - function isMaxUsersLoggedIn() { - if(count($this->getOnlineUsersData()) >= $this->getConfig('maxUsersLoggedIn')) { - return true; - } - return false; - } - - function validateChannel($channelID) { - if($channelID === null) { - return false; - } - // Return true for normal channels the user has acces to: - if(in_array($channelID, $this->getChannels())) { - return true; - } - // Return true if the user is allowed to join his own private channel: - if($channelID == $this->getPrivateChannelID() && $this->isAllowedToCreatePrivateChannel()) { - return true; - } - // Return true if the user has been invited to a restricted or private channel: - if(in_array($channelID, $this->getInvitations())) { - return true; - } - // No valid channel, return false: - return false; - } - - function createGuestUserName() { - $maxLength = $this->getConfig('userNameMaxLength') - - $this->stringLength($this->getConfig('guestUserPrefix')) - - $this->stringLength($this->getConfig('guestUserSuffix')); - - // seed with microseconds since last "whole" second: - mt_srand((double)microtime()*1000000); - - // Create a random userName using numbers between 100000 and 999999: - $userName = substr(mt_rand(100000, 999999), 0, $maxLength); - - return $this->getConfig('guestUserPrefix').$userName.$this->getConfig('guestUserSuffix'); - } - - // Guest userIDs must not interfere with existing userIDs and must be lower than privateChannelDiff: - function createGuestUserID() { - // seed with microseconds since last "whole" second: - mt_srand((double)microtime()*1000000); - - return mt_rand($this->getConfig('minGuestUserID'), $this->getConfig('privateChannelDiff')-1); - } - - function getGuestUser() { - if(!$this->getConfig('allowGuestLogins')) - return null; - - if($this->getConfig('allowGuestUserName')) { - $maxLength = $this->getConfig('userNameMaxLength') - - $this->stringLength($this->getConfig('guestUserPrefix')) - - $this->stringLength($this->getConfig('guestUserSuffix')); - - // Trim guest userName: - $userName = $this->trimString($this->getRequestVar('userName'), null, $maxLength, true, true); - - // If given userName is invalid, create one: - if(!$userName) { - $userName = $this->createGuestUserName(); - } else { - // Add the guest users prefix and suffix to the given userName: - $userName = $this->getConfig('guestUserPrefix').$userName.$this->getConfig('guestUserSuffix'); - } - } else { - $userName = $this->createGuestUserName(); - } - - $userData = array(); - $userData['userID'] = $this->createGuestUserID(); - $userData['userName'] = $userName; - $userData['userRole'] = AJAX_CHAT_GUEST; - return $userData; - } - - function getCustomVar($key) { - if(!isset($this->_customVars)) - $this->_customVars = array(); - if(!isset($this->_customVars[$key])) - return null; - return $this->_customVars[$key]; - } - - function setCustomVar($key, $value) { - if(!isset($this->_customVars)) - $this->_customVars = array(); - $this->_customVars[$key] = $value; - } - - // Override to replace custom template tags: - // Return the replacement for the given tag (and given tagContent) - function replaceCustomTemplateTags($tag, $tagContent) { - return null; - } - - // Override to initialize custom configuration settings: - function initCustomConfig() { - } - - // Override to add custom request variables: - // Add values to the request variables array: $this->_requestVars['customVariable'] = null; - function initCustomRequestVars() { - } - - // Override to add custom session code right after the session has been started: - function initCustomSession() { - } - - // Override, to parse custom info requests: - // $infoRequest contains the current info request - // Add info responses using the method addInfoMessage($info, $type) - function parseCustomInfoRequest($infoRequest) { - } - - // Override to replace custom text: - // Return replaced text - // $text contains the whole message - function replaceCustomText(&$text) { - return $text; - } - - // Override to add custom commands: - // Return true if a custom command has been successfully parsed, else false - // $text contains the whole message, $textParts the message split up as words array - function parseCustomCommands($text, $textParts) { - return false; - } - - // Override to perform custom actions on new messages: - // Return true if message may be inserted, else false - // $text contains the whole message - function onNewMessage($text) { - return true; - } - - // Override to perform custom actions on new messages: - // Method to set the style cookie depending on user data - function setStyle() { - } - - // Override: - // Returns true if the userID of the logged in user is identical to the userID of the authentication system - // or the user is authenticated as guest in the chat and the authentication system - function revalidateUserID() { - return true; - } - - // Override: - // Returns an associative array containing userName, userID and userRole - // Returns null if login is invalid - function getValidLoginUserData() { - // Check if we have a valid registered user: - if(false) { - // Here is the place to check user authentication - } else { - // Guest users: - return $this->getGuestUser(); - } - } - - // Override: - // Store the channels the current user has access to - // Make sure channel names don't contain any whitespace - function &getChannels() { - if($this->_channels === null) { - $this->_channels = $this->getAllChannels(); - } - return $this->_channels; - } - - // Override: - // Store all existing channels - // Make sure channel names don't contain any whitespace - function &getAllChannels() { - if($this->_allChannels === null) { - $this->_allChannels = array(); - - // Default channel, public to everyone: - $this->_allChannels[$this->trimChannelName($this->getConfig('defaultChannelName'))] = $this->getConfig('defaultChannelID'); - } - return $this->_allChannels; - } - -} -?> \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/AJAXChatDataBase.php b/library/ajaxchat/chat/lib/class/AJAXChatDataBase.php deleted file mode 100644 index 2143c5aa0..000000000 --- a/library/ajaxchat/chat/lib/class/AJAXChatDataBase.php +++ /dev/null @@ -1,81 +0,0 @@ -_db = new AJAXChatDatabaseMySQLi($dbConnectionConfig); - break; - case 'mysql': - $this->_db = new AJAXChatDatabaseMySQL($dbConnectionConfig); - break; - default: - // Use MySQLi if available, else MySQL (and check the type of a given database connection object): - if(function_exists('mysqli_connect') && (!$dbConnectionConfig['link'] || is_object($dbConnectionConfig['link']))) { - $this->_db = new AJAXChatDatabaseMySQLi($dbConnectionConfig); - } else { - $this->_db = new AJAXChatDatabaseMySQL($dbConnectionConfig); - } - } - } - - // Method to connect to the DataBase server: - function connect(&$dbConnectionConfig) { - return $this->_db->connect($dbConnectionConfig); - } - - // Method to select the DataBase: - function select($dbName) { - return $this->_db->select($dbName); - } - - // Method to determine if an error has occured: - function error() { - return $this->_db->error(); - } - - // Method to return the error report: - function getError() { - return $this->_db->getError(); - } - - // Method to return the connection identifier: - function &getConnectionID() { - return $this->_db->getConnectionID(); - } - - // Method to prevent SQL injections: - function makeSafe($value) { - return $this->_db->makeSafe($value); - } - - // Method to perform SQL queries: - function sqlQuery($sql) { - return $this->_db->sqlQuery($sql); - } - - // Method to retrieve the current DataBase name: - function getName() { - return $this->_db->getName(); - //If your database has hyphens ( - ) in it, try using this instead: - //return '`'.$this->_db->getName().'`'; - } - - // Method to retrieve the last inserted ID: - function getLastInsertedID() { - return $this->_db->getLastInsertedID(); - } - -} -?> \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/AJAXChatEncoding.php b/library/ajaxchat/chat/lib/class/AJAXChatEncoding.php deleted file mode 100644 index 96b2482c7..000000000 --- a/library/ajaxchat/chat/lib/class/AJAXChatEncoding.php +++ /dev/null @@ -1,138 +0,0 @@ -'&', '<'=>'<', '>'=>'>', "'"=>''', '"'=>'"'); - } - return $specialChars; - } - - // Helper function to store Regular expression for NO-WS-CTL as we cannot use static class members in PHP4: - public static function getRegExp_NO_WS_CTL() { - static $regExp_NO_WS_CTL; - if(!$regExp_NO_WS_CTL) { - // Regular expression for NO-WS-CTL, non-whitespace control characters (RFC 2822), decimal 1–8, 11–12, 14–31, and 127: - $regExp_NO_WS_CTL = '/[\x0\x1\x2\x3\x4\x5\x6\x7\x8\xB\xC\xE\xF\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F\x7F]/'; - } - return $regExp_NO_WS_CTL; - } - - public static function convertEncoding($str, $charsetFrom, $charsetTo) { - if(function_exists('mb_convert_encoding')) { - return mb_convert_encoding($str, $charsetTo, $charsetFrom); - } - if(function_exists('iconv')) { - return iconv($charsetFrom, $charsetTo, $str); - } - if(($charsetFrom == 'UTF-8') && ($charsetTo == 'ISO-8859-1')) { - return utf8_decode($str); - } - if(($charsetFrom == 'ISO-8859-1') && ($charsetTo == 'UTF-8')) { - return utf8_encode($str); - } - return $str; - } - - public static function htmlEncode($str, $contentCharset='UTF-8') { - switch($contentCharset) { - case 'UTF-8': - // Encode only special chars (&, <, >, ', ") as entities: - return AJAXChatEncoding::encodeSpecialChars($str); - break; - case 'ISO-8859-1': - case 'ISO-8859-15': - // Encode special chars and all extended characters above ISO-8859-1 charset as entities, then convert to content charset: - return AJAXChatEncoding::convertEncoding(AJAXChatEncoding::encodeEntities($str, 'UTF-8', array( - 0x26, 0x26, 0, 0xFFFF, // & - 0x3C, 0x3C, 0, 0xFFFF, // < - 0x3E, 0x3E, 0, 0xFFFF, // > - 0x27, 0x27, 0, 0xFFFF, // ' - 0x22, 0x22, 0, 0xFFFF, // " - 0x100, 0x2FFFF, 0, 0xFFFF // above ISO-8859-1 - )), 'UTF-8', $contentCharset); - break; - default: - // Encode special chars and all characters above ASCII charset as entities, then convert to content charset: - return AJAXChatEncoding::convertEncoding(AJAXChatEncoding::encodeEntities($str, 'UTF-8', array( - 0x26, 0x26, 0, 0xFFFF, // & - 0x3C, 0x3C, 0, 0xFFFF, // < - 0x3E, 0x3E, 0, 0xFFFF, // > - 0x27, 0x27, 0, 0xFFFF, // ' - 0x22, 0x22, 0, 0xFFFF, // " - 0x80, 0x2FFFF, 0, 0xFFFF // above ASCII - )), 'UTF-8', $contentCharset); - } - } - - public static function encodeSpecialChars($str) { - return strtr($str, AJAXChatEncoding::getSpecialChars()); - } - - public static function decodeSpecialChars($str) { - return strtr($str, array_flip(AJAXChatEncoding::getSpecialChars())); - } - - public static function encodeEntities($str, $encoding='UTF-8', $convmap=null) { - if($convmap && function_exists('mb_encode_numericentity')) { - return mb_encode_numericentity($str, $convmap, $encoding); - } - return htmlentities($str, ENT_QUOTES, $encoding); - } - - public static function decodeEntities($str, $encoding='UTF-8', $htmlEntitiesMap=null) { - // Due to PHP bug #25670, html_entity_decode does not work with UTF-8 for PHP versions < 5: - if(function_exists('html_entity_decode') && version_compare(phpversion(), 5, '>=')) { - // Replace numeric and literal entities: - $str = html_entity_decode($str, ENT_QUOTES, $encoding); - // Replace additional literal HTML entities if an HTML entities map is given: - if($htmlEntitiesMap) { - $str = strtr($str, $htmlEntitiesMap); - } - } else { - // Replace numeric entities: - $str = preg_replace('~&#([0-9]+);~e', 'AJAXChatEncoding::unicodeChar("\\1")', $str); - $str = preg_replace('~&#x([0-9a-f]+);~ei', 'AJAXChatEncoding::unicodeChar(hexdec("\\1"))', $str); - // Replace literal entities: - $htmlEntitiesMap = $htmlEntitiesMap ? $htmlEntitiesMap : array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES)); - $str = strtr($str, $htmlEntitiesMap); - } - return $str; - } - - public static function unicodeChar($c) { - if($c <= 0x7F) { - return chr($c); - } else if($c <= 0x7FF) { - return chr(0xC0 | $c >> 6) . chr(0x80 | $c & 0x3F); - } else if($c <= 0xFFFF) { - return chr(0xE0 | $c >> 12) . chr(0x80 | $c >> 6 & 0x3F) - . chr(0x80 | $c & 0x3F); - } else if($c <= 0x10FFFF) { - return chr(0xF0 | $c >> 18) . chr(0x80 | $c >> 12 & 0x3F) - . chr(0x80 | $c >> 6 & 0x3F) - . chr(0x80 | $c & 0x3F); - } else { - return null; - } - } - - public static function removeUnsafeCharacters($str) { - // Remove NO-WS-CTL, non-whitespace control characters (RFC 2822), decimal 1–8, 11–12, 14–31, and 127: - return preg_replace(AJAXChatEncoding::getRegExp_NO_WS_CTL(), '', $str); - } - -} -?> \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/AJAXChatFileSystem.php b/library/ajaxchat/chat/lib/class/AJAXChatFileSystem.php deleted file mode 100644 index c9626c36a..000000000 --- a/library/ajaxchat/chat/lib/class/AJAXChatFileSystem.php +++ /dev/null @@ -1,22 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/AJAXChatHTTPHeader.php b/library/ajaxchat/chat/lib/class/AJAXChatHTTPHeader.php deleted file mode 100644 index 7340bfcf0..000000000 --- a/library/ajaxchat/chat/lib/class/AJAXChatHTTPHeader.php +++ /dev/null @@ -1,56 +0,0 @@ -_contentType = $contentType.'; charset='.$encoding; - $this->_constant = true; - } else { - if(isset($_SERVER['HTTP_ACCEPT']) && (strpos($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml') !== false)) { - $this->_contentType = 'application/xhtml+xml; charset='.$encoding; - } else { - $this->_contentType = 'text/html; charset='.$encoding; - } - $this->_constant = false; - } - $this->_noCache = $noCache; - } - - // Method to send the HTTP header: - function send() { - // Prevent caching: - if($this->_noCache) { - header('Cache-Control: no-cache, must-revalidate'); - header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); - } - - // Send the content-type-header: - header('Content-Type: '.$this->_contentType); - - // Send vary header if content-type varies (important for proxy-caches): - if(!$this->_constant) { - header('Vary: Accept'); - } - } - - // Method to return the content-type string: - function getContentType() { - // Return the content-type string: - return $this->_contentType; - } - -} -?> \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/AJAXChatLanguage.php b/library/ajaxchat/chat/lib/class/AJAXChatLanguage.php deleted file mode 100644 index b19724710..000000000 --- a/library/ajaxchat/chat/lib/class/AJAXChatLanguage.php +++ /dev/null @@ -1,102 +0,0 @@ -_regExpAcceptLangCode = '/^([a-z]{1,8}(?:-[a-z]{1,8})*)(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i'; - $this->_availableLangCodes = $availableLangCodes; - $this->_defaultLangCode = $defaultLangCode; - if($langCode && in_array($langCode, $availableLangCodes)) { - $this->_langCode = $langCode; - } - $this->_strictMode = $strictMode; - } - - // Method to detect the language code from the HTTP_ACCEPT_LANGUAGE header: - function detectLangCode() { - // If HTTP_ACCEPT_LANGUAGE is empty use defaultLangCode: - if(empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { - $this->_langCode = $this->_defaultLangCode; - return; - } - - // Split up the HTTP_ACCEPT_LANGUAGE header: - $acceptedLanguages = preg_split('/,\s*/', $_SERVER['HTTP_ACCEPT_LANGUAGE']); - - $currentLangCode = $this->_defaultLangCode; - $currentLangQuality = 0.0; - - foreach($acceptedLanguages as $acceptedLanguage) { - // Parse the language string: - $match = preg_match($this->_regExpAcceptLangCode, $acceptedLanguage, $matches); - // Check if the syntax is valid: - if(!$match) { - continue; - } - - // Get and split the language code: - $langCodeParts = explode ('-', $matches[1]); - - // Get the language quality given as float value: - if(isset($matches[2])) { - $langQuality = (float)$matches[2]; - } else { - // Missing language quality value is maximum quality: - $langQuality = 1.0; - } - - // Go through it until the language code is empty: - while(count($langCodeParts)) { - // Join the current langCodeParts: - $langCode = strtolower(join('-', $langCodeParts)); - // Check if the langCode is in the available list: - if(in_array($langCode, $this->_availableLangCodes)) { - // Check the quality setting: - if ($langQuality > $currentLangQuality) { - $currentLangCode = $langCode; - $currentLangQuality = $langQuality; - break; - } - } - // If strict mode is set, don't minimalize the language code: - if($this->_strictMode) { - break; - } - // else chop off the right part: - array_pop($langCodeParts); - } - } - - $this->_langCode = $currentLangCode; - } - - function getLangCode() { - if(!$this->_langCode) { - $this->detectLangCode(); - } - return $this->_langCode; - } - - function setLangCode($langCode) { - $this->_langCode = $langCode; - } - - function getLangCodes() { - return $this->_availableLangCodes; - } - -} -?> \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/AJAXChatMySQLDataBase.php b/library/ajaxchat/chat/lib/class/AJAXChatMySQLDataBase.php deleted file mode 100644 index 6dca348d1..000000000 --- a/library/ajaxchat/chat/lib/class/AJAXChatMySQLDataBase.php +++ /dev/null @@ -1,92 +0,0 @@ -_connectionID = $dbConnectionConfig['link']; - $this->_dbName = $dbConnectionConfig['name']; - } - - // Method to connect to the DataBase server: - function connect(&$dbConnectionConfig) { - $this->_connectionID = @mysql_connect( - $dbConnectionConfig['host'], - $dbConnectionConfig['user'], - $dbConnectionConfig['pass'], - true - ); - if(!$this->_connectionID) { - $this->_errno = null; - $this->_error = 'Database connection failed.'; - return false; - } - return true; - } - - // Method to select the DataBase: - function select($dbName) { - if(!@mysql_select_db($dbName, $this->_connectionID)) { - $this->_errno = mysql_errno($this->_connectionID); - $this->_error = mysql_error($this->_connectionID); - return false; - } - $this->_dbName = $dbName; - return true; - } - - // Method to determine if an error has occured: - function error() { - return (bool)$this->_error; - } - - // Method to return the error report: - function getError() { - if($this->error()) { - $str = 'Error-Report: ' .$this->_error."\n"; - $str .= 'Error-Code: '.$this->_errno."\n"; - } else { - $str = 'No errors.'."\n"; - } - return $str; - } - - // Method to return the connection identifier: - function &getConnectionID() { - return $this->_connectionID; - } - - // Method to prevent SQL injections: - function makeSafe($value) { - return "'".mysql_real_escape_string($value, $this->_connectionID)."'"; - } - - // Method to perform SQL queries: - function sqlQuery($sql) { - return new AJAXChatMySQLQuery($sql, $this->_connectionID); - } - - // Method to retrieve the current DataBase name: - function getName() { - return $this->_dbName; - } - - // Method to retrieve the last inserted ID: - function getLastInsertedID() { - return mysql_insert_id($this->_connectionID); - } - -} -?> \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/AJAXChatMySQLQuery.php b/library/ajaxchat/chat/lib/class/AJAXChatMySQLQuery.php deleted file mode 100644 index f2f3fd466..000000000 --- a/library/ajaxchat/chat/lib/class/AJAXChatMySQLQuery.php +++ /dev/null @@ -1,89 +0,0 @@ -_sql = trim($sql); - $this->_connectionID = $connectionID; - if($this->_connectionID) { - $this->_result = mysql_query($this->_sql, $this->_connectionID); - if(!$this->_result) { - $this->_errno = mysql_errno($this->_connectionID); - $this->_error = mysql_error($this->_connectionID); - } - } else { - $this->_result = mysql_query($this->_sql); - if(!$this->_result) { - $this->_errno = mysql_errno(); - $this->_error = mysql_error(); - } - } - } - - // Returns true if an error occured: - function error() { - // Returns true if the Result-ID is valid: - return !(bool)($this->_result); - } - - // Returns an Error-String: - function getError() { - if($this->error()) { - $str = 'Query: ' .$this->_sql ."\n"; - $str .= 'Error-Report: ' .$this->_error."\n"; - $str .= 'Error-Code: '.$this->_errno; - } else { - $str = "No errors."; - } - return $str; - } - - // Returns the content: - function fetch() { - if($this->error()) { - return null; - } else { - return mysql_fetch_assoc($this->_result); - } - } - - // Returns the number of rows (SELECT or SHOW): - function numRows() { - if($this->error()) { - return null; - } else { - return mysql_num_rows($this->_result); - } - } - - // Returns the number of affected rows (INSERT, UPDATE, REPLACE or DELETE): - function affectedRows() { - if($this->error()) { - return null; - } else { - return mysql_affected_rows($this->_connectionID); - } - } - - // Frees the memory: - function free() { - @mysql_free_result($this->_result); - } - -} -?> \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/AJAXChatMySQLiDataBase.php b/library/ajaxchat/chat/lib/class/AJAXChatMySQLiDataBase.php deleted file mode 100644 index 9bc611e2d..000000000 --- a/library/ajaxchat/chat/lib/class/AJAXChatMySQLiDataBase.php +++ /dev/null @@ -1,91 +0,0 @@ -_connectionID = $dbConnectionConfig['link']; - $this->_dbName = $dbConnectionConfig['name']; - } - - // Method to connect to the DataBase server: - function connect(&$dbConnectionConfig) { - @$this->_connectionID = new mysqli( - $dbConnectionConfig['host'], - $dbConnectionConfig['user'], - $dbConnectionConfig['pass'] - ); - if($this->_connectionID->connect_errno) { - $this->_errno = mysqli_connect_errno(); - $this->_error = mysqli_connect_error(); - return false; - } - return true; - } - - // Method to select the DataBase: - function select($dbName) { - if(!$this->_connectionID->select_db($dbName)) { - $this->_errno = $this->_connectionID->errno; - $this->_error = $this->_connectionID->error; - return false; - } - $this->_dbName = $dbName; - return true; - } - - // Method to determine if an error has occured: - function error() { - return (bool)$this->_error; - } - - // Method to return the error report: - function getError() { - if($this->error()) { - $str = 'Error-Report: ' .$this->_error."\n"; - $str .= 'Error-Code: '.$this->_errno."\n"; - } else { - $str = 'No errors.'."\n"; - } - return $str; - } - - // Method to return the connection identifier: - function &getConnectionID() { - return $this->_connectionID; - } - - // Method to prevent SQL injections: - function makeSafe($value) { - return "'".$this->_connectionID->escape_string($value)."'"; - } - - // Method to perform SQL queries: - function sqlQuery($sql) { - return new AJAXChatMySQLiQuery($sql, $this->_connectionID); - } - - // Method to retrieve the current DataBase name: - function getName() { - return $this->_dbName; - } - - // Method to retrieve the last inserted ID: - function getLastInsertedID() { - return $this->_connectionID->insert_id; - } - -} -?> \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/AJAXChatMySQLiQuery.php b/library/ajaxchat/chat/lib/class/AJAXChatMySQLiQuery.php deleted file mode 100644 index f81afd886..000000000 --- a/library/ajaxchat/chat/lib/class/AJAXChatMySQLiQuery.php +++ /dev/null @@ -1,81 +0,0 @@ -_sql = trim($sql); - $this->_connectionID = $connectionID; - $this->_result = $this->_connectionID->query($this->_sql); - if(!$this->_result) { - $this->_errno = $this->_connectionID->errno; - $this->_error = $this->_connectionID->error; - } - } - - // Returns true if an error occured: - function error() { - // Returns true if the Result-ID is valid: - return !(bool)($this->_result); - } - - // Returns an Error-String: - function getError() { - if($this->error()) { - $str = 'Query: ' .$this->_sql ."\n"; - $str .= 'Error-Report: ' .$this->_error."\n"; - $str .= 'Error-Code: '.$this->_errno; - } else { - $str = "No errors."; - } - return $str; - } - - // Returns the content: - function fetch() { - if($this->error()) { - return null; - } else { - return $this->_result->fetch_assoc(); - } - } - - // Returns the number of rows (SELECT or SHOW): - function numRows() { - if($this->error()) { - return null; - } else { - return $this->_result->num_rows; - } - } - - // Returns the number of affected rows (INSERT, UPDATE, REPLACE or DELETE): - function affectedRows() { - if($this->error()) { - return null; - } else { - return $this->_connectionID->affected_rows; - } - } - - // Frees the memory: - function free() { - $this->_result->free(); - } - -} -?> \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/AJAXChatString.php b/library/ajaxchat/chat/lib/class/AJAXChatString.php deleted file mode 100644 index 8997da5ea..000000000 --- a/library/ajaxchat/chat/lib/class/AJAXChatString.php +++ /dev/null @@ -1,37 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/AJAXChatTemplate.php b/library/ajaxchat/chat/lib/class/AJAXChatTemplate.php deleted file mode 100644 index 16e53a7e6..000000000 --- a/library/ajaxchat/chat/lib/class/AJAXChatTemplate.php +++ /dev/null @@ -1,329 +0,0 @@ -ajaxChat = $ajaxChat; - $this->_regExpTemplateTags = '/\[(\w+?)(?:(?:\/)|(?:\](.+?)\[\/\1))\]/s'; - $this->_templateFile = $templateFile; - $this->_contentType = $contentType; - } - - function getParsedContent() { - if(!$this->_parsedContent) { - $this->parseContent(); - } - return $this->_parsedContent; - } - - function getContent() { - if(!$this->_content) { - $this->_content = AJAXChatFileSystem::getFileContents($this->_templateFile); - } - return $this->_content; - } - - function parseContent() { - $this->_parsedContent = $this->getContent(); - - // Remove the XML declaration if the content-type is not xml: - if($this->_contentType && (strpos($this->_contentType,'xml') === false)) { - $doctypeStart = strpos($this->_parsedContent, '_parsedContent = substr($this->_parsedContent, $doctypeStart); - } - } - - // Replace template tags ([TAG/] and [TAG]content[/TAG]) and return parsed template content: - $this->_parsedContent = preg_replace_callback($this->_regExpTemplateTags, array($this, 'replaceTemplateTags'), $this->_parsedContent); - } - - function replaceTemplateTags($tagData) { - switch($tagData[1]) { - case 'AJAX_CHAT_URL': - return $this->ajaxChat->htmlEncode($this->ajaxChat->getChatURL()); - - case 'LANG': - return $this->ajaxChat->htmlEncode($this->ajaxChat->getLang((isset($tagData[2]) ? $tagData[2] : null))); - case 'LANG_CODE': - return $this->ajaxChat->getLangCode(); - - case 'BASE_DIRECTION': - return $this->getBaseDirectionAttribute(); - - case 'CONTENT_ENCODING': - return $this->ajaxChat->getConfig('contentEncoding'); - - case 'CONTENT_TYPE': - return $this->_contentType; - - case 'LOGIN_URL': - return ($this->ajaxChat->getRequestVar('view') == 'logs') ? './?view=logs' : './'; - - case 'USER_NAME_MAX_LENGTH': - return $this->ajaxChat->getConfig('userNameMaxLength'); - case 'MESSAGE_TEXT_MAX_LENGTH': - return $this->ajaxChat->getConfig('messageTextMaxLength'); - - case 'LOGIN_CHANNEL_ID': - return $this->ajaxChat->getValidRequestChannelID(); - - case 'SESSION_NAME': - return $this->ajaxChat->getConfig('sessionName'); - - case 'COOKIE_EXPIRATION': - return $this->ajaxChat->getConfig('sessionCookieLifeTime'); - case 'COOKIE_PATH': - return $this->ajaxChat->getConfig('sessionCookiePath'); - case 'COOKIE_DOMAIN': - return $this->ajaxChat->getConfig('sessionCookieDomain'); - case 'COOKIE_SECURE': - return $this->ajaxChat->getConfig('sessionCookieSecure'); - - case 'CHAT_BOT_NAME': - return rawurlencode($this->ajaxChat->getConfig('chatBotName')); - case 'CHAT_BOT_ID': - return $this->ajaxChat->getConfig('chatBotID'); - - case 'ALLOW_USER_MESSAGE_DELETE': - if($this->ajaxChat->getConfig('allowUserMessageDelete')) - return 1; - else - return 0; - - case 'INACTIVE_TIMEOUT': - return $this->ajaxChat->getConfig('inactiveTimeout'); - - case 'PRIVATE_CHANNEL_DIFF': - return $this->ajaxChat->getConfig('privateChannelDiff'); - case 'PRIVATE_MESSAGE_DIFF': - return $this->ajaxChat->getConfig('privateMessageDiff'); - - case 'SHOW_CHANNEL_MESSAGES': - if($this->ajaxChat->getConfig('showChannelMessages')) - return 1; - else - return 0; - - case 'SOCKET_SERVER_ENABLED': - if($this->ajaxChat->getConfig('socketServerEnabled')) - return 1; - else - return 0; - - case 'SOCKET_SERVER_HOST': - if($this->ajaxChat->getConfig('socketServerHost')) { - $socketServerHost = $this->ajaxChat->getConfig('socketServerHost'); - } else { - $socketServerHost = (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']); - } - return rawurlencode($socketServerHost); - - case 'SOCKET_SERVER_PORT': - return $this->ajaxChat->getConfig('socketServerPort'); - - case 'SOCKET_SERVER_CHAT_ID': - return $this->ajaxChat->getConfig('socketServerChatID'); - - case 'STYLE_SHEETS': - return $this->getStyleSheetLinkTags(); - - case 'CHANNEL_OPTIONS': - return $this->getChannelOptionTags(); - case 'STYLE_OPTIONS': - return $this->getStyleOptionTags(); - case 'LANGUAGE_OPTIONS': - return $this->getLanguageOptionTags(); - - case 'ERROR_MESSAGES': - return $this->getErrorMessageTags(); - - case 'LOGS_CHANNEL_OPTIONS': - return $this->getLogsChannelOptionTags(); - case 'LOGS_YEAR_OPTIONS': - return $this->getLogsYearOptionTags(); - case 'LOGS_MONTH_OPTIONS': - return $this->getLogsMonthOptionTags(); - case 'LOGS_DAY_OPTIONS': - return $this->getLogsDayOptionTags(); - case 'LOGS_HOUR_OPTIONS': - return $this->getLogsHourOptionTags(); - case 'CLASS_WRITEABLE': - $userdata = $this->ajaxChat->getValidLoginUserData(); - $guestwrite = $this->ajaxChat->getConfig('allowGuestWrite'); - if ($userdata['userRole'] === AJAX_CHAT_GUEST && $guestwrite === false) - return 'write_forbidden'; - else - return 'write_allowed'; - - default: - return $this->ajaxChat->replaceCustomTemplateTags($tagData[1], (isset($tagData[2]) ? $tagData[2] : null)); - } - } - - // Function to display alternating table row colors: - function alternateRow($rowOdd='rowOdd', $rowEven='rowEven') { - static $i; - $i += 1; - if($i % 2 == 0) { - return $rowEven; - } else { - return $rowOdd; - } - } - - function getBaseDirectionAttribute() { - $langCodeParts = explode('-', $this->ajaxChat->getLangCode()); - switch($langCodeParts[0]) { - case 'ar': - case 'fa': - case 'he': - return 'rtl'; - default: - return 'ltr'; - } - } - - function getStyleSheetLinkTags() { - $styleSheets = ''; - foreach($this->ajaxChat->getConfig('styleAvailable') as $style) { - $alternate = ($style == $this->ajaxChat->getConfig('styleDefault')) ? '' : 'alternate '; - $styleSheets .= ''; - } - return $styleSheets; - } - - function getChannelOptionTags() { - $channelOptions = ''; - $channelSelected = false; - foreach($this->ajaxChat->getChannels() as $name=>$id) { - if($this->ajaxChat->isLoggedIn() && $this->ajaxChat->getChannel()) { - $selected = ($id == $this->ajaxChat->getChannel()) ? ' selected="selected"' : ''; - } else { - $selected = ($id == $this->ajaxChat->getConfig('defaultChannelID')) ? ' selected="selected"' : ''; - } - if($selected) { - $channelSelected = true; - } - $channelOptions .= ''; - } - if($this->ajaxChat->isLoggedIn() && $this->ajaxChat->isAllowedToCreatePrivateChannel()) { - // Add the private channel of the user to the options list: - if(!$channelSelected && $this->ajaxChat->getPrivateChannelID() == $this->ajaxChat->getChannel()) { - $selected = ' selected="selected"'; - $channelSelected = true; - } else { - $selected = ''; - } - $privateChannelName = $this->ajaxChat->getPrivateChannelName(); - $channelOptions .= ''; - } - // If current channel is not in the list, try to retrieve the channelName: - if(!$channelSelected) { - $channelName = $this->ajaxChat->getChannelName(); - if($channelName !== null) { - $channelOptions .= ''; - } else { - // Show an empty selection: - $channelOptions .= ''; - } - } - return $channelOptions; - } - - function getStyleOptionTags() { - $styleOptions = ''; - foreach($this->ajaxChat->getConfig('styleAvailable') as $style) { - $selected = ($style == $this->ajaxChat->getConfig('styleDefault')) ? ' selected="selected"' : ''; - $styleOptions .= ''; - } - return $styleOptions; - } - - function getLanguageOptionTags() { - $languageOptions = ''; - $languageNames = $this->ajaxChat->getConfig('langNames'); - foreach($this->ajaxChat->getConfig('langAvailable') as $langCode) { - $selected = ($langCode == $this->ajaxChat->getLangCode()) ? ' selected="selected"' : ''; - $languageOptions .= ''; - } - return $languageOptions; - } - - function getErrorMessageTags() { - $errorMessages = ''; - foreach($this->ajaxChat->getInfoMessages('error') as $error) { - $errorMessages .= '
    '.$this->ajaxChat->htmlEncode($this->ajaxChat->getLang($error)).'
    '; - } - return $errorMessages; - } - - function getLogsChannelOptionTags() { - $channelOptions = ''; - $channelOptions .= ''; - foreach($this->ajaxChat->getChannels() as $key=>$value) { - if($this->ajaxChat->getUserRole() != AJAX_CHAT_ADMIN && $this->ajaxChat->getConfig('logsUserAccessChannelList') && !in_array($value, $this->ajaxChat->getConfig('logsUserAccessChannelList'))) { - continue; - } - $channelOptions .= ''; - } - $channelOptions .= ''; - $channelOptions .= ''; - return $channelOptions; - } - - function getLogsYearOptionTags() { - $yearOptions = ''; - $yearOptions .= ''; - for($year=date('Y'); $year>=$this->ajaxChat->getConfig('logsFirstYear'); $year--) { - $yearOptions .= ''; - } - return $yearOptions; - } - - function getLogsMonthOptionTags() { - $monthOptions = ''; - $monthOptions .= ''; - for($month=1; $month<=12; $month++) { - $monthOptions .= ''; - } - return $monthOptions; - } - - function getLogsDayOptionTags() { - $dayOptions = ''; - $dayOptions .= ''; - for($day=1; $day<=31; $day++) { - $dayOptions .= ''; - } - return $dayOptions; - } - - function getLogsHourOptionTags() { - $hourOptions = ''; - $hourOptions .= ''; - for($hour=0; $hour<=23; $hour++) { - $hourOptions .= ''; - } - return $hourOptions; - } - -} -?> diff --git a/library/ajaxchat/chat/lib/class/CustomAJAXChat.php b/library/ajaxchat/chat/lib/class/CustomAJAXChat.php deleted file mode 100644 index 9fff6ada9..000000000 --- a/library/ajaxchat/chat/lib/class/CustomAJAXChat.php +++ /dev/null @@ -1,126 +0,0 @@ -getCustomUsers(); - - if($this->getRequestVar('password')) { - // Check if we have a valid registered user: - - $userName = $this->getRequestVar('userName'); - $userName = $this->convertEncoding($userName, $this->getConfig('contentEncoding'), $this->getConfig('sourceEncoding')); - - $password = $this->getRequestVar('password'); - $password = $this->convertEncoding($password, $this->getConfig('contentEncoding'), $this->getConfig('sourceEncoding')); - - foreach($customUsers as $key=>$value) { - if(($value['userName'] == $userName) && ($value['password'] == $password)) { - $userData = array(); - $userData['userID'] = $key; - $userData['userName'] = $this->trimUserName($value['userName']); - $userData['userRole'] = $value['userRole']; - return $userData; - } - } - - return null; - } else { - // Guest users: - return $this->getGuestUser(); - } - } - - // Store the channels the current user has access to - // Make sure channel names don't contain any whitespace - function &getChannels() { - if($this->_channels === null) { - $this->_channels = array(); - - $customUsers = $this->getCustomUsers(); - - // Get the channels, the user has access to: - if($this->getUserRole() == AJAX_CHAT_GUEST) { - $validChannels = $customUsers[0]['channels']; - } else { - $validChannels = $customUsers[$this->getUserID()]['channels']; - } - - // Add the valid channels to the channel list (the defaultChannelID is always valid): - foreach($this->getAllChannels() as $key=>$value) { - if ($value == $this->getConfig('defaultChannelID')) { - $this->_channels[$key] = $value; - continue; - } - // Check if we have to limit the available channels: - if($this->getConfig('limitChannelList') && !in_array($value, $this->getConfig('limitChannelList'))) { - continue; - } - if(in_array($value, $validChannels)) { - $this->_channels[$key] = $value; - } - } - } - return $this->_channels; - } - - // Store all existing channels - // Make sure channel names don't contain any whitespace - function &getAllChannels() { - if($this->_allChannels === null) { - // Get all existing channels: - $customChannels = $this->getCustomChannels(); - - $defaultChannelFound = false; - - foreach($customChannels as $name=>$id) { - $this->_allChannels[$this->trimChannelName($name)] = $id; - if($id == $this->getConfig('defaultChannelID')) { - $defaultChannelFound = true; - } - } - - if(!$defaultChannelFound) { - // Add the default channel as first array element to the channel list - // First remove it in case it appeard under a different ID - unset($this->_allChannels[$this->getConfig('defaultChannelName')]); - $this->_allChannels = array_merge( - array( - $this->trimChannelName($this->getConfig('defaultChannelName'))=>$this->getConfig('defaultChannelID') - ), - $this->_allChannels - ); - } - } - return $this->_allChannels; - } - - function &getCustomUsers() { - // List containing the registered chat users: - $users = null; - require(AJAX_CHAT_PATH.'lib/data/users.php'); - return $users; - } - - function getCustomChannels() { - // List containing the custom channels: - $channels = null; - require(AJAX_CHAT_PATH.'lib/data/channels.php'); - // Channel array structure should be: - // ChannelName => ChannelID - return array_flip($channels); - } - -} \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/CustomAJAXChatInterface.php b/library/ajaxchat/chat/lib/class/CustomAJAXChatInterface.php deleted file mode 100644 index a950739c5..000000000 --- a/library/ajaxchat/chat/lib/class/CustomAJAXChatInterface.php +++ /dev/null @@ -1,21 +0,0 @@ -initConfig(); - - // Initialize the DataBase connection: - $this->initDataBaseConnection(); - } - -} -?> \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/class/CustomAJAXChatShoutBox.php b/library/ajaxchat/chat/lib/class/CustomAJAXChatShoutBox.php deleted file mode 100644 index c014d639e..000000000 --- a/library/ajaxchat/chat/lib/class/CustomAJAXChatShoutBox.php +++ /dev/null @@ -1,25 +0,0 @@ -initConfig(); - } - - function getShoutBoxContent() { - $template = new AJAXChatTemplate($this, AJAX_CHAT_PATH.'lib/template/shoutbox.html'); - - // Return parsed template content: - return $template->getParsedContent(); - } - -} -?> \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/classes.php b/library/ajaxchat/chat/lib/classes.php deleted file mode 100644 index ff1dee265..000000000 --- a/library/ajaxchat/chat/lib/classes.php +++ /dev/null @@ -1,26 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/config.php.example b/library/ajaxchat/chat/lib/config.php.example deleted file mode 100644 index 023adcdbb..000000000 --- a/library/ajaxchat/chat/lib/config.php.example +++ /dev/null @@ -1,209 +0,0 @@ -'عربي', 'bg'=>'Български', 'ca'=>'Català', 'cy'=>'Cymraeg', 'cz'=>'Česky', 'da'=>'Dansk', 'de'=>'Deutsch', 'el'=>'Ελληνικα', 'en'=>'English', - 'es'=>'Español', 'et'=>'Eesti', 'fa'=>'فارسی', 'fi'=>'Suomi', 'fr'=>'Français', 'gl'=>'Galego', 'he'=>'עברית', 'hr' => 'Hrvatski', 'hu' => 'Magyar', 'in'=>'Bahasa Indonesia', 'it'=>'Italiano', - 'ja'=>'日本語','ka'=>'ქართული','kr'=>'한 글','mk'=>'Македонски', 'nl'=>'Nederlands', 'nl-be'=>'Nederlands (België)', 'no'=>'Norsk', 'pl'=> 'Polski', 'pt-br'=>'Português (Brasil)', 'pt-pt'=>'Português (Portugal)', - 'ro'=>'România', 'ru'=>'Русский', 'sk'=> 'Slovenčina', 'sl'=>'Slovensko', 'sr'=>'Srpski', 'sv'=> 'Svenska', 'th'=>'ภาษาไทย', - 'tr'=>'Türkçe', 'uk'=>'Українська', 'zh'=>'中文 (简体)', 'zh-tw'=>'中文 (繁體)' -); - -// Available styles: -$config['styleAvailable'] = array('beige','black','grey','Oxygen','Lithium','Sulfur','Cobalt','Mercury','Uranium','Plum','prosilver','subblack2','subSilver','Core','MyBB','vBulletin'); -// Default style: -$config['styleDefault'] = 'prosilver'; - -// The encoding used for the XHTML content: -$config['contentEncoding'] = 'UTF-8'; -// The encoding of the data source, like userNames and channelNames: -$config['sourceEncoding'] = 'UTF-8'; -// The content-type of the XHTML page (e.g. "text/html", will be set dependent on browser capabilities if set to null): -$config['contentType'] = null; - -// Session name used to identify the session cookie: -$config['sessionName'] = 'ajax_chat'; -// Prefix added to every session key: -$config['sessionKeyPrefix'] = 'ajaxChat'; -// The lifetime of the language, style and setting cookies in days: -$config['sessionCookieLifeTime'] = 365; -// The path of the cookies, '/' allows to read the cookies from all directories: -$config['sessionCookiePath'] = '/'; -// The domain of the cookies, defaults to the hostname of the server if set to null: -$config['sessionCookieDomain'] = null; -// If enabled, cookies must be sent over secure (SSL/TLS encrypted) connections: -$config['sessionCookieSecure'] = null; - -// Default channelName used together with the defaultChannelID if no channel with this ID exists: -$config['defaultChannelName'] = 'Public'; -// ChannelID used when no channel is given: -$config['defaultChannelID'] = 0; -// Defines an array of channelIDs (e.g. array(0, 1)) to limit the number of available channels, will be ignored if set to null: -$config['limitChannelList'] = null; - -// UserID plus this value are private channels (this is also the max userID and max channelID): -$config['privateChannelDiff'] = 500000000; -// UserID plus this value are used for private messages: -$config['privateMessageDiff'] = 1000000000; - -// Enable/Disable private Channels: -$config['allowPrivateChannels'] = true; -// Enable/Disable private Messages: -$config['allowPrivateMessages'] = true; - -// Private channels should be distinguished by either a prefix or a suffix or both (no whitespace): -$config['privateChannelPrefix'] = '['; -// Private channels should be distinguished by either a prefix or a suffix or both (no whitespace): -$config['privateChannelSuffix'] = ']'; - -// If enabled, users will be logged in automatically as guest users (if allowed), if not authenticated: -$config['forceAutoLogin'] = false; - -// Defines if login/logout and channel enter/leave are displayed: -$config['showChannelMessages'] = true; - -// If enabled, the chat will only be accessible for the admin: -$config['chatClosed'] = false; -// Defines the timezone offset in seconds (-12*60*60 to 12*60*60) - if null, the server timezone is used: -$config['timeZoneOffset'] = null; -// Defines the hour of the day the chat is opened (0 - closingHour): -$config['openingHour'] = 0; -// Defines the hour of the day the chat is closed (openingHour - 24): -$config['closingHour'] = 24; -// Defines the weekdays the chat is opened (0=Sunday to 6=Saturday): -$config['openingWeekDays'] = array(0,1,2,3,4,5,6); - -// Enable/Disable guest logins: -$config['allowGuestLogins'] = true; -// Enable/Disable write access for guest users - if disabled, guest users may not write messages: -$config['allowGuestWrite'] = true; -// Allow/Disallow guest users to choose their own userName: -$config['allowGuestUserName'] = true; -// Guest users should be distinguished by either a prefix or a suffix or both (no whitespace): -$config['guestUserPrefix'] = '('; -// Guest users should be distinguished by either a prefix or a suffix or both (no whitespace): -$config['guestUserSuffix'] = ')'; -// Guest userIDs may not be lower than this value (and not higher than privateChannelDiff): -$config['minGuestUserID'] = 400000000; - -// Allow/Disallow users to change their userName (Nickname): -$config['allowNickChange'] = true; -// Changed userNames should be distinguished by either a prefix or a suffix or both (no whitespace): -$config['changedNickPrefix'] = '('; -// Changed userNames should be distinguished by either a prefix or a suffix or both (no whitespace): -$config['changedNickSuffix'] = ')'; - -// Allow/Disallow registered users to delete their own messages: -$config['allowUserMessageDelete'] = true; - -// The userID used for ChatBot messages: -$config['chatBotID'] = 2147483647; -// The userName used for ChatBot messages -$config['chatBotName'] = 'ChatBot'; - -// Minutes until a user is declared inactive (last status update) - the minimum is 2 minutes: -$config['inactiveTimeout'] = 2; -// Interval in minutes to check for inactive users: -$config['inactiveCheckInterval'] = 5; - -// Defines if messages are shown which have been sent before the user entered the channel: -$config['requestMessagesPriorChannelEnter'] = true; -// Defines an array of channelIDs (e.g. array(0, 1)) for which the previous setting is always true (will be ignored if set to null): -$config['requestMessagesPriorChannelEnterList'] = null; -// Max time difference in hours for messages to display on each request: -$config['requestMessagesTimeDiff'] = 24; -// Max number of messages to display on each request: -$config['requestMessagesLimit'] = 10; - -// Max users in chat (does not affect moderators or admins): -$config['maxUsersLoggedIn'] = 100; -// Max userName length: -$config['userNameMaxLength'] = 16; -// Max messageText length: -$config['messageTextMaxLength'] = 1040; -// Defines the max number of messages a user may send per minute: -$config['maxMessageRate'] = 20; - -// Defines the default time in minutes a user gets banned if kicked from a moderator without ban minutes parameter: -$config['defaultBanTime'] = 5; - -// Argument that is given to the handleLogout JavaScript method: -$config['logoutData'] = './?logout=true'; - -// If true, checks if the user IP is the same when logged in: -$config['ipCheck'] = true; - -// Defines the max time difference in hours for logs when no period or search condition is given: -$config['logsRequestMessagesTimeDiff'] = 1; -// Defines how many logs are returned on each logs request: -$config['logsRequestMessagesLimit'] = 10; - -// Defines the earliest year used for the logs selection: -$config['logsFirstYear'] = 2007; - -// Defines if old messages are purged from the database: -$config['logsPurgeLogs'] = false; -// Max time difference in days for old messages before they are purged from the database: -$config['logsPurgeTimeDiff'] = 365; - -// Defines if registered users (including moderators) have access to the logs (admins are always granted access): -$config['logsUserAccess'] = false; -// Defines a list of channels (e.g. array(0, 1)) to limit the logs access for registered users, includes all channels the user has access to if set to null: -$config['logsUserAccessChannelList'] = null; - -// Defines if the socket server is enabled: -$config['socketServerEnabled'] = false; -// Defines the hostname of the socket server used to connect from client side (the server hostname is used if set to null): -$config['socketServerHost'] = null; -// Defines the IP of the socket server used to connect from server side to broadcast update messages: -$config['socketServerIP'] = '127.0.0.1'; -// Defines the port of the socket server: -$config['socketServerPort'] = 1935; -// This ID can be used to distinguish between different chat installations using the same socket server: -$config['socketServerChatID'] = 0; -?> \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/custom.php b/library/ajaxchat/chat/lib/custom.php deleted file mode 100644 index a9d08841b..000000000 --- a/library/ajaxchat/chat/lib/custom.php +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/data/channels.php b/library/ajaxchat/chat/lib/data/channels.php deleted file mode 100644 index 8688e5e7b..000000000 --- a/library/ajaxchat/chat/lib/data/channels.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/data/users.php b/library/ajaxchat/chat/lib/data/users.php deleted file mode 100644 index 52ca77e50..000000000 --- a/library/ajaxchat/chat/lib/data/users.php +++ /dev/null @@ -1,40 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/ar.php b/library/ajaxchat/chat/lib/lang/ar.php deleted file mode 100644 index af9c8305e..000000000 --- a/library/ajaxchat/chat/lib/lang/ar.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/bg.php b/library/ajaxchat/chat/lib/lang/bg.php deleted file mode 100644 index 46d6af163..000000000 --- a/library/ajaxchat/chat/lib/lang/bg.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/ca.php b/library/ajaxchat/chat/lib/lang/ca.php deleted file mode 100644 index e45c376da..000000000 --- a/library/ajaxchat/chat/lib/lang/ca.php +++ /dev/null @@ -1,125 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/cy.php b/library/ajaxchat/chat/lib/lang/cy.php deleted file mode 100644 index dea446df5..000000000 --- a/library/ajaxchat/chat/lib/lang/cy.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/cz.php b/library/ajaxchat/chat/lib/lang/cz.php deleted file mode 100644 index cc6868c1e..000000000 --- a/library/ajaxchat/chat/lib/lang/cz.php +++ /dev/null @@ -1,123 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/da.php b/library/ajaxchat/chat/lib/lang/da.php deleted file mode 100644 index 55e7eff1b..000000000 --- a/library/ajaxchat/chat/lib/lang/da.php +++ /dev/null @@ -1,123 +0,0 @@ - diff --git a/library/ajaxchat/chat/lib/lang/de.php b/library/ajaxchat/chat/lib/lang/de.php deleted file mode 100644 index f345d100a..000000000 --- a/library/ajaxchat/chat/lib/lang/de.php +++ /dev/null @@ -1,123 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/el.php b/library/ajaxchat/chat/lib/lang/el.php deleted file mode 100644 index 526c31bf9..000000000 --- a/library/ajaxchat/chat/lib/lang/el.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/en.php b/library/ajaxchat/chat/lib/lang/en.php deleted file mode 100644 index cb9492bde..000000000 --- a/library/ajaxchat/chat/lib/lang/en.php +++ /dev/null @@ -1,123 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/es.php b/library/ajaxchat/chat/lib/lang/es.php deleted file mode 100644 index 27b9b7273..000000000 --- a/library/ajaxchat/chat/lib/lang/es.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/et.php b/library/ajaxchat/chat/lib/lang/et.php deleted file mode 100644 index f1169fe19..000000000 --- a/library/ajaxchat/chat/lib/lang/et.php +++ /dev/null @@ -1,123 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/fa.php b/library/ajaxchat/chat/lib/lang/fa.php deleted file mode 100644 index 0dc3cb132..000000000 --- a/library/ajaxchat/chat/lib/lang/fa.php +++ /dev/null @@ -1,124 +0,0 @@ - diff --git a/library/ajaxchat/chat/lib/lang/fi.php b/library/ajaxchat/chat/lib/lang/fi.php deleted file mode 100644 index 73466b412..000000000 --- a/library/ajaxchat/chat/lib/lang/fi.php +++ /dev/null @@ -1,125 +0,0 @@ - diff --git a/library/ajaxchat/chat/lib/lang/fr.php b/library/ajaxchat/chat/lib/lang/fr.php deleted file mode 100644 index 52ffaf1a2..000000000 --- a/library/ajaxchat/chat/lib/lang/fr.php +++ /dev/null @@ -1,125 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/gl.php b/library/ajaxchat/chat/lib/lang/gl.php deleted file mode 100644 index 54b8a8ee6..000000000 --- a/library/ajaxchat/chat/lib/lang/gl.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/he.php b/library/ajaxchat/chat/lib/lang/he.php deleted file mode 100644 index 39fa799d2..000000000 --- a/library/ajaxchat/chat/lib/lang/he.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/hr.php b/library/ajaxchat/chat/lib/lang/hr.php deleted file mode 100644 index ed0451033..000000000 --- a/library/ajaxchat/chat/lib/lang/hr.php +++ /dev/null @@ -1,123 +0,0 @@ - diff --git a/library/ajaxchat/chat/lib/lang/hu.php b/library/ajaxchat/chat/lib/lang/hu.php deleted file mode 100644 index 5f2174134..000000000 --- a/library/ajaxchat/chat/lib/lang/hu.php +++ /dev/null @@ -1,123 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/in.php b/library/ajaxchat/chat/lib/lang/in.php deleted file mode 100644 index 175cc904b..000000000 --- a/library/ajaxchat/chat/lib/lang/in.php +++ /dev/null @@ -1,123 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/it.php b/library/ajaxchat/chat/lib/lang/it.php deleted file mode 100644 index abcd4f9db..000000000 --- a/library/ajaxchat/chat/lib/lang/it.php +++ /dev/null @@ -1,125 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/ja.php b/library/ajaxchat/chat/lib/lang/ja.php deleted file mode 100644 index 075fc4fcb..000000000 --- a/library/ajaxchat/chat/lib/lang/ja.php +++ /dev/null @@ -1,123 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/ka.php b/library/ajaxchat/chat/lib/lang/ka.php deleted file mode 100644 index d92d50886..000000000 --- a/library/ajaxchat/chat/lib/lang/ka.php +++ /dev/null @@ -1,123 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/kr.php b/library/ajaxchat/chat/lib/lang/kr.php deleted file mode 100644 index 687dd6e30..000000000 --- a/library/ajaxchat/chat/lib/lang/kr.php +++ /dev/null @@ -1,123 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/mk.php b/library/ajaxchat/chat/lib/lang/mk.php deleted file mode 100644 index f43bcfb7d..000000000 --- a/library/ajaxchat/chat/lib/lang/mk.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/nl-be.php b/library/ajaxchat/chat/lib/lang/nl-be.php deleted file mode 100644 index db01b9871..000000000 --- a/library/ajaxchat/chat/lib/lang/nl-be.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/nl.php b/library/ajaxchat/chat/lib/lang/nl.php deleted file mode 100644 index c7dcc4b38..000000000 --- a/library/ajaxchat/chat/lib/lang/nl.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/no.php b/library/ajaxchat/chat/lib/lang/no.php deleted file mode 100644 index 52fe4afbe..000000000 --- a/library/ajaxchat/chat/lib/lang/no.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/pl.php b/library/ajaxchat/chat/lib/lang/pl.php deleted file mode 100644 index 92a1716a6..000000000 --- a/library/ajaxchat/chat/lib/lang/pl.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/pt-br.php b/library/ajaxchat/chat/lib/lang/pt-br.php deleted file mode 100644 index 034a5fb09..000000000 --- a/library/ajaxchat/chat/lib/lang/pt-br.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/pt-pt.php b/library/ajaxchat/chat/lib/lang/pt-pt.php deleted file mode 100644 index e3399eb04..000000000 --- a/library/ajaxchat/chat/lib/lang/pt-pt.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/ro.php b/library/ajaxchat/chat/lib/lang/ro.php deleted file mode 100644 index 8e6d6418f..000000000 --- a/library/ajaxchat/chat/lib/lang/ro.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/ru.php b/library/ajaxchat/chat/lib/lang/ru.php deleted file mode 100644 index ac86531dc..000000000 --- a/library/ajaxchat/chat/lib/lang/ru.php +++ /dev/null @@ -1,125 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/sk.php b/library/ajaxchat/chat/lib/lang/sk.php deleted file mode 100644 index fae99a785..000000000 --- a/library/ajaxchat/chat/lib/lang/sk.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/sl.php b/library/ajaxchat/chat/lib/lang/sl.php deleted file mode 100644 index 6e4941532..000000000 --- a/library/ajaxchat/chat/lib/lang/sl.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/sr.php b/library/ajaxchat/chat/lib/lang/sr.php deleted file mode 100644 index a14ba5512..000000000 --- a/library/ajaxchat/chat/lib/lang/sr.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/sv.php b/library/ajaxchat/chat/lib/lang/sv.php deleted file mode 100644 index 87f03a0ce..000000000 --- a/library/ajaxchat/chat/lib/lang/sv.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/th.php b/library/ajaxchat/chat/lib/lang/th.php deleted file mode 100644 index 7ed3b1ef0..000000000 --- a/library/ajaxchat/chat/lib/lang/th.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/tr.php b/library/ajaxchat/chat/lib/lang/tr.php deleted file mode 100644 index 00f7dfaa6..000000000 --- a/library/ajaxchat/chat/lib/lang/tr.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/uk.php b/library/ajaxchat/chat/lib/lang/uk.php deleted file mode 100644 index a7d80c16b..000000000 --- a/library/ajaxchat/chat/lib/lang/uk.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/lang/zh-tw.php b/library/ajaxchat/chat/lib/lang/zh-tw.php deleted file mode 100644 index d39fe6b14..000000000 --- a/library/ajaxchat/chat/lib/lang/zh-tw.php +++ /dev/null @@ -1,123 +0,0 @@ - diff --git a/library/ajaxchat/chat/lib/lang/zh.php b/library/ajaxchat/chat/lib/lang/zh.php deleted file mode 100644 index 1d18f0bc0..000000000 --- a/library/ajaxchat/chat/lib/lang/zh.php +++ /dev/null @@ -1,124 +0,0 @@ - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/template/loggedIn.html b/library/ajaxchat/chat/lib/template/loggedIn.html deleted file mode 100644 index 16a75ebe9..000000000 --- a/library/ajaxchat/chat/lib/template/loggedIn.html +++ /dev/null @@ -1,387 +0,0 @@ - - - - - - - [LANG]title[/LANG] - - [STYLE_SHEETS/] - - - - - - - - - - -
    -
    -

    [LANG]title[/LANG]

    -
    -
    - - - - - - - -
    -
    - -
    -
    - -
    -
    - 0/[MESSAGE_TEXT_MAX_LENGTH/] - -
    -
    -
    - - - - - - - - -
    - -
    - - - - - -
    -
    -

    [LANG]onlineUsers[/LANG]

    -
    -
    - - - - -
    -
    - - - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/template/loggedOut.html b/library/ajaxchat/chat/lib/template/loggedOut.html deleted file mode 100644 index ba8a8a4a9..000000000 --- a/library/ajaxchat/chat/lib/template/loggedOut.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - [LANG]title[/LANG] - - [STYLE_SHEETS/] - - - - - - - - -
    -
    -

    [LANG]title[/LANG]

    -
    - -
    - - -

    -
    -

    -
    -

    -
    -

    -
    -
    -
    * [LANG]registeredUsers[/LANG]
    -
    - -
    [ERROR_MESSAGES/]
    - - -
    - - - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/template/logs.html b/library/ajaxchat/chat/lib/template/logs.html deleted file mode 100644 index d0b9162a9..000000000 --- a/library/ajaxchat/chat/lib/template/logs.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - - - [LANG]logsTitle[/LANG] - - [STYLE_SHEETS/] - - - - - - - - - - -
    -
    -

    [LANG]logsTitle[/LANG]

    -
    -
    - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    - -
    -
    - - - -
    - - - -
    -
    - - - \ No newline at end of file diff --git a/library/ajaxchat/chat/lib/template/shoutbox.html b/library/ajaxchat/chat/lib/template/shoutbox.html deleted file mode 100644 index 5f2de9981..000000000 --- a/library/ajaxchat/chat/lib/template/shoutbox.html +++ /dev/null @@ -1,60 +0,0 @@ -
    - - - - - - -
    -
    - -
    - - - -
    -
    diff --git a/library/ajaxchat/chat/license.txt b/library/ajaxchat/chat/license.txt deleted file mode 100644 index 618f9a318..000000000 --- a/library/ajaxchat/chat/license.txt +++ /dev/null @@ -1,28 +0,0 @@ -Modified MIT License (MIT) - -Copyright (c) 2013 blueimp.net - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -The above license does not apply to files included in the AJAX Chat project -which fall under other licenses. Such files are provided with their own -license text included beside or within the files themselves. -The presence of this modified MIT license in AJAX Chat does NOT supersede -the licenses applying to those files. You many NOT redistribute this project -or included files in a way that conflicts with their respective licenses. \ No newline at end of file diff --git a/library/ajaxchat/chat/readme.html b/library/ajaxchat/chat/readme.html deleted file mode 100644 index 145e188d3..000000000 --- a/library/ajaxchat/chat/readme.html +++ /dev/null @@ -1,436 +0,0 @@ - - - - - AJAX Chat Readme - - - - - -
    - -

    AJAX Chat - - v 0.8.7 standalone ( blueimp.net/ajax/ ) - -

    - - - -

    This is the standalone version of blueimp's AJAX Chat designed to run on its own, without another web application.
    -If you want to integrate AJAX Chat with one of the forums we support, go back and choose the right version.
    -This version is good for customizing your own integration, or using on its own.

    - -

    - AJAX stands for "Asynchronous JavaScript and XML".
    - The AJAX Chat client (your browser) uses JavaScript to query the web server for updates.
    - Instead of delivering a complete HTML page only updated data is sent in XML format.
    - By using JavaScript the chat page can be updated without having to reload the whole page.
    - PHP is used to communicate with the database and authenticate users. -

    - -

    Requirements

    -
    - - - - - - - - - -
    Server-SideClient-Side
    - PHP >= 5
    - MySQL >= 4
    - Ruby >= 1.8 (optional) -
    - Enabled JavaScript
    - Enabled Cookies
    - Flash Plugin >= 9 (optional) -
    -
    - -

    Installation

    -
    -

    Download your preferred version of AJAX Chat and unzip the file on your computer.

    -

    Before You Begin

    -
    -

    - In order to edit PHP files you will need a good text editor. You should not use Windows notepad, wordpad, or Microsoft Word to edit PHP files. These programs will add something called a byte-order-mark (BOM) to the files and this may prevent chat from functioning properly. - We recommend using Notepad ++ ( http://notepad-plus-plus.org ) for editing all files. It also has the benefit of color-coding your files so you can edit them more easily.
    - If you get an error message like "Cannot modify header information - headers already sent" it is likely because you have used one of the above programs to edit files. -

    -
    - -

    Configure Database Settings

    -
    -

    - The first and most important thing you need to do is tell AJAX Chat how to connect to your database. This, and all core settings must be located inside the file lib/config.php.
    - You need to create this file.
    - An example config.php file can be found in lib/config.php.example that shipped with chat.
    - Duplicate this file and save it as config.php (or just delete .example from the end of the file name) and then fill out at least the following four fields in the file:

    -

    - $config['dbConnection']['host'] = 'your_database_hostname';
    - $config['dbConnection']['user'] = 'your_database_username';
    - $config['dbConnection']['pass'] = 'your_database_password';
    - $config['dbConnection']['name'] = 'your_database_name';
    -

    -

    Sufficed to say you need this information. Talk to your hosting provider if you don't know.

    -

    In most cases, chat will function with only these fields filled out and you can proceed to the next step.
    -

    -

    If your host does not use mysqli you will need to change the connection type field:
    - $config['dbConnection']['type'] = null;
    - If this is set to "null" it defaults to "mysqli" if existing, else to "mysql". In most cases this field can be left as null.
    -
    - You can reference an existing database connection link or object by changing:
    - $config['dbConnection']['link'] = null;
    - If this is set to null, a new database connection is created.

    -
    - -

    Choose Your Channel Settings

    -
    -

    Edit the file lib/data/channels.php.
    - We have provided you with two sample channels, named public and private. You can add your own, or leave it as-is.
    - Channels follow the following format: -
    - $channels[channel id] = 'channel name'; - Each channel must have a unique channel id number and a unique name.
    - Whitespace in the channel names will be converted to the underscore "_".

    -
    - -

    Add Your Users

    -
    -

    Edit users in lib/data/users.php.
    - Users follow the following format: -

    -

    $users[user id] = array();
    - $users[user id]['userRole'] = AJAX_CHAT_ROLE;
    - $users[user id]['userName'] = 'user name';
    - $users[user id]['password'] = 'user password';
    - $users[user id]['channels'] = array(allowed channel ids);

    - Each user must have a unique user id number and a unique name.
    - The first user in the list (user id 0) is used for the guest user settings. All guest users will have access to the channels set for this user and the user role AJAX_CHAT_GUEST.
    - Registered users can have the user roles AJAX_CHAT_USER, AJAX_CHAT_MODERATOR or AJAX_CHAT_ADMIN. (this is case sensitive, type it exactly)
    - The list of channels a user has access to can be set for each user individually. Channel id's are separated by commas. eg: array(0,1,23); allows channels 0, 1 and 23.
    - Whitespace in the user names will be converted to the underscore "_".

    -
    - -

    Upload to Your Server

    -
    -

    Upload the chat folder to your server somewhere under your document root:
    - e.g. http://example.org/path/to/chat/

    -
    -

    Create the Database Tables

    -
    -

    There are two options available to you to create the database. The first, and usually the easiest option, is to run the installation script included with AJAX Chat. Alternatively, you may use a database tool like PHPMyAdmin to manually create the tables.

    -
      -
    1. To use the installation script, visit the following URL in your browser:
      - http://example.org/path/to/chat/install.php
      - Where - "http://example.org/path/to/chat/" is the real URL to your chat directory.
    2. -
    3. To install it manually using PHPMyAdmin or a similar tool, copy the contents of the chat.sql file and run it as a query.
    4. -
    -

    Either of these methods will create the tables your database needs to store chat messages and other information.

    -
    - -

    Delete the Installation Script

    -
    -

    Delete the file install.php from the chat directory on your server. You may also delete the file chat.sql.

    -
    - -

    Congradulation! You Are Winner!

    -
    -

    Yay! You're done! To test your chat, navigate to your chat URL in a browser: http://example.org/path/to/chat/index.php
    -
    You are now free to customize chat to further suit your needs.

    -
    -
    - -

    Configuring and Customizing

    -
    -

    Configuration Files

    -
    -

    AJAX Chat is fully customizable and contains two configuration files:

    -
      -
    1. lib/config.php: This file contains the core configuration options for chat. Essential options for configuring the database, security, available languages, etc, are found here.
    2. -
    3. js/config.js: This file contains client side settings that change your users' default options in chat. Many of these settings can be changed by users in their options but some (like the refresh rate) cannot.
    4. -
    -

    Both of these files are well commented with information on what the settings mean.

    -
    - -

    Customizing the Layout

    -
    -

    The layout of AJAX Chat is fully customizable by using CSS (Cascaded Style Sheets).
    - AJAX Chat comes with a predefined set of styles. To add your own style, do the following:

    -
      -
    1. Add a new CSS file (e.g. mystyle.css) by copying one of the existing styles from the CSS directory.
    2. -
    3. Edit your file (css/mystyle.css) and adjust the CSS settings to your liking.
    4. -
    5. Add the name of your style without file extension to the available styles in lib/config.php:
      - // Available styles:
      - $config['styleAvailable'] = array('mystyle','beige','black','grey');
      - // Default style:
      - $config['styleDefault'] = 'mystyle';
    6. -
    -

    To further customize the layout you can adjust the template files in lib/template/.

    -

    Make sure you are creating valid XHTML, else you will produce errors in modern browsers.
    - This is due to the page content-type served as "application/xhtml+xml".
    - Using this content-type improves performance when manipulating the Document Object Model (DOM).

    -

    If for some reason you cannot create valid XHTML you can force a HTML content-type.
    - Just edit lib/config.php and set the following option:

    -

    $config['contentType'] = 'text/html';

    -
    - -

    Adjusting the Language Settings

    -
    -

    AJAX Chat comes with two language file directories:

    -
      -
    1. js/lang/: This directory contains the language files used for the chat messages localization. These are JavaScript files with the extension ".js".
    2. -
    3. lib/lang/: This directory contains the language files used for the template output. These are PHP files with the extension ".php".
    4. -
    -

    Many languages are already included with the download and you can customize them by editing these files.
    - For each language, you need a file in both of these directories, with the language code as file name (such as en.js and en.php)..
    - The language code is used following the ISO 639 standards.

    -

    The files for the english (language code "en") localization are js/lang/en.js and lib/lang/en.php.

    -

    If you create your own localization, you must put the files in the correct folders and then make two changes to config.php:

    -
      -
    1. Add the language code (this must match the filename you chose for the language. Remember to use commas correctly to separate multiple language codes):
      - $config['langAvailable'] = array('en');
    2. -
    3. Add the language name (this is what users see in the dropdown menu to choose the language):
      - $config['langNames'] = array('en'=>'English');
    4. -
    -

    To avoid errors, you should follow these rules:

    -
      -
    1. Make sure you encode your localization files in UTF-8 (without Byte-order mark).
    2. -
    3. Don't use HTML entities in your localization files.
    4. -
    5. Don't remove any "%s" inside the JavaScript language files - these are filled with dynamic data.
    6. -
    -
    - -

    Adding Features

    -
    -

    AJAX Chat is designed with numerous hooks and overrides available to improve core functionality without requiring you to edit the core files. - With an intermediate understading of PHP and javascript you can modify your chat to suit your needs.

    -

    Have a look through a few examples available on the wiki: - https://github.com/Frug/AJAX-Chat/wiki/General-modifications -

    -
    - -
    - -

    Logs

    -
    -

    Accessing the Logs

    -
    -

    By default, AJAX Chat stores all chat messages in the database.
    - To access the logs you have to add the GET parameter view=logs to your chat url (add ?view=logs to the end of the url):

    -

    e.g. http://example.org/path/to/chat/?view=logs

    -

    If you are not already logged in, you have to login as administrator to access the logs.

    -

    The log view enables you to monitor the latest chat messages on all channels.
    - It is also possible to view the logs of private rooms and private messages.
    - You have the option to filter the logs by date, time and search strings.

    -

    The search filter accepts MySQL style regular expressions as described here: http://dev.mysql.com/doc/refman/5.1/en/regexp.html
    - You can search for IPs, using the following syntax: ip=127.0.0.1

    -
    -
    - -

    Shoutbox

    -
    -

    AJAX Chat is also usable as shoutbox - this is a short guide on how to set it up:

    - -

    Shoutbox Stylesheet

    -
    -

    Add the following line to the stylesheet (CSS) of all pages displaying the shoutbox:

    -

    @import url("http://example.org/path/to/chat/css/shoutbox.css");

    -

    Replace http://example.org/path/to/chat/ with the URL to the chat.
    - Modify css/shoutbox.css to your liking.

    -
    - -

    Shoutbox Function

    -
    -

    Add the following function to your PHP code:

    - -
    -<?php
    -function getShoutBoxContent() {
    -// URL to the chat directory:
    -if(!defined('AJAX_CHAT_URL')) {
    -	define('AJAX_CHAT_URL', './chat/');
    -}
    -
    -// Path to the chat directory:
    -if(!defined('AJAX_CHAT_PATH')) {
    -	define('AJAX_CHAT_PATH', realpath(dirname($_SERVER['SCRIPT_FILENAME']).'/chat').'/');
    -}
    -
    -// Validate the path to the chat:
    -if(@is_file(AJAX_CHAT_PATH.'lib/classes.php')) {
    -	
    -	// Include Class libraries:
    -	require_once(AJAX_CHAT_PATH.'lib/classes.php');
    -	
    -	// Initialize the shoutbox:
    -	$ajaxChat = new CustomAJAXChatShoutBox();
    -	
    -	// Parse and return the shoutbox template content:
    -	return $ajaxChat->getShoutBoxContent();
    -}
    -
    -return null;
    -}
    -?>
    -
    - -

    Make sure AJAX_CHAT_URL and AJAX_CHAT_PATH point to the chat directory.

    -
    - -

    Shoutbox Output

    -
    -

    Display the shoutbox content using the shoutbox function:

    -

    <div style="width:200px;"><?php echo getShoutBoxContent(); ?></div>

    -
    -
    - -

    Socket Server

    -
    -

    Using the AJAX technology alone the chat clients have to permanently pull updates from the server.
    - This is due to AJAX being a web technology and HTTP being a stateless protocol.
    - Events pushed from server-side need a permanent or long-lasting socket connection between clients and server.
    - This requires either a custom HTTP server (called "comet") or another custom socket server.

    -

    AJAX Chat uses a JavaScript-to-Flash bridge to establish a permanent socket connection from client side.
    - The JavaScript-to-Flash bridge requires a Flash plugin >= 9 installed on the user browser.
    - Clients without this requirement will fall back to pull the server for updates.

    -

    This part of the setup is OPTIONAL and meant for experienced users only.

    -

    Installation

    -
    -

    The socket server coming with AJAX Chat is implemented in Ruby.
    - You need to be able to run a Ruby script as a service to run the socket server.
    - To be able to start the service, the script files in the socket/ directory have to be executable:

    -

    $ chmod +x server
    - $ chmod +x server.rb

    -

    "server" is a simple bash script to start and stop a service.
    - "server.rb" is the ruby socket server script.
    - "server.conf" is a configuration file - each setting is explained with a comment.

    -

    To start the service, execute the "server" script with the parameter "start":

    -

    $ ./server start

    -

    This will create two additional files:

    -

    "server.pid" contains the process id of the service.
    - "server.log" is filled with the socket server log.

    -

    To monitor the socket server logs, you can use the "tail" command included in most GNU/Linux distributions:

    -

    $ tail -f server.log

    -

    By default only errors and start/stop of the server are logged.
    - To get more detailed logs configure the log level by editing the configuration file.

    -

    To stop the service, execute the "server" script with the parameter "stop":

    -

    $ ./server stop

    -

    If the socket server is running, you have to enable the following option in lib/config.php:

    -

    $config['socketServerEnabled'] = true;
    -
    - This tells the server-side chat script to broadcast chat messages via the socket server.
    - Chat clients will establish a permanent connection to the socket server to listen for chat messages.

    -

    By default only local clients (127.0.0.1,::1) may broadcast messages.
    - Clients allowed to broadcast messages may also handle the channel authentication.
    - If your socket server is running on another host you should set the broadcast_clients option to the chat server IP.

    -

    Using the socket server increases response time while improving server performance at the same time.

    -
    - -

    Flash Permissions

    -
    -

    - Since Flash 9.0.115.0 and all Flash 10 versions, permissions for creating sockets using Flash have changed.
    - Now an explicit permission (using xml-syntax) is required for creating socket connections.
    - In the current state, socket server won't work with the newest Flash versions.
    - You will get a "Flash security error" in the browser. -

    -

    - A solution is to use a policy-files server which will listen to connections in port 843 in the server.
    - Each time a client tries to connect to the chat, the Flash client will request the policy authorization to the server.
    - The policy-files server is downloadable from http://ammonlauritzen.com/FlashPolicyService-09b.zip
    - It works with FF3 and IE7 (not yet tested in other browsers). -

    -

    A more detailed explanation can be found here:

    -

    * http://ammonlauritzen.com/blog/2007/12/13/new-flash-security-policies/
    - * http://ammonlauritzen.com/blog/2008/04/22/flash-policy-service-daemon/
    -

    -

    Official Adobe documentation:

    -

    * http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html
    - * http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security_04.html

    -
    -

     

    -
    - -

    Support

    -
    -

    - Please do not email the devs with support questions.
    - For further documentation and some examples, check out our github wiki.
    - For general support questions use our google group.
    - For specific bug reports and a list of pending issues view our github project.
    -

    -
    - - -
    -

    - Your donations contribute to the growth and development of this project and are always appreciated.
    -

    - - - - -
    - I'm on gittip at https://www.gittip.com/Frug -

    -
    - -

    License

    -
    -

    Bluimp's AJAX Chat is released under a Modified MIT License.

    -

    You should also find this license included with your download of this project.

    -
    - -

    back to top

    - -
    - - diff --git a/library/ajaxchat/chat/socket/.htaccess b/library/ajaxchat/chat/socket/.htaccess deleted file mode 100644 index 91e386dc9..000000000 --- a/library/ajaxchat/chat/socket/.htaccess +++ /dev/null @@ -1,4 +0,0 @@ -AuthType Basic -AuthName "Forbidden" -AuthUserFile /dev/null -require user nobody \ No newline at end of file diff --git a/library/ajaxchat/chat/socket/server b/library/ajaxchat/chat/socket/server deleted file mode 100644 index 806b5ef74..000000000 --- a/library/ajaxchat/chat/socket/server +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash - -# Simple bash script to start and stop a service -# Works without access to /var/run/ or ps and pidof commands -# -# Date:: Wed, 09 Jan 2008 -# Author:: Sebastian Tschan, https://blueimp.net -# License:: GNU Affero General Public License - - -SERVICE_TITLE=Service -SERVICE_BASENAME=${0##*/} -SERVICE_DIR=${0%/$SERVICE_BASENAME} -SERVICE_COMMAND=$SERVICE_DIR/$SERVICE_BASENAME.rb -SERVICE_CONFIG=$SERVICE_DIR/$SERVICE_BASENAME.conf -SERVICE_LOG=$SERVICE_DIR/$SERVICE_BASENAME.log -SERVICE_PIDFILE=$SERVICE_DIR/$SERVICE_BASENAME.pid - - -function start -{ - if [ -f $SERVICE_PIDFILE ] - then - echo "PID file $SERVICE_PIDFILE found - $SERVICE_TITLE already running?" - else - $SERVICE_COMMAND $SERVICE_CONFIG >> $SERVICE_LOG & echo "Started $SERVICE_TITLE..." - PID=$! - echo $PID > $SERVICE_PIDFILE - fi - exit 0 -} - -function stop -{ - if [ -f $SERVICE_PIDFILE ] - then - PID=`cat $SERVICE_PIDFILE` - kill -TERM $PID - rm -f $SERVICE_PIDFILE - echo "Stopped $SERVICE_TITLE." - else - echo "PID file $SERVICE_PIDFILE not found - $SERVICE_TITLE not running?" - fi - exit 0 -} - -function main -{ - for arg in $@ - do - if [ $arg == "start" ] - then - start - elif [ $arg == "stop" ] - then - stop - else - echo "Unknown argument:" $arg - echo "Usage: $0 [start|stop]" - exit 0 - fi - done - - echo "Missing argument." - echo "Usage: $0 [start|stop]" - exit 0 -} - - -# Script execution: -main $@ \ No newline at end of file diff --git a/library/ajaxchat/chat/socket/server.conf b/library/ajaxchat/chat/socket/server.conf deleted file mode 100644 index 47c6849da..000000000 --- a/library/ajaxchat/chat/socket/server.conf +++ /dev/null @@ -1,22 +0,0 @@ - -# Server address (leave empty to bind to all available interfaces): -server_address= - -# Server port: -server_port=1935 - -# Comma-separated list of clients allowed to broadcast (allows all if empty): -broadcast_clients=127.0.0.1,::1 - -# Maximum number of clients (0 allows an unlimited number of clients): -max_clients=0 - -# Comma-separated list of domains from which downloaded Flash clients are allowed to connect (* allows all domains): -allow_access_from=* - -# Log level: -# 0 = log only errors and server start/stop -# 1 = log client connections -# 2 = log all messages but no broadcast content -# 3 = log everything -log_level=0 diff --git a/library/ajaxchat/chat/socket/server.rb b/library/ajaxchat/chat/socket/server.rb deleted file mode 100644 index c2f532c84..000000000 --- a/library/ajaxchat/chat/socket/server.rb +++ /dev/null @@ -1,400 +0,0 @@ -#!/usr/bin/env ruby - -# Simple Ruby XML Socket Server -# -# This is a a simple socket server implementation in ruby -# to communicate with flash clients via Flash XML Sockets. -# -# The socket code is based on the tutorial -# "Sockets programming in Ruby" -# by M. Tim Jones (mtj@mtjones.com). -# -# Date:: Tue, 05 Mar 2008 -# Author:: Sebastian Tschan, https://blueimp.net -# License:: GNU Affero General Public License - -# Include socket library: -require 'socket' -# Include XML libraries: -require 'rexml/document' -require 'rexml/streamlistener' - -# XML Stream Handler class used to parse chat messages: -class XMLStreamHandler - attr_reader :type,:chat_id,:user_id,:reg_id,:channel_id,:channel_ids - # Called when an opening tag (including attributes) is parsed: - def tag_start name, attrs - case name - when 'root' - # root messages are broadcast messages: - @type = :message - @chat_id = attrs['chatID'] - @channel_id = attrs['channelID'] - throw :break - when 'register' - # register messages are sent by chat clients: - @type = :register - @chat_id = attrs['chatID'] - @user_id = attrs['userID'] - @reg_id = attrs['regID'] - throw :break - when 'authenticate' - # authenticate messages are sent by the chat server client: - @type = :authenticate - @chat_id = attrs['chatID'] - @user_id = attrs['userID'] - @reg_id = attrs['regID'] - @channel_ids = Array::new - when 'channel' - # authenticate messages contain channel tags: - if @channel_ids - @channel_ids.push(attrs['id']) - else - throw :break - end - when 'policy-file-request' - # policy-file-requests are sent by flash clients for cross-domain authentication: - @type = :policy_file_request - throw :break - else - throw :break - end - end - # Called when a closing tag is parsed: - def tag_end name - if name == 'authenticate' - throw :break - end - end - def text text - # Called on text between tags - end - # Called when cdata is parsed: - alias cdata text -end - -# Socket Server class: -class SocketServer - - def initialize(config_file) - # List of configuration settings: - @config = Hash::new - # Initialize default settings: - initialize_default_properties - if config_file - # Load settings from configuration file: - load_properties_from_file(config_file) - end - # Sockets list: - @sockets = Array::new - # Clients list: - @clients = Hash::new - # Chats list, used to distinguish between different chat installations (contains channels list): - @chats = Hash::new - # Initialize server socket: - initialize_server_socket - if @server_socket - # Log server start (STDOUT.flush prevents output buffering): - puts "#{Time.now}\tServer started on Port #{@config[:server_port].to_s} ..."; STDOUT.flush - begin - # Start the server: - run - rescue SignalException - # Controlled stop: - ensure - for socket in @sockets - if socket != @server_socket - # Disconnect all clients: - handle_client_disconnection(socket, false) - end - end - @sockets = nil - @clients = nil - # Log server stop: - puts "#{Time.now}\tServer stopped."; STDOUT.flush - end - end - end - - def run - # Endless loop: - while 1 - # Blocking select call. The first three parameters are arrays of IO objects or nil. - # The last parameter is to set a timeout in seconds to force select to return - # if no event has occurred on any of the given IO object arrays. - res = select(@sockets, nil, nil, nil) - if res != nil then - # Iterate through the tagged read descriptors: - for socket in res[0] - # Received a connect to the server socket: - if socket == @server_socket then - accept_new_connection - else - # Received something on a client socket: - if socket.eof? then - # Handle client disconnection: - handle_client_disconnection(socket) - else - # Handle client input data: - handle_client_input(socket, socket.gets(@config[:eol])) - end - end - end - end - end - end - - private - - def initialize_default_properties - # Server address (empty = bind to all available interfaces): - @config[:server_address] = '' - # Server port: - @config[:server_port] = 1935 - # Comma-separated list of clients allowed to broadcast (allows all if empty): - @config[:broadcast_clients] = '' - # Defines if broadcast is sent to broadcasting client: - @config[:broadcast_self] = false - # Maximum number of clients (0 allows an unlimited number of clients): - @config[:max_clients] = 0 - # Comma-separated list of domains from which downloaded Flash clients are allowed to connect (* allows all domains): - @config[:allow_access_from] = '*' - # Defines the cross-domain-policy string sent to Flash clients as response to a policy-file-request: - @config[:cross_domain_policy] = '' - # EOL (End Of Line) character used by Flash XML Socket communication (a null-byte): - @config[:eol] = "\0" - # Log level (0 logs only errors and server start/stop, 1 logs client connections, 2 logs all messages but no broadcast content, 3 logs everything): - @config[:log_level] = 0 - end - - def load_properties_from_file(config_file) - # Open the config file and go through each line: - File.open(config_file, 'r') do |file| - file.read.each_line do |line| - # Remove trailing whitespace from the line: - line.strip! - # Get the position of the first "=": - i = line.index('=') - # Check if line is not a comment and a valid property: - if (!line.empty? && line[0] != ?# && i > 0) - # Add the configuration option to the config hash: - key = line[0..i - 1].strip - value = line[i + 1..-1].strip - # Parse boolean values: - if value.eql?('false') - @config[key.to_sym] = false - elsif value.eql?('true') - @config[key.to_sym] = true - # Parse integer numbers: - elsif value.to_i.to_s.eql?(value) - @config[key.to_sym] = value.to_i - # Parse floating point numbers: - elsif value.to_f.to_s.eql?(value) - @config[key.to_sym] = value.to_f - # Parse string values: - else - @config[key.to_sym] = value - end - end - end - end - if @config[:eol].empty? - # Use default EOL if configuration option is empty: - @config[:eol] = $/ - end - end - - def initialize_server_socket - begin - # The server socket, allowing connections from any interface and bound to the given port number: - @server_socket = TCPServer.new(@config[:server_address], @config[:server_port].to_i) - # Enable reuse of the server address (e.g. for rapid restarts of the server): - @server_socket.setsockopt(Socket::SOL_SOCKET, Socket::SO_REUSEADDR, 1) - # Add the server socket to the sockets list: - @sockets.push(@server_socket) - rescue Exception => error - # Log initialization failure: - puts "#{Time.now}\tFailed to initialize Server on Port #{@config[:server_port].to_s}: #{error}."; STDOUT.flush - end - end - - def accept_new_connection - begin - # Accept the client connection (non-blocking): - socket = @server_socket.accept_nonblock - # Retrieve IP and Port: - ip = socket.peeraddr[3] - port = socket.peeraddr[1] - # Check if we have reached the maximum number of connected clients (always accept the broadcast clients): - if @config[:max_clients].to_i == 0 || @clients.size < @config[:max_clients].to_i || !@config[:broadcast_clients].empty? && @config[:broadcast_clients].include?(ip) - # Add the accepted socket connection to the socket list: - @sockets.push(socket) - # Create a new Hash to store the client data: - client = Hash::new - client[:id] = "[#{ip}]:#{port}" - # Check if the client is allowed to broadcast: - if @config[:broadcast_clients].empty? || @config[:broadcast_clients].include?(ip) - client[:allowed_to_broadcast] = true - else - client[:allowed_to_broadcast] = false - end - # Add the client to the clients list: - @clients[socket] = client - if @config[:log_level].to_i > 0 - # Log client connection and the number of connected clients: - puts "#{Time.now}\t#{client[:id]} Connects\t(#{@clients.size} connected)"; STDOUT.flush - end - else - # Close the socket connection: - socket.close - end - rescue - # Client disconnected before the address information (IP, Port) could be retrieved. - end - end - - def handle_client_disconnection(client_socket, delete_socket=true) - # Retrieve the client ID for the current socket: - client_id = @clients[client_socket][:id] - begin - # Close the socket connection: - client_socket.close - rescue - # Rescue if closing the socket fails - end - if delete_socket - # Remove the socket from the sockets list: - @sockets.delete(client_socket) - end - # Remove the client ID from the clients list: - @clients.delete(client_socket) - if @config[:log_level].to_i > 0 - # Log client disconnection and the number of connected clients: - puts "#{Time.now}\t#{client_id} Disconnects\t(#{@clients.size} connected)"; STDOUT.flush - end - end - - def handle_client_input(client_socket, str) - # Create a new XML stream handler: - handler = XMLStreamHandler.new - begin - # As soon as the parser has found the relevant information it throws a :break symbol: - catch :break do - # Parse the given input string for XML messages: - REXML::Document.parse_stream(str, handler) - end - # The handler stores a type property to define the parsed XML message: - case handler.type - when :message - handle_broadcast_message(client_socket, handler.chat_id, handler.channel_id, str) - when :register - handle_client_registration(client_socket, handler.chat_id, handler.user_id, handler.reg_id) - when :authenticate - handle_client_authentication(client_socket, handler.chat_id, handler.user_id, handler.reg_id, handler.channel_ids) - when :policy_file_request - handle_policy_file_request(client_socket) - end - rescue Exception => error - # Rescue if parsing the client input fails and log the error message: - puts "#{Time.now}\t#{@clients[client_socket][:id]} Client Input Error:#{error.to_s.dump}"; STDOUT.flush - end - end - - def handle_broadcast_message(client_socket, chat_id, channel_id, str) - # Check if the_client is allowed to broadcast: - if @clients[client_socket][:allowed_to_broadcast] - # Check if the chat and channel have been registered: - if @chats[chat_id] && (@chats[chat_id][channel_id] || @chats[chat_id]['ALL']) - # Go through the sockets list: - @sockets.each do |socket| - # Skip the server socket and skip the the client socket if broadcast is not to be sent to self: - if socket != @server_socket && (@config[:broadcast_self] || socket != client_socket) - # Only write to clients registered to the given channel or to the "ALL" channel: - if @chats[chat_id]['ALL'] - reg_id = @chats[chat_id]['ALL'][@clients[socket][:user_id]] - end - if !reg_id && @chats[chat_id][channel_id] - reg_id = @chats[chat_id][channel_id][@clients[socket][:user_id]] - end - # Check if the reg_id stored for the given channel and user_id matches the clients reg_id: - if reg_id && reg_id.eql?(@clients[socket][:reg_id]) - begin - # Write the broadcast message on the socket connection: - socket.write(str) - rescue - # Rescue if writing to the socket fails - end - end - end - end - end - if @config[:log_level].to_i > 2 - # Log the message sent by the broadcast client: - puts "#{Time.now}\t#{@clients[client_socket][:id]} Chat:#{chat_id.to_s.dump} Channel:#{channel_id.to_s.dump} Message:#{str.to_s.dump}"; STDOUT.flush - elsif @config[:log_level].to_i > 1 - # Log the message sent by the broadcast client: - puts "#{Time.now}\t#{@clients[client_socket][:id]} Chat:#{chat_id.to_s.dump} Channel:#{channel_id.to_s.dump} Message"; STDOUT.flush - end - end - end - - def handle_client_registration(client_socket, chat_id, user_id, reg_id) - # Save the chat_id, use_id and reg_id as client properties: - @clients[client_socket][:chat_id] = chat_id - @clients[client_socket][:user_id] = user_id - @clients[client_socket][:reg_id] = reg_id - if @config[:log_level].to_i > 1 - # Log the client registration: - puts "#{Time.now}\t#{@clients[client_socket][:id]} Chat:#{chat_id.to_s.dump} User:#{user_id.to_s.dump} Reg:#{reg_id.to_s.dump}"; STDOUT.flush - end - end - - def handle_client_authentication(client_socket, chat_id, user_id, reg_id, channel_ids) - # Only the broadcast clients may send authentication messages: - if @clients[client_socket][:allowed_to_broadcast] - # Create a new chat item if not found for the given chat_id: - if !@chats[chat_id] - @chats[chat_id] = Hash.new - end - # Go through the list of channels for the given chat: - @chats[chat_id].each_key do |key| - # Delete all items for the given user on all channels of the given chat: - @chats[chat_id][key].delete(user_id) - # If the chat channel is empty, delete the channel item: - if @chats[chat_id][key].size == 0 - @chats[chat_id].delete(key) - end - end - # Go through the list of authenticated channel_ids: - channel_ids.each do |channel_id| - # Create a new channel item if not found for the current channel_id (and the given chat_id): - if !@chats[chat_id][channel_id] - @chats[chat_id][channel_id] = Hash.new - end - # Add a user item of the given user_id with the given reg_id to the current channel: - @chats[chat_id][channel_id][user_id] = reg_id - end - if @config[:log_level].to_i > 1 - # Log the client authentication: - puts "#{Time.now}\t#{@clients[client_socket][:id]} Chat:#{chat_id.to_s.dump} User:#{user_id.to_s.dump} Auth:#{reg_id.to_s.dump} Channels:#{channel_ids.join(',').dump}"; STDOUT.flush - end - end - end - - def handle_policy_file_request(client_socket) - begin - # Write the cross-domain-policy to the Flash client: - client_socket.write(@config[:cross_domain_policy]+@config[:eol]) - rescue - # Rescue if writing to the socket fails - end - if @config[:log_level].to_i > 1 - # Log the policy-file-request: - puts "#{Time.now}\t#{@clients[client_socket][:id]} Policy-File-Request"; STDOUT.flush - end - end - -end - -# Start the socket server with the first command line argument as configuration file: -SocketServer.new($*[0]) \ No newline at end of file diff --git a/library/ajaxchat/chat/sounds/index.html b/library/ajaxchat/chat/sounds/index.html deleted file mode 100644 index e69de29bb..000000000 diff --git a/library/ajaxchat/chat/sounds/license.txt b/library/ajaxchat/chat/sounds/license.txt deleted file mode 100644 index d4a756fe8..000000000 --- a/library/ajaxchat/chat/sounds/license.txt +++ /dev/null @@ -1,28 +0,0 @@ -The sounds used for this project have been created by - -==================================== -Stuart Duffield (Soundsnap.com user) -==================================== - -http://soundsnap.com/user/21 - - -The sounds are licensed under the - -================= -Soundsnap Licence -================= - -http://soundsnap.com/licence - -You are Free: - -* To remix or transform the sounds in any way -* To copy, distribute and transmit the sounds -* To use the sounds in any music, film, video game, website etc. -whether commercial or not, without paying royalties or other fees - -You Cannot: - -* Make commercial distribution of these sounds 'as they are'. -For example, you cannot download and sell them as part of a CD library \ No newline at end of file diff --git a/library/ajaxchat/chat/sounds/sound_1.mp3 b/library/ajaxchat/chat/sounds/sound_1.mp3 deleted file mode 100644 index f9526e1ca..000000000 Binary files a/library/ajaxchat/chat/sounds/sound_1.mp3 and /dev/null differ diff --git a/library/ajaxchat/chat/sounds/sound_2.mp3 b/library/ajaxchat/chat/sounds/sound_2.mp3 deleted file mode 100644 index 73bdcd2b1..000000000 Binary files a/library/ajaxchat/chat/sounds/sound_2.mp3 and /dev/null differ diff --git a/library/ajaxchat/chat/sounds/sound_3.mp3 b/library/ajaxchat/chat/sounds/sound_3.mp3 deleted file mode 100644 index 1c765773a..000000000 Binary files a/library/ajaxchat/chat/sounds/sound_3.mp3 and /dev/null differ diff --git a/library/ajaxchat/chat/sounds/sound_4.mp3 b/library/ajaxchat/chat/sounds/sound_4.mp3 deleted file mode 100644 index d2f66baff..000000000 Binary files a/library/ajaxchat/chat/sounds/sound_4.mp3 and /dev/null differ diff --git a/library/ajaxchat/chat/sounds/sound_5.mp3 b/library/ajaxchat/chat/sounds/sound_5.mp3 deleted file mode 100644 index 0d5a5f299..000000000 Binary files a/library/ajaxchat/chat/sounds/sound_5.mp3 and /dev/null differ diff --git a/library/ajaxchat/chat/sounds/sound_6.mp3 b/library/ajaxchat/chat/sounds/sound_6.mp3 deleted file mode 100644 index df6007948..000000000 Binary files a/library/ajaxchat/chat/sounds/sound_6.mp3 and /dev/null differ diff --git a/library/ajaxchat/chat/src/EmptySwf.as b/library/ajaxchat/chat/src/EmptySwf.as deleted file mode 100644 index 373c5e375..000000000 --- a/library/ajaxchat/chat/src/EmptySwf.as +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2006 Adobe Systems Incorporated - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE -OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -package { - import flash.display.MovieClip; - import bridge.FABridge; - - public class EmptySwf extends MovieClip { - - private var externalBridge:FABridge; - - public function EmptySwf() { - super(); - externalBridge = new FABridge(); - externalBridge.rootObject = this; - } - } -} diff --git a/library/ajaxchat/chat/src/FABridge.as b/library/ajaxchat/chat/src/FABridge.as deleted file mode 100644 index d03dba01a..000000000 --- a/library/ajaxchat/chat/src/FABridge.as +++ /dev/null @@ -1,943 +0,0 @@ -/* -Copyright � 2006 Adobe Systems Incorporated - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE -OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - - -/* - * The Bridge class, responsible for navigating JS instances - */ -package bridge -{ - -/* - * imports - */ -import flash.external.ExternalInterface; -import flash.utils.Timer; -import flash.events.*; -import flash.display.DisplayObject; -import flash.system.ApplicationDomain; -import flash.utils.Dictionary; -import flash.utils.setTimeout; - -import mx.collections.errors.ItemPendingError; -import mx.core.IMXMLObject; - -import flash.utils.getQualifiedClassName; -import flash.utils.describeType; -import flash.events.TimerEvent; - -/** - * The FABridge class, responsible for proxying AS objects into javascript - */ -public class FABridge extends EventDispatcher implements IMXMLObject -{ - - //holds a list of stuff to call later, to break the recurrence of the js <> as calls - //you must use the full class name, as returned by the getQualifiedClassName() function - public static const MethodsToCallLater:Object = new Object(); - MethodsToCallLater["mx.collections::ArrayCollection"]="refresh,removeItemAt"; - - public static const EventsToCallLater:Object = new Object(); - EventsToCallLater["mx.data.events::UnresolvedConflictsEvent"]="true"; - EventsToCallLater["mx.events::PropertyChangeEvent"]="true"; - - public static const INITIALIZED:String = "bridgeInitialized"; - - // constructor - public function FABridge() - { - super(); - initializeCallbacks(); - } - - // private vars - - /** - * stores a cache of descriptions of AS types suitable for sending to JS - */ - private var localTypeMap:Dictionary = new Dictionary(); - - /** - * stores an id-referenced dictionary of objects exported to JS - */ - private var localInstanceMap:Dictionary = new Dictionary(); - - /** - * stores an id-referenced dictionary of functions exported to JS - */ - private var localFunctionMap:Dictionary = new Dictionary(); - - /** - * stores an id-referenced dictionary of proxy functions imported from JS - */ - private var remoteFunctionCache:Dictionary = new Dictionary(); - - /** - * stores a list of custom serialization functions - */ - private var customSerializersMap:Dictionary = new Dictionary(); - - /** - * stores a map of object ID's and their reference count - */ - private var refMap:Dictionary = new Dictionary(); - /** - * a local counter for generating unique IDs - */ - private var nextID:Number = 0; - - private var lastRef:int; - - /* values that can't be serialized natively across the bridge are packed and identified by type. - These constants represent different serialization types */ - public static const TYPE_ASINSTANCE:uint = 1; - public static const TYPE_ASFUNCTION:uint = 2; - public static const TYPE_JSFUNCTION:uint = 3; - public static const TYPE_ANONYMOUS:uint = 4; - - private var _initChecked:Boolean = false; - - // properties - - //getters and setters for the main component in the swf - the root - public function get rootObject():DisplayObject {return _rootObject;} - public function set rootObject(value:DisplayObject):void - { - _rootObject = value; - checkInitialized(); - } - - /** - * the bridge name - */ - public var bridgeName:String; - private var _registerComplete:Boolean = false; - - /** - * increment the reference count for an object being passed over the bridge - */ - public function incRef(objId:int):void - { - if(refMap[objId] == null) { - //the object is being created; we now add it to the map and set its refCount = 1 - refMap[objId] = 1; - } else { - refMap[objId] = refMap[objId] +1; - } - } - - /** - * when an object has been completely passed to JS its reference count is decreased with 1 - */ - public function releaseRef(objId:int):void - { - if(refMap[objId] != null) - { - var newRefVal:int = refMap[objId] - 1; - // if the object exists in the referenceMap and its count equals or has dropped under 0 we clean it up - if(refMap[objId] != null && newRefVal <= 0) - { - delete refMap[objId]; - delete localInstanceMap[objId]; - } - else - { - refMap[objId] = newRefVal; - } - } - } - - /** - * attaches the callbacks to external interface - */ - public function initializeCallbacks():void - { - if (ExternalInterface.available == false) - { - return; - } - - ExternalInterface.addCallback("getRoot", js_getRoot); - ExternalInterface.addCallback("getPropFromAS", js_getPropFromAS); - ExternalInterface.addCallback("setPropInAS", js_setPropertyInAS); - ExternalInterface.addCallback("invokeASMethod", js_invokeMethod); - ExternalInterface.addCallback("invokeASFunction", js_invokeFunction); - ExternalInterface.addCallback("releaseASObjects", js_releaseASObjects); - ExternalInterface.addCallback("create", js_create); - ExternalInterface.addCallback("releaseNamedASObject",js_releaseNamedASObject); - ExternalInterface.addCallback("incRef", incRef); - ExternalInterface.addCallback("releaseRef", releaseRef); - } - - private var _rootObject:DisplayObject; - - private var _document:DisplayObject; - - /** - * called to check whether the bridge has been initialized for the specified document/id pairs - */ - public function initialized(document:Object, id:String):void - { - _document = (document as DisplayObject); - - if (_document != null) - { - checkInitialized(); - } - } - - private function get baseObject():DisplayObject - { - return (rootObject == null)? _document:rootObject; - } - - - private function checkInitialized():void - { - if(_initChecked== true) - { - return; - } - _initChecked = true; - - // oops! timing error. Player team is working on it. - var t:Timer = new Timer(200,1); - t.addEventListener(TimerEvent.TIMER,auxCheckInitialized); - t.start(); - } - - /** - * auxiliary initialization check that is called after the timing has occurred - */ - private function auxCheckInitialized(e:Event):void - { - - var bCanGetParams:Boolean = true; - - try - { - var params:Object = baseObject.root.loaderInfo.parameters; - } - catch (e:Error) - { - bCanGetParams = false; - } - - if (bCanGetParams == false) - { - var t:Timer = new Timer(100); - var timerFunc:Function = function(e:TimerEvent):void - { - if(baseObject.root != null) - { - try - { - bCanGetParams = true; - var params:Object = baseObject.root.loaderInfo.parameters; - } - catch (err:Error) - { - bCanGetParams = false; - } - if (bCanGetParams) - { - t.removeEventListener(TimerEvent.TIMER, timerFunc); - t.stop(); - dispatchInit(); - } - } - } - t.addEventListener(TimerEvent.TIMER, timerFunc); - t.start(); - } - else - { - dispatchInit(); - } - } - - /** - * call into JS to annunce that the bridge is ready to be used - */ - private function dispatchInit(e:Event = null):void - { - if(_registerComplete == true) - { - return; - } - - if (ExternalInterface.available == false) - { - return; - } - - if (bridgeName == null) - { - bridgeName = baseObject.root.loaderInfo.parameters["bridgeName"]; - - if(bridgeName == null) - { - bridgeName = "flash"; - } - } - - _registerComplete = ExternalInterface.call("FABridge__bridgeInitialized", [bridgeName]); - dispatchEvent(new Event(FABridge.INITIALIZED)); - } - - // serialization/deserialization - - /** serializes a value for transfer across the bridge. primitive types are left as is. Arrays are left as arrays, but individual - * values in the array are serialized according to their type. Functions and class instances are inserted into a hash table and sent - * across as keys into the table. - * - * For class instances, if the instance has been sent before, only its id is passed. If This is the first time the instance has been sent, - * a ref descriptor is sent associating the id with a type string. If this is the first time any instance of that type has been sent - * across, a descriptor indicating methods, properties, and variables of the type is also sent across - */ - public function serialize(value:*, keep_refs:Boolean=false):* - { - var result:* = {}; - result.newTypes = []; - result.newRefs = {}; - - if (value is Number || value is Boolean || value is String || value == null || value == undefined || value is int || value is uint) - { - result = value; - } - else if (value is Array) - { - result = []; - for(var i:int = 0; i < value.length; i++) - { - result[i] = serialize(value[i], keep_refs); - } - } - else if (value is Function) - { - // serialize a class - result.type = TYPE_ASFUNCTION; - result.value = getFunctionID(value, true); - } - else if (getQualifiedClassName(value) == "Object") - { - result.type = TYPE_ANONYMOUS; - result.value = value; - } - else - { - // serialize a class - result.type = TYPE_ASINSTANCE; - // make sure the type info is available - var className:String = getQualifiedClassName(value); - - var serializer:Function = customSerializersMap[className]; - - // try looking up the serializer under an alternate name - if (serializer == null) - { - if (className.indexOf('$') > 0) - { - var split:int = className.lastIndexOf(':'); - if (split > 0) - { - var alternate:String = className.substring(split+1); - serializer = customSerializersMap[alternate]; - } - } - } - - if (serializer != null) - { - return serializer.apply(null, [value, keep_refs]); - } - else - { - if (retrieveCachedTypeDescription(className, false) == null) - { - try - { - result.newTypes.push(retrieveCachedTypeDescription(className, true)); - } - catch(err:Error) - { - var interfaceInfo:XMLList = describeType(value).implementsInterface; - for each (var interf:XML in interfaceInfo) - { - className = interf.@type.toString(); - if (retrieveCachedTypeDescription(className, false) == null){ - result.newTypes.push(retrieveCachedTypeDescription(className, true)); - } //end if push new data type - - } //end for going through interfaces - var baseClass:String = describeType(value).@base.toString(); - if (retrieveCachedTypeDescription(baseClass, false) == null){ - result.newTypes.push(retrieveCachedTypeDescription(baseClass, true)); - } //end if push new data type - } - } - - // make sure the reference is known - var objRef:Number = getRef(value, false); - var should_keep_ref:Boolean = false; - if (isNaN(objRef)) - { - //create the reference if necessary - objRef = getRef(value, true); - should_keep_ref = true; - } - - result.newRefs[objRef] = className; - //trace("serializing new reference: " + className + " with value" + value); - - //the result is a getProperty / invokeMethod call. How can we know how much you will need the object ? - if (keep_refs && should_keep_ref) { - incRef(objRef); - } - result.value = objRef; - } - } - return result; - } - - /** - * deserializes a value passed in from javascript. See serialize for details on how values are packed and - * unpacked for transfer across the bridge. - */ - public function deserialize(valuePackage:*):* - { - var result:*; - if (valuePackage is Number || valuePackage is Boolean || valuePackage is String || valuePackage === null || valuePackage === undefined || valuePackage is int || valuePackage is uint) - { - result = valuePackage; - } - else if(valuePackage is Array) - { - result = []; - for (var i:int = 0; i < valuePackage.length; i++) - { - result[i] = deserialize(valuePackage[i]); - } - } - else if (valuePackage.type == FABridge.TYPE_JSFUNCTION) - { - result = getRemoteFunctionProxy(valuePackage.value, true); - } - else if (valuePackage.type == FABridge.TYPE_ASFUNCTION) - { - throw new Error("as functions can't be passed back to as yet"); - } - else if (valuePackage.type == FABridge.TYPE_ASINSTANCE) - { - result = resolveRef(valuePackage.value); - } - else if (valuePackage.type == FABridge.TYPE_ANONYMOUS) - { - result = valuePackage.value; - } - return result; - } - - public function addCustomSerialization(className:String, serializationFunction:Function):void - { - customSerializersMap[className] = serializationFunction; - } - - - // type management - - /** - * retrieves a type description for the type indicated by className, building one and caching it if necessary - */ - public function retrieveCachedTypeDescription(className:String, createifNecessary:Boolean):Object - { - if(localTypeMap[className] == null && createifNecessary == true) - { - localTypeMap[className] = buildTypeDescription(className); - } - return localTypeMap[className]; - } - - public function addCachedTypeDescription(className:String, desc:Object):Object - { - if (localTypeMap[className] == null) - { - localTypeMap[className] = desc; - } - return localTypeMap[className]; - } - - /** - * builds a type description for the type indiciated by className - */ - public function buildTypeDescription(className:String):Object - { - var desc:Object = {}; - - className = className.replace(/::/,"."); - - var objClass:Class = Class(ApplicationDomain.currentDomain.getDefinition(className)); - - var xData:XML = describeType(objClass); - - desc.name = xData.@name.toString(); - - var methods:Array = []; - var xMethods:XMLList = xData.factory.method; - for (var i:int = 0; i < xMethods.length(); i++) - { - methods.push(xMethods[i].@name.toString()); - } - desc.methods = methods; - - var accessors:Array = []; - var xAcc:XMLList = xData.factory.accessor; - for (i = 0; i < xAcc.length(); i++) - { - accessors.push(xAcc[i].@name.toString()); - } - xAcc = xData.factory.variable; - for (i = 0; i < xAcc.length(); i++) - { - accessors.push(xAcc[i].@name.toString()); - } - desc.accessors = accessors; - - return desc; - } - -// instance mgmt - - /** - * resolves an instance id passed from JS to an instance previously cached for representing in JS - */ - private function resolveRef(objRef:Number):Object - { - try - { - return (objRef == -1)? baseObject : localInstanceMap[objRef]; - } - catch(e:Error) - { - return serialize("__FLASHERROR__"+"||"+e.message); - } - - return (objRef == -1)? baseObject : localInstanceMap[objRef]; - } - - /** - * returns an id associated with the object provided for passing across the bridge to JS - */ - public function getRef(obj:Object, createIfNecessary:Boolean):Number - { - try - { - var ref:Number; - - if (createIfNecessary) - { - var newRef:Number = nextID++; - localInstanceMap[newRef] = obj; - ref = newRef; - } - else - { - for (var key:* in localInstanceMap) - { - if (localInstanceMap[key] === obj) - { - ref = key; - break; - } - } - } - } - catch(e:Error) - { - return serialize("__FLASHERROR__"+"||"+e.message) - } - - return ref; - } - - - // function management - - /** - * resolves a function ID passed from JS to a local function previously cached for representation in JS - */ - private function resolveFunctionID(funcID:Number):Function - { - return localFunctionMap[funcID]; - } - - /** - * associates a unique ID with a local function suitable for passing across the bridge to proxy in Javascript - */ - public function getFunctionID(f:Function, createIfNecessary:Boolean):Number - { - var ref:Number; - - if (createIfNecessary) - { - var newID:Number = nextID++; - localFunctionMap[newID] = f; - ref = newID; - } - else - { - for (var key:* in localFunctionMap) - { - if (localFunctionMap[key] === f) { - ref = key; - } - break; - } - } - - return ref; - } - - /** - * returns a proxy function that represents a function defined in javascript. This function can be called syncrhonously, and will - * return any values returned by the JS function - */ - public function getRemoteFunctionProxy(functionID:Number, createIfNecessary:Boolean):Function - { - try - { - if (remoteFunctionCache[functionID] == null) - { - remoteFunctionCache[functionID] = function(...args):* - { - var externalArgs:Array = args.concat(); - externalArgs.unshift(functionID); - var serializedArgs:* = serialize(externalArgs, true); - - if(checkToThrowLater(serializedArgs[1])) - { - setTimeout(function a():* { - try { - var retVal:* = ExternalInterface.call("FABridge__invokeJSFunction", serializedArgs); - for(var i:int = 0; i= 5 | Enabled JavaScript | -| MySQL >= 4 | Enabled Cookies | -| Ruby >= 1.8 (optional) | Flash Plugin >= 9 (optional) | - - -Features --------- -- Easy installation -- Usable as shoutbox -- Multiple channels -- Private messaging -- Private channels -- Invitation system -- Kick/Ban or Ignore offending Users -- Online users list with user menu -- Emoticons/Smilies -- Easy way to add custom emoticons -- BBCode support -- Optional Flash based sound support -- Optional visual update information (changing window title) -- Clickable Hyperlinks -- Splitting of long words to preserve chat layout -- Flood control -- Possibility to delete messages inside the chat -- IRC style commands -- Easy interface to add custom commands -- Possibility to define opening hours for the chat -- Possibility to enable/disable guest users -- Persistent client-side settings -- Multiple languages (auto-detection of ACCEPT_LANGUAGE browser setting) -- Multiple styles with easy layout customization through stylesheets (CSS) and templates -- Automatic adjustment of displayed time to local client timezone -- Standards compliance (XHTML 1.0 strict) -- Accepts any text input, including code and special characters -- Multiline input field with the possibility to enter line breaks -- Message length counter -- Realtime monitoring and logs viewer -- Support for unicode (UTF-8) and non-unicode content types -- Bandwidth saving update calls (only updated data is sent) -- Optional support to push updates over a Flash based socket connection (increased performance and responsiveness) -- Survives connection timeouts -- Easy integration into existing authentication systems -- Sample phpBB3, MyBB, PunBB, SMF and vBulletin integrations available -- Separation of layout and code -- Well commented Source Code -- Developed with Security as integral part - built to prevent Code injections, SQL injections, Cross-site scripting (XSS), Session stealing and other attacks -- Tested successfully with Microsoft Internet Explorer, Mozilla Firefox, Opera and Safari - built to work with all modern browsers :) - - - -Help ----- -Essential documentation is contained in the attached readme files - -For more documentation consult the github wiki: https://github.com/Frug/AJAX-Chat/wiki - -For support questions use google groups: https://groups.google.com/forum/#!forum/ajax-chat - -To report bugs use github issues: https://github.com/Frug/AJAX-Chat -- cgit v1.2.3 From 8c80589b5ab196287788ff385733dec1df005044 Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 27 Jan 2014 21:02:57 -0800 Subject: chat data structures --- boot.php | 2 +- install/database.sql | 60 +++++++++++++++++++++++++++++++++++++++++++++------- install/update.php | 59 +++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 110 insertions(+), 11 deletions(-) diff --git a/boot.php b/boot.php index b52ef87eb..73525b4b5 100755 --- a/boot.php +++ b/boot.php @@ -46,7 +46,7 @@ define ( 'RED_PLATFORM', 'Red Matrix' ); define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R'); define ( 'ZOT_REVISION', 1 ); -define ( 'DB_UPDATE_VERSION', 1092 ); +define ( 'DB_UPDATE_VERSION', 1093 ); define ( 'EOL', '
    ' . "\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); diff --git a/install/database.sql b/install/database.sql index 597124566..1c87b725b 100644 --- a/install/database.sql +++ b/install/database.sql @@ -87,7 +87,7 @@ CREATE TABLE IF NOT EXISTS `attach` ( `aid` int(10) unsigned NOT NULL DEFAULT '0', `uid` int(10) unsigned NOT NULL DEFAULT '0', `hash` char(64) NOT NULL DEFAULT '', - `creator` char(128) NOT NULL DEFAULT '0', + `creator` char(128) NOT NULL DEFAULT '', `filename` char(255) NOT NULL DEFAULT '', `filetype` char(64) NOT NULL DEFAULT '', `filesize` int(10) unsigned NOT NULL DEFAULT '0', @@ -105,7 +105,6 @@ CREATE TABLE IF NOT EXISTS `attach` ( KEY `aid` (`aid`), KEY `uid` (`uid`), KEY `hash` (`hash`), - KEY `creator` (`creator`), KEY `filename` (`filename`), KEY `filetype` (`filetype`), KEY `filesize` (`filesize`), @@ -113,7 +112,8 @@ CREATE TABLE IF NOT EXISTS `attach` ( KEY `edited` (`edited`), KEY `revision` (`revision`), KEY `folder` (`folder`), - KEY `flags` (`flags`) + KEY `flags` (`flags`), + KEY `creator` (`creator`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `auth_codes` ( @@ -214,6 +214,50 @@ CREATE TABLE IF NOT EXISTS `channel` ( KEY `channel_dirdate` (`channel_dirdate`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `chat` ( + `chat_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `chat_room` int(10) unsigned NOT NULL DEFAULT '0', + `chat_xchan` char(255) NOT NULL DEFAULT '', + `chat_text` mediumtext NOT NULL, + `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`chat_id`), + KEY `chat_room` (`chat_room`), + KEY `chat_xchan` (`chat_xchan`), + KEY `created` (`created`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `chatpresence` ( + `cp_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `cp_room` int(10) unsigned NOT NULL DEFAULT '0', + `cp_xchan` char(255) NOT NULL DEFAULT '', + `cp_last` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `cp_status` char(255) NOT NULL, + PRIMARY KEY (`cp_id`), + KEY `cp_room` (`cp_room`), + KEY `cp_xchan` (`cp_xchan`), + KEY `cp_last` (`cp_last`), + KEY `cp_status` (`cp_status`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `chatroom` ( + `cr_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `cr_aid` int(10) unsigned NOT NULL DEFAULT '0', + `cr_uid` int(10) unsigned NOT NULL DEFAULT '0', + `cr_name` char(255) NOT NULL DEFAULT '', + `cr_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `cr_edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `allow_cid` mediumtext NOT NULL, + `allow_gid` mediumtext NOT NULL, + `deny_cid` mediumtext NOT NULL, + `deny_gid` mediumtext NOT NULL, + PRIMARY KEY (`cr_id`), + KEY `cr_aid` (`cr_aid`), + KEY `cr_uid` (`cr_uid`), + KEY `cr_name` (`cr_name`), + KEY `cr_created` (`cr_created`), + KEY `cr_edited` (`cr_edited`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + CREATE TABLE IF NOT EXISTS `clients` ( `client_id` varchar(20) NOT NULL, `pw` varchar(20) NOT NULL, @@ -596,17 +640,17 @@ CREATE TABLE IF NOT EXISTS `obj` ( `obj_type` int(10) unsigned NOT NULL DEFAULT '0', `obj_obj` char(255) NOT NULL DEFAULT '', `obj_channel` int(10) unsigned NOT NULL DEFAULT '0', - `allow_cid` MEDIUMTEXT NOT NULL DEFAULT '', - `allow_gid` MEDIUMTEXT NOT NULL DEFAULT '', - `deny_cid` MEDIUMTEXT NOT NULL DEFAULT '', - `deny_gid` MEDIUMTEXT NOT NULL DEFAULT '', + `allow_cid` mediumtext NOT NULL, + `allow_gid` mediumtext NOT NULL, + `deny_cid` mediumtext NOT NULL, + `deny_gid` mediumtext NOT NULL, PRIMARY KEY (`obj_id`), KEY `obj_verb` (`obj_verb`), KEY `obj_page` (`obj_page`), KEY `obj_type` (`obj_type`), KEY `obj_channel` (`obj_channel`), KEY `obj_obj` (`obj_obj`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `outq` ( `outq_hash` char(255) NOT NULL, diff --git a/install/update.php b/install/update.php index 3e5589820..9ab5db8c6 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@ Date: Mon, 27 Jan 2014 23:49:42 -0800 Subject: preserve expiration when editing --- include/ItemObject.php | 2 +- include/conversation.php | 1 + mod/editpost.php | 12 +++++++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/include/ItemObject.php b/include/ItemObject.php index 9a62cee4b..e9a0b65c0 100644 --- a/include/ItemObject.php +++ b/include/ItemObject.php @@ -218,7 +218,7 @@ class Item extends BaseObject { 'isotime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'), 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), 'editedtime' => (($item['edited'] != $item['created']) ? sprintf( t('last edited: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r')) : ''), - 'expiretime' => (($item['expires'] > 0) ? sprintf( t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')):''), + 'expiretime' => (($item['expires'] !== '0000-00-00 00:00:00') ? sprintf( t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')):''), 'lock' => $lock, 'verified' => $verified, 'unverified' => $unverified, diff --git a/include/conversation.php b/include/conversation.php index 34d661004..316bc1612 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -687,6 +687,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $ 'isotime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'), 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), 'editedtime' => (($item['edited'] != $item['created']) ? sprintf( t('last edited: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r')) : ''), + 'expiretime' => (($item['expires'] !== '0000-00-00 00:00:00') ? sprintf( t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')):''), 'location' => $location, 'indent' => '', 'owner_name' => $owner_name, diff --git a/mod/editpost.php b/mod/editpost.php index 7cc33d60d..918a70d36 100644 --- a/mod/editpost.php +++ b/mod/editpost.php @@ -92,6 +92,11 @@ function editpost_content(&$a) { } + $cipher = get_pconfig(get_app()->profile['profile_uid'],'system','default_cipher'); + if(! $cipher) + $cipher = 'aes256'; + + $o .= replace_macros($tpl,array( '$return_path' => $_SESSION['return_url'], '$action' => 'item', @@ -128,11 +133,12 @@ function editpost_content(&$a) { '$jotplugins' => $jotplugins, '$sourceapp' => t($a->sourcename), '$catsenabled' => $catsenabled, - '$defexpire' => $itm[0]['expires'], - '$feature_expire' => 'none', + '$defexpire' => datetime_convert('UTC', date_default_timezone_get(),$itm[0]['expires']), + '$feature_expire' => ((feature_enabled(get_app()->profile['profile_uid'],'content_expire') && (! $webpage)) ? 'block' : 'none'), '$expires' => t('Set expiration date'), - '$feature_encrypt' => 'none', + '$feature_encrypt' => ((feature_enabled(get_app()->profile['profile_uid'],'content_encrypt') && (! $webpage)) ? 'block' : 'none'), '$encrypt' => t('Encrypt text'), + '$cipher' => $cipher, '$expiryModalOK' => t('OK'), '$expiryModalCANCEL' => t('Cancel'), )); -- cgit v1.2.3 From 8c8be2a05e7646595b2c811dd4ab2ac7d7a98b69 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 28 Jan 2014 15:05:44 -0800 Subject: add client field to chatpresence - which will give us a place to put IP addresses for webRTC. Might as well allow for that since we'll (soon) have presence. Then we wouldn't need SIP and folks can "just" p2p each other using any mechanism they wish if they have permission to do so. --- boot.php | 2 +- doc/To-Do-Code.md | 4 ++-- install/database.sql | 1 + install/update.php | 8 +++++++- version.inc | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/boot.php b/boot.php index 73525b4b5..7be74e64a 100755 --- a/boot.php +++ b/boot.php @@ -46,7 +46,7 @@ define ( 'RED_PLATFORM', 'Red Matrix' ); define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R'); define ( 'ZOT_REVISION', 1 ); -define ( 'DB_UPDATE_VERSION', 1093 ); +define ( 'DB_UPDATE_VERSION', 1094 ); define ( 'EOL', '
    ' . "\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); diff --git a/doc/To-Do-Code.md b/doc/To-Do-Code.md index 3baf08d40..5804801b4 100644 --- a/doc/To-Do-Code.md +++ b/doc/To-Do-Code.md @@ -17,7 +17,7 @@ We need much more than this, but here are areas where developers can help. Pleas * (Advanced) create a UI for building Comanche pages -* Help with WebDAV and file storage implementation, especially replacing the fugly Sabre web UI. +* templatise and translate the Web interface to webDAV * Extend WebDAV to provide desktop access to photo albums @@ -25,7 +25,7 @@ We need much more than this, but here are areas where developers can help. Pleas * service classes - account overview page showing resources consumed by channel. With special consideration this page can also be accessed at a meta level by the site admin to drill down on problematic accounts/channels. -* Events module - bring back birthday reminders for friends, fix permissions on events, and provide JS translation support for the calendar overview +* Events module - bring back birthday reminders for friends, fix permissions on events, and provide JS translation support for the calendar overview; integrate with calDAV * Events module - event followups and RSVP diff --git a/install/database.sql b/install/database.sql index 1c87b725b..dba03da65 100644 --- a/install/database.sql +++ b/install/database.sql @@ -232,6 +232,7 @@ CREATE TABLE IF NOT EXISTS `chatpresence` ( `cp_xchan` char(255) NOT NULL DEFAULT '', `cp_last` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `cp_status` char(255) NOT NULL, + `cp_client` char(128) NOT NULL DEFAULT '', PRIMARY KEY (`cp_id`), KEY `cp_room` (`cp_room`), KEY `cp_xchan` (`cp_xchan`), diff --git a/install/update.php b/install/update.php index 9ab5db8c6..180b8d5a0 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@ Date: Wed, 29 Jan 2014 00:43:54 +0100 Subject: Don't look for text emoticons inside the matching angle brackets of a HTML tag --- include/text.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/text.php b/include/text.php index f5c440e4a..4cb7a1d5e 100755 --- a/include/text.php +++ b/include/text.php @@ -891,6 +891,7 @@ function smilies($s, $sample = false) { $s = preg_replace_callback('/
    (.*?)<\/pre>/ism','smile_encode',$s);
     	$s = preg_replace_callback('/(.*?)<\/code>/ism','smile_encode',$s);
    +	$s = preg_replace_callback('/<(.*?)>/s','smile_encode',$s);
     
     	$texts =  array( 
     		'<3', 
    @@ -983,6 +984,7 @@ function smilies($s, $sample = false) {
     
     	$s = preg_replace_callback('/
    (.*?)<\/pre>/ism','smile_decode',$s);
     	$s = preg_replace_callback('/(.*?)<\/code>/ism','smile_decode',$s);
    +	$s = preg_replace_callback('/<(.*?)>/s','smile_decode',$s);
     
     	return $s;
     
    -- 
    cgit v1.2.3
    
    
    From 6e22aa25cc941f542a192ef32a2e8ee4f23bb1c1 Mon Sep 17 00:00:00 2001
    From: friendica 
    Date: Tue, 28 Jan 2014 15:52:54 -0800
    Subject: basic presence indication
    
    ---
     mod/ping.php | 25 +++++++++++++++++++++++++
     1 file changed, 25 insertions(+)
    
    diff --git a/mod/ping.php b/mod/ping.php
    index dda87dec2..b9ecf9b41 100644
    --- a/mod/ping.php
    +++ b/mod/ping.php
    @@ -43,6 +43,31 @@ function ping_init(&$a) {
     		unset($_SESSION['sysmsg_info']);
     	}
     
    +	if(get_observer_hash() && (! $result['invalid'])) {
    +		$r = q("select cp_id from chatpresence where cp_xchan = '%s'",
    +			dbesc(get_observer_hash())
    +		);
    +		if($r) {
    +			foreach($r as $rr) {
    +				q("update chatpresence set cp_last = '%s' where cp_id = %d limit 1",
    +					intval($rr['cp_id'])
    +				);
    +			}
    +		}
    +		else {
    +			q("insert into chatpresence ( cp_xchan, cp_last, cp_status, cp_client)
    +				values( '%s', '%s', '%s', '%s' ) ",
    +				dbesc(get_observer_hash()),
    +				dbesc(datetime_convert()),
    +				dbesc('online'),
    +				dbesc($_SERVER['REMOTE_ADDR'])
    +			);
    +		}
    +	}
    +
    +	q("delete from chatpresence where cp_last < UTC_TIMESTAMP() - INTERVAL 2 MINUTE"); 
    +
    +
     	if((! local_user()) || ($result['invalid'])) {
     		echo json_encode($result);
     		killme();
    -- 
    cgit v1.2.3
    
    
    From 8efac0cfd6db063a469ada1db4e5767a5fd975c6 Mon Sep 17 00:00:00 2001
    From: friendica 
    Date: Tue, 28 Jan 2014 16:16:55 -0800
    Subject: fix sql query and provide setting to hide online status
    
    ---
     mod/ping.php          | 2 +-
     mod/settings.php      | 7 +++++++
     view/tpl/settings.tpl | 3 +++
     3 files changed, 11 insertions(+), 1 deletion(-)
    
    diff --git a/mod/ping.php b/mod/ping.php
    index b9ecf9b41..f067091da 100644
    --- a/mod/ping.php
    +++ b/mod/ping.php
    @@ -50,6 +50,7 @@ function ping_init(&$a) {
     		if($r) {
     			foreach($r as $rr) {
     				q("update chatpresence set cp_last = '%s' where cp_id = %d limit 1",
    +					dbesc(datetime_convert()),
     					intval($rr['cp_id'])
     				);
     			}
    @@ -67,7 +68,6 @@ function ping_init(&$a) {
     
     	q("delete from chatpresence where cp_last < UTC_TIMESTAMP() - INTERVAL 2 MINUTE"); 
     
    -
     	if((! local_user()) || ($result['invalid'])) {
     		echo json_encode($result);
     		killme();
    diff --git a/mod/settings.php b/mod/settings.php
    index ee6ef45de..7ff76cd3e 100644
    --- a/mod/settings.php
    +++ b/mod/settings.php
    @@ -266,6 +266,7 @@ function settings_post(&$a) {
     	$expire_network_only    = ((x($_POST,'expire_network_only'))? intval($_POST['expire_network_only'])	 : 0);
     
     	$allow_location   = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0);
    +	$hide_presence    = (((x($_POST,'hide_presence')) && (intval($_POST['hide_presence']) == 1)) ? 1: 0);
     
     	$publish          = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
     	$page_flags       = (((x($_POST,'page-flags')) && (intval($_POST['page-flags']))) ? intval($_POST['page-flags']) : 0);
    @@ -395,6 +396,7 @@ function settings_post(&$a) {
     	set_pconfig(local_user(),'system','post_joingroup', $post_joingroup);
     	set_pconfig(local_user(),'system','post_profilechange', $post_profilechange);
     	set_pconfig(local_user(),'system','blocktags',$blocktags);
    +	set_pconfig(local_user(),'system','hide_online_status',$hide_presence);
     
     
     	$r = q("update channel set channel_name = '%s', channel_pageflags = %d, channel_timezone = '%s', channel_location = '%s', channel_notifyflags = %d, channel_max_anon_mail = %d, channel_max_friend_req = %d, channel_expire_days = %d, channel_default_group = '%s', channel_r_stream = %d, channel_r_profile = %d, channel_r_photos = %d, channel_r_abook = %d, channel_w_stream = %d, channel_w_wall = %d, channel_w_tagwall = %d, channel_w_comment = %d, channel_w_mail = %d, channel_w_photos = %d, channel_w_chat = %d, channel_a_delegate = %d, channel_r_storage = %d, channel_w_storage = %d, channel_r_pages = %d, channel_w_pages = %d, channel_a_republish = %d, channel_allow_cid = '%s', channel_allow_gid = '%s', channel_deny_cid = '%s', channel_deny_gid = '%s'  where channel_id = %d limit 1",
    @@ -821,6 +823,9 @@ function settings_content(&$a) {
     		$unkmail    = $a->user['unkmail'];
     		$cntunkmail = $a->user['cntunkmail'];
     
    +		$hide_presence = intval(get_pconfig(local_user(), 'system','hide_online_status'));
    +
    +
     		$expire_items = get_pconfig(local_user(), 'expire','items');
     		$expire_items = (($expire_items===false)? '1' : $expire_items); // default if not set: 1
     	
    @@ -918,6 +923,8 @@ function settings_content(&$a) {
     
     			'$h_prv' 	=> t('Security and Privacy Settings'),
     
    +			'$hide_presence' => array('hide_presence', t('Hide my online presence'),$hide_presence, t('Prevents showing if you are available for chat')),
    +
     			'$lbl_pmacro' => t('Quick Privacy Settings:'),
     			'$pmacro3'    => t('Very Public - extremely permissive'),
     			'$pmacro2'    => t('Typical - default public, privacy when desired'),
    diff --git a/view/tpl/settings.tpl b/view/tpl/settings.tpl
    index 7b6add231..b1a4f956d 100755
    --- a/view/tpl/settings.tpl
    +++ b/view/tpl/settings.tpl
    @@ -22,6 +22,9 @@
     
     

    {{$h_prv}}

    +{{include file="field_checkbox.tpl" field=$hide_presence}} + +
    {{$lbl_pmacro}}
    • {{$pmacro3}}
    • -- cgit v1.2.3 From d79a2e3b55c7cf6c775b8ecf7fbf708248aa16c8 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 28 Jan 2014 16:32:47 -0800 Subject: undo pull request #287 --- include/text.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/text.php b/include/text.php index 4cb7a1d5e..a459296cb 100755 --- a/include/text.php +++ b/include/text.php @@ -891,7 +891,7 @@ function smilies($s, $sample = false) { $s = preg_replace_callback('/
      (.*?)<\/pre>/ism','smile_encode',$s);
       	$s = preg_replace_callback('/(.*?)<\/code>/ism','smile_encode',$s);
      -	$s = preg_replace_callback('/<(.*?)>/s','smile_encode',$s);
      +//	$s = preg_replace_callback('/<(.*?)>/ism','smile_encode',$s);
       
       	$texts =  array( 
       		'<3', 
      @@ -984,7 +984,7 @@ function smilies($s, $sample = false) {
       
       	$s = preg_replace_callback('/
      (.*?)<\/pre>/ism','smile_decode',$s);
       	$s = preg_replace_callback('/(.*?)<\/code>/ism','smile_decode',$s);
      -	$s = preg_replace_callback('/<(.*?)>/s','smile_decode',$s);
      +//	$s = preg_replace_callback('/<(.*?)>/s','smile_decode',$s);
       
       	return $s;
       
      -- 
      cgit v1.2.3
      
      
      From 3dfd38021f193d16d3c6ed4824fa24e42a62238f Mon Sep 17 00:00:00 2001
      From: friendica 
      Date: Tue, 28 Jan 2014 16:35:10 -0800
      Subject: SECURITY: remove style and class bbcodes
      
      ---
       include/bbcode.php | 8 --------
       1 file changed, 8 deletions(-)
      
      diff --git a/include/bbcode.php b/include/bbcode.php
      index 084c02125..fec8750e9 100644
      --- a/include/bbcode.php
      +++ b/include/bbcode.php
      @@ -442,14 +442,6 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
       	// Check for list text
       	$Text = str_replace("[*]", "
    • ", $Text); - // Check for style sheet commands - if (strpos($Text,'[/style]') !== false) { - $Text = preg_replace("(\[style=(.*?)\](.*?)\[\/style\])ism","$2",$Text); - } - // Check for CSS classes - if (strpos($Text,'[/class]') !== false) { - $Text = preg_replace("(\[class=(.*?)\](.*?)\[\/class\])ism","$2",$Text); - } // handle nested lists $endlessloop = 0; -- cgit v1.2.3 From cc11535e34f1cc91251d7ca3f38ef38997774857 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 28 Jan 2014 17:07:25 -0800 Subject: online indication on profile sidebar --- include/identity.php | 28 +++++++++++++++++++++++++++- view/js/icon_translate.js | 1 + view/theme/redbasic/css/style.css | 4 ++++ view/tpl/profile_vcard.tpl | 2 +- 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/include/identity.php b/include/identity.php index a99474d42..ee289495d 100644 --- a/include/identity.php +++ b/include/identity.php @@ -544,6 +544,9 @@ function profile_load(&$a, $nickname, $profile = '') { } $a->profile = $r[0]; + $online = get_online_status($nickname); + $a->profile['online_status'] = $online['result']; + $a->profile_uid = $r[0]['profile_uid']; $a->page['title'] = $a->profile['channel_name'] . " - " . $a->profile['channel_address'] . "@" . $a->get_hostname(); @@ -678,13 +681,15 @@ function profile_sidebar($profile, $block = 0, $show_connect = true) { $gender = ((x($profile,'gender') == 1) ? t('Gender:') : False); $marital = ((x($profile,'marital') == 1) ? t('Status:') : False); $homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False); + $profile['online'] = (($profile['online_status'] === 'online') ? t('Online Now') : False); +logger('online: ' . $profile['online']); if(! perm_is_allowed($profile['uid'],((is_array($observer)) ? $observer['xchan_hash'] : ''),'view_profile')) { $block = true; } if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) { - $location = $pdesc = $gender = $marital = $homepage = False; + $location = $pdesc = $gender = $marital = $homepage = $online = False; } $firstname = ((strpos($profile['name'],' ')) @@ -1144,3 +1149,24 @@ function is_foreigner($s) { function is_member($s) { return((is_foreigner($s)) ? false : true); } + +function get_online_status($nick) { + + $ret = array('result' => false); + + $r = q("select channel_id, channel_hash from channel where channel_address = '%s' limit 1", + dbesc(argv(1)) + ); + if($r) { + $hide = get_pconfig($r[0]['channel_id'],'system','hide_online_status'); + if($hide) + return $ret; + $x = q("select cp_status from chatpresence where cp_xchan = '%s' and cp_room = 0 limit 1", + dbesc($r[0]['channel_hash']) + ); + if($x) + $ret['result'] = $x[0]['cp_status']; + } + + return $ret; +} diff --git a/view/js/icon_translate.js b/view/js/icon_translate.js index 9e69e0b7d..838ff899f 100644 --- a/view/js/icon_translate.js +++ b/view/js/icon_translate.js @@ -50,4 +50,5 @@ $(document).ready(function() { $('.icon-check').addClass(''); $('.icon-globe').addClass(''); $('.icon-circle-blank').addClass(''); + $('.icon-circle').addClass(''); }); \ No newline at end of file diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index b2f90cbc1..02832b5f0 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -2445,4 +2445,8 @@ img.mail-list-sender-photo { .abook-self { background-color: #ffdddd; +} +.online-now { + color: red; + cursor: pointer; } \ No newline at end of file diff --git a/view/tpl/profile_vcard.tpl b/view/tpl/profile_vcard.tpl index aaee02ab5..7a857fd67 100755 --- a/view/tpl/profile_vcard.tpl +++ b/view/tpl/profile_vcard.tpl @@ -16,7 +16,7 @@
    {{/if}} -
    {{$profile.name}}
    +
    {{$profile.name}}{{if $profile.online}} {{/if}}
    {{if $pdesc}}
    {{$profile.pdesc}}
    {{/if}}
    {{$profile.name}}
    -- cgit v1.2.3 From d970c69f91b96b3ef40752a95ecec8ca8b11b62a Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 28 Jan 2014 19:49:56 -0800 Subject: online indication to the directory popup --- include/identity.php | 22 ++++++++++++++++++++++ mod/dirprofile.php | 4 ++++ view/tpl/direntry_large.tpl | 2 +- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/include/identity.php b/include/identity.php index ee289495d..2db5d8ece 100644 --- a/include/identity.php +++ b/include/identity.php @@ -1170,3 +1170,25 @@ function get_online_status($nick) { return $ret; } + + +function remote_online_status($webbie) { + + $result = false; + $r = q("select * from hubloc where hubloc_addr = '%s' limit 1", + dbesc($webbie) + ); + if(! $r) + return $result; + + $url = $r[0]['hubloc_url'] . '/online/' . substr($webbie,0,strpos($webbie,'@')); + + $x = z_fetch_url($url); + if($x['success']) { + $j = json_decode($x['body'],true); + if($j) + $result = (($j['result']) ? $j['result'] : false); + } + return $result; + +} diff --git a/mod/dirprofile.php b/mod/dirprofile.php index 1593b014a..d88144f52 100644 --- a/mod/dirprofile.php +++ b/mod/dirprofile.php @@ -74,6 +74,9 @@ function dirprofile_init(&$a) { $qrlink = zid($rr['url']); $connect_link = ((local_user()) ? z_root() . '/follow?f=&url=' . urlencode($rr['address']) : ''); + $online = remote_online_status($rr['address']); + + if(in_array($rr['hash'],$contacts)) $connect_link = ''; @@ -151,6 +154,7 @@ function dirprofile_init(&$a) { '$photo' => $rr['photo_l'], '$alttext' => $rr['name'] . ' ' . $rr['address'], '$name' => $rr['name'], + '$online' => (($online) ? t('Online Now') : ''), '$details' => $pdesc . $details, '$profile' => $profile, '$address' => $rr['address'], diff --git a/view/tpl/direntry_large.tpl b/view/tpl/direntry_large.tpl index a3fa7e4c3..f00448175 100755 --- a/view/tpl/direntry_large.tpl +++ b/view/tpl/direntry_large.tpl @@ -13,7 +13,7 @@
    -
    {{$name}}
    +
    {{$name}}{{if $online}} {{/if}}
    {{if $connect}} {{/if}} -- cgit v1.2.3 From 2822e6e70a15508e0626d5fe2eace87b5013b9b6 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 28 Jan 2014 20:15:57 -0800 Subject: missing file in checkin --- mod/online.php | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 mod/online.php diff --git a/mod/online.php b/mod/online.php new file mode 100644 index 000000000..c6500347a --- /dev/null +++ b/mod/online.php @@ -0,0 +1,11 @@ + false); + if(argc() != 2) + json_return_and_die($ret); + + $ret = get_online_status(argv(1)); + json_return_and_die($ret); +} -- cgit v1.2.3 From 0013e59086080963737d6c864eca7ff852a1e9da Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 28 Jan 2014 20:19:16 -0800 Subject: chatpresence timing out too quickly --- mod/ping.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/ping.php b/mod/ping.php index f067091da..e205dbea7 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -66,7 +66,7 @@ function ping_init(&$a) { } } - q("delete from chatpresence where cp_last < UTC_TIMESTAMP() - INTERVAL 2 MINUTE"); + q("delete from chatpresence where cp_last < UTC_TIMESTAMP() - INTERVAL 3 MINUTE"); if((! local_user()) || ($result['invalid'])) { echo json_encode($result); -- cgit v1.2.3 From 9261a170eb45f0b189afb4c1a30603d0cbb8f31c Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 29 Jan 2014 00:08:29 -0800 Subject: basic chatroom management backend --- include/chat.php | 117 ++++++++++++++++++++++++++++++++++++++++++++ install/htconfig.sample.php | 2 +- version.inc | 2 +- 3 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 include/chat.php diff --git a/include/chat.php b/include/chat.php new file mode 100644 index 000000000..4df419294 --- /dev/null +++ b/include/chat.php @@ -0,0 +1,117 @@ + false); + + $name = trim($arr['name']); + if(! $name) { + $ret['message'] = t('Missing room name'); + return $ret; + } + + $r = q("select cr_id from chatroom where cr_uid = %d and cr_name = '%s' limit 1", + intval($channel['channel_id']), + dbesc($name) + ); + if($r) { + $ret['message'] = t('Duplicate room name'); + return $ret; + } + + $created = datetime_convert(); + + $x = q("insert into chatroom ( cr_aid, cr_uid, cr_name, cr_created, cr_edited, allow_cid, allow_gid, deny_cid, deny_gid ) + values ( %d, %d , '%s' '%s', '%s', '%s', '%s', '%s', '%s' ) ", + intval($channel['account_id']), + intval($channel['channel_id']), + dbesc($name), + dbesc($created), + dbesc($created), + dbesc($arr['allow_cid']), + dbesc($arr['allow_gid']), + dbesc($arr['deny_cid']), + dbesc($arr['deny_gid']) + ); + if($x) + $ret['success'] = true; + + return $ret; +} + + +function chatroom_destroy($channel,$arr) { + + $ret = array('success' => false); + if(intval($arr['cr_id'])) + $sql_extra = " and cr_id = " . intval($arr['cr_id']) . " "; + elseif(trim($arr['cr_name'])) + $sql_extra = " and cr_name = '" . protect_sprintf(dbesc(trim($arr['cr_name']))) . "' "; + else { + $ret['message'] = t('Invalid room specifier.'); + return $ret; + } + + $r = q("select * from chatroom where cr_uid = %d $sql_extra limit 1", + intval($channel['channel_id']) + ); + if(! $r) { + $ret['message'] = t('Invalid room specifier.'); + return $ret; + } + + q("delete from chatroom where cr_id = %d limit 1", + intval($r[0]['cr_id']) + ); + if($r[0]['cr_id']) { + q("delete from chatpresence where cp_room = %d", + intval($r[0]['cr_id']) + ); + } + $ret['success'] = true; + return $ret; +} + + +function chatroom_enter($observer_xchan,$room_id,$status) { + if(! $room_id || ! $observer) + return; + $r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d limit 1", + dbesc($observer_xchan), + intval($room_id) + ); + if($r) { + q("update chatpresence set cp_status = %d and cp_last = '%s' where cp_id = %d limit 1", + dbesc($status), + dbesc(datetime_convert()), + intval($r[0]['cp_id']) + ); + return true; + } + + $r = q("insert into chatpresence ( cp_room, cp_xchan, cp_last, cp_status ) + values ( %d, '%s', '%s', '%s' )", + intval($room_id), + dbesc($observer_xchan), + dbesc(datetime_convert()), + dbesc($status) + ); + return $r; +} + + +function chatroom_leave($observer_xchan,$room_id,$status) { + if(! $room_id || ! $observer) + return; + $r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d limit 1", + dbesc($observer_xchan), + intval($room_id) + ); + if($r) { + q("delete from chatpresence where cp_id = %d limit 1", + intval($r[0]['cp_id']) + ); + } + return true; +} \ No newline at end of file diff --git a/install/htconfig.sample.php b/install/htconfig.sample.php index 33258cf41..b23dfe3b6 100755 --- a/install/htconfig.sample.php +++ b/install/htconfig.sample.php @@ -3,7 +3,7 @@ // If automatic system installation fails: // Copy or rename this file to .htconfig.php in the top level -// Friendica directory +// Red Matrix directory // Why .htconfig.php? Because it contains sensitive information which could // give somebody complete control of your database. Apache's default diff --git a/version.inc b/version.inc index 3c79f0c43..36c8c7342 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2014-01-28.571 +2014-01-29.572 -- cgit v1.2.3 From 9f546757021305b6cfe924f38ca1af5fd5d3e69b Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 29 Jan 2014 01:52:23 -0800 Subject: chatroom list widget backend --- include/chat.php | 9 +++++++++ include/widgets.php | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/include/chat.php b/include/chat.php index 4df419294..cb910bd62 100644 --- a/include/chat.php +++ b/include/chat.php @@ -114,4 +114,13 @@ function chatroom_leave($observer_xchan,$room_id,$status) { ); } return true; +} + + +function chatroom_list($uid) { + + $r = q("select cr_name, cr_id, count(cp_id) as cr_inroom from chatroom left join chatpresence on cr_id = cp_room where cr_uid = %d order by cr_name group by cp_id", + intval($uid) + ); + return $r; } \ No newline at end of file diff --git a/include/widgets.php b/include/widgets.php index efa350785..8b22515b1 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -576,3 +576,12 @@ function widget_menu_preview($arr) { require_once('include/menu.php'); return menu_render(get_app()->data['menu_item']); } + +function widget_chatroom_list($arr) { + require_once("include/chat.php"); + $r = chatroom_list(local_user()); + return replace_macros(get_markup_template('chatroomlist.tpl'),array( + '$header' => t('Chat Rooms'), + '$items' => $r, + )); +} \ No newline at end of file -- cgit v1.2.3 From f84ba95e870ce5b63e5af4cc7be43b516d4c163d Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 29 Jan 2014 01:53:15 -0800 Subject: add template for chatroomlist widget --- view/tpl/chatroomlist.tpl | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 view/tpl/chatroomlist.tpl diff --git a/view/tpl/chatroomlist.tpl b/view/tpl/chatroomlist.tpl new file mode 100644 index 000000000..34050eef3 --- /dev/null +++ b/view/tpl/chatroomlist.tpl @@ -0,0 +1,11 @@ +
    +

    {{$header}}

    +{{$if $items}} + +{{for $items as $item}} + +{{/for}} +
    {{$item.cr_name}}{{$item.cr_inroom}}
    +{{/if}} +
    + -- cgit v1.2.3 From 10b51a9471bba2a1b058eee2d362d3d2189627be Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 29 Jan 2014 02:25:21 -0800 Subject: issues uncovered whilst testing the chatroom API --- include/chat.php | 18 ++++++++++-------- mod/ping.php | 10 +++++++--- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/include/chat.php b/include/chat.php index cb910bd62..8011fdb5b 100644 --- a/include/chat.php +++ b/include/chat.php @@ -23,8 +23,8 @@ function chatroom_create($channel,$arr) { $created = datetime_convert(); $x = q("insert into chatroom ( cr_aid, cr_uid, cr_name, cr_created, cr_edited, allow_cid, allow_gid, deny_cid, deny_gid ) - values ( %d, %d , '%s' '%s', '%s', '%s', '%s', '%s', '%s' ) ", - intval($channel['account_id']), + values ( %d, %d , '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", + intval($channel['channel_account_id']), intval($channel['channel_id']), dbesc($name), dbesc($created), @@ -34,6 +34,7 @@ function chatroom_create($channel,$arr) { dbesc($arr['deny_cid']), dbesc($arr['deny_gid']) ); + if($x) $ret['success'] = true; @@ -74,8 +75,8 @@ function chatroom_destroy($channel,$arr) { } -function chatroom_enter($observer_xchan,$room_id,$status) { - if(! $room_id || ! $observer) +function chatroom_enter($observer_xchan,$room_id,$status,$client) { + if(! $room_id || ! $observer_xchan) return; $r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d limit 1", dbesc($observer_xchan), @@ -90,19 +91,20 @@ function chatroom_enter($observer_xchan,$room_id,$status) { return true; } - $r = q("insert into chatpresence ( cp_room, cp_xchan, cp_last, cp_status ) - values ( %d, '%s', '%s', '%s' )", + $r = q("insert into chatpresence ( cp_room, cp_xchan, cp_last, cp_status, cp_client ) + values ( %d, '%s', '%s', '%s', '%s' )", intval($room_id), dbesc($observer_xchan), dbesc(datetime_convert()), - dbesc($status) + dbesc($status), + dbesc($client) ); return $r; } function chatroom_leave($observer_xchan,$room_id,$status) { - if(! $room_id || ! $observer) + if(! $room_id || ! $observer_xchan) return; $r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d limit 1", dbesc($observer_xchan), diff --git a/mod/ping.php b/mod/ping.php index e205dbea7..c3c81992f 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -44,18 +44,22 @@ function ping_init(&$a) { } if(get_observer_hash() && (! $result['invalid'])) { - $r = q("select cp_id from chatpresence where cp_xchan = '%s'", - dbesc(get_observer_hash()) + $r = q("select cp_id from chatpresence where cp_xchan = '%s' and cp_client = '%s'", + dbesc(get_observer_hash()), + dbesc($_SERVER['REMOTE_ADDR']) ); + $basic_presence = false; if($r) { foreach($r as $rr) { + if($rr['cp_id'] == 0) + $basic_presence = true; q("update chatpresence set cp_last = '%s' where cp_id = %d limit 1", dbesc(datetime_convert()), intval($rr['cp_id']) ); } } - else { + if(! $basic_presence) { q("insert into chatpresence ( cp_xchan, cp_last, cp_status, cp_client) values( '%s', '%s', '%s', '%s' ) ", dbesc(get_observer_hash()), -- cgit v1.2.3 From c95f65e092e3ea3e4d312976789597ef91037b25 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 29 Jan 2014 02:36:01 -0800 Subject: prevent runaway presence indication --- mod/ping.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mod/ping.php b/mod/ping.php index c3c81992f..2d5deb9ad 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -44,14 +44,14 @@ function ping_init(&$a) { } if(get_observer_hash() && (! $result['invalid'])) { - $r = q("select cp_id from chatpresence where cp_xchan = '%s' and cp_client = '%s'", + $r = q("select cp_id, cp_room from chatpresence where cp_xchan = '%s' and cp_client = '%s'", dbesc(get_observer_hash()), dbesc($_SERVER['REMOTE_ADDR']) ); $basic_presence = false; if($r) { foreach($r as $rr) { - if($rr['cp_id'] == 0) + if($rr['cp_room'] == 0) $basic_presence = true; q("update chatpresence set cp_last = '%s' where cp_id = %d limit 1", dbesc(datetime_convert()), -- cgit v1.2.3 From 6a9d43bcbe167ff3a8f9bd8a2ce93d9fc298fcdf Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 29 Jan 2014 03:16:07 -0800 Subject: debug chatroom_list widget --- include/chat.php | 3 ++- view/tpl/chatroomlist.tpl | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/chat.php b/include/chat.php index 8011fdb5b..9d90f7970 100644 --- a/include/chat.php +++ b/include/chat.php @@ -121,8 +121,9 @@ function chatroom_leave($observer_xchan,$room_id,$status) { function chatroom_list($uid) { - $r = q("select cr_name, cr_id, count(cp_id) as cr_inroom from chatroom left join chatpresence on cr_id = cp_room where cr_uid = %d order by cr_name group by cp_id", + $r = q("select cr_name, cr_id, count(cp_id) as cr_inroom from chatroom left join chatpresence on cr_id = cp_room where cr_uid = %d group by cp_id order by cr_name", intval($uid) ); + return $r; } \ No newline at end of file diff --git a/view/tpl/chatroomlist.tpl b/view/tpl/chatroomlist.tpl index 34050eef3..d2cf4d7b0 100644 --- a/view/tpl/chatroomlist.tpl +++ b/view/tpl/chatroomlist.tpl @@ -1,10 +1,10 @@

    {{$header}}

    -{{$if $items}} +{{if $items}} -{{for $items as $item}} +{{foreach $items as $item}} -{{/for}} +{{/foreach}}
    {{$item.cr_name}}{{$item.cr_inroom}}
    {{/if}}
    -- cgit v1.2.3 From a1e7c65d51a6472cf7fe95686883f77953d7dfd7 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 29 Jan 2014 03:39:32 -0800 Subject: chatroom permissions enforcement --- include/chat.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/include/chat.php b/include/chat.php index 9d90f7970..6bcb003ff 100644 --- a/include/chat.php +++ b/include/chat.php @@ -76,8 +76,27 @@ function chatroom_destroy($channel,$arr) { function chatroom_enter($observer_xchan,$room_id,$status,$client) { + if(! $room_id || ! $observer_xchan) return; + + $r = q("select * from chatroom where cr_id = %d limit 1", + intval($room_id) + ); + if(! $r) + return; + require_once('include/security.php'); + $sql_extra = permissions_sql($r[0]['cr_uid']); + + $x = q("select * from chatroom where cr_id = %d and uid = %d $sql_extra limit 1", + intval($room_id) + intval($r[0]['cr_uid']) + ); + if(! $x) { + notice( t('Permission denied.') . EOL); + return; + } + $r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d limit 1", dbesc($observer_xchan), intval($room_id) -- cgit v1.2.3 From 25acd60f634972bf8e1d1f2849a67390f9ccba28 Mon Sep 17 00:00:00 2001 From: Paolo Tacconi Date: Wed, 29 Jan 2014 16:44:17 +0100 Subject: Updated Italian translation --- view/it/messages.po | 7815 ++++++++++++++++++++++++++------------------------- view/it/strings.php | 1378 ++++----- 2 files changed, 4657 insertions(+), 4536 deletions(-) diff --git a/view/it/messages.po b/view/it/messages.po index 14d92e170..fa80a7062 100644 --- a/view/it/messages.po +++ b/view/it/messages.po @@ -1,5 +1,5 @@ -# Red Communications Project -# Copyright (C) 2013 the Red Matrix Project +# Red Matrix Project +# Copyright (C) 2012-2014 the Red Matrix Project # This file is distributed under the same license as the Red package. # # Translators: @@ -8,13 +8,13 @@ # Francesco Apruzzese , 2012-2013 # ufic , 2012 # tuscanhobbit Pa , 2012 -# tuscanhobbit Pa , 2013 +# tuscanhobbit Pa , 2013-2014 msgid "" msgstr "" "Project-Id-Version: Red Matrix\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-13 00:04-0800\n" -"PO-Revision-Date: 2013-12-18 14:07+0000\n" +"POT-Creation-Date: 2014-01-24 00:03-0800\n" +"PO-Revision-Date: 2014-01-29 15:40+0000\n" "Last-Translator: tuscanhobbit Pa \n" "Language-Team: Italian (http://www.transifex.com/projects/p/red-matrix/language/it/)\n" "MIME-Version: 1.0\n" @@ -35,585 +35,285 @@ msgstr "mostra" msgid "don't show" msgstr "non mostrare" -#: ../../include/activities.php:37 +#: ../../include/activities.php:39 msgid " and " msgstr "e" -#: ../../include/activities.php:45 +#: ../../include/activities.php:47 msgid "public profile" msgstr "profilo pubblico" -#: ../../include/activities.php:50 +#: ../../include/activities.php:52 #, php-format msgid "%1$s changed %2$s to “%3$s”" msgstr "%1$s ha cambiato %2$s in “%3$s”" -#: ../../include/activities.php:51 +#: ../../include/activities.php:53 #, php-format msgid "Visit %1$s's %2$s" msgstr "Guarda %2$s di %1$s " -#: ../../include/activities.php:54 +#: ../../include/activities.php:56 #, php-format msgid "%1$s has an updated %2$s, changing %3$s." msgstr "%1$s ha aggiornato %2$s cambiando %3$s." -#: ../../include/dir_fns.php:15 -msgid "Sort Options" -msgstr "Opzioni di ordinamento" - -#: ../../include/dir_fns.php:16 -msgid "Alphabetic" -msgstr "Alfabetico" - -#: ../../include/dir_fns.php:17 -msgid "Reverse Alphabetic" -msgstr "Alfabetico inverso" - -#: ../../include/dir_fns.php:18 -msgid "Newest to Oldest" -msgstr "Dal più nuovo al più vecchio" - -#: ../../include/dir_fns.php:30 -msgid "Enable Safe Search" -msgstr "Abilita SafeSearch" - -#: ../../include/dir_fns.php:32 -msgid "Disable Safe Search" -msgstr "Disabilita SafeSearch" - -#: ../../include/dir_fns.php:34 -msgid "Safe Mode" -msgstr "Modalità SafeSearch" - -#: ../../include/enotify.php:40 -msgid "Red Matrix Notification" -msgstr "Notifica di Red Matrix" - -#: ../../include/enotify.php:41 -msgid "redmatrix" -msgstr "redmatrix" - -#: ../../include/enotify.php:43 -msgid "Thank You," -msgstr "Grazie," - -#: ../../include/enotify.php:45 -#, php-format -msgid "%s Administrator" -msgstr "Amministratore %s" - -#: ../../include/enotify.php:80 -#, php-format -msgid "%s " -msgstr "%s " - -#: ../../include/enotify.php:84 -#, php-format -msgid "[Red:Notify] New mail received at %s" -msgstr "[Red:Notifica] Nuovo messaggio ricevuto alle %s" - -#: ../../include/enotify.php:86 -#, php-format -msgid "%1$s, %2$s sent you a new private message at %3$s." -msgstr "%1$s, %2$s ti ha mandato un messaggio privato alle %3$s." - -#: ../../include/enotify.php:87 -#, php-format -msgid "%1$s sent you %2$s." -msgstr "%1$s ti ha mandato %2$s." - -#: ../../include/enotify.php:87 -msgid "a private message" -msgstr "un messaggio privato" - -#: ../../include/enotify.php:88 -#, php-format -msgid "Please visit %s to view and/or reply to your private messages." -msgstr "Visita %s per leggere i tuoi messaggi privati e rispondere." - -#: ../../include/enotify.php:139 -#, php-format -msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]" -msgstr "%1$s, %2$s ha commentato [zrl=%3$s]%4$s[/zrl]" - -#: ../../include/enotify.php:147 -#, php-format -msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]" -msgstr "%1$s, %2$s ha commentato [zrl=%3$s]%5$s di %4$s[/zrl]" - -#: ../../include/enotify.php:156 -#, php-format -msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]" -msgstr "%1$s, %2$s ha commentato [zrl=%3$s]%4$s che hai creato[/zrl]" - -#: ../../include/enotify.php:167 -#, php-format -msgid "[Red:Notify] Comment to conversation #%1$d by %2$s" -msgstr "[Red:Notifica] Nuovo commento di %2$s alla conversazione #%1$d" - -#: ../../include/enotify.php:168 -#, php-format -msgid "%1$s, %2$s commented on an item/conversation you have been following." -msgstr "%1$s, %2$s ha commentato un elemento che stavi seguendo." - -#: ../../include/enotify.php:171 ../../include/enotify.php:190 -#: ../../include/enotify.php:216 ../../include/enotify.php:235 -#: ../../include/enotify.php:249 -#, php-format -msgid "Please visit %s to view and/or reply to the conversation." -msgstr "Visita %s per leggere o commentare la conversazione." - -#: ../../include/enotify.php:178 -#, php-format -msgid "[Red:Notify] %s posted to your profile wall" -msgstr "[Red:Notifica] %s ha scritto sulla tua bacheca" - -#: ../../include/enotify.php:180 -#, php-format -msgid "%1$s, %2$s posted to your profile wall at %3$s" -msgstr "%1$s, %2$s ha scritto sulla bacheca del tuo profilo alle %3$s" - -#: ../../include/enotify.php:182 -#, php-format -msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" -msgstr "%1$s, %2$s ha scritto sulla [zrl=%3$s]tua bacheca[/zrl]" - -#: ../../include/enotify.php:209 -#, php-format -msgid "[Red:Notify] %s tagged you" -msgstr "[Red:Notifica] %s ti ha taggato" - -#: ../../include/enotify.php:210 -#, php-format -msgid "%1$s, %2$s tagged you at %3$s" -msgstr "%1$s, %2$s ti ha taggato alle %3$s" - -#: ../../include/enotify.php:211 -#, php-format -msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." -msgstr "%1$s, %2$s [zrl=%3$s]ti ha taggato[/zrl]." - -#: ../../include/enotify.php:224 -#, php-format -msgid "[Red:Notify] %1$s poked you" -msgstr "[Red:Notifica] %1$s ti ha mandato un poke" - -#: ../../include/enotify.php:225 -#, php-format -msgid "%1$s, %2$s poked you at %3$s" -msgstr "%1$s, %2$s ti ha mandato un poke alle %3$s" - -#: ../../include/enotify.php:226 -#, php-format -msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." -msgstr "%1$s, %2$s [zrl=%2$s]ti ha mandato un poke[/zrl]." - -#: ../../include/enotify.php:242 -#, php-format -msgid "[Red:Notify] %s tagged your post" -msgstr "[Red:Notifica] %s ha taggato il tuo articolo" - -#: ../../include/enotify.php:243 -#, php-format -msgid "%1$s, %2$s tagged your post at %3$s" -msgstr "%1$s, %2$s ha taggato il tuo articolo alle %3$s" - -#: ../../include/enotify.php:244 -#, php-format -msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" -msgstr "%1$s, %2$s ha taggato [zrl=%3$s]il tuo articolo[/zrl]" - -#: ../../include/enotify.php:256 -msgid "[Red:Notify] Introduction received" -msgstr "[Red:Notifica] Hai una richiesta di amicizia" - -#: ../../include/enotify.php:257 -#, php-format -msgid "%1$s, you've received an introduction from '%2$s' at %3$s" -msgstr "%1$s, hai ricevuto una richiesta di contatto da '%2$s' alle %3$s" - -#: ../../include/enotify.php:258 -#, php-format -msgid "%1$s, you've received [zrl=%2$s]an introduction[/zrl] from %3$s." -msgstr "%1$s, hai ricevuto [zrl=%2$s]una richiesta di amicizia[/zrl] da %3$s." - -#: ../../include/enotify.php:262 ../../include/enotify.php:281 -#, php-format -msgid "You may visit their profile at %s" -msgstr "Puoi visitare il suo profilo su %s" - -#: ../../include/enotify.php:264 -#, php-format -msgid "Please visit %s to approve or reject the introduction." -msgstr "Visita %s per approvare o rifiutare la richiesta." - -#: ../../include/enotify.php:271 -msgid "[Red:Notify] Friend suggestion received" -msgstr "[Red:Notifica] Ti è stato suggerito un amico" - -#: ../../include/enotify.php:272 -#, php-format -msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s" -msgstr "%1$s, ti è stato suggerito un amico da '%2$s' alle %3$s" - -#: ../../include/enotify.php:273 -#, php-format -msgid "" -"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from " -"%4$s." -msgstr "%1$s, %4$s ti [zrl=%2$s]ha suggerito %3$s[/zrl] come amico." - -#: ../../include/enotify.php:279 -msgid "Name:" -msgstr "Nome:" - -#: ../../include/enotify.php:280 -msgid "Photo:" -msgstr "Foto:" - -#: ../../include/enotify.php:283 -#, php-format -msgid "Please visit %s to approve or reject the suggestion." -msgstr "Visita %s per approvare o rifiutare il suggerimento." - -#: ../../include/ItemObject.php:88 ../../mod/photos.php:963 -msgid "Private Message" -msgstr "Messaggio privato" - -#: ../../include/ItemObject.php:95 ../../include/page_widgets.php:8 -#: ../../mod/webpages.php:118 ../../mod/settings.php:671 ../../mod/menu.php:55 -#: ../../mod/layouts.php:102 ../../mod/editlayout.php:100 -#: ../../mod/editwebpage.php:143 ../../mod/blocks.php:93 -#: ../../mod/editpost.php:97 ../../mod/editblock.php:114 -msgid "Edit" -msgstr "Modifica" - -#: ../../include/ItemObject.php:107 ../../include/conversation.php:632 -#: ../../mod/settings.php:672 ../../mod/admin.php:693 ../../mod/group.php:182 -#: ../../mod/photos.php:1141 ../../mod/connections.php:378 -#: ../../mod/filestorage.php:82 -msgid "Delete" -msgstr "Elimina" - -#: ../../include/ItemObject.php:113 ../../include/conversation.php:631 -msgid "Select" -msgstr "Seleziona" - -#: ../../include/ItemObject.php:117 -msgid "save to folder" -msgstr "salva in una cartella" - -#: ../../include/ItemObject.php:145 -msgid "add star" -msgstr "aggiungi ai preferiti" - -#: ../../include/ItemObject.php:146 -msgid "remove star" -msgstr "rimuovi dai preferiti" - -#: ../../include/ItemObject.php:147 -msgid "toggle star status" -msgstr "Attiva/disattiva preferito" - -#: ../../include/ItemObject.php:151 -msgid "starred" -msgstr "preferito" - -#: ../../include/ItemObject.php:160 ../../include/conversation.php:642 -msgid "Message is verified" -msgstr "Messaggio verificato" - -#: ../../include/ItemObject.php:168 -msgid "add tag" -msgstr "Aggiungi tag" +#: ../../include/api.php:973 +msgid "Public Timeline" +msgstr "Diario pubblico" -#: ../../include/ItemObject.php:174 ../../mod/photos.php:1069 -msgid "I like this (toggle)" -msgstr "Attiva/disattiva Mi piace" +#: ../../include/nav.php:72 ../../include/nav.php:87 ../../boot.php:1420 +msgid "Logout" +msgstr "Esci" -#: ../../include/ItemObject.php:174 ../../include/taxonomy.php:251 -msgid "like" -msgstr "mi piace" +#: ../../include/nav.php:72 ../../include/nav.php:87 +msgid "End this session" +msgstr "Chiudi questa sessione" -#: ../../include/ItemObject.php:175 ../../mod/photos.php:1070 -msgid "I don't like this (toggle)" -msgstr "Attiva/disattiva Non mi piace" +#: ../../include/nav.php:75 ../../include/nav.php:121 +msgid "Home" +msgstr "Bacheca" -#: ../../include/ItemObject.php:175 ../../include/taxonomy.php:252 -msgid "dislike" -msgstr "non mi piace" +#: ../../include/nav.php:75 +msgid "Your posts and conversations" +msgstr "I tuoi articoli e conversazioni" -#: ../../include/ItemObject.php:177 -msgid "Share this" -msgstr "Condividi" +#: ../../include/nav.php:76 ../../include/conversation.php:932 +#: ../../mod/connedit.php:309 ../../mod/connedit.php:423 +msgid "View Profile" +msgstr "Profilo" -#: ../../include/ItemObject.php:177 -msgid "share" -msgstr "condividi" +#: ../../include/nav.php:76 +msgid "Your profile page" +msgstr "Il tuo profilo" -#: ../../include/ItemObject.php:201 ../../include/ItemObject.php:202 -#, php-format -msgid "View %s's profile - %s" -msgstr "Guarda il profilo di %s - %s" +#: ../../include/nav.php:78 +msgid "Edit Profiles" +msgstr "Modifica i profili" -#: ../../include/ItemObject.php:203 -msgid "to" -msgstr "a" +#: ../../include/nav.php:78 +msgid "Manage/Edit Profiles" +msgstr "Gestisci e modifica i profili" -#: ../../include/ItemObject.php:204 -msgid "via" -msgstr "via" +#: ../../include/nav.php:79 ../../include/conversation.php:1474 +#: ../../mod/fbrowser.php:25 +msgid "Photos" +msgstr "Foto" -#: ../../include/ItemObject.php:205 -msgid "Wall-to-Wall" -msgstr "Da bacheca a bacheca" +#: ../../include/nav.php:79 +msgid "Your photos" +msgstr "Le tue foto" -#: ../../include/ItemObject.php:206 -msgid "via Wall-To-Wall:" -msgstr "da bacheca a bacheca:" +#: ../../include/nav.php:85 ../../boot.php:1421 +msgid "Login" +msgstr "Accedi" -#: ../../include/ItemObject.php:216 ../../include/conversation.php:686 -#, php-format -msgid " from %s" -msgstr " da %s" +#: ../../include/nav.php:85 +msgid "Sign in" +msgstr "Entra" -#: ../../include/ItemObject.php:219 ../../include/conversation.php:689 +#: ../../include/nav.php:102 #, php-format -msgid "last edited: %s" -msgstr "ultima modifica: %s" +msgid "%s - click to logout" +msgstr "%s - clicca per uscire" -#: ../../include/ItemObject.php:246 ../../include/conversation.php:706 -#: ../../include/conversation.php:1116 ../../mod/photos.php:1072 -#: ../../mod/message.php:332 ../../mod/message.php:484 -#: ../../mod/editlayout.php:109 ../../mod/editwebpage.php:152 -#: ../../mod/editpost.php:106 ../../mod/editblock.php:123 -msgid "Please wait" -msgstr "Attendere" +#: ../../include/nav.php:107 +msgid "Click to authenticate to your home hub" +msgstr "Clicca per autenticarti sul tuo server principale" -#: ../../include/ItemObject.php:267 -#, php-format -msgid "%d comment" -msgid_plural "%d comments" -msgstr[0] "%d commento" -msgstr[1] "%d commenti" +#: ../../include/nav.php:121 +msgid "Home Page" +msgstr "Bacheca" -#: ../../include/ItemObject.php:268 ../../include/js_strings.php:7 -#: ../../include/contact_widgets.php:124 -msgid "show more" -msgstr "mostra tutto" +#: ../../include/nav.php:125 ../../mod/register.php:206 ../../boot.php:1397 +msgid "Register" +msgstr "Iscriviti" -#: ../../include/ItemObject.php:527 ../../mod/photos.php:1088 -#: ../../mod/photos.php:1175 -msgid "This is you" -msgstr "Questo sei tu" +#: ../../include/nav.php:125 +msgid "Create an account" +msgstr "Crea un account" -#: ../../include/ItemObject.php:529 ../../include/js_strings.php:6 -#: ../../mod/photos.php:1090 ../../mod/photos.php:1177 -msgid "Comment" -msgstr "Commento" +#: ../../include/nav.php:130 ../../mod/help.php:60 ../../mod/help.php:64 +msgid "Help" +msgstr "Guida" -#: ../../include/ItemObject.php:530 ../../mod/events.php:470 -#: ../../mod/thing.php:190 ../../mod/invite.php:154 ../../mod/setup.php:302 -#: ../../mod/setup.php:345 ../../mod/settings.php:609 -#: ../../mod/settings.php:721 ../../mod/settings.php:749 -#: ../../mod/settings.php:773 ../../mod/settings.php:844 -#: ../../mod/settings.php:1005 ../../mod/connect.php:96 -#: ../../mod/sources.php:83 ../../mod/sources.php:110 ../../mod/admin.php:420 -#: ../../mod/admin.php:686 ../../mod/admin.php:826 ../../mod/admin.php:1025 -#: ../../mod/admin.php:1112 ../../mod/group.php:87 ../../mod/photos.php:685 -#: ../../mod/photos.php:790 ../../mod/photos.php:1051 -#: ../../mod/photos.php:1091 ../../mod/photos.php:1178 -#: ../../mod/message.php:333 ../../mod/message.php:483 -#: ../../mod/profiles.php:518 ../../mod/connections.php:456 -#: ../../mod/import.php:387 ../../mod/poke.php:166 ../../mod/fsuggest.php:108 -#: ../../mod/mood.php:137 ../../view/theme/redbasic/php/config.php:85 -#: ../../view/theme/apw/php/config.php:231 -#: ../../view/theme/blogga/view/theme/blog/config.php:67 -#: ../../view/theme/blogga/php/config.php:67 -msgid "Submit" -msgstr "Salva" +#: ../../include/nav.php:130 +msgid "Help and documentation" +msgstr "Guida e documentazione" -#: ../../include/ItemObject.php:531 -msgid "Bold" -msgstr "Grassetto" +#: ../../include/nav.php:133 +msgid "Apps" +msgstr "Apps" -#: ../../include/ItemObject.php:532 -msgid "Italic" -msgstr "Corsivo" +#: ../../include/nav.php:133 +msgid "Addon applications, utilities, games" +msgstr "App, strumenti e giochi aggiuntivi" -#: ../../include/ItemObject.php:533 -msgid "Underline" -msgstr "Sottolineato" +#: ../../include/nav.php:135 ../../include/text.php:736 +#: ../../include/text.php:750 ../../mod/search.php:29 +msgid "Search" +msgstr "Cerca" -#: ../../include/ItemObject.php:534 -msgid "Quote" -msgstr "Citazione" +#: ../../include/nav.php:135 +msgid "Search site content" +msgstr "Cerca nel sito" -#: ../../include/ItemObject.php:535 -msgid "Code" -msgstr "Codice" +#: ../../include/nav.php:138 ../../mod/directory.php:210 +msgid "Directory" +msgstr "Tutti i canali" -#: ../../include/ItemObject.php:536 -msgid "Image" -msgstr "Immagine" +#: ../../include/nav.php:138 +msgid "Channel Locator" +msgstr "Ricerca canali" -#: ../../include/ItemObject.php:537 -msgid "Link" -msgstr "Link" +#: ../../include/nav.php:149 +msgid "Matrix" +msgstr "La tua rete" -#: ../../include/ItemObject.php:538 -msgid "Video" -msgstr "Video" +#: ../../include/nav.php:149 +msgid "Your matrix" +msgstr "La tua rete" -#: ../../include/ItemObject.php:539 ../../include/conversation.php:1079 -#: ../../mod/webpages.php:122 ../../mod/photos.php:1092 -#: ../../mod/editlayout.php:129 ../../mod/editwebpage.php:176 -#: ../../mod/editpost.php:126 ../../mod/editblock.php:144 -msgid "Preview" -msgstr "Anteprima" +#: ../../include/nav.php:150 +msgid "Mark all matrix notifications seen" +msgstr "Segna come lette le notifiche della tua rete" -#: ../../include/ItemObject.php:542 ../../include/conversation.php:1143 -#: ../../mod/message.php:338 ../../mod/message.php:489 -#: ../../mod/editpost.php:134 -msgid "Encrypt text" -msgstr "Crittografia del testo" +#: ../../include/nav.php:152 +msgid "Channel Home" +msgstr "Bacheca del canale" -#: ../../include/Contact.php:87 ../../include/widgets.php:96 -#: ../../include/widgets.php:136 ../../include/identity.php:613 -#: ../../mod/match.php:62 ../../mod/suggest.php:58 ../../mod/directory.php:199 -msgid "Connect" -msgstr "Entra in contatto" +#: ../../include/nav.php:152 +msgid "Channel home" +msgstr "Bacheca del canale" -#: ../../include/Contact.php:103 -msgid "New window" -msgstr "Nuova finestra" +#: ../../include/nav.php:153 +msgid "Mark all channel notifications seen" +msgstr "Segna come lette le notifiche dei canali" -#: ../../include/Contact.php:104 -msgid "Open the selected location in a different window or browser tab" -msgstr "Apri l'indirizzo selezionato in una nuova scheda o finestra" +#: ../../include/nav.php:156 +msgid "Intros" +msgstr "Richieste" -#: ../../include/widgets.php:5 -msgid "Displays a full channel profile" -msgstr "Mostra il profilo completo del canale" +#: ../../include/nav.php:156 ../../mod/connections.php:242 +msgid "New Connections" +msgstr "Nuovi contatti" -#: ../../include/widgets.php:6 -msgid "Tag cloud of webpage categories" -msgstr "Nuvola dei tag" +#: ../../include/nav.php:159 +msgid "Notices" +msgstr "Notifiche" -#: ../../include/widgets.php:7 -msgid "List and filter by collection" -msgstr "Filtra per insiemi di canali" +#: ../../include/nav.php:159 +msgid "Notifications" +msgstr "Notifiche" -#: ../../include/widgets.php:8 -msgid "Show a couple of channel suggestion" -msgstr "Mostra i canali suggeriti" +#: ../../include/nav.php:160 +msgid "See all notifications" +msgstr "Vedi tutte le notifiche" -#: ../../include/widgets.php:9 -msgid "Provide a channel follow form" -msgstr "Mostra il link connettersi al canale" +#: ../../include/nav.php:161 +msgid "Mark all system notifications seen" +msgstr "Segna come lette le notifiche di sistema" -#: ../../include/widgets.php:39 ../../include/contact_widgets.php:86 -msgid "Categories" -msgstr "Categorie" +#: ../../include/nav.php:163 +msgid "Mail" +msgstr "Messaggi" -#: ../../include/widgets.php:98 ../../mod/suggest.php:60 -msgid "Ignore/Hide" -msgstr "Ignora/nascondi" +#: ../../include/nav.php:163 +msgid "Private mail" +msgstr "Messaggi privati" -#: ../../include/widgets.php:104 ../../mod/connections.php:583 -msgid "Suggestions" -msgstr "Suggerimenti" +#: ../../include/nav.php:164 +msgid "See all private messages" +msgstr "Guarda tutti i messaggi privati" -#: ../../include/widgets.php:105 -msgid "See more..." -msgstr "Altro..." +#: ../../include/nav.php:165 +msgid "Mark all private messages seen" +msgstr "Segna come letti tutti i messaggi privati" -#: ../../include/widgets.php:127 -#, php-format -msgid "You have %1$.0f of %2$.0f allowed connections." -msgstr "Hai attivato %1$.0f delle %2$.0f connessioni permesse." +#: ../../include/nav.php:166 +msgid "Inbox" +msgstr "In arrivo" -#: ../../include/widgets.php:133 -msgid "Add New Connection" -msgstr "Aggiungi un contatto" +#: ../../include/nav.php:167 +msgid "Outbox" +msgstr "Inviati" -#: ../../include/widgets.php:134 -msgid "Enter the channel address" -msgstr "Scrivi l'indirizzo del canale" +#: ../../include/nav.php:168 ../../include/widgets.php:509 +msgid "New Message" +msgstr "Nuovo messaggio" -#: ../../include/widgets.php:135 -msgid "Example: bob@example.com, http://example.com/barbara" -msgstr "Per esempio: mario@pippo.it oppure http://pluto.com/barbara" +#: ../../include/nav.php:171 ../../include/conversation.php:1492 +#: ../../mod/events.php:354 +msgid "Events" +msgstr "Eventi" -#: ../../include/widgets.php:152 -msgid "Notes" -msgstr "Note" +#: ../../include/nav.php:171 +msgid "Event Calendar" +msgstr "Calendario" -#: ../../include/widgets.php:154 ../../include/text.php:738 -#: ../../include/text.php:752 ../../mod/filer.php:36 -msgid "Save" -msgstr "Salva" +#: ../../include/nav.php:172 +msgid "See all events" +msgstr "Guarda tutti gli eventi" -#: ../../include/widgets.php:224 ../../mod/search.php:20 -msgid "Remove term" -msgstr "Rimuovi termine" +#: ../../include/nav.php:173 +msgid "Mark all events seen" +msgstr "Marca come letti tutti gli eventi" -#: ../../include/widgets.php:233 ../../include/features.php:48 -#: ../../mod/search.php:17 -msgid "Saved Searches" -msgstr "Ricerche salvate" +#: ../../include/nav.php:175 +msgid "Channel Select" +msgstr "Gestisci i canali" -#: ../../include/widgets.php:234 ../../include/group.php:290 -msgid "add" -msgstr "aggiungi" +#: ../../include/nav.php:175 +msgid "Manage Your Channels" +msgstr "Gestisci i contatti dei tuoi canali" -#: ../../include/widgets.php:264 ../../include/features.php:62 -#: ../../include/contact_widgets.php:52 -msgid "Saved Folders" -msgstr "Cartelle salvate" +#: ../../include/nav.php:177 ../../include/widgets.php:487 +#: ../../mod/admin.php:787 ../../mod/admin.php:992 +msgid "Settings" +msgstr "Impostazioni" -#: ../../include/widgets.php:267 ../../include/contact_widgets.php:55 -#: ../../include/contact_widgets.php:89 -msgid "Everything" -msgstr "Tutto" +#: ../../include/nav.php:177 +msgid "Account/Channel Settings" +msgstr "Impostazioni account e canali" -#: ../../include/widgets.php:299 ../../include/items.php:3550 -msgid "Archives" -msgstr "Archivi" +#: ../../include/nav.php:179 ../../mod/connections.php:349 +msgid "Connections" +msgstr "Contatti" -#: ../../include/widgets.php:351 -msgid "Refresh" -msgstr "Aggiorna" +#: ../../include/nav.php:179 +msgid "Manage/Edit Friends and Connections" +msgstr "Modifica amici e contatti" -#: ../../include/widgets.php:352 ../../mod/connections.php:408 -msgid "Me" -msgstr "Io" +#: ../../include/nav.php:186 ../../mod/admin.php:111 +msgid "Admin" +msgstr "Amministrazione" -#: ../../include/widgets.php:353 ../../mod/connections.php:410 -msgid "Best Friends" -msgstr "Buoni amici" +#: ../../include/nav.php:186 +msgid "Site Setup and Configuration" +msgstr "Configurazione del sito" -#: ../../include/widgets.php:354 ../../include/profile_selectors.php:42 -#: ../../include/identity.php:298 ../../mod/connections.php:411 -msgid "Friends" -msgstr "Amici" +#: ../../include/nav.php:212 +msgid "Nothing new here" +msgstr "Niente di nuovo qui" -#: ../../include/widgets.php:355 -msgid "Co-workers" -msgstr "Colleghi" +#: ../../include/nav.php:217 +msgid "Please wait..." +msgstr "Attendere..." -#: ../../include/widgets.php:356 ../../mod/connections.php:412 -msgid "Former Friends" -msgstr "Ex amici" +#: ../../include/Contact.php:104 ../../include/identity.php:625 +#: ../../include/widgets.php:115 ../../include/widgets.php:155 +#: ../../mod/directory.php:183 ../../mod/match.php:62 ../../mod/suggest.php:51 +#: ../../mod/dirprofile.php:166 +msgid "Connect" +msgstr "Entra in contatto" -#: ../../include/widgets.php:357 ../../mod/connections.php:413 -msgid "Acquaintances" -msgstr "Conoscenti" +#: ../../include/Contact.php:120 +msgid "New window" +msgstr "Nuova finestra" -#: ../../include/widgets.php:358 -msgid "Everybody" -msgstr "Tutti" +#: ../../include/Contact.php:121 +msgid "Open the selected location in a different window or browser tab" +msgstr "Apri l'indirizzo selezionato in una nuova scheda o finestra" #: ../../include/contact_selectors.php:30 msgid "Unknown | Not categorised" @@ -675,8 +375,8 @@ msgstr "OStatus" msgid "RSS/Atom" msgstr "RSS/Atom" -#: ../../include/contact_selectors.php:77 ../../mod/admin.php:689 -#: ../../mod/admin.php:698 ../../boot.php:1442 +#: ../../include/contact_selectors.php:77 ../../mod/admin.php:691 +#: ../../mod/admin.php:700 ../../boot.php:1423 msgid "Email" msgstr "Email" @@ -794,1868 +494,1879 @@ msgstr "Inizio:" msgid "Finishes:" msgstr "Fine:" -#: ../../include/event.php:40 ../../include/identity.php:664 -#: ../../include/bb2diaspora.php:455 ../../mod/events.php:463 -#: ../../mod/directory.php:174 +#: ../../include/event.php:40 ../../include/identity.php:676 +#: ../../include/bb2diaspora.php:455 ../../mod/events.php:462 +#: ../../mod/directory.php:156 ../../mod/dirprofile.php:108 msgid "Location:" msgstr "Luogo:" -#: ../../include/group.php:25 -msgid "" -"A deleted group with this name was revived. Existing item permissions " -"may apply to this group and any future members. If this is " -"not what you intended, please create another group with a different name." -msgstr "È stato ripristinato un insieme con lo stesso nome che era stato eliminato in precedenza. I permessi già presenti potrebbero rimanere validi per i nuovi canali. Se non vuoi che ciò accada, devi creare un altro insieme con un nome diverso." - -#: ../../include/group.php:223 -msgid "Default privacy group for new contacts" -msgstr "Insieme predefinito per i nuovi canali che aggiungi" - -#: ../../include/group.php:242 ../../mod/admin.php:698 -msgid "All Channels" -msgstr "Tutti i canali" - -#: ../../include/group.php:264 -msgid "edit" -msgstr "modifica" - -#: ../../include/group.php:285 -msgid "Collections" -msgstr "Insiemi di canali" - -#: ../../include/group.php:286 -msgid "Edit collection" -msgstr "Modifica l'insieme di canali" - -#: ../../include/group.php:287 -msgid "Create a new collection" -msgstr "Crea un nuovo insieme" - -#: ../../include/group.php:288 -msgid "Channels not in any collection" -msgstr "Canali che non sono in un insieme" - -#: ../../include/js_strings.php:5 -msgid "Delete this item?" -msgstr "Eliminare questo elemento?" - -#: ../../include/js_strings.php:8 -msgid "show fewer" -msgstr "riduci" - -#: ../../include/js_strings.php:9 -msgid "Password too short" -msgstr "Password troppo corta" - -#: ../../include/js_strings.php:10 -msgid "Passwords do not match" -msgstr "Le password non corrispondono" - -#: ../../include/js_strings.php:11 ../../mod/photos.php:45 -msgid "everybody" -msgstr "tutti" - -#: ../../include/js_strings.php:12 -msgid "Secret Passphrase" -msgstr "Chiave segreta" - -#: ../../include/js_strings.php:13 -msgid "Passphrase hint" -msgstr "Suggerimento per la chiave segreta" - -#: ../../include/js_strings.php:15 -msgid "timeago.prefixAgo" -msgstr "timeago.prefixAgo" - -#: ../../include/js_strings.php:16 -msgid "timeago.suffixAgo" -msgstr "timeago.suffixAgo" - -#: ../../include/js_strings.php:17 -msgid "ago" -msgstr "fa" - -#: ../../include/js_strings.php:18 -msgid "from now" -msgstr "da adesso" - -#: ../../include/js_strings.php:19 -msgid "less than a minute" -msgstr "meno di un minuto" - -#: ../../include/js_strings.php:20 -msgid "about a minute" -msgstr "circa un minuto" +#: ../../include/text.php:315 +msgid "prev" +msgstr "prec" -#: ../../include/js_strings.php:21 -#, php-format -msgid "%d minutes" -msgstr "%d minuti" +#: ../../include/text.php:317 +msgid "first" +msgstr "inizio" -#: ../../include/js_strings.php:22 -msgid "about an hour" -msgstr "circa un’ora" +#: ../../include/text.php:346 +msgid "last" +msgstr "fine" -#: ../../include/js_strings.php:23 -#, php-format -msgid "about %d hours" -msgstr "circa %d ore" +#: ../../include/text.php:349 +msgid "next" +msgstr "succ" -#: ../../include/js_strings.php:24 -msgid "a day" -msgstr "un giorno" +#: ../../include/text.php:361 +msgid "older" +msgstr "più recenti" -#: ../../include/js_strings.php:25 -#, php-format -msgid "%d days" -msgstr "%d giorni" +#: ../../include/text.php:363 +msgid "newer" +msgstr "più nuovi" -#: ../../include/js_strings.php:26 -msgid "about a month" -msgstr "circa un mese" +#: ../../include/text.php:654 +msgid "No connections" +msgstr "Nessun contatto" -#: ../../include/js_strings.php:27 +#: ../../include/text.php:665 #, php-format -msgid "%d months" -msgstr "%d mesi" +msgid "%d Connection" +msgid_plural "%d Connections" +msgstr[0] "%d contatto" +msgstr[1] "%d contatti" -#: ../../include/js_strings.php:28 -msgid "about a year" -msgstr "circa un anno" +#: ../../include/text.php:677 +msgid "View Connections" +msgstr "Elenco contatti" -#: ../../include/js_strings.php:29 -#, php-format -msgid "%d years" -msgstr "%d anni" +#: ../../include/text.php:738 ../../include/text.php:752 +#: ../../include/widgets.php:173 ../../mod/filer.php:36 +msgid "Save" +msgstr "Salva" -#: ../../include/js_strings.php:30 ../../include/features.php:29 -msgid " " -msgstr " " +#: ../../include/text.php:818 +msgid "poke" +msgstr "poke" -#: ../../include/js_strings.php:31 -msgid "timeago.numbers" -msgstr "timeago.numbers" +#: ../../include/text.php:818 ../../include/conversation.php:240 +msgid "poked" +msgstr "ha ricevuto un poke" -#: ../../include/message.php:18 -msgid "No recipient provided." -msgstr "Devi scegliere un destinatario." +#: ../../include/text.php:819 +msgid "ping" +msgstr "ping" -#: ../../include/message.php:23 -msgid "[no subject]" -msgstr "[nessun titolo]" +#: ../../include/text.php:819 +msgid "pinged" +msgstr "ha ricevuto un ping" -#: ../../include/message.php:42 -msgid "Unable to determine sender." -msgstr "Impossibile determinare il mittente." +#: ../../include/text.php:820 +msgid "prod" +msgstr "prod" -#: ../../include/message.php:143 -msgid "Stored post could not be verified." -msgstr "Non è stato possibile verificare l'articolo inserito." +#: ../../include/text.php:820 +msgid "prodded" +msgstr "ha ricevuto un prod" -#: ../../include/photo/photo_driver.php:609 ../../include/photos.php:51 -#: ../../mod/photos.php:97 ../../mod/photos.php:775 ../../mod/photos.php:797 -#: ../../mod/profile_photo.php:78 ../../mod/profile_photo.php:225 -#: ../../mod/profile_photo.php:336 -msgid "Profile Photos" -msgstr "Foto del profilo" +#: ../../include/text.php:821 +msgid "slap" +msgstr "schiaffo" -#: ../../include/api.php:972 -msgid "Public Timeline" -msgstr "Diario pubblico" +#: ../../include/text.php:821 +msgid "slapped" +msgstr "ha ricevuto uno schiaffo" -#: ../../include/network.php:640 -msgid "view full size" -msgstr "guarda nelle dimensioni reali" +#: ../../include/text.php:822 +msgid "finger" +msgstr "finger" -#: ../../include/bbcode.php:94 ../../include/bbcode.php:494 -#: ../../include/bbcode.php:497 -msgid "Image/photo" -msgstr "Immagine" +#: ../../include/text.php:822 +msgid "fingered" +msgstr "ha ricevuto un finger" -#: ../../include/bbcode.php:126 ../../include/bbcode.php:502 -msgid "Encrypted content" -msgstr "Contenuto crittografato" +#: ../../include/text.php:823 +msgid "rebuff" +msgstr "rifiuto" -#: ../../include/bbcode.php:173 -#, php-format -msgid "%1$s wrote the following %2$s %3$s" -msgstr "%1$s ha scritto %2$s seguente %3$s" +#: ../../include/text.php:823 +msgid "rebuffed" +msgstr "ha ricevuto un rifiuto" -#: ../../include/bbcode.php:175 -msgid "post" -msgstr "l'articolo" +#: ../../include/text.php:835 +msgid "happy" +msgstr "allegro" -#: ../../include/bbcode.php:454 ../../include/bbcode.php:474 -msgid "$1 wrote:" -msgstr "$1 ha scritto:" +#: ../../include/text.php:836 +msgid "sad" +msgstr "triste" -#: ../../include/oembed.php:150 -msgid "Embedded content" -msgstr "Contenuti incorporati" +#: ../../include/text.php:837 +msgid "mellow" +msgstr "calmo" -#: ../../include/oembed.php:159 -msgid "Embedding disabled" -msgstr "Contenuti incorporati - funzione disabilitata" +#: ../../include/text.php:838 +msgid "tired" +msgstr "stanco" -#: ../../include/features.php:21 -msgid "General Features" -msgstr "Funzionalità generali" +#: ../../include/text.php:839 +msgid "perky" +msgstr "vivace" -#: ../../include/features.php:23 -msgid "Content Expiration" -msgstr "Scadenza" +#: ../../include/text.php:840 +msgid "angry" +msgstr "arrabbiato" -#: ../../include/features.php:23 -msgid "Remove posts/comments and/or private messages at a future time" -msgstr "Elimina gli articoli, i commenti o i messaggi privati dopo che è trascorso del tempo" +#: ../../include/text.php:841 +msgid "stupified" +msgstr "stordito" -#: ../../include/features.php:24 -msgid "Multiple Profiles" -msgstr "Profili multipli" +#: ../../include/text.php:842 +msgid "puzzled" +msgstr "confuso" -#: ../../include/features.php:24 -msgid "Ability to create multiple profiles" -msgstr "Abilitazione a creare profili multipli" +#: ../../include/text.php:843 +msgid "interested" +msgstr "attento" -#: ../../include/features.php:25 -msgid "Web Pages" -msgstr "Pagine web" +#: ../../include/text.php:844 +msgid "bitter" +msgstr "amaro" -#: ../../include/features.php:25 -msgid "Provide managed web pages on your channel" -msgstr "Attiva la creazione di pagine web sul tuo canale" +#: ../../include/text.php:845 +msgid "cheerful" +msgstr "allegro" -#: ../../include/features.php:26 -msgid "Private Notes" -msgstr "Note private" +#: ../../include/text.php:846 +msgid "alive" +msgstr "vivace" -#: ../../include/features.php:26 -msgid "Enables a tool to store notes and reminders" -msgstr "Abilita il riquadro per scrivere annotazioni" +#: ../../include/text.php:847 +msgid "annoyed" +msgstr "seccato" -#: ../../include/features.php:27 -msgid "Enhanced Photo Albums" -msgstr "Album fotografici avanzati" +#: ../../include/text.php:848 +msgid "anxious" +msgstr "ansioso" -#: ../../include/features.php:27 -msgid "Enable photo album with enhanced features" -msgstr "Abilita gli album fotografici con funzionalità avanzate" +#: ../../include/text.php:849 +msgid "cranky" +msgstr "irritabile" -#: ../../include/features.php:29 -msgid "Extended Identity Sharing" -msgstr "Condivisione avanzata dell'identità" +#: ../../include/text.php:850 +msgid "disturbed" +msgstr "turbato" -#: ../../include/features.php:30 -msgid "Expert Mode" -msgstr "Modalità esperto" +#: ../../include/text.php:851 +msgid "frustrated" +msgstr "frustrato" -#: ../../include/features.php:30 -msgid "Enable Expert Mode to provide advanced configuration options" -msgstr "Abilita la modalità esperto per vedere le opzioni di configurazione avanzate" +#: ../../include/text.php:852 +msgid "motivated" +msgstr "motivato" -#: ../../include/features.php:31 -msgid "Premium Channel" -msgstr "Canale premium" +#: ../../include/text.php:853 +msgid "relaxed" +msgstr "rilassato" -#: ../../include/features.php:31 -msgid "" -"Allows you to set restrictions and terms on those that connect with your " -"channel" -msgstr "Ti permette di imporre delle restrizioni e dei termini d'uso a chi segue il canale" +#: ../../include/text.php:854 +msgid "surprised" +msgstr "sorpreso" -#: ../../include/features.php:36 -msgid "Post Composition Features" -msgstr "Modalità di scrittura articoli" +#: ../../include/text.php:1016 +msgid "Monday" +msgstr "lunedì" -#: ../../include/features.php:37 -msgid "Richtext Editor" -msgstr "Editor grafico" +#: ../../include/text.php:1016 +msgid "Tuesday" +msgstr "martedì" -#: ../../include/features.php:37 -msgid "Enable richtext editor" -msgstr "Abilita l'editor grafico" +#: ../../include/text.php:1016 +msgid "Wednesday" +msgstr "mercoledì" -#: ../../include/features.php:38 -msgid "Post Preview" -msgstr "Anteprima articolo" +#: ../../include/text.php:1016 +msgid "Thursday" +msgstr "giovedì" -#: ../../include/features.php:38 -msgid "Allow previewing posts and comments before publishing them" -msgstr "Abilita l'anteprima degli articoli e dei commenti prima di pubblicarli" +#: ../../include/text.php:1016 +msgid "Friday" +msgstr "venerdì" -#: ../../include/features.php:39 ../../mod/settings.php:120 -#: ../../mod/sources.php:67 -msgid "Channel Sources" -msgstr "Sorgenti del canale" +#: ../../include/text.php:1016 +msgid "Saturday" +msgstr "sabato" -#: ../../include/features.php:39 -msgid "Automatically import channel content from other channels or feeds" -msgstr "Importa automaticamente il contenuto del canale da altri canali o feed" +#: ../../include/text.php:1016 +msgid "Sunday" +msgstr "domenica" -#: ../../include/features.php:40 -msgid "Even More Encryption" -msgstr "Crittografia addizionale" +#: ../../include/text.php:1020 +msgid "January" +msgstr "gennaio" -#: ../../include/features.php:40 -msgid "Allow encryption of content end-to-end with a shared secret key" -msgstr "Abilita la crittografia dei contenuti tra il mittente e i destinatari con una chiave segreta" +#: ../../include/text.php:1020 +msgid "February" +msgstr "febbraio" -#: ../../include/features.php:45 -msgid "Network and Stream Filtering" -msgstr "Filtraggio dei contenuti" +#: ../../include/text.php:1020 +msgid "March" +msgstr "marzo" -#: ../../include/features.php:46 -msgid "Search by Date" -msgstr "Ricerca per data" +#: ../../include/text.php:1020 +msgid "April" +msgstr "aprile" -#: ../../include/features.php:46 -msgid "Ability to select posts by date ranges" -msgstr "Per selezionare gli articoli in un intervallo tra date" +#: ../../include/text.php:1020 +msgid "May" +msgstr "maggio" -#: ../../include/features.php:47 -msgid "Collections Filter" -msgstr "Filtra per insiemi di canali" +#: ../../include/text.php:1020 +msgid "June" +msgstr "giugno" -#: ../../include/features.php:47 -msgid "Enable widget to display Network posts only from selected collections" -msgstr "Mostra il riquadro per filtrare gli articoli di certi insiemi di canali" +#: ../../include/text.php:1020 +msgid "July" +msgstr "luglio" -#: ../../include/features.php:48 -msgid "Save search terms for re-use" -msgstr "Salva i termini delle ricerche per poterle ripetere" +#: ../../include/text.php:1020 +msgid "August" +msgstr "agosto" -#: ../../include/features.php:49 -msgid "Network Personal Tab" -msgstr "Attività personale" +#: ../../include/text.php:1020 +msgid "September" +msgstr "settembre" -#: ../../include/features.php:49 -msgid "Enable tab to display only Network posts that you've interacted on" -msgstr "Abilita il link per mostrare solamente i contenuti con cui hai interagito" +#: ../../include/text.php:1020 +msgid "October" +msgstr "ottobre" -#: ../../include/features.php:50 -msgid "Network New Tab" -msgstr "Contenuti nuovi" +#: ../../include/text.php:1020 +msgid "November" +msgstr "novembre" -#: ../../include/features.php:50 -msgid "Enable tab to display all new Network activity" -msgstr "Abilita il link per visualizzare solo i nuovi contenuti" +#: ../../include/text.php:1020 +msgid "December" +msgstr "dicembre" -#: ../../include/features.php:51 -msgid "Affinity Tool" -msgstr "Filtro per affinità" +#: ../../include/text.php:1098 +msgid "unknown.???" +msgstr "sconosciuto???" -#: ../../include/features.php:51 -msgid "Filter stream activity by depth of relationships" -msgstr "Permette di selezionare i contenuti in base al livello di amicizia" +#: ../../include/text.php:1099 +msgid "bytes" +msgstr "byte" -#: ../../include/features.php:52 -msgid "Suggest Channels" -msgstr "Suggerisci canali" +#: ../../include/text.php:1134 +msgid "remove category" +msgstr "rimuovi la categoria" -#: ../../include/features.php:52 -msgid "Show channel suggestions" -msgstr "Mostra alcuni canali che potrebbero interessarti" +#: ../../include/text.php:1156 +msgid "remove from file" +msgstr "rimuovi dal file" -#: ../../include/features.php:57 -msgid "Post/Comment Tools" -msgstr "Gestione articoli e commenti" +#: ../../include/text.php:1214 ../../include/text.php:1226 +msgid "Click to open/close" +msgstr "Clicca per aprire/chiudere" -#: ../../include/features.php:59 -msgid "Edit Sent Posts" -msgstr "Modifica gli articoli già inviati" +#: ../../include/text.php:1402 ../../mod/events.php:332 +msgid "link to source" +msgstr "Link all'originale" -#: ../../include/features.php:59 -msgid "Edit and correct posts and comments after sending" -msgstr "Modifica e correggi gli articoli o i commenti anche dopo l'invio" +#: ../../include/text.php:1421 +msgid "Select a page layout: " +msgstr "Scegli il layout della pagina:" -#: ../../include/features.php:60 -msgid "Tagging" -msgstr "Tag" +#: ../../include/text.php:1424 ../../include/text.php:1489 +msgid "default" +msgstr "predefinito" -#: ../../include/features.php:60 -msgid "Ability to tag existing posts" -msgstr "Permetti l'aggiunta di tag su articoli già esistenti" +#: ../../include/text.php:1460 +msgid "Page content type: " +msgstr "Contenuto della pagina:" -#: ../../include/features.php:61 -msgid "Post Categories" -msgstr "Categorie degli articoli" +#: ../../include/text.php:1501 +msgid "Select an alternate language" +msgstr "Seleziona una lingua diversa" -#: ../../include/features.php:61 -msgid "Add categories to your posts" -msgstr "Abilita le categorie per i tuoi articoli" +#: ../../include/text.php:1653 ../../include/conversation.php:117 +#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:45 +msgid "photo" +msgstr "la foto" -#: ../../include/features.php:62 -msgid "Ability to file posts under folders" -msgstr "Abilita la raccolta dei tuoi articoli in cartelle" +#: ../../include/text.php:1656 ../../include/conversation.php:120 +#: ../../mod/tagger.php:49 +msgid "event" +msgstr "l'evento" -#: ../../include/features.php:63 -msgid "Dislike Posts" -msgstr "Non mi piace" +#: ../../include/text.php:1659 ../../include/conversation.php:145 +#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:53 +msgid "status" +msgstr "il messaggio di stato" -#: ../../include/features.php:63 -msgid "Ability to dislike posts/comments" -msgstr "Abilità la funzionalità \"non mi piace\" per i tuoi articoli" +#: ../../include/text.php:1661 ../../include/conversation.php:147 +#: ../../mod/tagger.php:55 +msgid "comment" +msgstr "il commento" -#: ../../include/features.php:64 -msgid "Star Posts" -msgstr "Articoli stella (preferiti)" +#: ../../include/text.php:1666 +msgid "activity" +msgstr "l'attività" -#: ../../include/features.php:64 -msgid "Ability to mark special posts with a star indicator" -msgstr "Mostra la stella per scegliere gli articoli preferiti" +#: ../../include/text.php:1928 +msgid "Design" +msgstr "Design" -#: ../../include/features.php:65 -msgid "Tag Cloud" -msgstr "Nuvola di tag" +#: ../../include/text.php:1930 +msgid "Blocks" +msgstr "Riquadri" -#: ../../include/features.php:65 -msgid "Provide a personal tag cloud on your channel page" -msgstr "Mostra la nuvola dei tag che usi di più sulla pagina del tuo canale" +#: ../../include/text.php:1931 +msgid "Menus" +msgstr "Menù" -#: ../../include/notify.php:23 -msgid "created a new post" -msgstr "Ha creato un nuovo articolo" +#: ../../include/text.php:1932 +msgid "Layouts" +msgstr "Layout" -#: ../../include/notify.php:24 -#, php-format -msgid "commented on %s's post" -msgstr "ha commentato l'articolo di %s" +#: ../../include/text.php:1933 +msgid "Pages" +msgstr "Pagine" -#: ../../include/photos.php:15 ../../include/attach.php:102 -#: ../../include/attach.php:133 ../../include/attach.php:189 -#: ../../include/attach.php:204 ../../include/attach.php:237 -#: ../../include/attach.php:251 ../../include/attach.php:272 -#: ../../include/attach.php:464 ../../include/attach.php:539 -#: ../../include/items.php:3429 ../../mod/common.php:35 -#: ../../mod/events.php:140 ../../mod/invite.php:13 ../../mod/invite.php:102 -#: ../../mod/allfriends.php:10 ../../mod/webpages.php:40 ../../mod/api.php:26 -#: ../../mod/api.php:31 ../../mod/page.php:30 ../../mod/page.php:80 -#: ../../mod/setup.php:200 ../../mod/settings.php:586 -#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27 -#: ../../mod/delegate.php:6 ../../mod/sources.php:48 ../../mod/mitem.php:73 -#: ../../mod/group.php:15 ../../mod/photos.php:74 ../../mod/photos.php:654 -#: ../../mod/viewsrc.php:12 ../../mod/menu.php:40 ../../mod/message.php:208 -#: ../../mod/layouts.php:27 ../../mod/layouts.php:42 ../../mod/network.php:12 -#: ../../mod/profiles.php:152 ../../mod/profiles.php:465 -#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97 -#: ../../mod/connections.php:201 ../../mod/filestorage.php:26 -#: ../../mod/manage.php:6 ../../mod/editlayout.php:48 -#: ../../mod/profile_photo.php:187 ../../mod/profile_photo.php:200 -#: ../../mod/editwebpage.php:44 ../../mod/editwebpage.php:83 -#: ../../mod/notifications.php:66 ../../mod/blocks.php:29 -#: ../../mod/blocks.php:44 ../../mod/editpost.php:13 ../../mod/poke.php:128 -#: ../../mod/channel.php:86 ../../mod/fsuggest.php:78 -#: ../../mod/editblock.php:48 ../../mod/item.php:181 ../../mod/item.php:189 -#: ../../mod/suggest.php:33 ../../mod/register.php:68 ../../mod/regmod.php:18 -#: ../../mod/authtest.php:13 ../../mod/mood.php:114 ../../index.php:178 -#: ../../index.php:346 -msgid "Permission denied." -msgstr "Permesso negato." +#: ../../include/js_strings.php:5 +msgid "Delete this item?" +msgstr "Eliminare questo elemento?" -#: ../../include/photos.php:88 -#, php-format -msgid "Image exceeds website size limit of %lu bytes" -msgstr "L'immagine supera il limite massimo di %lu bytes" +#: ../../include/js_strings.php:6 ../../include/ItemObject.php:536 +#: ../../mod/photos.php:968 ../../mod/photos.php:1055 +msgid "Comment" +msgstr "Commento" -#: ../../include/photos.php:95 -msgid "Image file is empty." -msgstr "Il file dell'immagine è vuoto." +#: ../../include/js_strings.php:7 ../../include/contact_widgets.php:125 +#: ../../include/ItemObject.php:270 +msgid "show more" +msgstr "mostra tutto" + +#: ../../include/js_strings.php:8 +msgid "show fewer" +msgstr "riduci" -#: ../../include/photos.php:124 ../../mod/profile_photo.php:147 -msgid "Unable to process image" -msgstr "Impossibile elaborare l'immagine" +#: ../../include/js_strings.php:9 +msgid "Password too short" +msgstr "Password troppo corta" -#: ../../include/photos.php:186 -msgid "Photo storage failed." -msgstr "Impossibile caricare la foto." +#: ../../include/js_strings.php:10 +msgid "Passwords do not match" +msgstr "Le password non corrispondono" -#: ../../include/photos.php:288 ../../include/conversation.php:1457 -msgid "Photo Albums" -msgstr "Album foto" +#: ../../include/js_strings.php:11 ../../mod/photos.php:39 +msgid "everybody" +msgstr "tutti" -#: ../../include/photos.php:292 ../../mod/photos.php:813 -#: ../../mod/photos.php:1287 -msgid "Upload New Photos" -msgstr "Carica nuove foto" +#: ../../include/js_strings.php:12 +msgid "Secret Passphrase" +msgstr "Chiave segreta" -#: ../../include/profile_selectors.php:6 -msgid "Male" -msgstr "Maschio" +#: ../../include/js_strings.php:13 +msgid "Passphrase hint" +msgstr "Suggerimento per la chiave segreta" -#: ../../include/profile_selectors.php:6 -msgid "Female" -msgstr "Femmina" +#: ../../include/js_strings.php:15 +msgid "timeago.prefixAgo" +msgstr "timeago.prefixAgo" -#: ../../include/profile_selectors.php:6 -msgid "Currently Male" -msgstr "Al momento maschio" +#: ../../include/js_strings.php:16 +msgid "timeago.suffixAgo" +msgstr "timeago.suffixAgo" -#: ../../include/profile_selectors.php:6 -msgid "Currently Female" -msgstr "Al momento femmina" +#: ../../include/js_strings.php:17 +msgid "ago" +msgstr "fa" -#: ../../include/profile_selectors.php:6 -msgid "Mostly Male" -msgstr "Prevalentemente maschio" +#: ../../include/js_strings.php:18 +msgid "from now" +msgstr "da adesso" -#: ../../include/profile_selectors.php:6 -msgid "Mostly Female" -msgstr "Prevalentemente femmina" +#: ../../include/js_strings.php:19 +msgid "less than a minute" +msgstr "meno di un minuto" -#: ../../include/profile_selectors.php:6 -msgid "Transgender" -msgstr "Transgender" +#: ../../include/js_strings.php:20 +msgid "about a minute" +msgstr "circa un minuto" -#: ../../include/profile_selectors.php:6 -msgid "Intersex" -msgstr "Intersex" +#: ../../include/js_strings.php:21 +#, php-format +msgid "%d minutes" +msgstr "%d minuti" -#: ../../include/profile_selectors.php:6 -msgid "Transsexual" -msgstr "Transessuale" +#: ../../include/js_strings.php:22 +msgid "about an hour" +msgstr "circa un’ora" -#: ../../include/profile_selectors.php:6 -msgid "Hermaphrodite" -msgstr "Ermafrodito" +#: ../../include/js_strings.php:23 +#, php-format +msgid "about %d hours" +msgstr "circa %d ore" -#: ../../include/profile_selectors.php:6 -msgid "Neuter" -msgstr "Neutro" +#: ../../include/js_strings.php:24 +msgid "a day" +msgstr "un giorno" -#: ../../include/profile_selectors.php:6 -msgid "Non-specific" -msgstr "Non specificato" +#: ../../include/js_strings.php:25 +#, php-format +msgid "%d days" +msgstr "%d giorni" -#: ../../include/profile_selectors.php:6 -msgid "Other" -msgstr "Altro" +#: ../../include/js_strings.php:26 +msgid "about a month" +msgstr "circa un mese" -#: ../../include/profile_selectors.php:6 -msgid "Undecided" -msgstr "Indeciso" +#: ../../include/js_strings.php:27 +#, php-format +msgid "%d months" +msgstr "%d mesi" -#: ../../include/profile_selectors.php:23 -msgid "Males" -msgstr "Maschi" +#: ../../include/js_strings.php:28 +msgid "about a year" +msgstr "circa un anno" -#: ../../include/profile_selectors.php:23 -msgid "Females" -msgstr "Femmine" +#: ../../include/js_strings.php:29 +#, php-format +msgid "%d years" +msgstr "%d anni" -#: ../../include/profile_selectors.php:23 -msgid "Gay" -msgstr "Gay" +#: ../../include/js_strings.php:30 +msgid " " +msgstr " " -#: ../../include/profile_selectors.php:23 -msgid "Lesbian" -msgstr "Lesbica" +#: ../../include/js_strings.php:31 +msgid "timeago.numbers" +msgstr "timeago.numbers" -#: ../../include/profile_selectors.php:23 -msgid "No Preference" -msgstr "Senza preferenza" +#: ../../include/message.php:18 +msgid "No recipient provided." +msgstr "Devi scegliere un destinatario." -#: ../../include/profile_selectors.php:23 -msgid "Bisexual" -msgstr "Bisessuale" +#: ../../include/message.php:23 +msgid "[no subject]" +msgstr "[nessun titolo]" -#: ../../include/profile_selectors.php:23 -msgid "Autosexual" -msgstr "Autosessuale" +#: ../../include/message.php:42 +msgid "Unable to determine sender." +msgstr "Impossibile determinare il mittente." -#: ../../include/profile_selectors.php:23 -msgid "Abstinent" -msgstr "Astinente" +#: ../../include/message.php:143 +msgid "Stored post could not be verified." +msgstr "Non è stato possibile verificare l'articolo inserito." -#: ../../include/profile_selectors.php:23 -msgid "Virgin" -msgstr "Vergine" +#: ../../include/photo/photo_driver.php:637 ../../include/photos.php:51 +#: ../../mod/photos.php:91 ../../mod/photos.php:652 ../../mod/photos.php:674 +#: ../../mod/profile_photo.php:78 ../../mod/profile_photo.php:225 +#: ../../mod/profile_photo.php:336 +msgid "Profile Photos" +msgstr "Foto del profilo" -#: ../../include/profile_selectors.php:23 -msgid "Deviant" -msgstr "Deviato" +#: ../../include/network.php:640 +msgid "view full size" +msgstr "guarda nelle dimensioni reali" -#: ../../include/profile_selectors.php:23 -msgid "Fetish" -msgstr "Feticista" +#: ../../include/identity.php:29 ../../mod/item.php:1150 +msgid "Unable to obtain identity information from database" +msgstr "Impossibile ottenere le informazioni di identificazione dal database" -#: ../../include/profile_selectors.php:23 -msgid "Oodles" -msgstr "Un sacco" +#: ../../include/identity.php:62 +msgid "Empty name" +msgstr "Nome vuoto" -#: ../../include/profile_selectors.php:23 -msgid "Nonsexual" -msgstr "Asessuato" +#: ../../include/identity.php:64 +msgid "Name too long" +msgstr "Nome troppo lungo" -#: ../../include/profile_selectors.php:42 -msgid "Single" -msgstr "Single" +#: ../../include/identity.php:143 +msgid "No account identifier" +msgstr "Account senza identificativo" -#: ../../include/profile_selectors.php:42 -msgid "Lonely" -msgstr "Da solo" +#: ../../include/identity.php:153 +msgid "Nickname is required." +msgstr "Il nome dell'account è obbligatorio." -#: ../../include/profile_selectors.php:42 -msgid "Available" -msgstr "Disponibile" +#: ../../include/identity.php:167 +msgid "" +"Nickname has unsupported characters or is already being used on this site." +msgstr "Il nome dell'account è già in uso oppure ha dei caratteri non supportati." -#: ../../include/profile_selectors.php:42 -msgid "Unavailable" -msgstr "Non disponibile" +#: ../../include/identity.php:226 +msgid "Unable to retrieve created identity" +msgstr "Impossibile caricare l'identità creata" -#: ../../include/profile_selectors.php:42 -msgid "Has crush" -msgstr "Ha una cotta" +#: ../../include/identity.php:285 +msgid "Default Profile" +msgstr "Profilo predefinito" -#: ../../include/profile_selectors.php:42 -msgid "Infatuated" -msgstr "Infatuato/a" +#: ../../include/identity.php:310 ../../include/profile_selectors.php:42 +#: ../../include/widgets.php:373 ../../mod/connedit.php:389 +msgid "Friends" +msgstr "Amici" -#: ../../include/profile_selectors.php:42 -msgid "Dating" -msgstr "Disponibile a un incontro" +#: ../../include/identity.php:477 +msgid "Requested channel is not available." +msgstr "Il canale che cerchi non è disponibile." -#: ../../include/profile_selectors.php:42 -msgid "Unfaithful" -msgstr "Infedele" +#: ../../include/identity.php:489 +msgid " Sorry, you don't have the permission to view this profile. " +msgstr "Purtroppo non hai il permesso di vedere questo profilo." -#: ../../include/profile_selectors.php:42 -msgid "Sex Addict" -msgstr "Sesso-dipendente" +#: ../../include/identity.php:524 ../../mod/webpages.php:8 +#: ../../mod/connect.php:13 ../../mod/layouts.php:8 +#: ../../mod/achievements.php:8 ../../mod/filestorage.php:40 +#: ../../mod/blocks.php:10 ../../mod/profile.php:16 +msgid "Requested profile is not available." +msgstr "Il profilo richiesto non è disponibile." -#: ../../include/profile_selectors.php:42 -msgid "Friends/Benefits" -msgstr "Amici piccanti" +#: ../../include/identity.php:639 ../../mod/profiles.php:603 +msgid "Change profile photo" +msgstr "Cambia la foto del profilo" -#: ../../include/profile_selectors.php:42 -msgid "Casual" -msgstr "Casual" +#: ../../include/identity.php:645 +msgid "Profiles" +msgstr "Profili" -#: ../../include/profile_selectors.php:42 -msgid "Engaged" -msgstr "Impegnato" +#: ../../include/identity.php:645 +msgid "Manage/edit profiles" +msgstr "Gestisci/modifica i profili" -#: ../../include/profile_selectors.php:42 -msgid "Married" -msgstr "Sposato/a" +#: ../../include/identity.php:646 ../../mod/profiles.php:604 +msgid "Create New Profile" +msgstr "Crea un nuovo profilo" -#: ../../include/profile_selectors.php:42 -msgid "Imaginarily married" -msgstr "Sogna il matrimonio" +#: ../../include/identity.php:649 +msgid "Edit Profile" +msgstr "Modifica il profilo" -#: ../../include/profile_selectors.php:42 -msgid "Partners" -msgstr "Partner" +#: ../../include/identity.php:660 ../../mod/profiles.php:615 +msgid "Profile Image" +msgstr "Immagine del profilo" -#: ../../include/profile_selectors.php:42 -msgid "Cohabiting" -msgstr "Convivente" +#: ../../include/identity.php:663 ../../mod/profiles.php:618 +msgid "visible to everybody" +msgstr "visibile a tutti" -#: ../../include/profile_selectors.php:42 -msgid "Common law" -msgstr "Matrimonio regolare" +#: ../../include/identity.php:664 ../../mod/profiles.php:619 +msgid "Edit visibility" +msgstr "Cambia la visibilità" -#: ../../include/profile_selectors.php:42 -msgid "Happy" -msgstr "Felice" +#: ../../include/identity.php:678 ../../include/identity.php:903 +#: ../../mod/directory.php:158 +msgid "Gender:" +msgstr "Sesso:" -#: ../../include/profile_selectors.php:42 -msgid "Not looking" -msgstr "Non in cerca" +#: ../../include/identity.php:679 ../../include/identity.php:923 +#: ../../mod/directory.php:160 +msgid "Status:" +msgstr "Stato:" -#: ../../include/profile_selectors.php:42 -msgid "Swinger" -msgstr "Scambista" +#: ../../include/identity.php:680 ../../include/identity.php:934 +#: ../../mod/directory.php:162 +msgid "Homepage:" +msgstr "Home page:" -#: ../../include/profile_selectors.php:42 -msgid "Betrayed" -msgstr "Tradito/a" +#: ../../include/identity.php:747 ../../include/identity.php:827 +#: ../../mod/ping.php:230 +msgid "g A l F d" +msgstr "g A l d F" -#: ../../include/profile_selectors.php:42 -msgid "Separated" -msgstr "Separato/a" +#: ../../include/identity.php:748 ../../include/identity.php:828 +msgid "F d" +msgstr "d F" -#: ../../include/profile_selectors.php:42 -msgid "Unstable" -msgstr "Instabile" +#: ../../include/identity.php:793 ../../include/identity.php:868 +#: ../../mod/ping.php:252 +msgid "[today]" +msgstr "[oggi]" -#: ../../include/profile_selectors.php:42 -msgid "Divorced" -msgstr "Divorziato/a" +#: ../../include/identity.php:805 +msgid "Birthday Reminders" +msgstr "Promemoria compleanni" -#: ../../include/profile_selectors.php:42 -msgid "Imaginarily divorced" -msgstr "Sogna il divorzio" +#: ../../include/identity.php:806 +msgid "Birthdays this week:" +msgstr "Compleanni questa settimana:" -#: ../../include/profile_selectors.php:42 -msgid "Widowed" -msgstr "Vedovo/a" +#: ../../include/identity.php:861 +msgid "[No description]" +msgstr "[Nessuna descrizione]" -#: ../../include/profile_selectors.php:42 -msgid "Uncertain" -msgstr "Incerto/a" +#: ../../include/identity.php:879 +msgid "Event Reminders" +msgstr "Promemoria" -#: ../../include/profile_selectors.php:42 -msgid "It's complicated" -msgstr "Relazione complicata" +#: ../../include/identity.php:880 +msgid "Events this week:" +msgstr "Eventi di questa settimana:" -#: ../../include/profile_selectors.php:42 -msgid "Don't care" -msgstr "Chi se ne frega" +#: ../../include/identity.php:893 ../../include/identity.php:977 +#: ../../mod/profperm.php:107 +msgid "Profile" +msgstr "Profilo" -#: ../../include/profile_selectors.php:42 -msgid "Ask me" -msgstr "Chiedimelo" +#: ../../include/identity.php:901 ../../mod/settings.php:911 +msgid "Full Name:" +msgstr "Nome completo:" -#: ../../include/attach.php:184 ../../include/attach.php:232 -msgid "Item was not found." -msgstr "Elemento non trovato." +#: ../../include/identity.php:908 +msgid "j F, Y" +msgstr "j F Y" -#: ../../include/attach.php:285 -msgid "No source file." -msgstr "Nessun file di origine." +#: ../../include/identity.php:909 +msgid "j F" +msgstr "j F" -#: ../../include/attach.php:302 -msgid "Cannot locate file to replace" -msgstr "Il file da sostituire non è stato trovato" +#: ../../include/identity.php:916 +msgid "Birthday:" +msgstr "Compleanno:" -#: ../../include/attach.php:320 -msgid "Cannot locate file to revise/update" -msgstr "Il file da aggiornare non è stato trovato" +#: ../../include/identity.php:920 +msgid "Age:" +msgstr "Età:" -#: ../../include/attach.php:331 +#: ../../include/identity.php:929 #, php-format -msgid "File exceeds size limit of %d" -msgstr "Il file supera la dimensione massima di %d" +msgid "for %1$d %2$s" +msgstr "per %1$d %2$s" -#: ../../include/attach.php:342 -#, php-format -msgid "You have reached your limit of %1$.0f Mbytes attachment storage." -msgstr "Hai raggiunto il limite complessivo di %1$.0f Mbytes per gli allegati." +#: ../../include/identity.php:932 ../../mod/profiles.php:526 +msgid "Sexual Preference:" +msgstr "Preferenze sessuali:" -#: ../../include/attach.php:424 -msgid "File upload failed. Possible system limit or action terminated." -msgstr "Caricamento file fallito, potrebbe aver superato i limiti o l'azione potrebbe essere stata interrotta." +#: ../../include/identity.php:936 ../../mod/profiles.php:528 +msgid "Hometown:" +msgstr "Città dove vivo:" -#: ../../include/attach.php:436 -msgid "Stored file could not be verified. Upload failed." -msgstr "Il file non può essere verificato. Caricamento fallito." +#: ../../include/identity.php:938 +msgid "Tags:" +msgstr "Tag:" -#: ../../include/attach.php:480 ../../include/attach.php:497 -msgid "Path not available." -msgstr "Percorso non disponibile." +#: ../../include/identity.php:940 ../../mod/profiles.php:529 +msgid "Political Views:" +msgstr "Orientamento politico:" -#: ../../include/attach.php:544 -msgid "Empty pathname" -msgstr "Il percorso del file è vuoto" +#: ../../include/identity.php:942 +msgid "Religion:" +msgstr "Religione:" -#: ../../include/attach.php:562 -msgid "duplicate filename or path" -msgstr "il file o percorso del file è duplicato" +#: ../../include/identity.php:944 ../../mod/directory.php:164 +msgid "About:" +msgstr "Informazioni:" -#: ../../include/attach.php:584 -msgid "Path not found." -msgstr "Percorso del file non trovato." +#: ../../include/identity.php:946 +msgid "Hobbies/Interests:" +msgstr "Interessi e hobby:" -#: ../../include/attach.php:628 -msgid "mkdir failed." -msgstr "mkdir fallito." +#: ../../include/identity.php:948 ../../mod/profiles.php:532 +msgid "Likes:" +msgstr "Mi piace:" -#: ../../include/attach.php:632 -msgid "database storage failed." -msgstr "scrittura su database fallita." +#: ../../include/identity.php:950 ../../mod/profiles.php:533 +msgid "Dislikes:" +msgstr "Non mi piace:" -#: ../../include/zot.php:545 -msgid "Invalid data packet" -msgstr "Dati non validi" +#: ../../include/identity.php:953 +msgid "Contact information and Social Networks:" +msgstr "Contatti e social network:" -#: ../../include/zot.php:555 -msgid "Unable to verify channel signature" -msgstr "Impossibile verificare la firma elettronica del canale" +#: ../../include/identity.php:955 +msgid "My other channels:" +msgstr "I miei altri canali:" -#: ../../include/zot.php:732 -#, php-format -msgid "Unable to verify site signature for %s" -msgstr "Impossibile verificare la firma elettronica del sito %s" +#: ../../include/identity.php:957 +msgid "Musical interests:" +msgstr "Gusti musicali:" -#: ../../include/nav.php:72 ../../include/nav.php:87 ../../boot.php:1439 -msgid "Logout" -msgstr "Esci" +#: ../../include/identity.php:959 +msgid "Books, literature:" +msgstr "Libri, letteratura:" -#: ../../include/nav.php:72 ../../include/nav.php:87 -msgid "End this session" -msgstr "Chiudi questa sessione" +#: ../../include/identity.php:961 +msgid "Television:" +msgstr "Televisione:" -#: ../../include/nav.php:75 ../../include/nav.php:121 -msgid "Home" -msgstr "Bacheca" +#: ../../include/identity.php:963 +msgid "Film/dance/culture/entertainment:" +msgstr "Film, danza, cultura, intrattenimento:" -#: ../../include/nav.php:75 -msgid "Your posts and conversations" -msgstr "I tuoi articoli e conversazioni" +#: ../../include/identity.php:965 +msgid "Love/Romance:" +msgstr "Amore:" -#: ../../include/nav.php:76 ../../include/conversation.php:929 -#: ../../mod/connections.php:331 ../../mod/connections.php:445 -msgid "View Profile" -msgstr "Profilo" +#: ../../include/identity.php:967 +msgid "Work/employment:" +msgstr "Lavoro:" -#: ../../include/nav.php:76 -msgid "Your profile page" -msgstr "Il tuo profilo" +#: ../../include/identity.php:969 +msgid "School/education:" +msgstr "Scuola:" -#: ../../include/nav.php:78 -msgid "Edit Profiles" -msgstr "Modifica i profili" +#: ../../include/reddav.php:1018 +msgid "Edit File properties" +msgstr "Modifica le proprietà dei file" -#: ../../include/nav.php:78 -msgid "Manage/Edit Profiles" -msgstr "Gestisci e modifica i profili" +#: ../../include/bbcode.php:128 ../../include/bbcode.php:553 +#: ../../include/bbcode.php:556 +msgid "Image/photo" +msgstr "Immagine" -#: ../../include/nav.php:79 ../../include/conversation.php:1454 -#: ../../mod/fbrowser.php:25 -msgid "Photos" -msgstr "Foto" +#: ../../include/bbcode.php:163 ../../include/bbcode.php:561 +msgid "Encrypted content" +msgstr "Contenuto crittografato" -#: ../../include/nav.php:79 -msgid "Your photos" -msgstr "Le tue foto" +#: ../../include/bbcode.php:170 +msgid "QR code" +msgstr "QR code" -#: ../../include/nav.php:85 ../../boot.php:1440 -msgid "Login" -msgstr "Accedi" +#: ../../include/bbcode.php:213 +#, php-format +msgid "%1$s wrote the following %2$s %3$s" +msgstr "%1$s ha scritto %2$s seguente %3$s" -#: ../../include/nav.php:85 -msgid "Sign in" -msgstr "Entra" +#: ../../include/bbcode.php:215 +msgid "post" +msgstr "l'articolo" -#: ../../include/nav.php:102 -#, php-format -msgid "%s - click to logout" -msgstr "%s - clicca per uscire" +#: ../../include/bbcode.php:513 ../../include/bbcode.php:533 +msgid "$1 wrote:" +msgstr "$1 ha scritto:" -#: ../../include/nav.php:107 -msgid "Click to authenticate to your home hub" -msgstr "Clicca per autenticarti sul tuo server principale" +#: ../../include/oembed.php:157 +msgid "Embedded content" +msgstr "Contenuti incorporati" -#: ../../include/nav.php:121 -msgid "Home Page" -msgstr "Bacheca" +#: ../../include/oembed.php:166 +msgid "Embedding disabled" +msgstr "Contenuti incorporati - funzione disabilitata" -#: ../../include/nav.php:125 ../../mod/register.php:195 ../../boot.php:1416 -msgid "Register" -msgstr "Iscriviti" +#: ../../include/features.php:21 +msgid "General Features" +msgstr "Funzionalità generali" -#: ../../include/nav.php:125 -msgid "Create an account" -msgstr "Crea un account" +#: ../../include/features.php:23 +msgid "Content Expiration" +msgstr "Scadenza" -#: ../../include/nav.php:130 ../../mod/help.php:45 ../../mod/help.php:49 -msgid "Help" -msgstr "Guida" +#: ../../include/features.php:23 +msgid "Remove posts/comments and/or private messages at a future time" +msgstr "Elimina gli articoli, i commenti o i messaggi privati dopo che è trascorso del tempo" + +#: ../../include/features.php:24 +msgid "Multiple Profiles" +msgstr "Profili multipli" + +#: ../../include/features.php:24 +msgid "Ability to create multiple profiles" +msgstr "Abilitazione a creare profili multipli" + +#: ../../include/features.php:25 +msgid "Web Pages" +msgstr "Pagine web" -#: ../../include/nav.php:130 -msgid "Help and documentation" -msgstr "Guida e documentazione" +#: ../../include/features.php:25 +msgid "Provide managed web pages on your channel" +msgstr "Attiva la creazione di pagine web sul tuo canale" -#: ../../include/nav.php:133 -msgid "Apps" -msgstr "Apps" +#: ../../include/features.php:26 +msgid "Private Notes" +msgstr "Note private" -#: ../../include/nav.php:133 -msgid "Addon applications, utilities, games" -msgstr "App, strumenti e giochi aggiuntivi" +#: ../../include/features.php:26 +msgid "Enables a tool to store notes and reminders" +msgstr "Abilita il riquadro per scrivere annotazioni" -#: ../../include/nav.php:135 ../../include/text.php:736 -#: ../../include/text.php:750 ../../mod/search.php:96 -msgid "Search" -msgstr "Cerca" +#: ../../include/features.php:31 +msgid "Extended Identity Sharing" +msgstr "Condivisione avanzata dell'identità" -#: ../../include/nav.php:135 -msgid "Search site content" -msgstr "Cerca nel sito" +#: ../../include/features.php:31 +msgid "" +"Share your identity with all websites on the internet. When disabled, " +"identity is only shared with sites in the matrix." +msgstr "Rendi nota la tua identità a tutti i siti internet. Se disabilitato, la tua identità sarà comunicata solo ai siti red matrix." -#: ../../include/nav.php:138 ../../mod/directory.php:228 -msgid "Directory" -msgstr "Tutti i canali" +#: ../../include/features.php:32 +msgid "Expert Mode" +msgstr "Modalità esperto" -#: ../../include/nav.php:138 -msgid "Channel Locator" -msgstr "Ricerca canali" +#: ../../include/features.php:32 +msgid "Enable Expert Mode to provide advanced configuration options" +msgstr "Abilita la modalità esperto per vedere le opzioni di configurazione avanzate" -#: ../../include/nav.php:149 -msgid "Matrix" -msgstr "La tua rete" +#: ../../include/features.php:33 +msgid "Premium Channel" +msgstr "Canale premium" -#: ../../include/nav.php:149 -msgid "Your matrix" -msgstr "La tua rete" +#: ../../include/features.php:33 +msgid "" +"Allows you to set restrictions and terms on those that connect with your " +"channel" +msgstr "Ti permette di imporre delle restrizioni e dei termini d'uso a chi segue il canale" -#: ../../include/nav.php:150 -msgid "Mark all matrix notifications seen" -msgstr "Segna come lette le notifiche della tua rete" +#: ../../include/features.php:38 +msgid "Post Composition Features" +msgstr "Modalità di scrittura articoli" -#: ../../include/nav.php:152 -msgid "Channel Home" -msgstr "Bacheca del canale" +#: ../../include/features.php:39 +msgid "Richtext Editor" +msgstr "Editor grafico" -#: ../../include/nav.php:152 -msgid "Channel home" -msgstr "Bacheca del canale" +#: ../../include/features.php:39 +msgid "Enable richtext editor" +msgstr "Abilita l'editor grafico" -#: ../../include/nav.php:153 -msgid "Mark all channel notifications seen" -msgstr "Segna come lette le notifiche dei canali" +#: ../../include/features.php:40 +msgid "Post Preview" +msgstr "Anteprima articolo" -#: ../../include/nav.php:156 -msgid "Intros" -msgstr "Richieste" +#: ../../include/features.php:40 +msgid "Allow previewing posts and comments before publishing them" +msgstr "Abilita l'anteprima degli articoli e dei commenti prima di pubblicarli" -#: ../../include/nav.php:156 ../../mod/connections.php:589 -msgid "New Connections" -msgstr "Nuovi contatti" +#: ../../include/features.php:41 ../../include/widgets.php:476 +#: ../../mod/sources.php:81 +msgid "Channel Sources" +msgstr "Sorgenti del canale" -#: ../../include/nav.php:159 -msgid "Notices" -msgstr "Notifiche" +#: ../../include/features.php:41 +msgid "Automatically import channel content from other channels or feeds" +msgstr "Importa automaticamente il contenuto del canale da altri canali o feed" -#: ../../include/nav.php:159 -msgid "Notifications" -msgstr "Notifiche" +#: ../../include/features.php:42 +msgid "Even More Encryption" +msgstr "Crittografia addizionale" -#: ../../include/nav.php:160 -msgid "See all notifications" -msgstr "Vedi tutte le notifiche" +#: ../../include/features.php:42 +msgid "" +"Allow optional encryption of content end-to-end with a shared secret key" +msgstr "Rendi possibile la crittografia dei contenuti tra mittente e destinatari con una chiave segreta" -#: ../../include/nav.php:161 -msgid "Mark all system notifications seen" -msgstr "Segna come lette le notifiche di sistema" +#: ../../include/features.php:47 +msgid "Network and Stream Filtering" +msgstr "Filtraggio dei contenuti" -#: ../../include/nav.php:163 -msgid "Mail" -msgstr "Messaggi" +#: ../../include/features.php:48 +msgid "Search by Date" +msgstr "Ricerca per data" -#: ../../include/nav.php:163 -msgid "Private mail" -msgstr "Messaggi privati" +#: ../../include/features.php:48 +msgid "Ability to select posts by date ranges" +msgstr "Per selezionare gli articoli in un intervallo tra date" -#: ../../include/nav.php:164 -msgid "See all private messages" -msgstr "Guarda tutti i messaggi privati" +#: ../../include/features.php:49 +msgid "Collections Filter" +msgstr "Filtra per insiemi di canali" -#: ../../include/nav.php:165 -msgid "Mark all private messages seen" -msgstr "Segna come letti tutti i messaggi privati" +#: ../../include/features.php:49 +msgid "Enable widget to display Network posts only from selected collections" +msgstr "Mostra il riquadro per filtrare gli articoli di certi insiemi di canali" -#: ../../include/nav.php:166 -msgid "Inbox" -msgstr "In arrivo" +#: ../../include/features.php:50 ../../include/widgets.php:252 +msgid "Saved Searches" +msgstr "Ricerche salvate" -#: ../../include/nav.php:167 -msgid "Outbox" -msgstr "Inviati" +#: ../../include/features.php:50 +msgid "Save search terms for re-use" +msgstr "Salva i termini delle ricerche per poterle ripetere" -#: ../../include/nav.php:168 ../../mod/message.php:24 -msgid "New Message" -msgstr "Nuovo messaggio" +#: ../../include/features.php:51 +msgid "Network Personal Tab" +msgstr "Attività personale" -#: ../../include/nav.php:171 ../../include/conversation.php:1465 -#: ../../mod/events.php:354 -msgid "Events" -msgstr "Eventi" +#: ../../include/features.php:51 +msgid "Enable tab to display only Network posts that you've interacted on" +msgstr "Abilita il link per mostrare solamente i contenuti con cui hai interagito" -#: ../../include/nav.php:171 -msgid "Event Calendar" -msgstr "Calendario" +#: ../../include/features.php:52 +msgid "Network New Tab" +msgstr "Contenuti nuovi" -#: ../../include/nav.php:172 -msgid "See all events" -msgstr "Guarda tutti gli eventi" +#: ../../include/features.php:52 +msgid "Enable tab to display all new Network activity" +msgstr "Abilita il link per visualizzare solo i nuovi contenuti" -#: ../../include/nav.php:173 -msgid "Mark all events seen" -msgstr "Marca come letti tutti gli eventi" +#: ../../include/features.php:53 +msgid "Affinity Tool" +msgstr "Filtro per affinità" -#: ../../include/nav.php:175 -msgid "Channel Select" -msgstr "Gestisci i canali" +#: ../../include/features.php:53 +msgid "Filter stream activity by depth of relationships" +msgstr "Permette di selezionare i contenuti in base al livello di amicizia" -#: ../../include/nav.php:175 -msgid "Manage Your Channels" -msgstr "Gestisci i contatti dei tuoi canali" +#: ../../include/features.php:54 +msgid "Suggest Channels" +msgstr "Suggerisci canali" -#: ../../include/nav.php:177 ../../mod/settings.php:131 -#: ../../mod/admin.php:785 ../../mod/admin.php:990 -msgid "Settings" -msgstr "Impostazioni" +#: ../../include/features.php:54 +msgid "Show channel suggestions" +msgstr "Mostra alcuni canali che potrebbero interessarti" -#: ../../include/nav.php:177 -msgid "Account/Channel Settings" -msgstr "Impostazioni account e canali" +#: ../../include/features.php:59 +msgid "Post/Comment Tools" +msgstr "Gestione articoli e commenti" -#: ../../include/nav.php:179 ../../mod/connections.php:694 -msgid "Connections" -msgstr "Contatti" +#: ../../include/features.php:61 +msgid "Edit Sent Posts" +msgstr "Modifica gli articoli già inviati" -#: ../../include/nav.php:179 -msgid "Manage/Edit Friends and Connections" -msgstr "Modifica amici e contatti" +#: ../../include/features.php:61 +msgid "Edit and correct posts and comments after sending" +msgstr "Modifica e correggi gli articoli o i commenti anche dopo l'invio" -#: ../../include/nav.php:186 ../../mod/admin.php:111 -msgid "Admin" -msgstr "Amministrazione" +#: ../../include/features.php:62 +msgid "Tagging" +msgstr "Tag" -#: ../../include/nav.php:186 -msgid "Site Setup and Configuration" -msgstr "Configurazione del sito" +#: ../../include/features.php:62 +msgid "Ability to tag existing posts" +msgstr "Permetti l'aggiunta di tag su articoli già esistenti" -#: ../../include/nav.php:212 -msgid "Nothing new here" -msgstr "Niente di nuovo qui" +#: ../../include/features.php:63 +msgid "Post Categories" +msgstr "Categorie degli articoli" -#: ../../include/nav.php:217 -msgid "Please wait..." -msgstr "Attendere..." +#: ../../include/features.php:63 +msgid "Add categories to your posts" +msgstr "Abilita le categorie per i tuoi articoli" -#: ../../include/taxonomy.php:210 -msgid "Tags" -msgstr "Tag" +#: ../../include/features.php:64 ../../include/widgets.php:283 +#: ../../include/contact_widgets.php:53 +msgid "Saved Folders" +msgstr "Cartelle salvate" -#: ../../include/taxonomy.php:224 -msgid "Keywords" -msgstr "Parole chiave" +#: ../../include/features.php:64 +msgid "Ability to file posts under folders" +msgstr "Abilita la raccolta dei tuoi articoli in cartelle" -#: ../../include/taxonomy.php:249 -msgid "have" -msgstr "ho" +#: ../../include/features.php:65 +msgid "Dislike Posts" +msgstr "Non mi piace" -#: ../../include/taxonomy.php:249 -msgid "has" -msgstr "ha" +#: ../../include/features.php:65 +msgid "Ability to dislike posts/comments" +msgstr "Abilità la funzionalità \"non mi piace\" per i tuoi articoli" -#: ../../include/taxonomy.php:250 -msgid "want" -msgstr "voglio" +#: ../../include/features.php:66 +msgid "Star Posts" +msgstr "Articoli stella (preferiti)" -#: ../../include/taxonomy.php:250 -msgid "wants" -msgstr "vuole" +#: ../../include/features.php:66 +msgid "Ability to mark special posts with a star indicator" +msgstr "Mostra la stella per scegliere gli articoli preferiti" -#: ../../include/taxonomy.php:251 -msgid "likes" -msgstr "ama" +#: ../../include/features.php:67 +msgid "Tag Cloud" +msgstr "Nuvola di tag" -#: ../../include/taxonomy.php:252 -msgid "dislikes" -msgstr "non ama" +#: ../../include/features.php:67 +msgid "Provide a personal tag cloud on your channel page" +msgstr "Mostra la nuvola dei tag che usi di più sulla pagina del tuo canale" -#: ../../include/account.php:23 -msgid "Not a valid email address" -msgstr "Email non valida" +#: ../../include/group.php:25 +msgid "" +"A deleted group with this name was revived. Existing item permissions " +"may apply to this group and any future members. If this is " +"not what you intended, please create another group with a different name." +msgstr "È stato ripristinato un insieme con lo stesso nome che era stato eliminato in precedenza. I permessi già presenti potrebbero rimanere validi per i nuovi canali. Se non vuoi che ciò accada, devi creare un altro insieme con un nome diverso." -#: ../../include/account.php:25 -msgid "Your email domain is not among those allowed on this site" -msgstr "Il dominio della tua email attualmente non è permesso su questo sito" +#: ../../include/group.php:223 +msgid "Default privacy group for new contacts" +msgstr "Insieme predefinito per i nuovi canali che aggiungi" -#: ../../include/account.php:31 -msgid "Your email address is already registered at this site." -msgstr "La tua email è già registrata su questo sito." +#: ../../include/group.php:242 ../../mod/admin.php:700 +msgid "All Channels" +msgstr "Tutti i canali" -#: ../../include/account.php:64 -msgid "An invitation is required." -msgstr "È necessario un invito." +#: ../../include/group.php:264 +msgid "edit" +msgstr "modifica" -#: ../../include/account.php:68 -msgid "Invitation could not be verified." -msgstr "L'invito non può essere verificato." +#: ../../include/group.php:285 +msgid "Collections" +msgstr "Insiemi di canali" -#: ../../include/account.php:118 -msgid "Please enter the required information." -msgstr "Inserisci le informazioni richieste." +#: ../../include/group.php:286 +msgid "Edit collection" +msgstr "Modifica l'insieme di canali" -#: ../../include/account.php:186 -msgid "Failed to store account information." -msgstr "Non è stato possibile salvare le informazioni del tuo account." +#: ../../include/group.php:287 +msgid "Create a new collection" +msgstr "Crea un nuovo insieme" -#: ../../include/account.php:272 -#, php-format -msgid "Registration request at %s" -msgstr "Richiesta di registrazione su %s" +#: ../../include/group.php:288 +msgid "Channels not in any collection" +msgstr "Canali che non sono in un insieme" -#: ../../include/account.php:274 ../../include/account.php:301 -#: ../../include/account.php:358 -msgid "Administrator" -msgstr "Amministratore" +#: ../../include/group.php:290 ../../include/widgets.php:253 +msgid "add" +msgstr "aggiungi" -#: ../../include/account.php:296 -msgid "your registration password" -msgstr "la password di registrazione" +#: ../../include/notify.php:23 +msgid "created a new post" +msgstr "Ha creato un nuovo articolo" -#: ../../include/account.php:299 ../../include/account.php:356 +#: ../../include/notify.php:24 #, php-format -msgid "Registration details for %s" -msgstr "Dettagli della registrazione di %s" +msgid "commented on %s's post" +msgstr "ha commentato l'articolo di %s" -#: ../../include/account.php:365 -msgid "Account approved." -msgstr "Account approvato." +#: ../../include/photos.php:15 ../../include/attach.php:97 +#: ../../include/attach.php:128 ../../include/attach.php:184 +#: ../../include/attach.php:199 ../../include/attach.php:232 +#: ../../include/attach.php:246 ../../include/attach.php:267 +#: ../../include/attach.php:462 ../../include/attach.php:540 +#: ../../include/items.php:3454 ../../mod/common.php:35 +#: ../../mod/events.php:140 ../../mod/thing.php:241 ../../mod/thing.php:257 +#: ../../mod/thing.php:291 ../../mod/invite.php:13 ../../mod/invite.php:104 +#: ../../mod/connedit.php:179 ../../mod/webpages.php:40 ../../mod/api.php:26 +#: ../../mod/api.php:31 ../../mod/page.php:30 ../../mod/page.php:80 +#: ../../mod/setup.php:200 ../../mod/viewconnections.php:22 +#: ../../mod/viewconnections.php:27 ../../mod/delegate.php:6 +#: ../../mod/sources.php:62 ../../mod/mitem.php:73 ../../mod/group.php:9 +#: ../../mod/photos.php:68 ../../mod/photos.php:522 ../../mod/viewsrc.php:12 +#: ../../mod/menu.php:40 ../../mod/connections.php:167 +#: ../../mod/layouts.php:27 ../../mod/layouts.php:42 ../../mod/network.php:12 +#: ../../mod/profiles.php:152 ../../mod/profiles.php:453 +#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97 +#: ../../mod/achievements.php:27 ../../mod/filestorage.php:10 +#: ../../mod/filestorage.php:59 ../../mod/filestorage.php:76 +#: ../../mod/filestorage.php:99 ../../mod/manage.php:6 +#: ../../mod/settings.php:484 ../../mod/mail.php:108 +#: ../../mod/editlayout.php:48 ../../mod/profile_photo.php:187 +#: ../../mod/profile_photo.php:200 ../../mod/editpost.php:13 +#: ../../mod/notifications.php:66 ../../mod/blocks.php:29 +#: ../../mod/blocks.php:44 ../../mod/editwebpage.php:44 +#: ../../mod/editwebpage.php:83 ../../mod/poke.php:128 +#: ../../mod/channel.php:88 ../../mod/channel.php:188 +#: ../../mod/channel.php:231 ../../mod/fsuggest.php:78 +#: ../../mod/editblock.php:48 ../../mod/suggest.php:26 +#: ../../mod/message.php:16 ../../mod/register.php:68 ../../mod/regmod.php:18 +#: ../../mod/authtest.php:13 ../../mod/item.php:182 ../../mod/item.php:190 +#: ../../mod/mood.php:119 ../../index.php:176 ../../index.php:348 +msgid "Permission denied." +msgstr "Permesso negato." -#: ../../include/account.php:399 +#: ../../include/photos.php:89 #, php-format -msgid "Registration revoked for %s" -msgstr "Registrazione revocata per %s" +msgid "Image exceeds website size limit of %lu bytes" +msgstr "L'immagine supera il limite massimo di %lu bytes" -#: ../../include/conversation.php:117 ../../include/text.php:1621 -#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:45 -msgid "photo" -msgstr "la foto" +#: ../../include/photos.php:96 +msgid "Image file is empty." +msgstr "Il file dell'immagine è vuoto." -#: ../../include/conversation.php:120 ../../include/text.php:1624 -#: ../../mod/tagger.php:49 -msgid "event" -msgstr "l'evento" +#: ../../include/photos.php:123 ../../mod/profile_photo.php:147 +msgid "Unable to process image" +msgstr "Impossibile elaborare l'immagine" -#: ../../include/conversation.php:123 -msgid "channel" -msgstr "canale" +#: ../../include/photos.php:185 +msgid "Photo storage failed." +msgstr "Impossibile caricare la foto." -#: ../../include/conversation.php:145 ../../include/text.php:1627 -#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:53 -msgid "status" -msgstr "il messaggio di stato" +#: ../../include/photos.php:302 ../../include/conversation.php:1477 +msgid "Photo Albums" +msgstr "Album foto" -#: ../../include/conversation.php:147 ../../include/text.php:1629 -#: ../../mod/tagger.php:55 -msgid "comment" -msgstr "il commento" +#: ../../include/photos.php:306 ../../mod/photos.php:690 +#: ../../mod/photos.php:1165 +msgid "Upload New Photos" +msgstr "Carica nuove foto" -#: ../../include/conversation.php:161 ../../mod/like.php:134 -#, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "A %1$s piace %3$s di %2$s" +#: ../../include/profile_selectors.php:6 +msgid "Male" +msgstr "Maschio" -#: ../../include/conversation.php:164 ../../mod/like.php:136 -#, php-format -msgid "%1$s doesn't like %2$s's %3$s" -msgstr "A %1$s non piace %3$s di %2$s" +#: ../../include/profile_selectors.php:6 +msgid "Female" +msgstr "Femmina" -#: ../../include/conversation.php:201 -#, php-format -msgid "%1$s is now connected with %2$s" -msgstr "%1$s adesso è connesso con %2$s" +#: ../../include/profile_selectors.php:6 +msgid "Currently Male" +msgstr "Al momento maschio" -#: ../../include/conversation.php:236 -#, php-format -msgid "%1$s poked %2$s" -msgstr "%1$s ha mandato un poke a %2$s" +#: ../../include/profile_selectors.php:6 +msgid "Currently Female" +msgstr "Al momento femmina" -#: ../../include/conversation.php:240 ../../include/text.php:790 -msgid "poked" -msgstr "ha ricevuto un poke" +#: ../../include/profile_selectors.php:6 +msgid "Mostly Male" +msgstr "Prevalentemente maschio" -#: ../../include/conversation.php:258 ../../mod/mood.php:63 -#, php-format -msgid "%1$s is currently %2$s" -msgstr "%1$s al momento è %2$s" +#: ../../include/profile_selectors.php:6 +msgid "Mostly Female" +msgstr "Prevalentemente femmina" -#: ../../include/conversation.php:662 -#, php-format -msgid "View %s's profile @ %s" -msgstr "Vedi il profilo di %s @ %s" +#: ../../include/profile_selectors.php:6 +msgid "Transgender" +msgstr "Transgender" -#: ../../include/conversation.php:676 -msgid "Categories:" -msgstr "Categorie:" +#: ../../include/profile_selectors.php:6 +msgid "Intersex" +msgstr "Intersex" -#: ../../include/conversation.php:677 -msgid "Filed under:" -msgstr "Classificato come:" +#: ../../include/profile_selectors.php:6 +msgid "Transsexual" +msgstr "Transessuale" -#: ../../include/conversation.php:704 -msgid "View in context" -msgstr "Vedi nel contesto" +#: ../../include/profile_selectors.php:6 +msgid "Hermaphrodite" +msgstr "Ermafrodito" -#: ../../include/conversation.php:830 -msgid "remove" -msgstr "rimuovi" +#: ../../include/profile_selectors.php:6 +msgid "Neuter" +msgstr "Neutro" -#: ../../include/conversation.php:834 -msgid "Loading..." -msgstr "Caricamento in corso..." +#: ../../include/profile_selectors.php:6 +msgid "Non-specific" +msgstr "Non specificato" -#: ../../include/conversation.php:835 -msgid "Delete Selected Items" -msgstr "Elimina gli oggetti selezionati" +#: ../../include/profile_selectors.php:6 +msgid "Other" +msgstr "Altro" -#: ../../include/conversation.php:926 -msgid "View Source" -msgstr "Vedi il sorgente" +#: ../../include/profile_selectors.php:6 +msgid "Undecided" +msgstr "Indeciso" -#: ../../include/conversation.php:927 -msgid "Follow Thread" -msgstr "Segui la discussione" +#: ../../include/profile_selectors.php:23 +msgid "Males" +msgstr "Maschi" -#: ../../include/conversation.php:928 -msgid "View Status" -msgstr "Guarda il messaggio di stato" +#: ../../include/profile_selectors.php:23 +msgid "Females" +msgstr "Femmine" -#: ../../include/conversation.php:930 -msgid "View Photos" -msgstr "Guarda le foto" +#: ../../include/profile_selectors.php:23 +msgid "Gay" +msgstr "Gay" -#: ../../include/conversation.php:931 -msgid "Matrix Activity" -msgstr "Attività nella tua rete" +#: ../../include/profile_selectors.php:23 +msgid "Lesbian" +msgstr "Lesbica" -#: ../../include/conversation.php:932 -msgid "Edit Contact" -msgstr "Modifica il contatto" +#: ../../include/profile_selectors.php:23 +msgid "No Preference" +msgstr "Senza preferenza" -#: ../../include/conversation.php:933 -msgid "Send PM" -msgstr "Invia messaggio privato" +#: ../../include/profile_selectors.php:23 +msgid "Bisexual" +msgstr "Bisessuale" -#: ../../include/conversation.php:934 -msgid "Poke" -msgstr "Poke" +#: ../../include/profile_selectors.php:23 +msgid "Autosexual" +msgstr "Autosessuale" -#: ../../include/conversation.php:996 -#, php-format -msgid "%s likes this." -msgstr "Piace a %s." +#: ../../include/profile_selectors.php:23 +msgid "Abstinent" +msgstr "Astinente" -#: ../../include/conversation.php:996 -#, php-format -msgid "%s doesn't like this." -msgstr "Non piace a %s." +#: ../../include/profile_selectors.php:23 +msgid "Virgin" +msgstr "Vergine" -#: ../../include/conversation.php:1000 -#, php-format -msgid "%2$d people like this." -msgid_plural "%2$d people like this." -msgstr[0] "" -msgstr[1] "Piace a %2$d persone." +#: ../../include/profile_selectors.php:23 +msgid "Deviant" +msgstr "Deviato" -#: ../../include/conversation.php:1002 -#, php-format -msgid "%2$d people don't like this." -msgid_plural "%2$d people don't like this." -msgstr[0] "" -msgstr[1] "Non piace a %2$d persone." +#: ../../include/profile_selectors.php:23 +msgid "Fetish" +msgstr "Feticista" -#: ../../include/conversation.php:1008 -msgid "and" -msgstr "e" +#: ../../include/profile_selectors.php:23 +msgid "Oodles" +msgstr "Un sacco" -#: ../../include/conversation.php:1011 -#, php-format -msgid ", and %d other people" -msgid_plural ", and %d other people" -msgstr[0] "" -msgstr[1] "e altre %d persone" +#: ../../include/profile_selectors.php:23 +msgid "Nonsexual" +msgstr "Asessuato" -#: ../../include/conversation.php:1012 -#, php-format -msgid "%s like this." -msgstr "Piace a %s." +#: ../../include/profile_selectors.php:42 +msgid "Single" +msgstr "Single" -#: ../../include/conversation.php:1012 -#, php-format -msgid "%s don't like this." -msgstr "Non piace a %s." +#: ../../include/profile_selectors.php:42 +msgid "Lonely" +msgstr "Da solo" -#: ../../include/conversation.php:1062 -msgid "Visible to everybody" -msgstr "Visibile a tutti" +#: ../../include/profile_selectors.php:42 +msgid "Available" +msgstr "Disponibile" -#: ../../include/conversation.php:1063 ../../mod/message.php:281 -#: ../../mod/message.php:417 -msgid "Please enter a link URL:" -msgstr "Inserisci l'indirizzo del link:" +#: ../../include/profile_selectors.php:42 +msgid "Unavailable" +msgstr "Non disponibile" -#: ../../include/conversation.php:1064 -msgid "Please enter a video link/URL:" -msgstr "Inserisci l'indirizzo del video:" +#: ../../include/profile_selectors.php:42 +msgid "Has crush" +msgstr "Ha una cotta" -#: ../../include/conversation.php:1065 -msgid "Please enter an audio link/URL:" -msgstr "Inserisci l'indirizzo dell'audio:" +#: ../../include/profile_selectors.php:42 +msgid "Infatuated" +msgstr "Infatuato/a" -#: ../../include/conversation.php:1066 -msgid "Tag term:" -msgstr "Tag:" +#: ../../include/profile_selectors.php:42 +msgid "Dating" +msgstr "Disponibile a un incontro" -#: ../../include/conversation.php:1067 ../../mod/filer.php:35 -msgid "Save to Folder:" -msgstr "Salva nella cartella:" +#: ../../include/profile_selectors.php:42 +msgid "Unfaithful" +msgstr "Infedele" -#: ../../include/conversation.php:1068 -msgid "Where are you right now?" -msgstr "Dove sei ora?" +#: ../../include/profile_selectors.php:42 +msgid "Sex Addict" +msgstr "Sesso-dipendente" -#: ../../include/conversation.php:1069 ../../mod/message.php:282 -#: ../../mod/message.php:418 ../../mod/editpost.php:52 -msgid "Expires YYYY-MM-DD HH:MM" -msgstr "Scadenza il AAAA-MM-GG OO:MM" +#: ../../include/profile_selectors.php:42 +msgid "Friends/Benefits" +msgstr "Amici piccanti" -#: ../../include/conversation.php:1093 ../../mod/photos.php:1071 -msgid "Share" -msgstr "Condividi" +#: ../../include/profile_selectors.php:42 +msgid "Casual" +msgstr "Casual" -#: ../../include/conversation.php:1095 ../../mod/editwebpage.php:139 -msgid "Page link title" -msgstr "Link del titolo" +#: ../../include/profile_selectors.php:42 +msgid "Engaged" +msgstr "Impegnato" -#: ../../include/conversation.php:1097 ../../mod/message.php:329 -#: ../../mod/message.php:480 ../../mod/editlayout.php:101 -#: ../../mod/editwebpage.php:144 ../../mod/editpost.php:98 -#: ../../mod/editblock.php:115 -msgid "Upload photo" -msgstr "Carica foto" +#: ../../include/profile_selectors.php:42 +msgid "Married" +msgstr "Sposato/a" -#: ../../include/conversation.php:1098 -msgid "upload photo" -msgstr "carica foto" +#: ../../include/profile_selectors.php:42 +msgid "Imaginarily married" +msgstr "Sogna il matrimonio" -#: ../../include/conversation.php:1099 ../../mod/message.php:330 -#: ../../mod/message.php:481 ../../mod/editlayout.php:102 -#: ../../mod/editwebpage.php:145 ../../mod/editpost.php:99 -#: ../../mod/editblock.php:116 -msgid "Attach file" -msgstr "Allega file" +#: ../../include/profile_selectors.php:42 +msgid "Partners" +msgstr "Partner" -#: ../../include/conversation.php:1100 -msgid "attach file" -msgstr "allega file" +#: ../../include/profile_selectors.php:42 +msgid "Cohabiting" +msgstr "Convivente" -#: ../../include/conversation.php:1101 ../../mod/message.php:331 -#: ../../mod/message.php:482 ../../mod/editlayout.php:103 -#: ../../mod/editwebpage.php:146 ../../mod/editpost.php:100 -#: ../../mod/editblock.php:117 -msgid "Insert web link" -msgstr "Inserisci un indirizzo web" +#: ../../include/profile_selectors.php:42 +msgid "Common law" +msgstr "Matrimonio regolare" -#: ../../include/conversation.php:1102 -msgid "web link" -msgstr "link web" +#: ../../include/profile_selectors.php:42 +msgid "Happy" +msgstr "Felice" -#: ../../include/conversation.php:1103 -msgid "Insert video link" -msgstr "Inserisci l'indirizzo di un video" +#: ../../include/profile_selectors.php:42 +msgid "Not looking" +msgstr "Non in cerca" -#: ../../include/conversation.php:1104 -msgid "video link" -msgstr "link video" +#: ../../include/profile_selectors.php:42 +msgid "Swinger" +msgstr "Scambista" -#: ../../include/conversation.php:1105 -msgid "Insert audio link" -msgstr "Inserisci l'indirizzo di un audio" +#: ../../include/profile_selectors.php:42 +msgid "Betrayed" +msgstr "Tradito/a" -#: ../../include/conversation.php:1106 -msgid "audio link" -msgstr "link audio" +#: ../../include/profile_selectors.php:42 +msgid "Separated" +msgstr "Separato/a" -#: ../../include/conversation.php:1107 ../../mod/editlayout.php:107 -#: ../../mod/editwebpage.php:150 ../../mod/editpost.php:104 -#: ../../mod/editblock.php:121 -msgid "Set your location" -msgstr "La tua località" +#: ../../include/profile_selectors.php:42 +msgid "Unstable" +msgstr "Instabile" -#: ../../include/conversation.php:1108 -msgid "set location" -msgstr "la tua località" +#: ../../include/profile_selectors.php:42 +msgid "Divorced" +msgstr "Divorziato/a" -#: ../../include/conversation.php:1109 ../../mod/editlayout.php:108 -#: ../../mod/editwebpage.php:151 ../../mod/editpost.php:105 -#: ../../mod/editblock.php:122 -msgid "Clear browser location" -msgstr "Rimuovi la località data dal browser" +#: ../../include/profile_selectors.php:42 +msgid "Imaginarily divorced" +msgstr "Sogna il divorzio" -#: ../../include/conversation.php:1110 -msgid "clear location" -msgstr "rimuovi la località" +#: ../../include/profile_selectors.php:42 +msgid "Widowed" +msgstr "Vedovo/a" -#: ../../include/conversation.php:1112 ../../mod/editlayout.php:121 -#: ../../mod/editwebpage.php:168 ../../mod/editpost.php:118 -#: ../../mod/editblock.php:136 -msgid "Set title" -msgstr "Scegli un titolo" +#: ../../include/profile_selectors.php:42 +msgid "Uncertain" +msgstr "Incerto/a" -#: ../../include/conversation.php:1115 ../../mod/editlayout.php:123 -#: ../../mod/editwebpage.php:170 ../../mod/editpost.php:120 -#: ../../mod/editblock.php:138 -msgid "Categories (comma-separated list)" -msgstr "Categorie (separate da virgola)" +#: ../../include/profile_selectors.php:42 +msgid "It's complicated" +msgstr "Relazione complicata" -#: ../../include/conversation.php:1117 ../../mod/editlayout.php:110 -#: ../../mod/editwebpage.php:153 ../../mod/editpost.php:107 -#: ../../mod/editblock.php:124 -msgid "Permission settings" -msgstr "Impostazioni permessi" +#: ../../include/profile_selectors.php:42 +msgid "Don't care" +msgstr "Chi se ne frega" -#: ../../include/conversation.php:1118 -msgid "permissions" -msgstr "permessi" +#: ../../include/profile_selectors.php:42 +msgid "Ask me" +msgstr "Chiedimelo" -#: ../../include/conversation.php:1126 ../../mod/editlayout.php:118 -#: ../../mod/editwebpage.php:163 ../../mod/editpost.php:115 -#: ../../mod/editblock.php:133 -msgid "Public post" -msgstr "Articolo pubblico" +#: ../../include/attach.php:179 ../../include/attach.php:227 +msgid "Item was not found." +msgstr "Elemento non trovato." -#: ../../include/conversation.php:1128 ../../mod/editlayout.php:124 -#: ../../mod/editwebpage.php:171 ../../mod/editpost.php:121 -#: ../../mod/editblock.php:139 -msgid "Example: bob@example.com, mary@example.com" -msgstr "Per esempio: mario@esempio.com, simona@esempio.com" +#: ../../include/attach.php:280 +msgid "No source file." +msgstr "Nessun file di origine." -#: ../../include/conversation.php:1141 ../../mod/message.php:336 -#: ../../mod/message.php:487 ../../mod/editlayout.php:134 -#: ../../mod/editwebpage.php:181 ../../mod/editpost.php:132 -#: ../../mod/editblock.php:149 -msgid "Set expiration date" -msgstr "Data di scadenza" +#: ../../include/attach.php:297 +msgid "Cannot locate file to replace" +msgstr "Il file da sostituire non è stato trovato" -#: ../../include/conversation.php:1368 -msgid "Commented Order" -msgstr "Ultimi commenti" +#: ../../include/attach.php:315 +msgid "Cannot locate file to revise/update" +msgstr "Il file da aggiornare non è stato trovato" -#: ../../include/conversation.php:1371 -msgid "Sort by Comment Date" -msgstr "Per data del commento" +#: ../../include/attach.php:326 +#, php-format +msgid "File exceeds size limit of %d" +msgstr "Il file supera la dimensione massima di %d" -#: ../../include/conversation.php:1374 -msgid "Posted Order" -msgstr "Ultimi articoli" +#: ../../include/attach.php:338 +#, php-format +msgid "You have reached your limit of %1$.0f Mbytes attachment storage." +msgstr "Hai raggiunto il limite complessivo di %1$.0f Mbytes per gli allegati." -#: ../../include/conversation.php:1377 -msgid "Sort by Post Date" -msgstr "Per data di creazione" +#: ../../include/attach.php:422 +msgid "File upload failed. Possible system limit or action terminated." +msgstr "Caricamento file fallito, potrebbe aver superato i limiti o l'azione potrebbe essere stata interrotta." -#: ../../include/conversation.php:1381 -msgid "Personal" -msgstr "Personali" +#: ../../include/attach.php:434 +msgid "Stored file could not be verified. Upload failed." +msgstr "Il file non può essere verificato. Caricamento fallito." -#: ../../include/conversation.php:1384 -msgid "Posts that mention or involve you" -msgstr "Articoli che ti riguardano o ti menzionano" +#: ../../include/attach.php:478 ../../include/attach.php:495 +msgid "Path not available." +msgstr "Percorso non disponibile." -#: ../../include/conversation.php:1387 ../../mod/menu.php:57 -#: ../../mod/connections.php:556 -msgid "New" -msgstr "Novità" +#: ../../include/attach.php:545 +msgid "Empty pathname" +msgstr "Il percorso del file è vuoto" -#: ../../include/conversation.php:1390 -msgid "Activity Stream - by date" -msgstr "Elenco attività - per data" +#: ../../include/attach.php:563 +msgid "duplicate filename or path" +msgstr "il file o percorso del file è duplicato" -#: ../../include/conversation.php:1397 -msgid "Starred" -msgstr "Preferiti" +#: ../../include/attach.php:588 +msgid "Path not found." +msgstr "Percorso del file non trovato." -#: ../../include/conversation.php:1400 -msgid "Favourite Posts" -msgstr "Articoli preferiti" +#: ../../include/attach.php:633 +msgid "mkdir failed." +msgstr "mkdir fallito." -#: ../../include/conversation.php:1407 -msgid "Spam" -msgstr "Spam" +#: ../../include/attach.php:637 +msgid "database storage failed." +msgstr "scrittura su database fallita." -#: ../../include/conversation.php:1410 -msgid "Posts flagged as SPAM" -msgstr "Articoli marcati come spam" +#: ../../include/taxonomy.php:210 +msgid "Tags" +msgstr "Tag" -#: ../../include/conversation.php:1440 -msgid "Channel" -msgstr "Canale" +#: ../../include/taxonomy.php:227 +msgid "Keywords" +msgstr "Parole chiave" -#: ../../include/conversation.php:1443 -msgid "Status Messages and Posts" -msgstr "Articoli e messaggi di stato" +#: ../../include/taxonomy.php:252 +msgid "have" +msgstr "ho" -#: ../../include/conversation.php:1447 -msgid "About" -msgstr "Informazioni" +#: ../../include/taxonomy.php:252 +msgid "has" +msgstr "ha" + +#: ../../include/taxonomy.php:253 +msgid "want" +msgstr "voglio" -#: ../../include/conversation.php:1450 -msgid "Profile Details" -msgstr "Dettagli del profilo" +#: ../../include/taxonomy.php:253 +msgid "wants" +msgstr "vuole" -#: ../../include/conversation.php:1468 -msgid "Events and Calendar" -msgstr "Calendario eventi" +#: ../../include/taxonomy.php:254 ../../include/ItemObject.php:175 +msgid "like" +msgstr "mi piace" -#: ../../include/conversation.php:1473 -msgid "Webpages" -msgstr "Pagine web" +#: ../../include/taxonomy.php:254 +msgid "likes" +msgstr "ama" -#: ../../include/conversation.php:1476 -msgid "Manage Webpages" -msgstr "Gestisci le pagine web" +#: ../../include/taxonomy.php:255 ../../include/ItemObject.php:176 +msgid "dislike" +msgstr "non mi piace" + +#: ../../include/taxonomy.php:255 +msgid "dislikes" +msgstr "non ama" -#: ../../include/auth.php:69 +#: ../../include/auth.php:76 msgid "Logged out." msgstr "Uscita effettuata." -#: ../../include/auth.php:181 +#: ../../include/auth.php:188 msgid "Failed authentication" msgstr "Autenticazione fallita" -#: ../../include/auth.php:190 +#: ../../include/auth.php:203 msgid "Login failed." msgstr "Accesso fallito." -#: ../../include/contact_widgets.php:14 +#: ../../include/account.php:23 +msgid "Not a valid email address" +msgstr "Email non valida" + +#: ../../include/account.php:25 +msgid "Your email domain is not among those allowed on this site" +msgstr "Il dominio della tua email attualmente non è permesso su questo sito" + +#: ../../include/account.php:31 +msgid "Your email address is already registered at this site." +msgstr "La tua email è già registrata su questo sito." + +#: ../../include/account.php:64 +msgid "An invitation is required." +msgstr "È necessario un invito." + +#: ../../include/account.php:68 +msgid "Invitation could not be verified." +msgstr "L'invito non può essere verificato." + +#: ../../include/account.php:119 +msgid "Please enter the required information." +msgstr "Inserisci le informazioni richieste." + +#: ../../include/account.php:187 +msgid "Failed to store account information." +msgstr "Non è stato possibile salvare le informazioni del tuo account." + +#: ../../include/account.php:273 #, php-format -msgid "%d invitation available" -msgid_plural "%d invitations available" -msgstr[0] "%d invito disponibile" -msgstr[1] "%d inviti disponibili" +msgid "Registration request at %s" +msgstr "Richiesta di registrazione su %s" -#: ../../include/contact_widgets.php:20 -msgid "Find Channels" -msgstr "Ricerca canali" +#: ../../include/account.php:275 ../../include/account.php:302 +#: ../../include/account.php:359 +msgid "Administrator" +msgstr "Amministratore" -#: ../../include/contact_widgets.php:21 -msgid "Enter name or interest" -msgstr "Scrivi un nome o un interesse" +#: ../../include/account.php:297 +msgid "your registration password" +msgstr "la password di registrazione" -#: ../../include/contact_widgets.php:22 -msgid "Connect/Follow" -msgstr "Entra in contatto" +#: ../../include/account.php:300 ../../include/account.php:357 +#, php-format +msgid "Registration details for %s" +msgstr "Dettagli della registrazione di %s" -#: ../../include/contact_widgets.php:23 -msgid "Examples: Robert Morgenstein, Fishing" -msgstr "Per esempio: Mario Rossi, Pesca" +#: ../../include/account.php:366 +msgid "Account approved." +msgstr "Account approvato." -#: ../../include/contact_widgets.php:24 ../../mod/connections.php:700 -#: ../../mod/directory.php:224 ../../mod/directory.php:229 -msgid "Find" -msgstr "Cerca" +#: ../../include/account.php:400 +#, php-format +msgid "Registration revoked for %s" +msgstr "Registrazione revocata per %s" -#: ../../include/contact_widgets.php:25 ../../mod/suggest.php:66 -msgid "Channel Suggestions" -msgstr "Canali suggeriti" +#: ../../include/dir_fns.php:15 +msgid "Sort Options" +msgstr "Opzioni di ordinamento" -#: ../../include/contact_widgets.php:27 -msgid "Random Profile" -msgstr "Profilo casuale" +#: ../../include/dir_fns.php:16 +msgid "Alphabetic" +msgstr "Alfabetico" -#: ../../include/contact_widgets.php:28 -msgid "Invite Friends" -msgstr "Invita amici" +#: ../../include/dir_fns.php:17 +msgid "Reverse Alphabetic" +msgstr "Alfabetico inverso" -#: ../../include/contact_widgets.php:119 +#: ../../include/dir_fns.php:18 +msgid "Newest to Oldest" +msgstr "Dal più nuovo al più vecchio" + +#: ../../include/dir_fns.php:30 +msgid "Enable Safe Search" +msgstr "Abilita SafeSearch" + +#: ../../include/dir_fns.php:32 +msgid "Disable Safe Search" +msgstr "Disabilita SafeSearch" + +#: ../../include/dir_fns.php:34 +msgid "Safe Mode" +msgstr "Modalità SafeSearch" + +#: ../../include/enotify.php:40 +msgid "Red Matrix Notification" +msgstr "Notifica di Red Matrix" + +#: ../../include/enotify.php:41 +msgid "redmatrix" +msgstr "redmatrix" + +#: ../../include/enotify.php:43 +msgid "Thank You," +msgstr "Grazie," + +#: ../../include/enotify.php:45 #, php-format -msgid "%d connection in common" -msgid_plural "%d connections in common" -msgstr[0] "%d contatto in comune" -msgstr[1] "%d contatti in comune" +msgid "%s Administrator" +msgstr "Amministratore %s" -#: ../../include/page_widgets.php:6 -msgid "New Page" -msgstr "Nuova pagina web" +#: ../../include/enotify.php:80 +#, php-format +msgid "%s " +msgstr "%s " -#: ../../include/text.php:315 -msgid "prev" -msgstr "prec" +#: ../../include/enotify.php:84 +#, php-format +msgid "[Red:Notify] New mail received at %s" +msgstr "[Red:Notifica] Nuovo messaggio ricevuto alle %s" -#: ../../include/text.php:317 -msgid "first" -msgstr "inizio" +#: ../../include/enotify.php:86 +#, php-format +msgid "%1$s, %2$s sent you a new private message at %3$s." +msgstr "%1$s, %2$s ti ha mandato un messaggio privato alle %3$s." -#: ../../include/text.php:346 -msgid "last" -msgstr "fine" +#: ../../include/enotify.php:87 +#, php-format +msgid "%1$s sent you %2$s." +msgstr "%1$s ti ha mandato %2$s." -#: ../../include/text.php:349 -msgid "next" -msgstr "succ" +#: ../../include/enotify.php:87 +msgid "a private message" +msgstr "un messaggio privato" -#: ../../include/text.php:361 -msgid "older" -msgstr "più recenti" +#: ../../include/enotify.php:88 +#, php-format +msgid "Please visit %s to view and/or reply to your private messages." +msgstr "Visita %s per leggere i tuoi messaggi privati e rispondere." -#: ../../include/text.php:363 -msgid "newer" -msgstr "più nuovi" +#: ../../include/enotify.php:142 +#, php-format +msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]" +msgstr "%1$s, %2$s ha commentato [zrl=%3$s]%4$s[/zrl]" -#: ../../include/text.php:654 -msgid "No connections" -msgstr "Nessun contatto" +#: ../../include/enotify.php:150 +#, php-format +msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]" +msgstr "%1$s, %2$s ha commentato [zrl=%3$s]%5$s di %4$s[/zrl]" -#: ../../include/text.php:665 +#: ../../include/enotify.php:159 #, php-format -msgid "%d Connection" -msgid_plural "%d Connections" -msgstr[0] "%d contatto" -msgstr[1] "%d contatti" +msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]" +msgstr "%1$s, %2$s ha commentato [zrl=%3$s]%4$s che hai creato[/zrl]" -#: ../../include/text.php:677 -msgid "View Connections" -msgstr "Elenco contatti" +#: ../../include/enotify.php:170 +#, php-format +msgid "[Red:Notify] Comment to conversation #%1$d by %2$s" +msgstr "[Red:Notifica] Nuovo commento di %2$s alla conversazione #%1$d" -#: ../../include/text.php:790 -msgid "poke" -msgstr "poke" +#: ../../include/enotify.php:171 +#, php-format +msgid "%1$s, %2$s commented on an item/conversation you have been following." +msgstr "%1$s, %2$s ha commentato un elemento che stavi seguendo." -#: ../../include/text.php:791 -msgid "ping" -msgstr "ping" +#: ../../include/enotify.php:174 ../../include/enotify.php:189 +#: ../../include/enotify.php:215 ../../include/enotify.php:234 +#: ../../include/enotify.php:248 +#, php-format +msgid "Please visit %s to view and/or reply to the conversation." +msgstr "Visita %s per leggere o commentare la conversazione." -#: ../../include/text.php:791 -msgid "pinged" -msgstr "ha ricevuto un ping" +#: ../../include/enotify.php:180 +#, php-format +msgid "[Red:Notify] %s posted to your profile wall" +msgstr "[Red:Notifica] %s ha scritto sulla tua bacheca" -#: ../../include/text.php:792 -msgid "prod" -msgstr "prod" +#: ../../include/enotify.php:182 +#, php-format +msgid "%1$s, %2$s posted to your profile wall at %3$s" +msgstr "%1$s, %2$s ha scritto sulla bacheca del tuo profilo alle %3$s" -#: ../../include/text.php:792 -msgid "prodded" -msgstr "ha ricevuto un prod" +#: ../../include/enotify.php:184 +#, php-format +msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" +msgstr "%1$s, %2$s ha scritto sulla [zrl=%3$s]tua bacheca[/zrl]" -#: ../../include/text.php:793 -msgid "slap" -msgstr "schiaffo" +#: ../../include/enotify.php:208 +#, php-format +msgid "[Red:Notify] %s tagged you" +msgstr "[Red:Notifica] %s ti ha taggato" -#: ../../include/text.php:793 -msgid "slapped" -msgstr "ha ricevuto uno schiaffo" +#: ../../include/enotify.php:209 +#, php-format +msgid "%1$s, %2$s tagged you at %3$s" +msgstr "%1$s, %2$s ti ha taggato alle %3$s" -#: ../../include/text.php:794 -msgid "finger" -msgstr "finger" +#: ../../include/enotify.php:210 +#, php-format +msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." +msgstr "%1$s, %2$s [zrl=%3$s]ti ha taggato[/zrl]." -#: ../../include/text.php:794 -msgid "fingered" -msgstr "ha ricevuto un finger" +#: ../../include/enotify.php:223 +#, php-format +msgid "[Red:Notify] %1$s poked you" +msgstr "[Red:Notifica] %1$s ti ha mandato un poke" -#: ../../include/text.php:795 -msgid "rebuff" -msgstr "rifiuto" +#: ../../include/enotify.php:224 +#, php-format +msgid "%1$s, %2$s poked you at %3$s" +msgstr "%1$s, %2$s ti ha mandato un poke alle %3$s" -#: ../../include/text.php:795 -msgid "rebuffed" -msgstr "ha ricevuto un rifiuto" +#: ../../include/enotify.php:225 +#, php-format +msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." +msgstr "%1$s, %2$s [zrl=%2$s]ti ha mandato un poke[/zrl]." -#: ../../include/text.php:807 -msgid "happy" -msgstr "allegro" +#: ../../include/enotify.php:241 +#, php-format +msgid "[Red:Notify] %s tagged your post" +msgstr "[Red:Notifica] %s ha taggato il tuo articolo" -#: ../../include/text.php:808 -msgid "sad" -msgstr "triste" +#: ../../include/enotify.php:242 +#, php-format +msgid "%1$s, %2$s tagged your post at %3$s" +msgstr "%1$s, %2$s ha taggato il tuo articolo alle %3$s" -#: ../../include/text.php:809 -msgid "mellow" -msgstr "calmo" +#: ../../include/enotify.php:243 +#, php-format +msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" +msgstr "%1$s, %2$s ha taggato [zrl=%3$s]il tuo articolo[/zrl]" -#: ../../include/text.php:810 -msgid "tired" -msgstr "stanco" +#: ../../include/enotify.php:255 +msgid "[Red:Notify] Introduction received" +msgstr "[Red:Notifica] Hai una richiesta di amicizia" -#: ../../include/text.php:811 -msgid "perky" -msgstr "vivace" +#: ../../include/enotify.php:256 +#, php-format +msgid "%1$s, you've received an introduction from '%2$s' at %3$s" +msgstr "%1$s, hai ricevuto una richiesta di contatto da '%2$s' alle %3$s" -#: ../../include/text.php:812 -msgid "angry" -msgstr "arrabbiato" +#: ../../include/enotify.php:257 +#, php-format +msgid "%1$s, you've received [zrl=%2$s]an introduction[/zrl] from %3$s." +msgstr "%1$s, hai ricevuto [zrl=%2$s]una richiesta di amicizia[/zrl] da %3$s." -#: ../../include/text.php:813 -msgid "stupified" -msgstr "stordito" +#: ../../include/enotify.php:261 ../../include/enotify.php:280 +#, php-format +msgid "You may visit their profile at %s" +msgstr "Puoi visitare il suo profilo su %s" -#: ../../include/text.php:814 -msgid "puzzled" -msgstr "confuso" +#: ../../include/enotify.php:263 +#, php-format +msgid "Please visit %s to approve or reject the introduction." +msgstr "Visita %s per approvare o rifiutare la richiesta." -#: ../../include/text.php:815 -msgid "interested" -msgstr "attento" +#: ../../include/enotify.php:270 +msgid "[Red:Notify] Friend suggestion received" +msgstr "[Red:Notifica] Ti è stato suggerito un amico" -#: ../../include/text.php:816 -msgid "bitter" -msgstr "amaro" +#: ../../include/enotify.php:271 +#, php-format +msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s" +msgstr "%1$s, ti è stato suggerito un amico da '%2$s' alle %3$s" -#: ../../include/text.php:817 -msgid "cheerful" -msgstr "allegro" +#: ../../include/enotify.php:272 +#, php-format +msgid "" +"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from " +"%4$s." +msgstr "%1$s, %4$s ti [zrl=%2$s]ha suggerito %3$s[/zrl] come amico." -#: ../../include/text.php:818 -msgid "alive" -msgstr "vivace" +#: ../../include/enotify.php:278 +msgid "Name:" +msgstr "Nome:" -#: ../../include/text.php:819 -msgid "annoyed" -msgstr "seccato" +#: ../../include/enotify.php:279 +msgid "Photo:" +msgstr "Foto:" -#: ../../include/text.php:820 -msgid "anxious" -msgstr "ansioso" +#: ../../include/enotify.php:282 +#, php-format +msgid "Please visit %s to approve or reject the suggestion." +msgstr "Visita %s per approvare o rifiutare il suggerimento." -#: ../../include/text.php:821 -msgid "cranky" -msgstr "irritabile" +#: ../../include/widgets.php:29 ../../include/contact_widgets.php:87 +msgid "Categories" +msgstr "Categorie" -#: ../../include/text.php:822 -msgid "disturbed" -msgstr "turbato" +#: ../../include/widgets.php:117 ../../mod/suggest.php:53 +msgid "Ignore/Hide" +msgstr "Ignora/nascondi" -#: ../../include/text.php:823 -msgid "frustrated" -msgstr "frustrato" +#: ../../include/widgets.php:123 ../../mod/connections.php:236 +msgid "Suggestions" +msgstr "Suggerimenti" -#: ../../include/text.php:824 -msgid "motivated" -msgstr "motivato" +#: ../../include/widgets.php:124 +msgid "See more..." +msgstr "Altro..." -#: ../../include/text.php:825 -msgid "relaxed" -msgstr "rilassato" +#: ../../include/widgets.php:146 +#, php-format +msgid "You have %1$.0f of %2$.0f allowed connections." +msgstr "Hai attivato %1$.0f delle %2$.0f connessioni permesse." -#: ../../include/text.php:826 -msgid "surprised" -msgstr "sorpreso" +#: ../../include/widgets.php:152 +msgid "Add New Connection" +msgstr "Aggiungi un contatto" -#: ../../include/text.php:988 -msgid "Monday" -msgstr "lunedì" +#: ../../include/widgets.php:153 +msgid "Enter the channel address" +msgstr "Scrivi l'indirizzo del canale" -#: ../../include/text.php:988 -msgid "Tuesday" -msgstr "martedì" +#: ../../include/widgets.php:154 +msgid "Example: bob@example.com, http://example.com/barbara" +msgstr "Per esempio: mario@pippo.it oppure http://pluto.com/barbara" -#: ../../include/text.php:988 -msgid "Wednesday" -msgstr "mercoledì" +#: ../../include/widgets.php:171 +msgid "Notes" +msgstr "Note" -#: ../../include/text.php:988 -msgid "Thursday" -msgstr "giovedì" +#: ../../include/widgets.php:243 +msgid "Remove term" +msgstr "Rimuovi termine" -#: ../../include/text.php:988 -msgid "Friday" -msgstr "venerdì" +#: ../../include/widgets.php:286 ../../include/contact_widgets.php:56 +#: ../../include/contact_widgets.php:90 +msgid "Everything" +msgstr "Tutto" -#: ../../include/text.php:988 -msgid "Saturday" -msgstr "sabato" +#: ../../include/widgets.php:318 ../../include/items.php:3575 +msgid "Archives" +msgstr "Archivi" -#: ../../include/text.php:988 -msgid "Sunday" -msgstr "domenica" +#: ../../include/widgets.php:370 +msgid "Refresh" +msgstr "Aggiorna" -#: ../../include/text.php:992 -msgid "January" -msgstr "gennaio" +#: ../../include/widgets.php:371 ../../mod/connedit.php:386 +msgid "Me" +msgstr "Io" -#: ../../include/text.php:992 -msgid "February" -msgstr "febbraio" +#: ../../include/widgets.php:372 ../../mod/connedit.php:388 +msgid "Best Friends" +msgstr "Buoni amici" -#: ../../include/text.php:992 -msgid "March" -msgstr "marzo" +#: ../../include/widgets.php:374 +msgid "Co-workers" +msgstr "Colleghi" -#: ../../include/text.php:992 -msgid "April" -msgstr "aprile" +#: ../../include/widgets.php:375 ../../mod/connedit.php:390 +msgid "Former Friends" +msgstr "Ex amici" -#: ../../include/text.php:992 -msgid "May" -msgstr "maggio" +#: ../../include/widgets.php:376 ../../mod/connedit.php:391 +msgid "Acquaintances" +msgstr "Conoscenti" -#: ../../include/text.php:992 -msgid "June" -msgstr "giugno" +#: ../../include/widgets.php:377 +msgid "Everybody" +msgstr "Tutti" -#: ../../include/text.php:992 -msgid "July" -msgstr "luglio" +#: ../../include/widgets.php:409 +msgid "Account settings" +msgstr "Impostazioni dell'account" -#: ../../include/text.php:992 -msgid "August" -msgstr "agosto" +#: ../../include/widgets.php:415 +msgid "Channel settings" +msgstr "Impostazioni del canale" -#: ../../include/text.php:992 -msgid "September" -msgstr "settembre" +#: ../../include/widgets.php:421 +msgid "Additional features" +msgstr "Funzionalità aggiuntive" -#: ../../include/text.php:992 -msgid "October" -msgstr "ottobre" +#: ../../include/widgets.php:427 +msgid "Feature settings" +msgstr "Impostazioni aggiuntive" -#: ../../include/text.php:992 -msgid "November" -msgstr "novembre" +#: ../../include/widgets.php:433 +msgid "Display settings" +msgstr "Impostazioni grafiche" -#: ../../include/text.php:992 -msgid "December" -msgstr "dicembre" +#: ../../include/widgets.php:439 +msgid "Connected apps" +msgstr "App connesse" -#: ../../include/text.php:1070 -msgid "unknown.???" -msgstr "sconosciuto???" +#: ../../include/widgets.php:445 +msgid "Export channel" +msgstr "Esporta il canale" -#: ../../include/text.php:1071 -msgid "bytes" -msgstr "byte" +#: ../../include/widgets.php:457 +msgid "Automatic Permissions (Advanced)" +msgstr "Permessi predefiniti (avanzato)" -#: ../../include/text.php:1106 -msgid "remove category" -msgstr "rimuovi la categoria" +#: ../../include/widgets.php:467 +msgid "Premium Channel Settings" +msgstr "Canale premium - impostazioni" -#: ../../include/text.php:1128 -msgid "remove from file" -msgstr "rimuovi dal file" +#: ../../include/widgets.php:504 +msgid "Check Mail" +msgstr "Controlla i messaggi" -#: ../../include/text.php:1182 ../../include/text.php:1194 -msgid "Click to open/close" -msgstr "Clicca per aprire/chiudere" +#: ../../include/contact_widgets.php:14 +#, php-format +msgid "%d invitation available" +msgid_plural "%d invitations available" +msgstr[0] "%d invito disponibile" +msgstr[1] "%d inviti disponibili" -#: ../../include/text.php:1370 ../../mod/events.php:332 -msgid "link to source" -msgstr "Link all'originale" +#: ../../include/contact_widgets.php:20 +msgid "Find Channels" +msgstr "Ricerca canali" -#: ../../include/text.php:1389 -msgid "Select a page layout: " -msgstr "Scegli il layout della pagina:" +#: ../../include/contact_widgets.php:21 +msgid "Enter name or interest" +msgstr "Scrivi un nome o un interesse" -#: ../../include/text.php:1392 ../../include/text.php:1457 -msgid "default" -msgstr "predefinito" +#: ../../include/contact_widgets.php:22 +msgid "Connect/Follow" +msgstr "Entra in contatto" -#: ../../include/text.php:1428 -msgid "Page content type: " -msgstr "Contenuto della pagina:" +#: ../../include/contact_widgets.php:23 +msgid "Examples: Robert Morgenstein, Fishing" +msgstr "Per esempio: Mario Rossi, Pesca" -#: ../../include/text.php:1469 -msgid "Select an alternate language" -msgstr "Seleziona una lingua diversa" +#: ../../include/contact_widgets.php:24 ../../mod/directory.php:206 +#: ../../mod/directory.php:211 ../../mod/connections.php:355 +msgid "Find" +msgstr "Cerca" -#: ../../include/text.php:1634 -msgid "activity" -msgstr "l'attività" +#: ../../include/contact_widgets.php:25 ../../mod/suggest.php:59 +msgid "Channel Suggestions" +msgstr "Canali suggeriti" -#: ../../include/text.php:1896 -msgid "Design" -msgstr "Design" +#: ../../include/contact_widgets.php:27 +msgid "Random Profile" +msgstr "Profilo casuale" -#: ../../include/text.php:1898 -msgid "Blocks" -msgstr "Riquadri" +#: ../../include/contact_widgets.php:28 +msgid "Invite Friends" +msgstr "Invita amici" -#: ../../include/text.php:1899 -msgid "Menus" -msgstr "Menù" +#: ../../include/contact_widgets.php:120 +#, php-format +msgid "%d connection in common" +msgid_plural "%d connections in common" +msgstr[0] "%d contatto in comune" +msgstr[1] "%d contatti in comune" -#: ../../include/text.php:1900 -msgid "Layouts" -msgstr "Layout" +#: ../../include/page_widgets.php:6 +msgid "New Page" +msgstr "Nuova pagina web" -#: ../../include/text.php:1901 -msgid "Pages" -msgstr "Pagine" +#: ../../include/page_widgets.php:8 ../../include/ItemObject.php:96 +#: ../../mod/thing.php:229 ../../mod/webpages.php:118 ../../mod/menu.php:55 +#: ../../mod/layouts.php:102 ../../mod/filestorage.php:171 +#: ../../mod/settings.php:569 ../../mod/editlayout.php:106 +#: ../../mod/editpost.php:98 ../../mod/blocks.php:93 +#: ../../mod/editwebpage.php:144 ../../mod/editblock.php:120 +msgid "Edit" +msgstr "Modifica" #: ../../include/plugin.php:475 ../../include/plugin.php:477 msgid "Click here to upgrade." @@ -2723,7 +2434,7 @@ msgstr "Può vedere le mie pagine web \"pubbliche\"" #: ../../include/permissions.php:21 msgid "Can send me their channel stream and posts" -msgstr "Seguo i contenuti e gli articoli del suo canale" +msgstr "È tra i canali che seguo" #: ../../include/permissions.php:22 msgid "Can post on my channel page (\"wall\")" @@ -2733,337 +2444,686 @@ msgstr "Può scrivere sulla bacheca del mio canale" msgid "Can comment on my posts" msgstr "Può commentare i miei articoli" -#: ../../include/permissions.php:24 -msgid "Can send me private mail messages" -msgstr "Può inviarmi messaggi privati" +#: ../../include/permissions.php:24 +msgid "Can send me private mail messages" +msgstr "Può inviarmi messaggi privati" + +#: ../../include/permissions.php:25 +msgid "Can post photos to my photo albums" +msgstr "Può aggiungere foto ai miei album" + +#: ../../include/permissions.php:26 +msgid "Can forward to all my channel contacts via post @mentions" +msgstr "Può inoltrare articoli a tutti i contatti del canale tramite una @menzione" + +#: ../../include/permissions.php:26 +msgid "Advanced - useful for creating group forum channels" +msgstr "Impostazione avanzata - utile per creare un canale-forum di discussione" + +#: ../../include/permissions.php:27 +msgid "Can chat with me (when available)" +msgstr "Può aprire una chat con me (se disponibile)" + +#: ../../include/permissions.php:27 +msgid "Requires compatible chat plugin" +msgstr "Necessita di un plugin di chat compatibile" + +#: ../../include/permissions.php:28 +msgid "Can write to my \"public\" file storage" +msgstr "Può scrivere sul mio archivio di file \"pubblico\"" + +#: ../../include/permissions.php:29 +msgid "Can edit my \"public\" pages" +msgstr "Può modificare le mie pagine web \"pubbliche\"" + +#: ../../include/permissions.php:31 +msgid "Can source my \"public\" posts in derived channels" +msgstr "Può aggiungere i miei post \"pubblici\" a un suo canale derivato" + +#: ../../include/permissions.php:31 +msgid "Somewhat advanced - very useful in open communities" +msgstr "Piuttosto avanzato - molto utile nelle comunità aperte" + +#: ../../include/permissions.php:32 +msgid "Can administer my channel resources" +msgstr "Può amministrare i contenuti del mio canale" + +#: ../../include/permissions.php:32 +msgid "" +"Extremely advanced. Leave this alone unless you know what you are doing" +msgstr "Impostazione pericolosa - lasciare il valore predefinito se non si è assolutamente sicuri" + +#: ../../include/comanche.php:35 ../../view/theme/redbasic/php/config.php:62 +#: ../../view/theme/apw/php/config.php:176 +msgid "Default" +msgstr "Predefinito" + +#: ../../include/items.php:208 ../../mod/like.php:55 ../../mod/group.php:68 +#: ../../mod/profperm.php:23 ../../index.php:347 +msgid "Permission denied" +msgstr "Permesso negato" + +#: ../../include/items.php:3392 ../../mod/thing.php:74 ../../mod/admin.php:150 +#: ../../mod/admin.php:732 ../../mod/admin.php:935 ../../mod/viewsrc.php:18 +#: ../../mod/home.php:63 ../../mod/filestorage.php:18 ../../mod/display.php:32 +msgid "Item not found." +msgstr "Elemento non trovato." + +#: ../../include/items.php:3743 ../../mod/group.php:38 ../../mod/group.php:140 +msgid "Collection not found." +msgstr "Insieme non trovato." + +#: ../../include/items.php:3758 +msgid "Collection is empty." +msgstr "L'insieme di canali è vuoto." + +#: ../../include/items.php:3765 +#, php-format +msgid "Collection: %s" +msgstr "Insieme: %s" + +#: ../../include/items.php:3776 +#, php-format +msgid "Connection: %s" +msgstr "Contatto: %s" + +#: ../../include/items.php:3779 +msgid "Connection not found." +msgstr "Contatto non trovato." + +#: ../../include/ItemObject.php:89 ../../mod/photos.php:841 +msgid "Private Message" +msgstr "Messaggio privato" + +#: ../../include/ItemObject.php:108 ../../include/conversation.php:632 +#: ../../mod/thing.php:230 ../../mod/connedit.php:356 ../../mod/admin.php:695 +#: ../../mod/group.php:176 ../../mod/photos.php:1019 +#: ../../mod/filestorage.php:172 ../../mod/settings.php:570 +msgid "Delete" +msgstr "Elimina" + +#: ../../include/ItemObject.php:114 ../../include/conversation.php:631 +msgid "Select" +msgstr "Seleziona" + +#: ../../include/ItemObject.php:118 +msgid "save to folder" +msgstr "salva in una cartella" + +#: ../../include/ItemObject.php:146 +msgid "add star" +msgstr "aggiungi ai preferiti" + +#: ../../include/ItemObject.php:147 +msgid "remove star" +msgstr "rimuovi dai preferiti" + +#: ../../include/ItemObject.php:148 +msgid "toggle star status" +msgstr "Attiva/disattiva preferito" + +#: ../../include/ItemObject.php:152 +msgid "starred" +msgstr "preferito" + +#: ../../include/ItemObject.php:161 ../../include/conversation.php:642 +msgid "Message is verified" +msgstr "Messaggio verificato" + +#: ../../include/ItemObject.php:169 +msgid "add tag" +msgstr "Aggiungi tag" + +#: ../../include/ItemObject.php:175 ../../mod/photos.php:947 +msgid "I like this (toggle)" +msgstr "Attiva/disattiva Mi piace" + +#: ../../include/ItemObject.php:176 ../../mod/photos.php:948 +msgid "I don't like this (toggle)" +msgstr "Attiva/disattiva Non mi piace" + +#: ../../include/ItemObject.php:178 +msgid "Share this" +msgstr "Condividi" + +#: ../../include/ItemObject.php:178 +msgid "share" +msgstr "condividi" + +#: ../../include/ItemObject.php:202 ../../include/ItemObject.php:203 +#, php-format +msgid "View %s's profile - %s" +msgstr "Guarda il profilo di %s - %s" + +#: ../../include/ItemObject.php:204 +msgid "to" +msgstr "a" + +#: ../../include/ItemObject.php:205 +msgid "via" +msgstr "via" + +#: ../../include/ItemObject.php:206 +msgid "Wall-to-Wall" +msgstr "Da bacheca a bacheca" + +#: ../../include/ItemObject.php:207 +msgid "via Wall-To-Wall:" +msgstr "da bacheca a bacheca:" + +#: ../../include/ItemObject.php:217 ../../include/conversation.php:686 +#, php-format +msgid " from %s" +msgstr " da %s" + +#: ../../include/ItemObject.php:220 ../../include/conversation.php:689 +#, php-format +msgid "last edited: %s" +msgstr "ultima modifica: %s" + +#: ../../include/ItemObject.php:221 +#, php-format +msgid "Expires: %s" +msgstr "Scadenza: %s" + +#: ../../include/ItemObject.php:248 ../../include/conversation.php:706 +#: ../../include/conversation.php:1119 ../../mod/photos.php:950 +#: ../../mod/mail.php:222 ../../mod/mail.php:336 ../../mod/editlayout.php:115 +#: ../../mod/editpost.php:107 ../../mod/editwebpage.php:153 +#: ../../mod/editblock.php:129 +msgid "Please wait" +msgstr "Attendere" + +#: ../../include/ItemObject.php:269 +#, php-format +msgid "%d comment" +msgid_plural "%d comments" +msgstr[0] "%d commento" +msgstr[1] "%d commenti" + +#: ../../include/ItemObject.php:534 ../../mod/photos.php:966 +#: ../../mod/photos.php:1053 +msgid "This is you" +msgstr "Questo sei tu" + +#: ../../include/ItemObject.php:537 ../../mod/events.php:469 +#: ../../mod/thing.php:276 ../../mod/thing.php:318 ../../mod/invite.php:156 +#: ../../mod/connedit.php:434 ../../mod/setup.php:304 ../../mod/setup.php:347 +#: ../../mod/connect.php:92 ../../mod/sources.php:97 ../../mod/sources.php:131 +#: ../../mod/admin.php:420 ../../mod/admin.php:688 ../../mod/admin.php:828 +#: ../../mod/admin.php:1027 ../../mod/admin.php:1114 ../../mod/group.php:81 +#: ../../mod/photos.php:562 ../../mod/photos.php:667 ../../mod/photos.php:929 +#: ../../mod/photos.php:969 ../../mod/photos.php:1056 +#: ../../mod/profiles.php:506 ../../mod/filestorage.php:132 +#: ../../mod/import.php:387 ../../mod/settings.php:507 +#: ../../mod/settings.php:619 ../../mod/settings.php:647 +#: ../../mod/settings.php:671 ../../mod/settings.php:742 +#: ../../mod/settings.php:903 ../../mod/mail.php:223 ../../mod/mail.php:335 +#: ../../mod/poke.php:166 ../../mod/fsuggest.php:108 ../../mod/mood.php:142 +#: ../../view/theme/redbasic/php/config.php:85 +#: ../../view/theme/apw/php/config.php:231 +#: ../../view/theme/blogga/view/theme/blog/config.php:67 +#: ../../view/theme/blogga/php/config.php:67 +msgid "Submit" +msgstr "Salva" + +#: ../../include/ItemObject.php:538 +msgid "Bold" +msgstr "Grassetto" + +#: ../../include/ItemObject.php:539 +msgid "Italic" +msgstr "Corsivo" + +#: ../../include/ItemObject.php:540 +msgid "Underline" +msgstr "Sottolineato" + +#: ../../include/ItemObject.php:541 +msgid "Quote" +msgstr "Citazione" + +#: ../../include/ItemObject.php:542 +msgid "Code" +msgstr "Codice" + +#: ../../include/ItemObject.php:543 +msgid "Image" +msgstr "Immagine" + +#: ../../include/ItemObject.php:544 +msgid "Link" +msgstr "Link" + +#: ../../include/ItemObject.php:545 +msgid "Video" +msgstr "Video" + +#: ../../include/ItemObject.php:546 ../../include/conversation.php:1082 +#: ../../mod/webpages.php:122 ../../mod/photos.php:970 +#: ../../mod/editlayout.php:136 ../../mod/editpost.php:127 +#: ../../mod/editwebpage.php:177 ../../mod/editblock.php:151 +msgid "Preview" +msgstr "Anteprima" + +#: ../../include/ItemObject.php:549 ../../include/conversation.php:1146 +#: ../../mod/mail.php:228 ../../mod/mail.php:341 ../../mod/editpost.php:135 +msgid "Encrypt text" +msgstr "Crittografia del testo" + +#: ../../include/security.php:49 +msgid "Welcome " +msgstr "Ciao" + +#: ../../include/security.php:50 +msgid "Please upload a profile photo." +msgstr "Carica una foto per il profilo!" + +#: ../../include/security.php:53 +msgid "Welcome back " +msgstr "Ciao, è bello rivederti" + +#: ../../include/security.php:363 +msgid "" +"The form security token was not correct. This probably happened because the " +"form has been opened for too long (>3 hours) before submitting it." +msgstr "L'identificativo di sicurezza del modulo che hai riempito non è corretto. Probabilmente è accaduto perché la pagina è stata tenuta aperta troppo a lungo (ore?) prima di inviare il contenuto." + +#: ../../include/conversation.php:123 +msgid "channel" +msgstr "canale" + +#: ../../include/conversation.php:161 ../../mod/like.php:134 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "A %1$s piace %3$s di %2$s" + +#: ../../include/conversation.php:164 ../../mod/like.php:136 +#, php-format +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "A %1$s non piace %3$s di %2$s" + +#: ../../include/conversation.php:201 +#, php-format +msgid "%1$s is now connected with %2$s" +msgstr "%1$s adesso è connesso con %2$s" + +#: ../../include/conversation.php:236 +#, php-format +msgid "%1$s poked %2$s" +msgstr "%1$s ha mandato un poke a %2$s" + +#: ../../include/conversation.php:258 ../../mod/mood.php:63 +#, php-format +msgid "%1$s is currently %2$s" +msgstr "%1$s al momento è %2$s" + +#: ../../include/conversation.php:662 +#, php-format +msgid "View %s's profile @ %s" +msgstr "Vedi il profilo di %s @ %s" + +#: ../../include/conversation.php:676 +msgid "Categories:" +msgstr "Categorie:" -#: ../../include/permissions.php:25 -msgid "Can post photos to my photo albums" -msgstr "Può aggiungere foto ai miei album" +#: ../../include/conversation.php:677 +msgid "Filed under:" +msgstr "Classificato come:" -#: ../../include/permissions.php:26 -msgid "Can forward to all my channel contacts via post @mentions" -msgstr "Può inoltrare articoli a tutti i contatti del canale tramite una @menzione" +#: ../../include/conversation.php:704 +msgid "View in context" +msgstr "Vedi nel contesto" -#: ../../include/permissions.php:26 -msgid "Advanced - useful for creating group forum channels" -msgstr "Impostazione avanzata - utile per creare un canale-forum di discussione" +#: ../../include/conversation.php:833 +msgid "remove" +msgstr "rimuovi" -#: ../../include/permissions.php:27 -msgid "Can chat with me (when available)" -msgstr "Può aprire una chat con me (se disponibile)" +#: ../../include/conversation.php:837 +msgid "Loading..." +msgstr "Caricamento in corso..." -#: ../../include/permissions.php:27 -msgid "Requires compatible chat plugin" -msgstr "Necessita di un plugin di chat compatibile" +#: ../../include/conversation.php:838 +msgid "Delete Selected Items" +msgstr "Elimina gli oggetti selezionati" -#: ../../include/permissions.php:28 -msgid "Can write to my \"public\" file storage" -msgstr "Può scrivere sul mio archivio di file \"pubblico\"" +#: ../../include/conversation.php:929 +msgid "View Source" +msgstr "Vedi il sorgente" -#: ../../include/permissions.php:29 -msgid "Can edit my \"public\" pages" -msgstr "Può modificare le mie pagine web \"pubbliche\"" +#: ../../include/conversation.php:930 +msgid "Follow Thread" +msgstr "Segui la discussione" -#: ../../include/permissions.php:31 -msgid "Can source my \"public\" posts in derived channels" -msgstr "Può aggiungere i miei post \"pubblici\" a un suo canale derivato" +#: ../../include/conversation.php:931 +msgid "View Status" +msgstr "Guarda il messaggio di stato" -#: ../../include/permissions.php:31 -msgid "Somewhat advanced - very useful in open communities" -msgstr "Piuttosto avanzato - molto utile nelle comunità aperte" +#: ../../include/conversation.php:933 +msgid "View Photos" +msgstr "Guarda le foto" -#: ../../include/permissions.php:32 -msgid "Can administer my channel resources" -msgstr "Può amministrare i contenuti del mio canale" +#: ../../include/conversation.php:934 +msgid "Matrix Activity" +msgstr "Attività nella tua rete" -#: ../../include/permissions.php:32 -msgid "" -"Extremely advanced. Leave this alone unless you know what you are doing" -msgstr "Impostazione pericolosa - lasciare il valore predefinito se non si è assolutamente sicuri" +#: ../../include/conversation.php:935 +msgid "Edit Contact" +msgstr "Modifica il contatto" -#: ../../include/comanche.php:35 ../../view/theme/redbasic/php/config.php:62 -#: ../../view/theme/apw/php/config.php:176 -msgid "Default" -msgstr "Predefinito" +#: ../../include/conversation.php:936 +msgid "Send PM" +msgstr "Invia messaggio privato" -#: ../../include/identity.php:29 ../../mod/item.php:1151 -msgid "Unable to obtain identity information from database" -msgstr "Impossibile ottenere le informazioni di identificazione dal database" +#: ../../include/conversation.php:937 +msgid "Poke" +msgstr "Poke" -#: ../../include/identity.php:62 -msgid "Empty name" -msgstr "Nome vuoto" +#: ../../include/conversation.php:999 +#, php-format +msgid "%s likes this." +msgstr "Piace a %s." -#: ../../include/identity.php:64 -msgid "Name too long" -msgstr "Nome troppo lungo" +#: ../../include/conversation.php:999 +#, php-format +msgid "%s doesn't like this." +msgstr "Non piace a %s." -#: ../../include/identity.php:132 -msgid "No account identifier" -msgstr "Account senza identificativo" +#: ../../include/conversation.php:1003 +#, php-format +msgid "%2$d people like this." +msgid_plural "%2$d people like this." +msgstr[0] "" +msgstr[1] "Piace a %2$d persone." -#: ../../include/identity.php:142 -msgid "Nickname is required." -msgstr "Il nome dell'account è obbligatorio." +#: ../../include/conversation.php:1005 +#, php-format +msgid "%2$d people don't like this." +msgid_plural "%2$d people don't like this." +msgstr[0] "" +msgstr[1] "Non piace a %2$d persone." -#: ../../include/identity.php:156 -msgid "" -"Nickname has unsupported characters or is already being used on this site." -msgstr "Il nome dell'account è già in uso oppure ha dei caratteri non supportati." +#: ../../include/conversation.php:1011 +msgid "and" +msgstr "e" -#: ../../include/identity.php:215 -msgid "Unable to retrieve created identity" -msgstr "Impossibile caricare l'identità creata" +#: ../../include/conversation.php:1014 +#, php-format +msgid ", and %d other people" +msgid_plural ", and %d other people" +msgstr[0] "" +msgstr[1] "e altre %d persone" -#: ../../include/identity.php:273 -msgid "Default Profile" -msgstr "Profilo predefinito" +#: ../../include/conversation.php:1015 +#, php-format +msgid "%s like this." +msgstr "Piace a %s." -#: ../../include/identity.php:465 -msgid "Requested channel is not available." -msgstr "Il canale che cerchi non è disponibile." +#: ../../include/conversation.php:1015 +#, php-format +msgid "%s don't like this." +msgstr "Non piace a %s." -#: ../../include/identity.php:477 -msgid " Sorry, you don't have the permission to view this profile. " -msgstr "Purtroppo non hai il permesso di vedere questo profilo." +#: ../../include/conversation.php:1065 +msgid "Visible to everybody" +msgstr "Visibile a tutti" -#: ../../include/identity.php:512 ../../mod/webpages.php:8 -#: ../../mod/connect.php:13 ../../mod/layouts.php:8 -#: ../../mod/filestorage.php:8 ../../mod/blocks.php:10 -#: ../../mod/profile.php:16 -msgid "Requested profile is not available." -msgstr "Il profilo richiesto non è disponibile." +#: ../../include/conversation.php:1066 ../../mod/mail.php:171 +#: ../../mod/mail.php:269 +msgid "Please enter a link URL:" +msgstr "Inserisci l'indirizzo del link:" -#: ../../include/identity.php:627 ../../mod/profiles.php:613 -msgid "Change profile photo" -msgstr "Cambia la foto del profilo" +#: ../../include/conversation.php:1067 +msgid "Please enter a video link/URL:" +msgstr "Inserisci l'indirizzo del video:" -#: ../../include/identity.php:633 -msgid "Profiles" -msgstr "Profili" +#: ../../include/conversation.php:1068 +msgid "Please enter an audio link/URL:" +msgstr "Inserisci l'indirizzo dell'audio:" -#: ../../include/identity.php:633 -msgid "Manage/edit profiles" -msgstr "Gestisci/modifica i profili" +#: ../../include/conversation.php:1069 +msgid "Tag term:" +msgstr "Tag:" -#: ../../include/identity.php:634 ../../mod/profiles.php:614 -msgid "Create New Profile" -msgstr "Crea un nuovo profilo" +#: ../../include/conversation.php:1070 ../../mod/filer.php:35 +msgid "Save to Folder:" +msgstr "Salva nella cartella:" -#: ../../include/identity.php:637 -msgid "Edit Profile" -msgstr "Modifica il profilo" +#: ../../include/conversation.php:1071 +msgid "Where are you right now?" +msgstr "Dove sei ora?" -#: ../../include/identity.php:648 ../../mod/profiles.php:625 -msgid "Profile Image" -msgstr "Immagine del profilo" +#: ../../include/conversation.php:1072 ../../mod/mail.php:172 +#: ../../mod/mail.php:270 ../../mod/editpost.php:52 +msgid "Expires YYYY-MM-DD HH:MM" +msgstr "Scadenza il AAAA-MM-GG OO:MM" -#: ../../include/identity.php:651 ../../mod/profiles.php:628 -msgid "visible to everybody" -msgstr "visibile a tutti" +#: ../../include/conversation.php:1096 ../../mod/photos.php:949 +msgid "Share" +msgstr "Condividi" -#: ../../include/identity.php:652 ../../mod/profiles.php:629 -msgid "Edit visibility" -msgstr "Cambia la visibilità" +#: ../../include/conversation.php:1098 ../../mod/editwebpage.php:140 +msgid "Page link title" +msgstr "Link del titolo" -#: ../../include/identity.php:666 ../../include/identity.php:891 -#: ../../mod/directory.php:176 -msgid "Gender:" -msgstr "Sesso:" +#: ../../include/conversation.php:1100 ../../mod/mail.php:219 +#: ../../mod/mail.php:332 ../../mod/editlayout.php:107 +#: ../../mod/editpost.php:99 ../../mod/editwebpage.php:145 +#: ../../mod/editblock.php:121 +msgid "Upload photo" +msgstr "Carica foto" -#: ../../include/identity.php:667 ../../include/identity.php:911 -#: ../../mod/directory.php:178 -msgid "Status:" -msgstr "Stato:" +#: ../../include/conversation.php:1101 +msgid "upload photo" +msgstr "carica foto" -#: ../../include/identity.php:668 ../../include/identity.php:922 -#: ../../mod/directory.php:180 -msgid "Homepage:" -msgstr "Home page:" +#: ../../include/conversation.php:1102 ../../mod/mail.php:220 +#: ../../mod/mail.php:333 ../../mod/editlayout.php:108 +#: ../../mod/editpost.php:100 ../../mod/editwebpage.php:146 +#: ../../mod/editblock.php:122 +msgid "Attach file" +msgstr "Allega file" -#: ../../include/identity.php:735 ../../include/identity.php:815 -#: ../../mod/ping.php:230 -msgid "g A l F d" -msgstr "g A l d F" +#: ../../include/conversation.php:1103 +msgid "attach file" +msgstr "allega file" -#: ../../include/identity.php:736 ../../include/identity.php:816 -msgid "F d" -msgstr "d F" +#: ../../include/conversation.php:1104 ../../mod/mail.php:221 +#: ../../mod/mail.php:334 ../../mod/editlayout.php:109 +#: ../../mod/editpost.php:101 ../../mod/editwebpage.php:147 +#: ../../mod/editblock.php:123 +msgid "Insert web link" +msgstr "Inserisci un indirizzo web" -#: ../../include/identity.php:781 ../../include/identity.php:856 -#: ../../mod/ping.php:252 -msgid "[today]" -msgstr "[oggi]" +#: ../../include/conversation.php:1105 +msgid "web link" +msgstr "link web" -#: ../../include/identity.php:793 -msgid "Birthday Reminders" -msgstr "Promemoria compleanni" +#: ../../include/conversation.php:1106 +msgid "Insert video link" +msgstr "Inserisci l'indirizzo di un video" -#: ../../include/identity.php:794 -msgid "Birthdays this week:" -msgstr "Compleanni questa settimana:" +#: ../../include/conversation.php:1107 +msgid "video link" +msgstr "link video" -#: ../../include/identity.php:849 -msgid "[No description]" -msgstr "[Nessuna descrizione]" +#: ../../include/conversation.php:1108 +msgid "Insert audio link" +msgstr "Inserisci l'indirizzo di un audio" -#: ../../include/identity.php:867 -msgid "Event Reminders" -msgstr "Promemoria" +#: ../../include/conversation.php:1109 +msgid "audio link" +msgstr "link audio" -#: ../../include/identity.php:868 -msgid "Events this week:" -msgstr "Eventi di questa settimana:" +#: ../../include/conversation.php:1110 ../../mod/editlayout.php:113 +#: ../../mod/editpost.php:105 ../../mod/editwebpage.php:151 +#: ../../mod/editblock.php:127 +msgid "Set your location" +msgstr "La tua località" -#: ../../include/identity.php:881 ../../include/identity.php:992 -#: ../../mod/profperm.php:103 -msgid "Profile" -msgstr "Profilo" +#: ../../include/conversation.php:1111 +msgid "set location" +msgstr "la tua località" -#: ../../include/identity.php:889 ../../mod/settings.php:1013 -msgid "Full Name:" -msgstr "Nome completo:" +#: ../../include/conversation.php:1112 ../../mod/editlayout.php:114 +#: ../../mod/editpost.php:106 ../../mod/editwebpage.php:152 +#: ../../mod/editblock.php:128 +msgid "Clear browser location" +msgstr "Rimuovi la località data dal browser" -#: ../../include/identity.php:896 -msgid "j F, Y" -msgstr "j F Y" +#: ../../include/conversation.php:1113 +msgid "clear location" +msgstr "rimuovi la località" -#: ../../include/identity.php:897 -msgid "j F" -msgstr "j F" +#: ../../include/conversation.php:1115 ../../mod/editlayout.php:127 +#: ../../mod/editpost.php:119 ../../mod/editwebpage.php:169 +#: ../../mod/editblock.php:142 +msgid "Set title" +msgstr "Scegli un titolo" -#: ../../include/identity.php:904 -msgid "Birthday:" -msgstr "Compleanno:" +#: ../../include/conversation.php:1118 ../../mod/editlayout.php:130 +#: ../../mod/editpost.php:121 ../../mod/editwebpage.php:171 +#: ../../mod/editblock.php:145 +msgid "Categories (comma-separated list)" +msgstr "Categorie (separate da virgola)" -#: ../../include/identity.php:908 -msgid "Age:" -msgstr "Età:" +#: ../../include/conversation.php:1120 ../../mod/editlayout.php:116 +#: ../../mod/editpost.php:108 ../../mod/editwebpage.php:154 +#: ../../mod/editblock.php:130 +msgid "Permission settings" +msgstr "Impostazioni permessi" -#: ../../include/identity.php:917 -#, php-format -msgid "for %1$d %2$s" -msgstr "per %1$d %2$s" +#: ../../include/conversation.php:1121 +msgid "permissions" +msgstr "permessi" + +#: ../../include/conversation.php:1129 ../../mod/editlayout.php:124 +#: ../../mod/editpost.php:116 ../../mod/editwebpage.php:164 +#: ../../mod/editblock.php:139 +msgid "Public post" +msgstr "Articolo pubblico" -#: ../../include/identity.php:920 ../../mod/profiles.php:538 -msgid "Sexual Preference:" -msgstr "Preferenze sessuali:" +#: ../../include/conversation.php:1131 ../../mod/editlayout.php:131 +#: ../../mod/editpost.php:122 ../../mod/editwebpage.php:172 +#: ../../mod/editblock.php:146 +msgid "Example: bob@example.com, mary@example.com" +msgstr "Per esempio: mario@esempio.com, simona@esempio.com" -#: ../../include/identity.php:924 ../../mod/profiles.php:540 -msgid "Hometown:" -msgstr "Città dove vivo:" +#: ../../include/conversation.php:1144 ../../mod/mail.php:226 +#: ../../mod/mail.php:339 ../../mod/editlayout.php:141 +#: ../../mod/editpost.php:133 ../../mod/editwebpage.php:182 +#: ../../mod/editblock.php:156 +msgid "Set expiration date" +msgstr "Data di scadenza" -#: ../../include/identity.php:926 -msgid "Tags:" -msgstr "Tag:" +#: ../../include/conversation.php:1148 ../../mod/editpost.php:136 +msgid "OK" +msgstr "OK" -#: ../../include/identity.php:928 ../../mod/profiles.php:541 -msgid "Political Views:" -msgstr "Orientamento politico:" +#: ../../include/conversation.php:1149 ../../mod/tagrm.php:11 +#: ../../mod/tagrm.php:94 ../../mod/settings.php:508 +#: ../../mod/settings.php:534 ../../mod/editpost.php:137 +#: ../../mod/fbrowser.php:82 ../../mod/fbrowser.php:117 +msgid "Cancel" +msgstr "Annulla" -#: ../../include/identity.php:930 -msgid "Religion:" -msgstr "Religione:" +#: ../../include/conversation.php:1380 +msgid "Commented Order" +msgstr "Ultimi commenti" -#: ../../include/identity.php:932 ../../mod/directory.php:182 -msgid "About:" -msgstr "Informazioni:" +#: ../../include/conversation.php:1383 +msgid "Sort by Comment Date" +msgstr "Per data del commento" -#: ../../include/identity.php:934 -msgid "Hobbies/Interests:" -msgstr "Interessi e hobby:" +#: ../../include/conversation.php:1386 +msgid "Posted Order" +msgstr "Ultimi articoli" -#: ../../include/identity.php:936 ../../mod/profiles.php:544 -msgid "Likes:" -msgstr "Mi piace:" +#: ../../include/conversation.php:1389 +msgid "Sort by Post Date" +msgstr "Per data di creazione" -#: ../../include/identity.php:938 ../../mod/profiles.php:545 -msgid "Dislikes:" -msgstr "Non mi piace:" +#: ../../include/conversation.php:1393 +msgid "Personal" +msgstr "Personali" -#: ../../include/identity.php:941 -msgid "Contact information and Social Networks:" -msgstr "Contatti e social network:" +#: ../../include/conversation.php:1396 +msgid "Posts that mention or involve you" +msgstr "Articoli che ti riguardano o ti menzionano" -#: ../../include/identity.php:943 -msgid "Musical interests:" -msgstr "Gusti musicali:" +#: ../../include/conversation.php:1399 ../../mod/menu.php:57 +#: ../../mod/connections.php:209 +msgid "New" +msgstr "Novità" -#: ../../include/identity.php:945 -msgid "Books, literature:" -msgstr "Libri, letteratura:" +#: ../../include/conversation.php:1402 +msgid "Activity Stream - by date" +msgstr "Elenco attività - per data" -#: ../../include/identity.php:947 -msgid "Television:" -msgstr "Televisione:" +#: ../../include/conversation.php:1409 +msgid "Starred" +msgstr "Preferiti" -#: ../../include/identity.php:949 -msgid "Film/dance/culture/entertainment:" -msgstr "Film, danza, cultura, intrattenimento:" +#: ../../include/conversation.php:1412 +msgid "Favourite Posts" +msgstr "Articoli preferiti" -#: ../../include/identity.php:951 -msgid "Love/Romance:" -msgstr "Amore:" +#: ../../include/conversation.php:1419 +msgid "Spam" +msgstr "Spam" -#: ../../include/identity.php:953 -msgid "Work/employment:" -msgstr "Lavoro:" +#: ../../include/conversation.php:1422 +msgid "Posts flagged as SPAM" +msgstr "Articoli marcati come spam" -#: ../../include/identity.php:955 -msgid "School/education:" -msgstr "Scuola:" +#: ../../include/conversation.php:1453 +msgid "Channel" +msgstr "Canale" -#: ../../include/security.php:49 -msgid "Welcome " -msgstr "Ciao" +#: ../../include/conversation.php:1456 +msgid "Status Messages and Posts" +msgstr "Articoli e messaggi di stato" -#: ../../include/security.php:50 -msgid "Please upload a profile photo." -msgstr "Carica una foto per il profilo!" +#: ../../include/conversation.php:1465 +msgid "About" +msgstr "Informazioni" -#: ../../include/security.php:53 -msgid "Welcome back " -msgstr "Ciao, è bello rivederti" +#: ../../include/conversation.php:1468 +msgid "Profile Details" +msgstr "Dettagli del profilo" -#: ../../include/security.php:360 -msgid "" -"The form security token was not correct. This probably happened because the " -"form has been opened for too long (>3 hours) before submitting it." -msgstr "L'identificativo di sicurezza del modulo che hai riempito non è corretto. Probabilmente è accaduto perché la pagina è stata tenuta aperta troppo a lungo (ore?) prima di inviare il contenuto." +#: ../../include/conversation.php:1483 ../../mod/fbrowser.php:114 +msgid "Files" +msgstr "Elenco file" -#: ../../include/items.php:201 ../../mod/like.php:55 ../../mod/group.php:74 -#: ../../mod/profperm.php:19 ../../index.php:345 -msgid "Permission denied" -msgstr "Permesso negato" +#: ../../include/conversation.php:1486 +msgid "Files and Storage" +msgstr "Archivio file" -#: ../../include/items.php:3367 ../../mod/admin.php:150 -#: ../../mod/admin.php:730 ../../mod/admin.php:933 ../../mod/viewsrc.php:18 -#: ../../mod/home.php:64 ../../mod/display.php:32 -msgid "Item not found." -msgstr "Elemento non trovato." +#: ../../include/conversation.php:1495 +msgid "Events and Calendar" +msgstr "Calendario eventi" -#: ../../include/items.php:3718 ../../mod/group.php:44 ../../mod/group.php:146 -msgid "Collection not found." -msgstr "Insieme non trovato." +#: ../../include/conversation.php:1502 +msgid "Webpages" +msgstr "Pagine web" -#: ../../include/items.php:3733 -msgid "Collection is empty." -msgstr "L'insieme di canali è vuoto." +#: ../../include/conversation.php:1505 +msgid "Manage Webpages" +msgstr "Gestisci le pagine web" -#: ../../include/items.php:3740 -#, php-format -msgid "Collection: %s" -msgstr "Insieme: %s" +#: ../../include/zot.php:545 +msgid "Invalid data packet" +msgstr "Dati non validi" -#: ../../include/items.php:3751 -#, php-format -msgid "Connection: %s" -msgstr "Contatto: %s" +#: ../../include/zot.php:555 +msgid "Unable to verify channel signature" +msgstr "Impossibile verificare la firma elettronica del canale" -#: ../../include/items.php:3754 -msgid "Connection not found." -msgstr "Contatto non trovato." +#: ../../include/zot.php:732 +#, php-format +msgid "Unable to verify site signature for %s" +msgstr "Impossibile verificare la firma elettronica del sito %s" #: ../../mod/common.php:10 msgid "No channel." @@ -3097,1026 +3157,944 @@ msgstr "Crea un nuovo evento" msgid "Previous" msgstr "Precendente" -#: ../../mod/events.php:357 ../../mod/setup.php:256 +#: ../../mod/events.php:357 ../../mod/setup.php:258 msgid "Next" msgstr "Successivo" -#: ../../mod/events.php:429 +#: ../../mod/events.php:428 msgid "hour:minute" msgstr "ora:minuti" -#: ../../mod/events.php:448 +#: ../../mod/events.php:447 msgid "Event details" msgstr "Dettagli evento" -#: ../../mod/events.php:449 +#: ../../mod/events.php:448 #, php-format msgid "Format is %s %s. Starting date and Title are required." msgstr "Il formato è %s %s. L'inizio e il titolo sono obbligatori." -#: ../../mod/events.php:451 +#: ../../mod/events.php:450 msgid "Event Starts:" msgstr "Inizio:" -#: ../../mod/events.php:451 ../../mod/events.php:465 +#: ../../mod/events.php:450 ../../mod/events.php:464 msgid "Required" msgstr "Obbligatorio" -#: ../../mod/events.php:454 +#: ../../mod/events.php:453 msgid "Finish date/time is not known or not relevant" msgstr "La data/ora di fine non è rilevante" -#: ../../mod/events.php:456 +#: ../../mod/events.php:455 msgid "Event Finishes:" msgstr "Fine:" -#: ../../mod/events.php:459 +#: ../../mod/events.php:458 msgid "Adjust for viewer timezone" msgstr "Adatta al fuso orario di chi legge" -#: ../../mod/events.php:461 +#: ../../mod/events.php:460 msgid "Description:" msgstr "Descrizione:" -#: ../../mod/events.php:465 +#: ../../mod/events.php:464 msgid "Title:" msgstr "Titolo:" -#: ../../mod/events.php:467 +#: ../../mod/events.php:466 msgid "Share this event" msgstr "Condividi questo evento" -#: ../../mod/thing.php:109 +#: ../../mod/thing.php:94 +msgid "Thing updated" +msgstr "L'oggetto è stato aggiornato" + +#: ../../mod/thing.php:153 msgid "Object store: failed" msgstr "Impossibile memorizzare l'oggetto." -#: ../../mod/thing.php:113 -msgid "thing/stuff added" -msgstr "oggetto aggiunto" +#: ../../mod/thing.php:157 +msgid "Thing added" +msgstr "L'oggetto è stato aggiunto" -#: ../../mod/thing.php:129 +#: ../../mod/thing.php:175 #, php-format msgid "OBJ: %1$s %2$s %3$s" msgstr "OBJ: %1$s %2$s %3$s" -#: ../../mod/thing.php:175 -msgid "not yet implemented." -msgstr "non ancora implementato." +#: ../../mod/thing.php:228 +msgid "Show Thing" +msgstr "Mostra l'oggetto" + +#: ../../mod/thing.php:235 +msgid "item not found." +msgstr "non trovato." -#: ../../mod/thing.php:181 -msgid "Add Stuff to your Profile" -msgstr "Aggiungi un oggetto al tuo profilo" +#: ../../mod/thing.php:263 +msgid "Edit Thing" +msgstr "Modifica l'oggetto" -#: ../../mod/thing.php:183 +#: ../../mod/thing.php:265 ../../mod/thing.php:311 msgid "Select a profile" msgstr "Scegli un profilo" -#: ../../mod/thing.php:185 +#: ../../mod/thing.php:267 ../../mod/thing.php:313 msgid "Select a category of stuff. e.g. I ______ something" msgstr "Scegli come riferirsi all'oggetto. Esempio: Io _____ l'oggetto" -#: ../../mod/thing.php:187 -msgid "Name of thing or stuff e.g. something" +#: ../../mod/thing.php:270 ../../mod/thing.php:315 +msgid "Name of thing e.g. something" msgstr "Nome dell'oggetto" -#: ../../mod/thing.php:188 -msgid "URL of thing or stuff (optional)" -msgstr "Indirizzo web dell'oggetto (se cel'ha)" +#: ../../mod/thing.php:272 ../../mod/thing.php:316 +msgid "URL of thing (optional)" +msgstr "Indirizzo web dell'oggetto" -#: ../../mod/thing.php:189 -msgid "URL for photo of thing or stuff (optional)" -msgstr "Indirizzo web della foto dell'oggetto (facoltativo)" +#: ../../mod/thing.php:274 ../../mod/thing.php:317 +msgid "URL for photo of thing (optional)" +msgstr "Indirizzo di un'immagine dell'oggetto (facoltativo)" + +#: ../../mod/thing.php:309 +msgid "Add Thing to your Profile" +msgstr "Aggiungi l'oggetto al tuo profilo" #: ../../mod/invite.php:25 msgid "Total invitation limit exceeded." msgstr "Hai superato il numero massimo di inviti." -#: ../../mod/invite.php:47 +#: ../../mod/invite.php:49 #, php-format msgid "%s : Not a valid email address." msgstr "%s: non è un indirizzo email valido." -#: ../../mod/invite.php:74 +#: ../../mod/invite.php:76 msgid "Please join us on Red" -msgstr "Vieni con noi su Red" - -#: ../../mod/invite.php:85 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Hai superato il numero massimo di inviti. Contatta l'amministratore se necessario." - -#: ../../mod/invite.php:90 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s: la consegna del messaggio è fallita." - -#: ../../mod/invite.php:94 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d messaggio inviato." -msgstr[1] "%d messaggi inviati." - -#: ../../mod/invite.php:113 -msgid "You have no more invitations available" -msgstr "Non hai altri inviti disponibili" - -#: ../../mod/invite.php:139 -msgid "Send invitations" -msgstr "Spedisci inviti" - -#: ../../mod/invite.php:140 -msgid "Enter email addresses, one per line:" -msgstr "Inserisci gli indirizzi email, uno per riga:" - -#: ../../mod/invite.php:141 ../../mod/message.php:326 -#: ../../mod/message.php:476 -msgid "Your message:" -msgstr "Il tuo messaggio:" - -#: ../../mod/invite.php:142 -msgid "" -"You are cordially invited to join me and some other close friends on the Red" -" Matrix - a revolutionary new decentralised communication and information " -"tool." -msgstr "Questo è un invito cordiale ad unirti a me e ad altri miei amici stretti su Red Matrix - uno nuovo strumento di comunicazione decentralizzato e rivoluzionario." - -#: ../../mod/invite.php:144 -msgid "You will need to supply this invitation code: $invite_code" -msgstr "Sarà necessario fornire questo codice invito: $invite_code" - -#: ../../mod/invite.php:145 -msgid "Please visit my channel at" -msgstr "Puoi visitare il mio canale su" - -#: ../../mod/invite.php:149 -msgid "" -"Once you have registered (on ANY Red Matrix site - they are all inter-" -"connected), please connect with my Red Matrix channel address:" -msgstr "Una volta che avrai completato la registrazione (su QUALSIASI sito Red Matrix - sono tutti interconnessi), potrai connetterti al mio canale:" - -#: ../../mod/invite.php:151 -msgid "Click the [Register] link on the following page to join." -msgstr "Fai clic su [Registrati] nella pagina seguente per iscriverti." - -#: ../../mod/invite.php:153 -msgid "" -"For more information about the Red Matrix Project and why it has the " -"potential to change the internet as we know it, please visit " -"http://getzot.com" -msgstr "Per saperne di più sul progetto Red Matrix e sul perché potrebbe cambiare internet per come la conosciamo, visita http://getzot.com" - -#: ../../mod/allfriends.php:35 -#, php-format -msgid "Friends of %s" -msgstr "Amici di %s" - -#: ../../mod/allfriends.php:41 -msgid "No friends to display." -msgstr "Nessun amico da visualizzare." - -#: ../../mod/webpages.php:121 ../../mod/layouts.php:105 -#: ../../mod/blocks.php:96 -msgid "View" -msgstr "Guarda" - -#: ../../mod/api.php:76 ../../mod/api.php:102 -msgid "Authorize application connection" -msgstr "Autorizza la app" - -#: ../../mod/api.php:77 -msgid "Return to your app and insert this Securty Code:" -msgstr "Torna alla app e inserisci questo codice di sicurezza:" - -#: ../../mod/api.php:89 -msgid "Please login to continue." -msgstr "Accedi al sito per continuare." - -#: ../../mod/api.php:104 -msgid "" -"Do you want to authorize this application to access your posts and contacts," -" and/or create new posts for you?" -msgstr "Vuoi autorizzare questa app ad accedere ai messaggi e ai contatti o creare nuovi messaggi per te?" - -#: ../../mod/api.php:105 ../../mod/settings.php:967 ../../mod/settings.php:972 -#: ../../mod/profiles.php:495 -msgid "Yes" -msgstr "Si" - -#: ../../mod/api.php:106 ../../mod/settings.php:967 ../../mod/settings.php:972 -#: ../../mod/profiles.php:496 -msgid "No" -msgstr "No" - -#: ../../mod/apps.php:8 -msgid "No installed applications." -msgstr "Nessuna app installata." - -#: ../../mod/apps.php:13 -msgid "Applications" -msgstr "Applicazioni" - -#: ../../mod/page.php:35 -msgid "Invalid item." -msgstr "Elemento non valido." - -#: ../../mod/page.php:47 ../../mod/chanview.php:78 ../../mod/home.php:51 -#: ../../mod/wall_upload.php:35 -msgid "Channel not found." -msgstr "Canale non trovato." - -#: ../../mod/page.php:83 ../../mod/help.php:56 ../../mod/display.php:100 -#: ../../index.php:229 -msgid "Page not found." -msgstr "Pagina non trovata." - -#: ../../mod/attach.php:9 -msgid "Item not available." -msgstr "Elemento non disponibile." - -#: ../../mod/setup.php:161 -msgid "Red Matrix Server - Setup" -msgstr "Red Matrix Server - Installazione" - -#: ../../mod/setup.php:167 -msgid "Could not connect to database." -msgstr " Impossibile connettersi al database." - -#: ../../mod/setup.php:171 -msgid "" -"Could not connect to specified site URL. Possible SSL certificate or DNS " -"issue." -msgstr "Non è possibile raggiungere l'indirizzo del sito specificato. Potrebbe essere un problema di SSL o DNS." +msgstr "Vieni con noi su Red" -#: ../../mod/setup.php:176 -msgid "Could not create table." -msgstr "Impossibile creare le tabelle." +#: ../../mod/invite.php:87 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Hai superato il numero massimo di inviti. Contatta l'amministratore se necessario." -#: ../../mod/setup.php:182 -msgid "Your site database has been installed." -msgstr "Il database del sito è stato installato." +#: ../../mod/invite.php:92 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s: la consegna del messaggio è fallita." -#: ../../mod/setup.php:187 -msgid "" -"You may need to import the file \"install/database.sql\" manually using " -"phpmyadmin or mysql." -msgstr "Potresti dover importare il file 'install/database.sql' manualmente usando phpmyadmin o mysql." +#: ../../mod/invite.php:96 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d messaggio inviato." +msgstr[1] "%d messaggi inviati." -#: ../../mod/setup.php:188 ../../mod/setup.php:255 ../../mod/setup.php:584 -msgid "Please see the file \"install/INSTALL.txt\"." -msgstr "Leggi il file 'install/INSTALL.txt'." +#: ../../mod/invite.php:115 +msgid "You have no more invitations available" +msgstr "Non hai altri inviti disponibili" -#: ../../mod/setup.php:252 -msgid "System check" -msgstr "Verifica del sistema" +#: ../../mod/invite.php:141 +msgid "Send invitations" +msgstr "Spedisci inviti" -#: ../../mod/setup.php:257 -msgid "Check again" -msgstr "Verifica di nuovo" +#: ../../mod/invite.php:142 +msgid "Enter email addresses, one per line:" +msgstr "Inserisci gli indirizzi email, uno per riga:" -#: ../../mod/setup.php:279 -msgid "Database connection" -msgstr "Connessione al database" +#: ../../mod/invite.php:143 ../../mod/mail.php:216 ../../mod/mail.php:328 +msgid "Your message:" +msgstr "Il tuo messaggio:" -#: ../../mod/setup.php:280 +#: ../../mod/invite.php:144 msgid "" -"In order to install Red Matrix we need to know how to connect to your " -"database." -msgstr "Per installare Red Matrix è necessario conoscere i parametri di connessione al database." +"You are cordially invited to join me and some other close friends on the Red" +" Matrix - a revolutionary new decentralised communication and information " +"tool." +msgstr "Questo è un invito cordiale ad unirti a me e ad altri miei amici stretti su Red Matrix - uno nuovo strumento di comunicazione decentralizzato e rivoluzionario." -#: ../../mod/setup.php:281 +#: ../../mod/invite.php:146 +msgid "You will need to supply this invitation code: $invite_code" +msgstr "Sarà necessario fornire questo codice invito: $invite_code" + +#: ../../mod/invite.php:147 +msgid "Please visit my channel at" +msgstr "Puoi visitare il mio canale su" + +#: ../../mod/invite.php:151 msgid "" -"Please contact your hosting provider or site administrator if you have " -"questions about these settings." -msgstr "Contatta il tuo fornitore di hosting o l'amministratore del sito se hai domande su queste impostazioni." +"Once you have registered (on ANY Red Matrix site - they are all inter-" +"connected), please connect with my Red Matrix channel address:" +msgstr "Una volta che avrai completato la registrazione (su QUALSIASI sito Red Matrix - sono tutti interconnessi), potrai connetterti al mio canale:" -#: ../../mod/setup.php:282 +#: ../../mod/invite.php:153 +msgid "Click the [Register] link on the following page to join." +msgstr "Fai clic su [Registrati] nella pagina seguente per iscriverti." + +#: ../../mod/invite.php:155 msgid "" -"The database you specify below should already exist. If it does not, please " -"create it before continuing." -msgstr "Il database deve già esistere. Se non esiste, crealo prima di continuare." +"For more information about the Red Matrix Project and why it has the " +"potential to change the internet as we know it, please visit " +"http://getzot.com" +msgstr "Per saperne di più sul progetto Red Matrix e sul perché potrebbe cambiare internet per come la conosciamo, visita http://getzot.com" -#: ../../mod/setup.php:286 -msgid "Database Server Name" -msgstr "Server del database" +#: ../../mod/cloud.php:88 +msgid "Red Matrix - Guests: Username: {your email address}, Password: +++" +msgstr "Red Matrix - Ospiti: Nome utente: {il tuo indirizzo email}, Password: +++" -#: ../../mod/setup.php:286 -msgid "Default is localhost" -msgstr "'localhost' è il predefinito" +#: ../../mod/connedit.php:49 ../../mod/connections.php:37 +msgid "Could not access contact record." +msgstr "Non è possibile accedere alle informazioni sul contatto." -#: ../../mod/setup.php:287 -msgid "Database Port" -msgstr "Port del database" +#: ../../mod/connedit.php:63 ../../mod/connections.php:51 +msgid "Could not locate selected profile." +msgstr "Non riesco a trovare il profilo selezionato." -#: ../../mod/setup.php:287 -msgid "Communication port number - use 0 for default" -msgstr "Scrivi 0 per usare il valore standard" +#: ../../mod/connedit.php:104 ../../mod/connections.php:92 +msgid "Connection updated." +msgstr "Contatto aggiornato." -#: ../../mod/setup.php:288 -msgid "Database Login Name" -msgstr "Utente database" +#: ../../mod/connedit.php:106 ../../mod/connections.php:94 +msgid "Failed to update connection record." +msgstr "Impossibile aggiornare le informazioni del contatto." -#: ../../mod/setup.php:289 -msgid "Database Login Password" -msgstr "Password utente database" +#: ../../mod/connedit.php:201 +msgid "Could not access address book record." +msgstr "Impossibile accedere alle informazioni della rubrica." -#: ../../mod/setup.php:290 -msgid "Database Name" -msgstr "Nome database" +#: ../../mod/connedit.php:215 +msgid "Refresh failed - channel is currently unavailable." +msgstr "Il canale non è disponibile - impossibile aggiornare." -#: ../../mod/setup.php:292 ../../mod/setup.php:334 -msgid "Site administrator email address" -msgstr "Indirizzo email dell'amministratore del sito" +#: ../../mod/connedit.php:222 +msgid "Channel has been unblocked" +msgstr "Il canale è stato sbloccato" -#: ../../mod/setup.php:292 ../../mod/setup.php:334 -msgid "" -"Your account email address must match this in order to use the web admin " -"panel." -msgstr "Il tuo indirizzo email deve corrispondere a questo per poter usare il pannello di amministrazione web." +#: ../../mod/connedit.php:223 +msgid "Channel has been blocked" +msgstr "Il canale è stato bloccato" -#: ../../mod/setup.php:293 ../../mod/setup.php:336 -msgid "Website URL" -msgstr "URL completo del sito" +#: ../../mod/connedit.php:227 ../../mod/connedit.php:239 +#: ../../mod/connedit.php:251 ../../mod/connedit.php:263 +#: ../../mod/connedit.php:278 +msgid "Unable to set address book parameters." +msgstr "Impossibile impostare i parametri della rubrica." -#: ../../mod/setup.php:293 ../../mod/setup.php:336 -msgid "Please use SSL (https) URL if available." -msgstr "Se disponibile, usa l'indirizzo SSL (https)." +#: ../../mod/connedit.php:234 +msgid "Channel has been unignored" +msgstr "Il canale non sarà più ignorato" -#: ../../mod/setup.php:296 ../../mod/setup.php:339 -msgid "Please select a default timezone for your website" -msgstr "Seleziona il fuso orario predefinito per il tuo sito web" +#: ../../mod/connedit.php:235 +msgid "Channel has been ignored" +msgstr "Il canale sarà ignorato" -#: ../../mod/setup.php:323 -msgid "Site settings" -msgstr "Impostazioni del sito" +#: ../../mod/connedit.php:246 +msgid "Channel has been unarchived" +msgstr "Il canale non è più archiviato" -#: ../../mod/setup.php:379 -msgid "Could not find a command line version of PHP in the web server PATH." -msgstr "Non è possibile trovare la versione di PHP da riga di comando nel PATH del server web" +#: ../../mod/connedit.php:247 +msgid "Channel has been archived" +msgstr "Il canale è stato archiviato" -#: ../../mod/setup.php:380 -msgid "" -"If you don't have a command line version of PHP installed on server, you " -"will not be able to run background polling via cron." -msgstr "Se non hai installata la versione di PHP da riga di comando non potrai attivare il polling in background tramite cron." +#: ../../mod/connedit.php:258 +msgid "Channel has been unhidden" +msgstr "Il canale non è più nascosto" -#: ../../mod/setup.php:384 -msgid "PHP executable path" -msgstr "Path del comando PHP" +#: ../../mod/connedit.php:259 +msgid "Channel has been hidden" +msgstr "Il canale è stato nascosto" -#: ../../mod/setup.php:384 -msgid "" -"Enter full path to php executable. You can leave this blank to continue the " -"installation." -msgstr "Inserisci il percorso dell'eseguibile PHP. Puoi lasciarlo vuoto per continuare l'installazione." +#: ../../mod/connedit.php:273 +msgid "Channel has been approved" +msgstr "Il canale è stato approvato" -#: ../../mod/setup.php:389 -msgid "Command line PHP" -msgstr "PHP da riga di comando" +#: ../../mod/connedit.php:274 +msgid "Channel has been unapproved" +msgstr "Il canale non è più approvato" -#: ../../mod/setup.php:398 -msgid "" -"The command line version of PHP on your system does not have " -"\"register_argc_argv\" enabled." -msgstr "La versione da riga di comando di PHP nel sistema non ha abilitato \"register_argc_argv\"." +#: ../../mod/connedit.php:292 +msgid "Contact has been removed." +msgstr "Il contatto è stato rimosso." -#: ../../mod/setup.php:399 -msgid "This is required for message delivery to work." -msgstr "E' necessario perché funzioni la consegna dei messaggi." +#: ../../mod/connedit.php:312 +#, php-format +msgid "View %s's profile" +msgstr "Guarda il profilo di %s" -#: ../../mod/setup.php:401 -msgid "PHP register_argc_argv" -msgstr "PHP register_argc_argv" +#: ../../mod/connedit.php:316 +msgid "Refresh Permissions" +msgstr "Aggiorna i permessi" -#: ../../mod/setup.php:422 -msgid "" -"Error: the \"openssl_pkey_new\" function on this system is not able to " -"generate encryption keys" -msgstr "Errore: la funzione \"openssl_pkey_new\" su questo sistema non è in grado di generare le chiavi di criptazione" +#: ../../mod/connedit.php:319 +msgid "Fetch updated permissions" +msgstr "Scarica i permessi aggiornati" -#: ../../mod/setup.php:423 -msgid "" -"If running under Windows, please see " -"\"http://www.php.net/manual/en/openssl.installation.php\"." -msgstr "Se stai usando un server windows, guarda \"http://www.php.net/manual/en/openssl.installation.php\"." +#: ../../mod/connedit.php:323 +msgid "Recent Activity" +msgstr "Attività recenti" -#: ../../mod/setup.php:425 -msgid "Generate encryption keys" -msgstr "Genera chiavi di criptazione" +#: ../../mod/connedit.php:326 +msgid "View recent posts and comments" +msgstr "Leggi i post recenti e i commenti" -#: ../../mod/setup.php:432 -msgid "libCurl PHP module" -msgstr "modulo PHP libCurl" +#: ../../mod/connedit.php:330 ../../mod/connedit.php:472 +#: ../../mod/admin.php:697 +msgid "Unblock" +msgstr "Sblocca" -#: ../../mod/setup.php:433 -msgid "GD graphics PHP module" -msgstr "modulo PHP GD graphics" +#: ../../mod/connedit.php:330 ../../mod/connedit.php:472 +#: ../../mod/admin.php:696 +msgid "Block" +msgstr "Blocca" -#: ../../mod/setup.php:434 -msgid "OpenSSL PHP module" -msgstr "modulo PHP OpenSSL" +#: ../../mod/connedit.php:333 +msgid "Block or Unblock this connection" +msgstr "Per bloccare o meno questo contatto" -#: ../../mod/setup.php:435 -msgid "mysqli PHP module" -msgstr "modulo PHP mysqli" +#: ../../mod/connedit.php:337 ../../mod/connedit.php:473 +msgid "Unignore" +msgstr "Non ignorare" -#: ../../mod/setup.php:436 -msgid "mb_string PHP module" -msgstr "modulo PHP mb_string" +#: ../../mod/connedit.php:337 ../../mod/connedit.php:473 +#: ../../mod/notifications.php:51 +msgid "Ignore" +msgstr "Ignora" -#: ../../mod/setup.php:437 -msgid "mcrypt PHP module" -msgstr "modulo PHP mcrypt" +#: ../../mod/connedit.php:340 +msgid "Ignore or Unignore this connection" +msgstr "Per ignorare o meno questo contatto" -#: ../../mod/setup.php:442 ../../mod/setup.php:444 -msgid "Apache mod_rewrite module" -msgstr "modulo Apache mod_rewrite" +#: ../../mod/connedit.php:343 +msgid "Unarchive" +msgstr "Non archiviare" -#: ../../mod/setup.php:442 -msgid "" -"Error: Apache webserver mod-rewrite module is required but not installed." -msgstr "Errore: il modulo mod-rewrite di Apache è richiesto ma non installato" +#: ../../mod/connedit.php:343 +msgid "Archive" +msgstr "Archivia" -#: ../../mod/setup.php:448 ../../mod/setup.php:451 -msgid "proc_open" -msgstr "proc_open" +#: ../../mod/connedit.php:346 +msgid "Archive or Unarchive this connection" +msgstr "Per archiviare o meno questo contatto" -#: ../../mod/setup.php:448 -msgid "" -"Error: proc_open is required but is either not installed or has been " -"disabled in php.ini" -msgstr "Errore: proc_open è richiesto ma non è installato o è disabilitato in php.ini" +#: ../../mod/connedit.php:349 +msgid "Unhide" +msgstr "Non nascondere" -#: ../../mod/setup.php:456 -msgid "Error: libCURL PHP module required but not installed." -msgstr "Errore: il modulo libCURL di PHP è richiesto ma non installato." +#: ../../mod/connedit.php:349 +msgid "Hide" +msgstr "Nascondi" -#: ../../mod/setup.php:460 -msgid "" -"Error: GD graphics PHP module with JPEG support required but not installed." -msgstr "Errore: Il modulo GD graphics di PHP con supporto a JPEG è richiesto ma non installato." +#: ../../mod/connedit.php:352 +msgid "Hide or Unhide this connection" +msgstr "Per nascondere o meno questo contatto" -#: ../../mod/setup.php:464 -msgid "Error: openssl PHP module required but not installed." -msgstr "Errore: il modulo openssl di PHP è richiesto ma non installato." +#: ../../mod/connedit.php:359 +msgid "Delete this connection" +msgstr "Elimina questo contatto" -#: ../../mod/setup.php:468 -msgid "Error: mysqli PHP module required but not installed." -msgstr "Errore: il modulo mysqli di PHP è richiesto ma non installato." +#: ../../mod/connedit.php:392 +msgid "Unknown" +msgstr "Sconosciuto" -#: ../../mod/setup.php:472 -msgid "Error: mb_string PHP module required but not installed." -msgstr "Errore: il modulo PHP mb_string è richiesto ma non installato." +#: ../../mod/connedit.php:402 ../../mod/connedit.php:431 +msgid "Approve this connection" +msgstr "Approva questo contatto" -#: ../../mod/setup.php:476 -msgid "Error: mcrypt PHP module required but not installed." -msgstr "Errore: il modulo PHP mcrypt è richiesto ma non installato." +#: ../../mod/connedit.php:402 +msgid "Accept connection to allow communication" +msgstr "Entra in contatto per poter comunicare" -#: ../../mod/setup.php:492 -msgid "" -"The web installer needs to be able to create a file called \".htconfig.php\"" -" in the top folder of your web server and it is unable to do so." -msgstr "L'installazione web deve poter creare un file chiamato \".htconfig.php\" nella cartella principale del tuo web server ma non è in grado di farlo." +#: ../../mod/connedit.php:418 +msgid "Automatic Permissions Settings" +msgstr "Permessi predefiniti" -#: ../../mod/setup.php:493 -msgid "" -"This is most often a permission setting, as the web server may not be able " -"to write files in your folder - even if you can." -msgstr "Spesso ciò è dovuto ai permessi di accesso al disco: il web server potrebbe non aver diritto di scrivere il file nella cartella, anche se tu puoi." +#: ../../mod/connedit.php:418 +#, php-format +msgid "Connections: settings for %s" +msgstr "Contatti: impostazioni per %s" -#: ../../mod/setup.php:494 +#: ../../mod/connedit.php:422 msgid "" -"At the end of this procedure, we will give you a text to save in a file " -"named .htconfig.php in your Red top folder." -msgstr "Alla fine di questa procedura ti sarà dato il testo da salvare in un file di nome .htconfig.php dentro la cartella principale di Red." +"When receiving a channel introduction, any permissions provided here will be" +" applied to the new connection automatically and the introduction approved. " +"Leave this page if you do not wish to use this feature." +msgstr "Hai ricevuto da un canale una richiesta di entrare in contatto, se prosegui la richiesta sarà approvata e saranno applicati i permessi mostrati. Lascia questa pagina se non vuoi proseguire." -#: ../../mod/setup.php:495 -msgid "" -"You can alternatively skip this procedure and perform a manual installation." -" Please see the file \"install/INSTALL.txt\" for instructions." -msgstr "Puoi anche saltare questa procedura ed effettuare un'installazione manuale. Guarda il file 'install/INSTALL.txt' per le istruzioni." +#: ../../mod/connedit.php:424 +msgid "Slide to adjust your degree of friendship" +msgstr "Trascina per restringere il grado di amicizia da mostrare" -#: ../../mod/setup.php:498 -msgid ".htconfig.php is writable" -msgstr ".htconfig.php è scrivibile" +#: ../../mod/connedit.php:430 +msgid "inherited" +msgstr "derivato" -#: ../../mod/setup.php:508 -msgid "" -"Red uses the Smarty3 template engine to render its web views. Smarty3 " -"compiles templates to PHP to speed up rendering." -msgstr "Red usa il sistema Smarty3 per costruire i suoi template grafici. Smarty3 è molto veloce perché compila i template delle pagine direttamente in PHP." +#: ../../mod/connedit.php:432 +msgid "Connection has no individual permissions!" +msgstr "Non hai assegnato permessi individuali a questo contatto!" -#: ../../mod/setup.php:509 +#: ../../mod/connedit.php:433 msgid "" -"In order to store these compiled templates, the web server needs to have " -"write access to the directory view/tpl/smarty3/ under the Red top level " -"folder." -msgstr "Per poter memorizzare i template compilati, il web server deve avere accesso in scrittura alla cartella view/tpl/smarty3/ sotto la cartella di installazione di Red." +"This may be appropriate based on your privacy " +"settings, though you may wish to review the \"Advanced Permissions\"." +msgstr "Questo corrisponde alle tue impostazioni di privacy, ma puoi anche dare un'occhiata ai 'Permessi avanzati' per opzioni più dettagliate." -#: ../../mod/setup.php:510 -msgid "" -"Please ensure that the user that your web server runs as (e.g. www-data) has" -" write access to this folder." -msgstr "Assicurati che il tuo web server sia in esecuzione come un utente che ha diritto di scrittura su quella cartella (ad esempio www-data)." +#: ../../mod/connedit.php:435 +msgid "Profile Visibility" +msgstr "Visibilità del profilo" -#: ../../mod/setup.php:511 +#: ../../mod/connedit.php:436 +#, php-format msgid "" -"Note: as a security measure, you should give the web server write access to " -"view/tpl/smarty3/ only--not the template files (.tpl) that it contains." -msgstr "Nota bene: come precauzione, dovresti dare i diritti di scrittura solamente per view/tpl/smarty3/ non per tutti i file di template (.tpl) che contiene." +"Please choose the profile you would like to display to %s when viewing your " +"profile securely." +msgstr "Seleziona il profilo che vuoi mostrare a %s quando visita il tuo profilo in modo sicuro." -#: ../../mod/setup.php:514 -msgid "view/tpl/smarty3 is writable" -msgstr "view/tpl/smarty3 è scrivibile" +#: ../../mod/connedit.php:437 +msgid "Contact Information / Notes" +msgstr "Informazioni e annotazioni sul contatto" -#: ../../mod/setup.php:528 -msgid "SSL certificate validation" -msgstr "Validazione del certificato SSL" +#: ../../mod/connedit.php:438 +msgid "Edit contact notes" +msgstr "Modifica le informazioni sul contatto" -#: ../../mod/setup.php:528 -msgid "" -"SSL certificate cannot be validated. Fix certificate or disable https access" -" to this site." -msgstr "Il certificato SSL non può essere validato. Correggi l'errore o disabilita l'accesso https al sito." +#: ../../mod/connedit.php:440 +msgid "Their Settings" +msgstr "Permessi concessi a te" -#: ../../mod/setup.php:535 -msgid "" -"Url rewrite in .htaccess is not working. Check your server configuration." -msgstr "In .htaccess la funzionalità url rewrite non funziona. Controlla la configurazione del server." +#: ../../mod/connedit.php:441 +msgid "My Settings" +msgstr "I permessi che concedo" -#: ../../mod/setup.php:537 -msgid "Url rewrite is working" -msgstr "Url rewrite funziona correttamente" +#: ../../mod/connedit.php:443 +msgid "Forum Members" +msgstr "Membro di un forum" -#: ../../mod/setup.php:547 -msgid "" -"The database configuration file \".htconfig.php\" could not be written. " -"Please use the enclosed text to create a configuration file in your web " -"server root." -msgstr "Il file di configurazione del database \".htconfig.php\" non puo' essere scritto. Usa il testo qui di seguito per creare questo file di configurazione nella cartella principale del tuo sito." +#: ../../mod/connedit.php:444 +msgid "Soapbox" +msgstr "Comunicati e annunci" -#: ../../mod/setup.php:571 -msgid "Errors encountered creating database tables." -msgstr "La creazione delle tabelle del database ha generato errori." +#: ../../mod/connedit.php:445 +msgid "Full Sharing" +msgstr "Condivisione totale" -#: ../../mod/setup.php:582 -msgid "

    What next

    " -msgstr "

    I prossimi passi

    " +#: ../../mod/connedit.php:446 +msgid "Cautious Sharing" +msgstr "Condivisione prudente" -#: ../../mod/setup.php:583 -msgid "" -"IMPORTANT: You will need to [manually] setup a scheduled task for the " -"poller." -msgstr "IMPORTANTE: Devi creare [manualmente] la pianificazione del polling." +#: ../../mod/connedit.php:447 +msgid "Follow Only" +msgstr "Follower" -#: ../../mod/rpost.php:84 ../../mod/editpost.php:42 -msgid "Edit post" -msgstr "Modifica articolo" +#: ../../mod/connedit.php:448 +msgid "Individual Permissions" +msgstr "Permessi individuali" -#: ../../mod/subthread.php:105 -#, php-format -msgid "%1$s is following %2$s's %3$s" -msgstr "%1$s sta seguendo %3$s di %2$s" +#: ../../mod/connedit.php:449 +msgid "" +"Some permissions may be inherited from your channel privacy settings, which have higher priority. Changing" +" those inherited settings on this page will have no effect." +msgstr "Alcuni permessi derivano dalle impostazioni di privacy, che hanno una priorità maggiore. Cambiarli in questa pagina non avrà alcun effetto." -#: ../../mod/update_network.php:23 ../../mod/update_channel.php:43 -#: ../../mod/update_search.php:46 ../../mod/update_display.php:25 -#: ../../mod/update_community.php:18 -msgid "[Embedded content - reload page to view]" -msgstr "[Contenuto incorporato - ricarica la pagina per visualizzarlo correttamente]" +#: ../../mod/connedit.php:450 +msgid "Advanced Permissions" +msgstr "Permessi avanzati" -#: ../../mod/chanview.php:98 -msgid "toggle full screen mode" -msgstr "attiva/disattiva schermo intero" +#: ../../mod/connedit.php:451 +msgid "Quick Links" +msgstr "Impostazioni veloci" -#: ../../mod/tagger.php:98 +#: ../../mod/connedit.php:455 #, php-format -msgid "%1$s tagged %2$s's %3$s with %4$s" -msgstr "%1$s ha taggato %3$s di %2$s con %4$s" +msgid "Visit %s's profile - %s" +msgstr "Guarda il profilo di %s - %s" -#: ../../mod/settings.php:53 -msgid "Account settings" -msgstr "Impostazioni dell'account" +#: ../../mod/connedit.php:456 +msgid "Block/Unblock contact" +msgstr "Blocca/sblocca contatto" -#: ../../mod/settings.php:59 -msgid "Channel settings" -msgstr "Impostazioni del canale" +#: ../../mod/connedit.php:457 +msgid "Ignore contact" +msgstr "Ignora il contatto" -#: ../../mod/settings.php:65 -msgid "Additional features" -msgstr "Funzionalità aggiuntive" +#: ../../mod/connedit.php:458 +msgid "Repair URL settings" +msgstr "Ripara le impostazioni URL" -#: ../../mod/settings.php:71 -msgid "Feature settings" -msgstr "Impostazioni aggiuntive" +#: ../../mod/connedit.php:459 +msgid "View conversations" +msgstr "Leggi le conversazioni" -#: ../../mod/settings.php:77 -msgid "Display settings" -msgstr "Impostazioni grafiche" +#: ../../mod/connedit.php:461 +msgid "Delete contact" +msgstr "Elimina contatto" -#: ../../mod/settings.php:83 -msgid "Connected apps" -msgstr "App connesse" +#: ../../mod/connedit.php:464 +msgid "Last update:" +msgstr "Ultimo aggiornamento:" -#: ../../mod/settings.php:89 -msgid "Export channel" -msgstr "Esporta il canale" +#: ../../mod/connedit.php:466 +msgid "Update public posts" +msgstr "Aggiorna gli articoli pubblici" -#: ../../mod/settings.php:101 -msgid "Automatic Permissions (Advanced)" -msgstr "Permessi predefiniti (avanzato)" +#: ../../mod/connedit.php:468 +msgid "Update now" +msgstr "Aggiorna adesso" -#: ../../mod/settings.php:111 -msgid "Premium Channel Settings" -msgstr "Canale premium - impostazioni" +#: ../../mod/connedit.php:474 +msgid "Currently blocked" +msgstr "Attualmente bloccato" -#: ../../mod/settings.php:173 -msgid "Name is required" -msgstr "Il nome è obbligatorio" +#: ../../mod/connedit.php:475 +msgid "Currently ignored" +msgstr "Attualmente ignorato" -#: ../../mod/settings.php:177 -msgid "Key and Secret are required" -msgstr "Chiave e Segreto sono richiesti" +#: ../../mod/connedit.php:476 +msgid "Currently archived" +msgstr "Attualmente archiviato" -#: ../../mod/settings.php:181 ../../mod/settings.php:635 -msgid "Update" -msgstr "Aggiorna" +#: ../../mod/connedit.php:477 +msgid "Currently pending" +msgstr "Attualmente da approvare" -#: ../../mod/settings.php:294 -msgid "Passwords do not match. Password unchanged." -msgstr "Le password non corrispondono. Password non cambiata." +#: ../../mod/connedit.php:478 +msgid "Hide this contact from others" +msgstr "Nascondi questo contatto agli altri" -#: ../../mod/settings.php:298 -msgid "Empty passwords are not allowed. Password unchanged." -msgstr "Le password non possono essere vuote. Password non cambiata." +#: ../../mod/connedit.php:478 +msgid "" +"Replies/likes to your public posts may still be visible" +msgstr "Le risposte ai tuoi articoli pubblici potrebbero restare comunque visibili" -#: ../../mod/settings.php:311 -msgid "Password changed." -msgstr "Password cambiata." +#: ../../mod/webpages.php:121 ../../mod/layouts.php:105 +#: ../../mod/blocks.php:96 +msgid "View" +msgstr "Guarda" -#: ../../mod/settings.php:313 -msgid "Password update failed. Please try again." -msgstr "Aggiornamento password fallito. Prova ancora." +#: ../../mod/api.php:76 ../../mod/api.php:102 +msgid "Authorize application connection" +msgstr "Autorizza la app" -#: ../../mod/settings.php:327 -msgid "Not valid email." -msgstr "Email non valida." +#: ../../mod/api.php:77 +msgid "Return to your app and insert this Securty Code:" +msgstr "Torna alla app e inserisci questo codice di sicurezza:" -#: ../../mod/settings.php:330 -msgid "Protected email address. Cannot change to that email." -msgstr "È un indirizzo email riservato. Non puoi sceglierlo." +#: ../../mod/api.php:89 +msgid "Please login to continue." +msgstr "Accedi al sito per continuare." -#: ../../mod/settings.php:339 -msgid "System failure storing new email. Please try again." -msgstr "Errore di sistema. Non è stato possibile memorizzare il tuo messaggio, riprova per favore." +#: ../../mod/api.php:104 +msgid "" +"Do you want to authorize this application to access your posts and contacts," +" and/or create new posts for you?" +msgstr "Vuoi autorizzare questa app ad accedere ai messaggi e ai contatti o creare nuovi messaggi per te?" -#: ../../mod/settings.php:537 -msgid "Settings updated." -msgstr "Impostazioni aggiornate." +#: ../../mod/api.php:105 ../../mod/profiles.php:483 ../../mod/settings.php:865 +#: ../../mod/settings.php:870 +msgid "Yes" +msgstr "Si" -#: ../../mod/settings.php:608 ../../mod/settings.php:634 -#: ../../mod/settings.php:670 -msgid "Add application" -msgstr "Aggiungi una app" +#: ../../mod/api.php:106 ../../mod/profiles.php:484 ../../mod/settings.php:865 +#: ../../mod/settings.php:870 +msgid "No" +msgstr "No" -#: ../../mod/settings.php:610 ../../mod/settings.php:636 -#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 ../../mod/fbrowser.php:82 -#: ../../mod/fbrowser.php:117 -msgid "Cancel" -msgstr "Annulla" +#: ../../mod/apps.php:8 +msgid "No installed applications." +msgstr "Nessuna app installata." -#: ../../mod/settings.php:611 ../../mod/settings.php:637 -#: ../../mod/admin.php:689 -msgid "Name" -msgstr "Nome" +#: ../../mod/apps.php:13 +msgid "Applications" +msgstr "Applicazioni" -#: ../../mod/settings.php:611 -msgid "Name of application" -msgstr "Nome dell'applicazione" +#: ../../mod/page.php:35 +msgid "Invalid item." +msgstr "Elemento non valido." -#: ../../mod/settings.php:612 ../../mod/settings.php:638 -msgid "Consumer Key" -msgstr "Consumer Key" +#: ../../mod/page.php:47 ../../mod/chanview.php:77 ../../mod/home.php:50 +#: ../../mod/wall_upload.php:35 +msgid "Channel not found." +msgstr "Canale non trovato." -#: ../../mod/settings.php:612 ../../mod/settings.php:613 -msgid "Automatically generated - change if desired. Max length 20" -msgstr "Generato automaticamente - è possibile cambiarlo. Lunghezza massima 20" +#: ../../mod/page.php:83 ../../mod/help.php:71 ../../mod/display.php:100 +#: ../../index.php:227 +msgid "Page not found." +msgstr "Pagina non trovata." -#: ../../mod/settings.php:613 ../../mod/settings.php:639 -msgid "Consumer Secret" -msgstr "Consumer Secret" +#: ../../mod/attach.php:9 +msgid "Item not available." +msgstr "Elemento non disponibile." -#: ../../mod/settings.php:614 ../../mod/settings.php:640 -msgid "Redirect" -msgstr "Redirect" +#: ../../mod/setup.php:161 +msgid "Red Matrix Server - Setup" +msgstr "Red Matrix Server - Installazione" -#: ../../mod/settings.php:614 -msgid "" -"Redirect URI - leave blank unless your application specifically requires " -"this" -msgstr "URI ridirezionato - lasciare bianco se non richiesto specificamente dall'applicazione." +#: ../../mod/setup.php:167 +msgid "Could not connect to database." +msgstr " Impossibile connettersi al database." -#: ../../mod/settings.php:615 ../../mod/settings.php:641 -msgid "Icon url" -msgstr "Url icona" +#: ../../mod/setup.php:171 +msgid "" +"Could not connect to specified site URL. Possible SSL certificate or DNS " +"issue." +msgstr "Non è possibile raggiungere l'indirizzo del sito specificato. Potrebbe essere un problema di SSL o DNS." -#: ../../mod/settings.php:615 -msgid "Optional" -msgstr "Opzionale" +#: ../../mod/setup.php:176 +msgid "Could not create table." +msgstr "Impossibile creare le tabelle." -#: ../../mod/settings.php:626 -msgid "You can't edit this application." -msgstr "Non puoi modificare questa applicazione." +#: ../../mod/setup.php:182 +msgid "Your site database has been installed." +msgstr "Il database del sito è stato installato." -#: ../../mod/settings.php:669 -msgid "Connected Apps" -msgstr "App connesse" +#: ../../mod/setup.php:187 +msgid "" +"You may need to import the file \"install/database.sql\" manually using " +"phpmyadmin or mysql." +msgstr "Potresti dover importare il file 'install/database.sql' manualmente usando phpmyadmin o mysql." -#: ../../mod/settings.php:673 -msgid "Client key starts with" -msgstr "La client key inizia con" +#: ../../mod/setup.php:188 ../../mod/setup.php:257 ../../mod/setup.php:606 +msgid "Please see the file \"install/INSTALL.txt\"." +msgstr "Leggi il file 'install/INSTALL.txt'." -#: ../../mod/settings.php:674 -msgid "No name" -msgstr "Nessun nome" +#: ../../mod/setup.php:254 +msgid "System check" +msgstr "Verifica del sistema" -#: ../../mod/settings.php:675 -msgid "Remove authorization" -msgstr "Revoca l'autorizzazione" +#: ../../mod/setup.php:259 +msgid "Check again" +msgstr "Verifica di nuovo" -#: ../../mod/settings.php:686 -msgid "No feature settings configured" -msgstr "Non ci sono funzionalità aggiuntive personalizzabili" +#: ../../mod/setup.php:281 +msgid "Database connection" +msgstr "Connessione al database" -#: ../../mod/settings.php:694 -msgid "Feature Settings" -msgstr "Impostazioni aggiuntive" +#: ../../mod/setup.php:282 +msgid "" +"In order to install Red Matrix we need to know how to connect to your " +"database." +msgstr "Per installare Red Matrix è necessario conoscere i parametri di connessione al database." -#: ../../mod/settings.php:717 -msgid "Account Settings" -msgstr "Impostazioni account" +#: ../../mod/setup.php:283 +msgid "" +"Please contact your hosting provider or site administrator if you have " +"questions about these settings." +msgstr "Contatta il tuo fornitore di hosting o l'amministratore del sito se hai domande su queste impostazioni." -#: ../../mod/settings.php:718 -msgid "Password Settings" -msgstr "Impostazioni password" +#: ../../mod/setup.php:284 +msgid "" +"The database you specify below should already exist. If it does not, please " +"create it before continuing." +msgstr "Il database deve già esistere. Se non esiste, crealo prima di continuare." -#: ../../mod/settings.php:719 -msgid "New Password:" -msgstr "Nuova password:" +#: ../../mod/setup.php:288 +msgid "Database Server Name" +msgstr "Server del database" -#: ../../mod/settings.php:720 -msgid "Confirm:" -msgstr "Conferma:" +#: ../../mod/setup.php:288 +msgid "Default is localhost" +msgstr "'localhost' è il predefinito" -#: ../../mod/settings.php:720 -msgid "Leave password fields blank unless changing" -msgstr "Lascia questi campi in bianco per non cambiare la password" +#: ../../mod/setup.php:289 +msgid "Database Port" +msgstr "Port del database" -#: ../../mod/settings.php:722 ../../mod/settings.php:1014 -msgid "Email Address:" -msgstr "Indirizzo email:" +#: ../../mod/setup.php:289 +msgid "Communication port number - use 0 for default" +msgstr "Scrivi 0 per usare il valore standard" -#: ../../mod/settings.php:723 -msgid "Remove Account" -msgstr "Elimina l'account" +#: ../../mod/setup.php:290 +msgid "Database Login Name" +msgstr "Utente database" -#: ../../mod/settings.php:724 -msgid "Warning: This action is permanent and cannot be reversed." -msgstr "Attenzione: questa azione è permanente e non potrà più essere annullata." +#: ../../mod/setup.php:291 +msgid "Database Login Password" +msgstr "Password utente database" -#: ../../mod/settings.php:740 -msgid "Off" -msgstr "Off" +#: ../../mod/setup.php:292 +msgid "Database Name" +msgstr "Nome database" -#: ../../mod/settings.php:740 -msgid "On" -msgstr "On" +#: ../../mod/setup.php:294 ../../mod/setup.php:336 +msgid "Site administrator email address" +msgstr "Indirizzo email dell'amministratore del sito" -#: ../../mod/settings.php:747 -msgid "Additional Features" -msgstr "Funzionalità aggiuntive" +#: ../../mod/setup.php:294 ../../mod/setup.php:336 +msgid "" +"Your account email address must match this in order to use the web admin " +"panel." +msgstr "Il tuo indirizzo email deve corrispondere a questo per poter usare il pannello di amministrazione web." -#: ../../mod/settings.php:772 -msgid "Connector Settings" -msgstr "Impostazioni del connettore" +#: ../../mod/setup.php:295 ../../mod/setup.php:338 +msgid "Website URL" +msgstr "URL completo del sito" -#: ../../mod/settings.php:802 ../../mod/admin.php:371 -msgid "No special theme for mobile devices" -msgstr "Nessun tema per dispositivi mobili" +#: ../../mod/setup.php:295 ../../mod/setup.php:338 +msgid "Please use SSL (https) URL if available." +msgstr "Se disponibile, usa l'indirizzo SSL (https)." -#: ../../mod/settings.php:842 -msgid "Display Settings" -msgstr "Impostazioni grafiche" +#: ../../mod/setup.php:298 ../../mod/setup.php:341 +msgid "Please select a default timezone for your website" +msgstr "Seleziona il fuso orario predefinito per il tuo sito web" -#: ../../mod/settings.php:848 -msgid "Display Theme:" -msgstr "Tema per monitor:" +#: ../../mod/setup.php:325 +msgid "Site settings" +msgstr "Impostazioni del sito" -#: ../../mod/settings.php:849 -msgid "Mobile Theme:" -msgstr "Tema per dispositivi mobili:" +#: ../../mod/setup.php:381 +msgid "Could not find a command line version of PHP in the web server PATH." +msgstr "Non è possibile trovare la versione di PHP da riga di comando nel PATH del server web" -#: ../../mod/settings.php:850 -msgid "Update browser every xx seconds" -msgstr "Aggiorna il browser ogni x secondi" +#: ../../mod/setup.php:382 +msgid "" +"If you don't have a command line version of PHP installed on server, you " +"will not be able to run background polling via cron." +msgstr "Se non hai installata la versione di PHP da riga di comando non potrai attivare il polling in background tramite cron." -#: ../../mod/settings.php:850 -msgid "Minimum of 10 seconds, no maximum" -msgstr "Minimo 10 secondi, nessun limite massimo" +#: ../../mod/setup.php:386 +msgid "PHP executable path" +msgstr "Path del comando PHP" -#: ../../mod/settings.php:851 -msgid "Maximum number of conversations to load at any time:" -msgstr "Massimo numero di conversazioni da mostrare ogni volta:" +#: ../../mod/setup.php:386 +msgid "" +"Enter full path to php executable. You can leave this blank to continue the " +"installation." +msgstr "Inserisci il percorso dell'eseguibile PHP. Puoi lasciarlo vuoto per continuare l'installazione." -#: ../../mod/settings.php:851 -msgid "Maximum of 100 items" -msgstr "Massimo 100" +#: ../../mod/setup.php:391 +msgid "Command line PHP" +msgstr "PHP da riga di comando" -#: ../../mod/settings.php:852 -msgid "Don't show emoticons" -msgstr "Non mostrare le emoticons" +#: ../../mod/setup.php:400 +msgid "" +"The command line version of PHP on your system does not have " +"\"register_argc_argv\" enabled." +msgstr "La versione da riga di comando di PHP nel sistema non ha abilitato \"register_argc_argv\"." -#: ../../mod/settings.php:888 -msgid "Nobody except yourself" -msgstr "Nessuno tranne te" +#: ../../mod/setup.php:401 +msgid "This is required for message delivery to work." +msgstr "E' necessario perché funzioni la consegna dei messaggi." -#: ../../mod/settings.php:889 -msgid "Only those you specifically allow" -msgstr "Solo chi riceve il mio permesso" +#: ../../mod/setup.php:403 +msgid "PHP register_argc_argv" +msgstr "PHP register_argc_argv" -#: ../../mod/settings.php:890 -msgid "Anybody in your address book" -msgstr "Chiunque tra i miei contatti" +#: ../../mod/setup.php:424 +msgid "" +"Error: the \"openssl_pkey_new\" function on this system is not able to " +"generate encryption keys" +msgstr "Errore: la funzione \"openssl_pkey_new\" su questo sistema non è in grado di generare le chiavi di criptazione" -#: ../../mod/settings.php:891 -msgid "Anybody on this website" -msgstr "Chiunque su questo sito" +#: ../../mod/setup.php:425 +msgid "" +"If running under Windows, please see " +"\"http://www.php.net/manual/en/openssl.installation.php\"." +msgstr "Se stai usando un server windows, guarda \"http://www.php.net/manual/en/openssl.installation.php\"." -#: ../../mod/settings.php:892 -msgid "Anybody in this network" -msgstr "Chiunque su Red" +#: ../../mod/setup.php:427 +msgid "Generate encryption keys" +msgstr "Genera chiavi di criptazione" -#: ../../mod/settings.php:893 -msgid "Anybody on the internet" -msgstr "Chiunque su internet" +#: ../../mod/setup.php:434 +msgid "libCurl PHP module" +msgstr "modulo PHP libCurl" -#: ../../mod/settings.php:967 -msgid "Publish your default profile in the network directory" -msgstr "Pubblica il mio profilo predefinito sull'elenco pubblico dei canali" +#: ../../mod/setup.php:435 +msgid "GD graphics PHP module" +msgstr "modulo PHP GD graphics" -#: ../../mod/settings.php:972 -msgid "Allow us to suggest you as a potential friend to new members?" -msgstr "Vuoi essere suggerito come potenziale amico ai nuovi membri?" +#: ../../mod/setup.php:436 +msgid "OpenSSL PHP module" +msgstr "modulo PHP OpenSSL" -#: ../../mod/settings.php:976 ../../mod/profile_photo.php:288 -msgid "or" -msgstr "o" +#: ../../mod/setup.php:437 +msgid "mysqli PHP module" +msgstr "modulo PHP mysqli" -#: ../../mod/settings.php:981 -msgid "Your channel address is" -msgstr "L'indirizzo del tuo canale è" +#: ../../mod/setup.php:438 +msgid "mb_string PHP module" +msgstr "modulo PHP mb_string" -#: ../../mod/settings.php:1003 -msgid "Channel Settings" -msgstr "Impostazioni del canale" +#: ../../mod/setup.php:439 +msgid "mcrypt PHP module" +msgstr "modulo PHP mcrypt" -#: ../../mod/settings.php:1012 -msgid "Basic Settings" -msgstr "Impostazioni di base" +#: ../../mod/setup.php:444 ../../mod/setup.php:446 +msgid "Apache mod_rewrite module" +msgstr "modulo Apache mod_rewrite" -#: ../../mod/settings.php:1015 -msgid "Your Timezone:" -msgstr "Il tuo fuso orario:" +#: ../../mod/setup.php:444 +msgid "" +"Error: Apache webserver mod-rewrite module is required but not installed." +msgstr "Errore: il modulo mod-rewrite di Apache è richiesto ma non installato" -#: ../../mod/settings.php:1016 -msgid "Default Post Location:" -msgstr "Località predefinita:" +#: ../../mod/setup.php:450 ../../mod/setup.php:453 +msgid "proc_open" +msgstr "proc_open" -#: ../../mod/settings.php:1017 -msgid "Use Browser Location:" -msgstr "Usa la località rilevata dal browser:" +#: ../../mod/setup.php:450 +msgid "" +"Error: proc_open is required but is either not installed or has been " +"disabled in php.ini" +msgstr "Errore: proc_open è richiesto ma non è installato o è disabilitato in php.ini" -#: ../../mod/settings.php:1019 -msgid "Adult Content" -msgstr "Contenuto per adulti" +#: ../../mod/setup.php:458 +msgid "Error: libCURL PHP module required but not installed." +msgstr "Errore: il modulo libCURL di PHP è richiesto ma non installato." -#: ../../mod/settings.php:1019 -msgid "This channel publishes adult content." -msgstr "Questo canale pubblica contenuto per adulti." +#: ../../mod/setup.php:462 +msgid "" +"Error: GD graphics PHP module with JPEG support required but not installed." +msgstr "Errore: Il modulo GD graphics di PHP con supporto a JPEG è richiesto ma non installato." -#: ../../mod/settings.php:1021 -msgid "Security and Privacy Settings" -msgstr "Impostazioni di sicurezza e privacy" +#: ../../mod/setup.php:466 +msgid "Error: openssl PHP module required but not installed." +msgstr "Errore: il modulo openssl di PHP è richiesto ma non installato." -#: ../../mod/settings.php:1023 -msgid "Quick Privacy Settings:" -msgstr "Impostazioni veloci della privacy:" +#: ../../mod/setup.php:470 +msgid "Error: mysqli PHP module required but not installed." +msgstr "Errore: il modulo mysqli di PHP è richiesto ma non installato." -#: ../../mod/settings.php:1024 -msgid "Very Public - extremely permissive" -msgstr "Tutto pubblico - molto permissivo" +#: ../../mod/setup.php:474 +msgid "Error: mb_string PHP module required but not installed." +msgstr "Errore: il modulo PHP mb_string è richiesto ma non installato." -#: ../../mod/settings.php:1025 -msgid "Typical - default public, privacy when desired" -msgstr "Normale - tutto sarà pubblico tranne quel che vorrai tu" +#: ../../mod/setup.php:478 +msgid "Error: mcrypt PHP module required but not installed." +msgstr "Errore: il modulo PHP mcrypt è richiesto ma non installato." -#: ../../mod/settings.php:1026 -msgid "Private - default private, rarely open or public" -msgstr "Privato - i contenuti saranno privati ma, se vorrai, alcuni potrai renderli pubblici" +#: ../../mod/setup.php:494 +msgid "" +"The web installer needs to be able to create a file called \".htconfig.php\"" +" in the top folder of your web server and it is unable to do so." +msgstr "L'installazione web deve poter creare un file chiamato \".htconfig.php\" nella cartella principale del tuo web server ma non è in grado di farlo." -#: ../../mod/settings.php:1027 -msgid "Blocked - default blocked to/from everybody" -msgstr "Bloccato - non ci saranno interazioni con altri a meno che tu non voglia" +#: ../../mod/setup.php:495 +msgid "" +"This is most often a permission setting, as the web server may not be able " +"to write files in your folder - even if you can." +msgstr "Spesso ciò è dovuto ai permessi di accesso al disco: il web server potrebbe non aver diritto di scrivere il file nella cartella, anche se tu puoi." -#: ../../mod/settings.php:1030 -msgid "Maximum Friend Requests/Day:" -msgstr "Numero massimo giornaliero di richieste di amicizia:" +#: ../../mod/setup.php:496 +msgid "" +"At the end of this procedure, we will give you a text to save in a file " +"named .htconfig.php in your Red top folder." +msgstr "Alla fine di questa procedura ti sarà dato il testo da salvare in un file di nome .htconfig.php dentro la cartella principale di Red." -#: ../../mod/settings.php:1030 -msgid "May reduce spam activity" -msgstr "Serve e ridurre lo spam" +#: ../../mod/setup.php:497 +msgid "" +"You can alternatively skip this procedure and perform a manual installation." +" Please see the file \"install/INSTALL.txt\" for instructions." +msgstr "Puoi anche saltare questa procedura ed effettuare un'installazione manuale. Guarda il file 'install/INSTALL.txt' per le istruzioni." -#: ../../mod/settings.php:1031 -msgid "Default Post Permissions" -msgstr "Permessi predefiniti per gli articoli" +#: ../../mod/setup.php:500 +msgid ".htconfig.php is writable" +msgstr ".htconfig.php è scrivibile" -#: ../../mod/settings.php:1032 ../../mod/mitem.php:137 ../../mod/mitem.php:180 -msgid "(click to open/close)" -msgstr "(clicca per aprire/chiudere)" +#: ../../mod/setup.php:510 +msgid "" +"Red uses the Smarty3 template engine to render its web views. Smarty3 " +"compiles templates to PHP to speed up rendering." +msgstr "Red usa il sistema Smarty3 per costruire i suoi template grafici. Smarty3 è molto veloce perché compila i template delle pagine direttamente in PHP." -#: ../../mod/settings.php:1043 -msgid "Maximum private messages per day from unknown people:" -msgstr "Numero massimo giornaliero di messaggi privati da utenti sconosciuti:" +#: ../../mod/setup.php:511 +msgid "" +"In order to store these compiled templates, the web server needs to have " +"write access to the directory view/tpl/smarty3/ under the Red top level " +"folder." +msgstr "Per poter memorizzare i template compilati, il web server deve avere accesso in scrittura alla cartella view/tpl/smarty3/ sotto la cartella di installazione di Red." -#: ../../mod/settings.php:1043 -msgid "Useful to reduce spamming" -msgstr "Serve e ridurre lo spam" +#: ../../mod/setup.php:512 ../../mod/setup.php:530 +msgid "" +"Please ensure that the user that your web server runs as (e.g. www-data) has" +" write access to this folder." +msgstr "Assicurati che il tuo web server sia in esecuzione come un utente che ha diritto di scrittura su quella cartella (ad esempio www-data)." -#: ../../mod/settings.php:1046 -msgid "Notification Settings" -msgstr "Impostazioni di notifica" +#: ../../mod/setup.php:513 +msgid "" +"Note: as a security measure, you should give the web server write access to " +"view/tpl/smarty3/ only--not the template files (.tpl) that it contains." +msgstr "Nota bene: come precauzione, dovresti dare i diritti di scrittura solamente per view/tpl/smarty3/ non per tutti i file di template (.tpl) che contiene." -#: ../../mod/settings.php:1047 -msgid "By default post a status message when:" -msgstr "Pubblica un messaggio di stato quando:" +#: ../../mod/setup.php:516 +msgid "view/tpl/smarty3 is writable" +msgstr "view/tpl/smarty3 è scrivibile" -#: ../../mod/settings.php:1048 -msgid "accepting a friend request" -msgstr "accetto una nuova amicizia" +#: ../../mod/setup.php:529 +msgid "" +"Red uses the store directory to save uploaded files. The web server needs to" +" have write access to the store directory under the Red top level folder" +msgstr "Red usa un archivio per salvare i file caricati. Il server deve avere i diritti di scrittura sulla cartella dell'archivio che si trova dentro la cartella principale di Red" -#: ../../mod/settings.php:1049 -msgid "joining a forum/community" -msgstr "entro a far parte di un forum" +#: ../../mod/setup.php:533 +msgid "store is writable" +msgstr "l'archivio è scrivibile" -#: ../../mod/settings.php:1050 -msgid "making an interesting profile change" -msgstr "faccio un cambiamento interessante al mio profilo" +#: ../../mod/setup.php:548 +msgid "SSL certificate validation" +msgstr "Validazione del certificato SSL" -#: ../../mod/settings.php:1051 -msgid "Send a notification email when:" -msgstr "Invia una email di notifica quando:" +#: ../../mod/setup.php:548 +msgid "" +"SSL certificate cannot be validated. Fix certificate or disable https access" +" to this site." +msgstr "Il certificato SSL non può essere validato. Correggi l'errore o disabilita l'accesso https al sito." -#: ../../mod/settings.php:1052 -msgid "You receive an introduction" -msgstr "Ricevi una richiesta di amicizia" +#: ../../mod/setup.php:555 +msgid "" +"Url rewrite in .htaccess is not working. Check your server configuration." +msgstr "In .htaccess la funzionalità url rewrite non funziona. Controlla la configurazione del server." -#: ../../mod/settings.php:1053 -msgid "Your introductions are confirmed" -msgstr "Le tue richieste di amicizia sono state accettate" +#: ../../mod/setup.php:557 +msgid "Url rewrite is working" +msgstr "Url rewrite funziona correttamente" -#: ../../mod/settings.php:1054 -msgid "Someone writes on your profile wall" -msgstr "Qualcuno scrive sulla tua bacheca" +#: ../../mod/setup.php:567 +msgid "" +"The database configuration file \".htconfig.php\" could not be written. " +"Please use the enclosed text to create a configuration file in your web " +"server root." +msgstr "Il file di configurazione del database \".htconfig.php\" non puo' essere scritto. Usa il testo qui di seguito per creare questo file di configurazione nella cartella principale del tuo sito." -#: ../../mod/settings.php:1055 -msgid "Someone writes a followup comment" -msgstr "Qualcuno scrive un commento a un tuo articolo" +#: ../../mod/setup.php:591 +msgid "Errors encountered creating database tables." +msgstr "La creazione delle tabelle del database ha generato errori." -#: ../../mod/settings.php:1056 -msgid "You receive a private message" -msgstr "Ricevi un messaggio privato" +#: ../../mod/setup.php:604 +msgid "

    What next

    " +msgstr "

    I prossimi passi

    " -#: ../../mod/settings.php:1057 -msgid "You receive a friend suggestion" -msgstr "Ti viene suggerito un amico" +#: ../../mod/setup.php:605 +msgid "" +"IMPORTANT: You will need to [manually] setup a scheduled task for the " +"poller." +msgstr "IMPORTANTE: Devi creare [manualmente] la pianificazione del polling." -#: ../../mod/settings.php:1058 -msgid "You are tagged in a post" -msgstr "Sei taggato in un articolo" +#: ../../mod/rpost.php:84 ../../mod/editpost.php:42 +msgid "Edit post" +msgstr "Modifica articolo" -#: ../../mod/settings.php:1059 -msgid "You are poked/prodded/etc. in a post" -msgstr "Ricevi un poke in un articolo" +#: ../../mod/subthread.php:105 +#, php-format +msgid "%1$s is following %2$s's %3$s" +msgstr "%1$s sta seguendo %3$s di %2$s" -#: ../../mod/settings.php:1062 -msgid "Advanced Account/Page Type Settings" -msgstr "Impostazioni avanzate" +#: ../../mod/update_network.php:23 ../../mod/update_channel.php:43 +#: ../../mod/update_search.php:46 ../../mod/update_display.php:25 +#: ../../mod/update_community.php:18 +msgid "[Embedded content - reload page to view]" +msgstr "[Contenuto incorporato - ricarica la pagina per visualizzarlo correttamente]" -#: ../../mod/settings.php:1063 -msgid "Change the behaviour of this account for special situations" -msgstr "Cambia il funzionamento di questo account in situazioni particolari" +#: ../../mod/chanview.php:93 +msgid "toggle full screen mode" +msgstr "attiva/disattiva schermo intero" + +#: ../../mod/tagger.php:98 +#, php-format +msgid "%1$s tagged %2$s's %3$s with %4$s" +msgstr "%1$s ha taggato %3$s di %2$s con %4$s" -#: ../../mod/viewconnections.php:17 ../../mod/search.php:80 -#: ../../mod/photos.php:576 ../../mod/display.php:9 ../../mod/community.php:18 -#: ../../mod/directory.php:33 +#: ../../mod/viewconnections.php:17 ../../mod/search.php:13 +#: ../../mod/photos.php:442 ../../mod/directory.php:15 ../../mod/display.php:9 +#: ../../mod/community.php:18 ../../mod/dirprofile.php:9 msgid "Public access denied." msgstr "Accesso pubblico negato." @@ -4149,46 +4127,46 @@ msgstr "Seleziona un tag da rimuovere: " msgid "Remove" msgstr "Rimuovi" -#: ../../mod/connect.php:59 ../../mod/connect.php:107 +#: ../../mod/connect.php:55 ../../mod/connect.php:103 msgid "Continue" msgstr "Continua" -#: ../../mod/connect.php:88 +#: ../../mod/connect.php:84 msgid "Premium Channel Setup" msgstr "Canale premium - installazione" -#: ../../mod/connect.php:90 +#: ../../mod/connect.php:86 msgid "Enable premium channel connection restrictions" msgstr "Abilita le restrizioni del canale premium" -#: ../../mod/connect.php:91 +#: ../../mod/connect.php:87 msgid "" "Please enter your restrictions or conditions, such as paypal receipt, usage " "guidelines, etc." msgstr "Scrivi le condizioni d'uso e le restrizioni di questo canale, come per esempio le linee guida o il sistema di pagamento ecc." -#: ../../mod/connect.php:93 ../../mod/connect.php:113 +#: ../../mod/connect.php:89 ../../mod/connect.php:109 msgid "" "This channel may require additional steps or acknowledgement of the " "following conditions prior to connecting:" msgstr "Prima di connetterti a questo canale è necessario che tu accetti le seguenti condizioni:" -#: ../../mod/connect.php:94 +#: ../../mod/connect.php:90 msgid "" "Potential connections will then see the following text before proceeding:" msgstr "Il testo seguente comparirà a chi vorrà connettersi:" -#: ../../mod/connect.php:95 ../../mod/connect.php:116 +#: ../../mod/connect.php:91 ../../mod/connect.php:112 msgid "" "By continuing, I certify that I have complied with any instructions provided" " on this page." msgstr "Continuando dichiaro di aver seguito tutte le indicazioni e le istruzioni fornite in questa pagina." -#: ../../mod/connect.php:104 +#: ../../mod/connect.php:100 msgid "(No specific instructions have been provided by the channel owner.)" msgstr "(Il gestore del canale non ha fornito istruzioni specifiche)" -#: ../../mod/connect.php:112 +#: ../../mod/connect.php:108 msgid "Restricted or Premium Channel" msgstr "Canale premium - con restrizioni" @@ -4227,58 +4205,62 @@ msgstr "Aggiungi" msgid "No entries." msgstr "Nessun risultato." -#: ../../mod/sources.php:27 +#: ../../mod/sources.php:28 +msgid "Failed to create source. No channel selected." +msgstr "Impossibile creare la sorgente. Nessun canale selezionato." + +#: ../../mod/sources.php:41 msgid "Source created." msgstr "Sorgente creata." -#: ../../mod/sources.php:39 +#: ../../mod/sources.php:53 msgid "Source updated." msgstr "Sorgente aggiornata." -#: ../../mod/sources.php:68 +#: ../../mod/sources.php:82 msgid "Manage remote sources of content for your channel." msgstr "Gestisci le sorgenti dei contenuti del tuo canale." -#: ../../mod/sources.php:69 ../../mod/sources.php:79 +#: ../../mod/sources.php:83 ../../mod/sources.php:93 msgid "New Source" msgstr "Nuova sorgente" -#: ../../mod/sources.php:80 ../../mod/sources.php:106 +#: ../../mod/sources.php:94 ../../mod/sources.php:126 msgid "" "Import all or selected content from the following channel into this channel " "and distribute it according to your channel settings." msgstr "Importa nel tuo canale tutti o una parte dei contenuti dal canale seguente." -#: ../../mod/sources.php:81 ../../mod/sources.php:107 +#: ../../mod/sources.php:95 ../../mod/sources.php:127 msgid "Only import content with these words (one per line)" msgstr "Importa solo i contenuti che hanno queste parole (una per riga)" -#: ../../mod/sources.php:81 ../../mod/sources.php:107 +#: ../../mod/sources.php:95 ../../mod/sources.php:127 msgid "Leave blank to import all public content" msgstr "Lascia vuoto per importare tutti i contenuti pubblici" -#: ../../mod/sources.php:82 ../../mod/sources.php:109 +#: ../../mod/sources.php:96 ../../mod/sources.php:130 #: ../../mod/new_channel.php:110 msgid "Channel Name" msgstr "Nome del canale" -#: ../../mod/sources.php:96 ../../mod/sources.php:122 +#: ../../mod/sources.php:116 ../../mod/sources.php:143 msgid "Source not found." msgstr "Sorgente non trovata." -#: ../../mod/sources.php:103 +#: ../../mod/sources.php:123 msgid "Edit Source" msgstr "Modifica la sorgente" -#: ../../mod/sources.php:104 +#: ../../mod/sources.php:124 msgid "Delete Source" msgstr "Elimina la sorgente" -#: ../../mod/sources.php:130 +#: ../../mod/sources.php:151 msgid "Source removed" msgstr "Sorgente eliminata" -#: ../../mod/sources.php:132 +#: ../../mod/sources.php:153 msgid "Unable to remove source." msgstr "Impossibile rimuovere la sorgente." @@ -4290,19 +4272,19 @@ msgstr "Le impostazioni del tema sono state aggiornate." msgid "Site" msgstr "Sito" -#: ../../mod/admin.php:88 ../../mod/admin.php:685 ../../mod/admin.php:697 +#: ../../mod/admin.php:88 ../../mod/admin.php:687 ../../mod/admin.php:699 msgid "Users" msgstr "Utenti" -#: ../../mod/admin.php:89 ../../mod/admin.php:783 ../../mod/admin.php:825 +#: ../../mod/admin.php:89 ../../mod/admin.php:785 ../../mod/admin.php:827 msgid "Plugins" msgstr "Plugin" -#: ../../mod/admin.php:90 ../../mod/admin.php:988 ../../mod/admin.php:1024 +#: ../../mod/admin.php:90 ../../mod/admin.php:990 ../../mod/admin.php:1026 msgid "Themes" msgstr "Temi" -#: ../../mod/admin.php:91 ../../mod/admin.php:478 +#: ../../mod/admin.php:91 ../../mod/admin.php:479 msgid "Server" msgstr "Server" @@ -4310,7 +4292,7 @@ msgstr "Server" msgid "DB updates" msgstr "Aggiornamenti al DB" -#: ../../mod/admin.php:106 ../../mod/admin.php:113 ../../mod/admin.php:1111 +#: ../../mod/admin.php:106 ../../mod/admin.php:113 ../../mod/admin.php:1113 msgid "Logs" msgstr "Log" @@ -4326,9 +4308,9 @@ msgstr "Registrazioni in attesa" msgid "Message queues" msgstr "Messaggi in attesa di recapito" -#: ../../mod/admin.php:193 ../../mod/admin.php:418 ../../mod/admin.php:477 -#: ../../mod/admin.php:684 ../../mod/admin.php:782 ../../mod/admin.php:824 -#: ../../mod/admin.php:987 ../../mod/admin.php:1023 ../../mod/admin.php:1110 +#: ../../mod/admin.php:193 ../../mod/admin.php:418 ../../mod/admin.php:478 +#: ../../mod/admin.php:686 ../../mod/admin.php:784 ../../mod/admin.php:826 +#: ../../mod/admin.php:989 ../../mod/admin.php:1025 ../../mod/admin.php:1112 msgid "Administration" msgstr "Amministrazione" @@ -4340,7 +4322,7 @@ msgstr "Riepilogo" msgid "Registered users" msgstr "Utenti registrati" -#: ../../mod/admin.php:198 ../../mod/admin.php:481 +#: ../../mod/admin.php:198 ../../mod/admin.php:482 msgid "Pending registrations" msgstr "Registrazioni da approvare" @@ -4348,7 +4330,7 @@ msgstr "Registrazioni da approvare" msgid "Version" msgstr "Versione" -#: ../../mod/admin.php:201 ../../mod/admin.php:482 +#: ../../mod/admin.php:201 ../../mod/admin.php:483 msgid "Active plugins" msgstr "Plugin attivi" @@ -4356,6 +4338,10 @@ msgstr "Plugin attivi" msgid "Site settings updated." msgstr "Impostazioni del sito aggiornate." +#: ../../mod/admin.php:371 ../../mod/settings.php:700 +msgid "No special theme for mobile devices" +msgstr "Nessun tema per dispositivi mobili" + #: ../../mod/admin.php:373 msgid "No special theme for accessibility" msgstr "Nessun tema speciale per l'accessibilità" @@ -4388,7 +4374,7 @@ msgstr "Servizio gratuito" msgid "Tiered Access" msgstr "Accesso multilivello" -#: ../../mod/admin.php:421 ../../mod/register.php:180 +#: ../../mod/admin.php:421 ../../mod/register.php:189 msgid "Registration" msgstr "Registrazione" @@ -4584,229 +4570,219 @@ msgid "" "default 50." msgstr "Carico di sistema massimo perché i processi di recapito e polling siano ritardati - il valore predefinito è 50." -#: ../../mod/admin.php:469 +#: ../../mod/admin.php:470 msgid "No server found" msgstr "Server non trovato" -#: ../../mod/admin.php:476 ../../mod/admin.php:698 +#: ../../mod/admin.php:477 ../../mod/admin.php:700 msgid "ID" msgstr "ID" -#: ../../mod/admin.php:476 +#: ../../mod/admin.php:477 msgid "for channel" msgstr "per canale" -#: ../../mod/admin.php:476 +#: ../../mod/admin.php:477 msgid "on server" msgstr "sul server" -#: ../../mod/admin.php:476 +#: ../../mod/admin.php:477 msgid "Status" msgstr "Stato" -#: ../../mod/admin.php:496 +#: ../../mod/admin.php:498 msgid "Update has been marked successful" msgstr "L'aggiornamento è stato marcato come eseguito." -#: ../../mod/admin.php:506 +#: ../../mod/admin.php:508 #, php-format msgid "Executing %s failed. Check system logs." msgstr "Fallita l'esecuzione di %s. Maggiori informazioni sui log di sistema." -#: ../../mod/admin.php:509 +#: ../../mod/admin.php:511 #, php-format msgid "Update %s was successfully applied." msgstr "L'aggiornamento %s è terminato correttamente." -#: ../../mod/admin.php:513 +#: ../../mod/admin.php:515 #, php-format msgid "Update %s did not return a status. Unknown if it succeeded." msgstr "L'aggiornamento %s non ha dato risposta. Impossibile determinare se è terminato correttamente." -#: ../../mod/admin.php:516 +#: ../../mod/admin.php:518 #, php-format msgid "Update function %s could not be found." msgstr "Impossibile trovare la funzione di aggiornamento %s" -#: ../../mod/admin.php:531 +#: ../../mod/admin.php:533 msgid "No failed updates." msgstr "Nessun aggiornamento fallito." -#: ../../mod/admin.php:535 +#: ../../mod/admin.php:537 msgid "Failed Updates" msgstr "Aggiornamenti falliti." -#: ../../mod/admin.php:537 +#: ../../mod/admin.php:539 msgid "Mark success (if update was manually applied)" msgstr "Marca come eseguito (se applicato manualmente)." -#: ../../mod/admin.php:538 +#: ../../mod/admin.php:540 msgid "Attempt to execute this update step automatically" msgstr "Tenta di eseguire in automatico questo passaggio dell'aggiornamento." -#: ../../mod/admin.php:564 +#: ../../mod/admin.php:566 #, php-format msgid "%s user blocked/unblocked" msgid_plural "%s users blocked/unblocked" msgstr[0] "%s utente bloccato/sbloccato" msgstr[1] "%s utenti bloccati/sbloccati" -#: ../../mod/admin.php:571 +#: ../../mod/admin.php:573 #, php-format msgid "%s user deleted" msgid_plural "%s users deleted" msgstr[0] "%s utente cancellato" msgstr[1] "%s utenti cancellati" -#: ../../mod/admin.php:602 +#: ../../mod/admin.php:604 msgid "Account not found" msgstr "Account non trovato" -#: ../../mod/admin.php:613 +#: ../../mod/admin.php:615 #, php-format msgid "User '%s' deleted" msgstr "Utente '%s' eliminato" -#: ../../mod/admin.php:622 +#: ../../mod/admin.php:624 #, php-format msgid "User '%s' unblocked" msgstr "Utente '%s' sbloccato" -#: ../../mod/admin.php:622 +#: ../../mod/admin.php:624 #, php-format msgid "User '%s' blocked" msgstr "Utente '%s' bloccato" -#: ../../mod/admin.php:687 +#: ../../mod/admin.php:689 msgid "select all" msgstr "seleziona tutti" -#: ../../mod/admin.php:688 +#: ../../mod/admin.php:690 msgid "User registrations waiting for confirm" msgstr "Richieste di registrazione in attesa di conferma" -#: ../../mod/admin.php:689 +#: ../../mod/admin.php:691 msgid "Request date" msgstr "Data richiesta" -#: ../../mod/admin.php:690 +#: ../../mod/admin.php:692 msgid "No registrations." msgstr "Nessuna registrazione." -#: ../../mod/admin.php:691 +#: ../../mod/admin.php:693 msgid "Approve" msgstr "Approva" -#: ../../mod/admin.php:692 +#: ../../mod/admin.php:694 msgid "Deny" msgstr "Nega" -#: ../../mod/admin.php:694 ../../mod/connections.php:352 -#: ../../mod/connections.php:494 -msgid "Block" -msgstr "Blocca" - -#: ../../mod/admin.php:695 ../../mod/connections.php:352 -#: ../../mod/connections.php:494 -msgid "Unblock" -msgstr "Sblocca" - -#: ../../mod/admin.php:698 +#: ../../mod/admin.php:700 msgid "Register date" msgstr "Data registrazione" -#: ../../mod/admin.php:698 +#: ../../mod/admin.php:700 msgid "Last login" msgstr "Ultimo accesso" -#: ../../mod/admin.php:698 +#: ../../mod/admin.php:700 msgid "Expires" msgstr "Scadenza" -#: ../../mod/admin.php:698 +#: ../../mod/admin.php:700 msgid "Service Class" msgstr "Service Class" -#: ../../mod/admin.php:700 +#: ../../mod/admin.php:702 msgid "" "Selected users will be deleted!\\n\\nEverything these users had posted on " "this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Gli utenti selezionati saranno eliminati!\\n\\nTutto quello che gli utenti hanno pubblicato su questo sito sarà permanentemente eliminato!\\n\\nConfermi?" -#: ../../mod/admin.php:701 +#: ../../mod/admin.php:703 msgid "" "The user {0} will be deleted!\\n\\nEverything this user has posted on this " "site will be permanently deleted!\\n\\nAre you sure?" msgstr "L'utente {0} sarà eliminato!\\n\\nTutto quello che ha pubblicato su questo sito sarà permanentemente eliminato!\\n\\nConfermi?" -#: ../../mod/admin.php:742 +#: ../../mod/admin.php:744 #, php-format msgid "Plugin %s disabled." msgstr "Plugin %s non attivo." -#: ../../mod/admin.php:746 +#: ../../mod/admin.php:748 #, php-format msgid "Plugin %s enabled." msgstr "Plugin %s attivo." -#: ../../mod/admin.php:756 ../../mod/admin.php:958 +#: ../../mod/admin.php:758 ../../mod/admin.php:960 msgid "Disable" msgstr "Disattiva" -#: ../../mod/admin.php:758 ../../mod/admin.php:960 +#: ../../mod/admin.php:760 ../../mod/admin.php:962 msgid "Enable" msgstr "Attiva" -#: ../../mod/admin.php:784 ../../mod/admin.php:989 +#: ../../mod/admin.php:786 ../../mod/admin.php:991 msgid "Toggle" msgstr "Attiva/disattiva" -#: ../../mod/admin.php:792 ../../mod/admin.php:999 +#: ../../mod/admin.php:794 ../../mod/admin.php:1001 msgid "Author: " msgstr "Autore:" -#: ../../mod/admin.php:793 ../../mod/admin.php:1000 +#: ../../mod/admin.php:795 ../../mod/admin.php:1002 msgid "Maintainer: " msgstr "Gestore:" -#: ../../mod/admin.php:922 +#: ../../mod/admin.php:924 msgid "No themes found." msgstr "Nessun tema trovato." -#: ../../mod/admin.php:981 +#: ../../mod/admin.php:983 msgid "Screenshot" msgstr "Istantanea dello schermo" -#: ../../mod/admin.php:1029 +#: ../../mod/admin.php:1031 msgid "[Experimental]" msgstr "[Sperimentale]" -#: ../../mod/admin.php:1030 +#: ../../mod/admin.php:1032 msgid "[Unsupported]" msgstr "[Non supportato]" -#: ../../mod/admin.php:1057 +#: ../../mod/admin.php:1059 msgid "Log settings updated." msgstr "Impostazioni di log aggiornate." -#: ../../mod/admin.php:1113 +#: ../../mod/admin.php:1115 msgid "Clear" msgstr "Pulisci" -#: ../../mod/admin.php:1119 +#: ../../mod/admin.php:1121 msgid "Debugging" msgstr "Debugging" -#: ../../mod/admin.php:1120 +#: ../../mod/admin.php:1122 msgid "Log file" msgstr "File di log" -#: ../../mod/admin.php:1120 +#: ../../mod/admin.php:1122 msgid "" "Must be writable by web server. Relative to your Red top-level directory." msgstr "Deve essere scrivibile dal web server. È relativa alla cartella dove è installato Red." -#: ../../mod/admin.php:1121 +#: ../../mod/admin.php:1123 msgid "Log level" msgstr "Livello di log" @@ -4831,298 +4807,283 @@ msgid "Unable to add menu element." msgstr "Impossibile aggiungere l'elemento al menù." #: ../../mod/mitem.php:78 ../../mod/xchan.php:25 ../../mod/menu.php:113 +#: ../../mod/dirprofile.php:177 msgid "Not found." msgstr "Non trovato." -#: ../../mod/mitem.php:99 +#: ../../mod/mitem.php:96 msgid "Manage Menu Elements" msgstr "Gestione elementi del menù" -#: ../../mod/mitem.php:102 +#: ../../mod/mitem.php:99 msgid "Edit menu" msgstr "Modifica il menù" -#: ../../mod/mitem.php:105 +#: ../../mod/mitem.php:102 msgid "Edit element" msgstr "Modifica l'elemento" -#: ../../mod/mitem.php:106 +#: ../../mod/mitem.php:103 msgid "Drop element" msgstr "Elimina l'elemento" -#: ../../mod/mitem.php:107 +#: ../../mod/mitem.php:104 msgid "New element" msgstr "Nuovo elemento" -#: ../../mod/mitem.php:108 +#: ../../mod/mitem.php:105 msgid "Edit this menu container" msgstr "Modifica il contenitore del menù" -#: ../../mod/mitem.php:109 +#: ../../mod/mitem.php:106 msgid "Add menu element" msgstr "Aggiungi un elemento al menù" -#: ../../mod/mitem.php:110 +#: ../../mod/mitem.php:107 msgid "Delete this menu item" msgstr "Elimina questo elemento del menù" -#: ../../mod/mitem.php:111 +#: ../../mod/mitem.php:108 msgid "Edit this menu item" msgstr "Modifica questo elemento del menù" -#: ../../mod/mitem.php:134 +#: ../../mod/mitem.php:131 msgid "New Menu Element" msgstr "Nuovo elemento del menù" -#: ../../mod/mitem.php:136 ../../mod/mitem.php:179 +#: ../../mod/mitem.php:133 ../../mod/mitem.php:176 msgid "Menu Item Permissions" msgstr "Permessi del menu" -#: ../../mod/mitem.php:139 ../../mod/mitem.php:183 +#: ../../mod/mitem.php:134 ../../mod/mitem.php:177 ../../mod/settings.php:930 +msgid "(click to open/close)" +msgstr "(clicca per aprire/chiudere)" + +#: ../../mod/mitem.php:136 ../../mod/mitem.php:180 msgid "Link text" msgstr "Testo del link" -#: ../../mod/mitem.php:140 ../../mod/mitem.php:184 +#: ../../mod/mitem.php:137 ../../mod/mitem.php:181 msgid "URL of link" msgstr "Indirizzo del link" -#: ../../mod/mitem.php:141 ../../mod/mitem.php:185 +#: ../../mod/mitem.php:138 ../../mod/mitem.php:182 msgid "Use Red magic-auth if available" msgstr "Usa l'autenticazione magica di Red, se disponibile" -#: ../../mod/mitem.php:142 ../../mod/mitem.php:186 +#: ../../mod/mitem.php:139 ../../mod/mitem.php:183 msgid "Open link in new window" msgstr "Apri il link in una nuova finestra" -#: ../../mod/mitem.php:144 ../../mod/mitem.php:188 +#: ../../mod/mitem.php:141 ../../mod/mitem.php:185 msgid "Order in list" msgstr "Ordine dell'elenco" -#: ../../mod/mitem.php:144 ../../mod/mitem.php:188 +#: ../../mod/mitem.php:141 ../../mod/mitem.php:185 msgid "Higher numbers will sink to bottom of listing" msgstr "I numeri più alti andranno in fondo all'elenco" -#: ../../mod/mitem.php:145 ../../mod/menu.php:79 ../../mod/new_channel.php:117 +#: ../../mod/mitem.php:142 ../../mod/menu.php:79 ../../mod/new_channel.php:117 msgid "Create" msgstr "Crea" -#: ../../mod/mitem.php:157 +#: ../../mod/mitem.php:154 msgid "Menu item not found." msgstr "L'elemento del menù non è stato trovato." -#: ../../mod/mitem.php:166 +#: ../../mod/mitem.php:163 msgid "Menu item deleted." msgstr "L'elemento del menù è stato eliminato." -#: ../../mod/mitem.php:168 +#: ../../mod/mitem.php:165 msgid "Menu item could not be deleted." msgstr "L'elemento del menù non può essere eliminato." -#: ../../mod/mitem.php:177 +#: ../../mod/mitem.php:174 msgid "Edit Menu Element" msgstr "Modifica l'elemento del menù" -#: ../../mod/mitem.php:189 ../../mod/menu.php:107 +#: ../../mod/mitem.php:186 ../../mod/menu.php:107 msgid "Modify" msgstr "Modifica" -#: ../../mod/group.php:26 +#: ../../mod/group.php:20 msgid "Collection created." msgstr "L'insieme di canali è stato creato." -#: ../../mod/group.php:32 +#: ../../mod/group.php:26 msgid "Could not create collection." msgstr "Impossibile creare l'insieme." -#: ../../mod/group.php:60 +#: ../../mod/group.php:54 msgid "Collection updated." msgstr "Insieme aggiornato." -#: ../../mod/group.php:92 +#: ../../mod/group.php:86 msgid "Create a collection of channels." msgstr "Crea un insieme di canali." -#: ../../mod/group.php:93 ../../mod/group.php:189 +#: ../../mod/group.php:87 ../../mod/group.php:183 msgid "Collection Name: " msgstr "Nome del'insieme:" -#: ../../mod/group.php:95 ../../mod/group.php:192 +#: ../../mod/group.php:89 ../../mod/group.php:186 msgid "Members are visible to other channels" msgstr "I membri saranno visibili agli altri canali" -#: ../../mod/group.php:113 +#: ../../mod/group.php:107 msgid "Collection removed." msgstr "Insieme rimosso." -#: ../../mod/group.php:115 +#: ../../mod/group.php:109 msgid "Unable to remove collection." msgstr "Impossibile rimuovere l'insieme." -#: ../../mod/group.php:188 +#: ../../mod/group.php:182 msgid "Collection Editor" msgstr "Modifica l'insieme" -#: ../../mod/group.php:202 +#: ../../mod/group.php:196 msgid "Members" msgstr "Membri" -#: ../../mod/group.php:204 +#: ../../mod/group.php:198 msgid "All Connected Channels" msgstr "Tutti i canali connessi" -#: ../../mod/group.php:237 +#: ../../mod/group.php:231 msgid "Click on a channel to add or remove." msgstr "Clicca su un canale per aggiungerlo o rimuoverlo." -#: ../../mod/photos.php:83 +#: ../../mod/photos.php:77 msgid "Page owner information could not be retrieved." msgstr "Impossibile ottenere informazioni sul proprietario della pagina." -#: ../../mod/photos.php:103 +#: ../../mod/photos.php:97 msgid "Album not found." msgstr "Album non trovato." -#: ../../mod/photos.php:125 ../../mod/photos.php:791 +#: ../../mod/photos.php:119 ../../mod/photos.php:668 msgid "Delete Album" msgstr "Elimina album" -#: ../../mod/photos.php:165 ../../mod/photos.php:1052 +#: ../../mod/photos.php:159 ../../mod/photos.php:930 msgid "Delete Photo" msgstr "Elimina foto" -#: ../../mod/photos.php:510 -#, php-format -msgid "%1$s was tagged in %2$s by %3$s" -msgstr "%3$s ha taggato %1$s in %2$s" - -#: ../../mod/photos.php:510 -msgid "a photo" -msgstr "una foto" - -#: ../../mod/photos.php:586 +#: ../../mod/photos.php:452 msgid "No photos selected" msgstr "Nessuna foto selezionata" -#: ../../mod/photos.php:631 +#: ../../mod/photos.php:499 msgid "Access to this item is restricted." msgstr "Questo elemento non è visibile a tutti." -#: ../../mod/photos.php:696 +#: ../../mod/photos.php:573 #, php-format msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." msgstr "Hai usato %1$.2f Mb di %2$.2f Mb disponibili per le foto." -#: ../../mod/photos.php:699 +#: ../../mod/photos.php:576 #, php-format msgid "You have used %1$.2f Mbytes of photo storage." msgstr "Hai usato %1$.2f Mb di spazio per le foto." -#: ../../mod/photos.php:718 +#: ../../mod/photos.php:595 msgid "Upload Photos" msgstr "Carica foto" -#: ../../mod/photos.php:722 ../../mod/photos.php:786 +#: ../../mod/photos.php:599 ../../mod/photos.php:663 msgid "New album name: " msgstr "Nome del nuovo album: " -#: ../../mod/photos.php:723 +#: ../../mod/photos.php:600 msgid "or existing album name: " msgstr "o nome di un album esistente: " -#: ../../mod/photos.php:724 +#: ../../mod/photos.php:601 msgid "Do not show a status post for this upload" msgstr "Non creare un messaggio di stato per questo caricamento" -#: ../../mod/photos.php:726 ../../mod/photos.php:1047 +#: ../../mod/photos.php:603 ../../mod/photos.php:925 +#: ../../mod/filestorage.php:125 msgid "Permissions" msgstr "Permessi" -#: ../../mod/photos.php:775 ../../mod/photos.php:797 ../../mod/photos.php:1223 -#: ../../mod/photos.php:1238 +#: ../../mod/photos.php:652 ../../mod/photos.php:674 ../../mod/photos.php:1101 +#: ../../mod/photos.php:1116 msgid "Contact Photos" msgstr "Foto dei contatti" -#: ../../mod/photos.php:801 +#: ../../mod/photos.php:678 msgid "Edit Album" msgstr "Modifica album" -#: ../../mod/photos.php:807 +#: ../../mod/photos.php:684 msgid "Show Newest First" msgstr "Prima i più recenti" -#: ../../mod/photos.php:809 +#: ../../mod/photos.php:686 msgid "Show Oldest First" msgstr "Prima i più vecchi" -#: ../../mod/photos.php:853 ../../mod/photos.php:1270 +#: ../../mod/photos.php:729 ../../mod/photos.php:1148 msgid "View Photo" msgstr "Guarda la foto" -#: ../../mod/photos.php:897 +#: ../../mod/photos.php:775 msgid "Permission denied. Access to this item may be restricted." msgstr "Permesso negato. L'accesso a questo elemento può essere stato limitato." -#: ../../mod/photos.php:899 +#: ../../mod/photos.php:777 msgid "Photo not available" msgstr "Foto non disponibile" -#: ../../mod/photos.php:957 +#: ../../mod/photos.php:835 msgid "Use as profile photo" msgstr "Usa come foto del profilo" -#: ../../mod/photos.php:981 +#: ../../mod/photos.php:859 msgid "View Full Size" msgstr "Vedi nelle dimensioni originali" -#: ../../mod/photos.php:1035 +#: ../../mod/photos.php:913 msgid "Edit photo" msgstr "Modifica la foto" -#: ../../mod/photos.php:1037 +#: ../../mod/photos.php:915 msgid "Rotate CW (right)" msgstr "Ruota (senso orario)" -#: ../../mod/photos.php:1038 +#: ../../mod/photos.php:916 msgid "Rotate CCW (left)" msgstr "Ruota (senso antiorario)" -#: ../../mod/photos.php:1040 +#: ../../mod/photos.php:918 msgid "New album name" msgstr "Nuovo nome dell'album" -#: ../../mod/photos.php:1043 +#: ../../mod/photos.php:921 msgid "Caption" msgstr "Titolo" -#: ../../mod/photos.php:1045 +#: ../../mod/photos.php:923 msgid "Add a Tag" msgstr "Aggiungi tag" -#: ../../mod/photos.php:1049 +#: ../../mod/photos.php:927 msgid "" "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgstr "Per esempio: @luca, @Maria_Bianchi, @bob@example.com, #California, #camping" -#: ../../mod/photos.php:1276 +#: ../../mod/photos.php:1154 msgid "View Album" msgstr "Guarda l'album" -#: ../../mod/photos.php:1285 +#: ../../mod/photos.php:1163 msgid "Recent Photos" msgstr "Foto recenti" -#: ../../mod/ping.php:160 -msgid "sent you a private message" -msgstr "ti ha inviato un messaggio privato" - -#: ../../mod/ping.php:218 -msgid "added your channel" -msgstr "ha aggiunto il tuo canale" - -#: ../../mod/ping.php:262 -msgid "posted an event" -msgstr "ha creato un evento" - #: ../../mod/filer.php:35 msgid "- select -" msgstr "- scegli -" @@ -5203,100 +5164,112 @@ msgstr "Modifica menù" msgid "Add or remove entries to this menu" msgstr "Aggiungi o rimuovi elementi di questo menù" -#: ../../mod/home.php:76 +#: ../../mod/home.php:89 #, php-format msgid "Welcome to %s" msgstr "%s ti dà il benvenuto" -#: ../../mod/message.php:19 -msgid "Check Mail" -msgstr "Controlla i messaggi" +#: ../../mod/directory.php:143 ../../mod/profiles.php:561 +#: ../../mod/dirprofile.php:95 +msgid "Age: " +msgstr "Età:" -#: ../../mod/message.php:56 -msgid "Unable to lookup recipient." -msgstr "Impossibile associare un destinatario." +#: ../../mod/directory.php:146 ../../mod/dirprofile.php:98 +msgid "Gender: " +msgstr "Sesso:" -#: ../../mod/message.php:64 -msgid "Unable to communicate with requested channel." -msgstr "Impossibile comunicare con il canale richiesto." +#: ../../mod/directory.php:207 +msgid "Finding:" +msgstr "Ricerca:" -#: ../../mod/message.php:71 -msgid "Cannot verify requested channel." -msgstr "Impossibile verificare il canale richiesto." +#: ../../mod/directory.php:215 +msgid "next page" +msgstr "pagina succ." -#: ../../mod/message.php:97 -msgid "Selected channel has private message restrictions. Send failed." -msgstr "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito." +#: ../../mod/directory.php:215 +msgid "previous page" +msgstr "pagina prec." -#: ../../mod/message.php:223 -msgid "Messages" -msgstr "Messaggi" +#: ../../mod/directory.php:222 +msgid "No entries (some entries may be hidden)." +msgstr "Nessun risultato (qualcosa potrebbe essere nascosto)." -#: ../../mod/message.php:234 -msgid "Message deleted." -msgstr "Messaggio eliminato." +#: ../../mod/connections.php:189 ../../mod/connections.php:261 +msgid "Blocked" +msgstr "Bloccati" -#: ../../mod/message.php:241 -msgid "Conversation removed." -msgstr "Conversazione rimossa." +#: ../../mod/connections.php:194 ../../mod/connections.php:268 +msgid "Ignored" +msgstr "Ignorati" -#: ../../mod/message.php:258 -msgid "Message recalled." -msgstr "Messaggio revocato." +#: ../../mod/connections.php:199 ../../mod/connections.php:282 +msgid "Hidden" +msgstr "Nascosti" + +#: ../../mod/connections.php:204 ../../mod/connections.php:275 +msgid "Archived" +msgstr "Archiviati" + +#: ../../mod/connections.php:215 +msgid "All" +msgstr "Tutti" -#: ../../mod/message.php:316 -msgid "Send Private Message" -msgstr "Invia un messaggio privato" +#: ../../mod/connections.php:239 +msgid "Suggest new connections" +msgstr "Suggerisci nuovi contatti" -#: ../../mod/message.php:317 ../../mod/message.php:471 -msgid "To:" -msgstr "A:" +#: ../../mod/connections.php:245 +msgid "Show pending (new) connections" +msgstr "Richieste di contatto in attesa" -#: ../../mod/message.php:322 ../../mod/message.php:473 -msgid "Subject:" -msgstr "Oggetto:" +#: ../../mod/connections.php:248 ../../mod/profperm.php:134 +msgid "All Connections" +msgstr "Tutti i contatti" -#: ../../mod/message.php:359 -msgid "No messages." -msgstr "Nessun messaggio." +#: ../../mod/connections.php:251 +msgid "Show all connections" +msgstr "Mostra tutti i contatti" -#: ../../mod/message.php:375 ../../mod/message.php:440 -msgid "Delete message" -msgstr "Elimina il messaggio" +#: ../../mod/connections.php:254 +msgid "Unblocked" +msgstr "Non bloccati" -#: ../../mod/message.php:377 -msgid "D, d M Y - g:i A" -msgstr "D d M Y - G:i" +#: ../../mod/connections.php:257 +msgid "Only show unblocked connections" +msgstr "Mostra solo i contatti non bloccati" -#: ../../mod/message.php:396 -msgid "Message not found." -msgstr "Messaggio non trovato." +#: ../../mod/connections.php:264 +msgid "Only show blocked connections" +msgstr "Mostra solo i contatti bloccati" -#: ../../mod/message.php:441 -msgid "Recall message" -msgstr "Revoca il messaggio" +#: ../../mod/connections.php:271 +msgid "Only show ignored connections" +msgstr "Mostra solo i contatti ignorati" -#: ../../mod/message.php:443 -msgid "Message has been recalled." -msgstr "Il messaggio è stato revocato." +#: ../../mod/connections.php:278 +msgid "Only show archived connections" +msgstr "Mostra solo i contatti archiviati" -#: ../../mod/message.php:460 -msgid "Private Conversation" -msgstr "Conversazione privata" +#: ../../mod/connections.php:285 +msgid "Only show hidden connections" +msgstr "Mostra solo i contatti nascosti" -#: ../../mod/message.php:464 -msgid "Delete conversation" -msgstr "Elimina la conversazione" +#: ../../mod/connections.php:329 +#, php-format +msgid "%1$s [%2$s]" +msgstr "%1$s [%2$s]" -#: ../../mod/message.php:466 -msgid "" -"No secure communications available. You may be able to " -"respond from the sender's profile page." -msgstr "Non è disponibile alcun sistema per comunicare in modo sicuro. Puoi verificare se eventualmente è possibile rispondere dalla pagina del profilo del mittente." +#: ../../mod/connections.php:330 +msgid "Edit contact" +msgstr "Modifica il contatto" -#: ../../mod/message.php:470 -msgid "Send Reply" -msgstr "Invia la risposta" +#: ../../mod/connections.php:353 +msgid "Search your connections" +msgstr "Cerca tra i contatti" + +#: ../../mod/connections.php:354 +msgid "Finding: " +msgstr "Ricerca: " #: ../../mod/layouts.php:52 msgid "Layout Help" @@ -5310,11 +5283,11 @@ msgstr "La guida per questa funzionalità" msgid "Layout Name" msgstr "Nome layout" -#: ../../mod/help.php:41 +#: ../../mod/help.php:43 ../../mod/help.php:49 ../../mod/help.php:55 msgid "Help:" msgstr "Guida:" -#: ../../mod/help.php:53 ../../index.php:226 +#: ../../mod/help.php:68 ../../index.php:224 msgid "Not Found" msgstr "Non disponibile" @@ -5354,13 +5327,17 @@ msgstr "Connessione:" msgid "Invalid connection." msgstr "Connessione non valida." -#: ../../mod/post.php:222 +#: ../../mod/follow.php:25 +msgid "Channel added." +msgstr "Canale aggiunto." + +#: ../../mod/post.php:226 msgid "" "Remote authentication blocked. You are logged into this site locally. Please" " logout and retry." msgstr "L'autenticazione remota non è disponibile. Hai accesso solamente a questo sito. Puoi provare ad uscire per tentare di nuovo." -#: ../../mod/post.php:251 +#: ../../mod/post.php:256 #, php-format msgid "Welcome %s. Remote authentication successful." msgstr "Ciao %s. La tua autenticazione da remoto è avvenuta con successo." @@ -5377,12 +5354,12 @@ msgstr "Le informazioni remote sulla privacy non sono disponibili." msgid "Visible to:" msgstr "Visibile a:" -#: ../../mod/magic.php:63 +#: ../../mod/magic.php:70 msgid "Hub not found." msgstr "Server non trovato." #: ../../mod/profiles.php:18 ../../mod/profiles.php:138 -#: ../../mod/profiles.php:168 ../../mod/profiles.php:475 +#: ../../mod/profiles.php:168 ../../mod/profiles.php:463 msgid "Profile not found." msgstr "Profilo non trovato." @@ -5406,225 +5383,229 @@ msgstr "Impossibile duplicare il profilo." msgid "Profile Name is required." msgstr "Il nome del profilo è obbligatorio ." -#: ../../mod/profiles.php:306 +#: ../../mod/profiles.php:294 msgid "Marital Status" msgstr "Stato sentimentale" -#: ../../mod/profiles.php:310 +#: ../../mod/profiles.php:298 msgid "Romantic Partner" msgstr "Partner affettivo" -#: ../../mod/profiles.php:314 +#: ../../mod/profiles.php:302 msgid "Likes" msgstr "Cosa gli piace" -#: ../../mod/profiles.php:318 +#: ../../mod/profiles.php:306 msgid "Dislikes" msgstr "Cosa non gli piace" -#: ../../mod/profiles.php:322 +#: ../../mod/profiles.php:310 msgid "Work/Employment" msgstr "Lavoro/impiego" -#: ../../mod/profiles.php:325 +#: ../../mod/profiles.php:313 msgid "Religion" msgstr "Religione" -#: ../../mod/profiles.php:329 +#: ../../mod/profiles.php:317 msgid "Political Views" msgstr "Orientamento politico" -#: ../../mod/profiles.php:333 +#: ../../mod/profiles.php:321 msgid "Gender" msgstr "Sesso" -#: ../../mod/profiles.php:337 +#: ../../mod/profiles.php:325 msgid "Sexual Preference" msgstr "Preferenze sessuali" -#: ../../mod/profiles.php:341 +#: ../../mod/profiles.php:329 msgid "Homepage" msgstr "Home page" -#: ../../mod/profiles.php:345 +#: ../../mod/profiles.php:333 msgid "Interests" msgstr "Interessi" -#: ../../mod/profiles.php:349 +#: ../../mod/profiles.php:337 msgid "Address" msgstr "Indirizzo" -#: ../../mod/profiles.php:356 ../../mod/pubsites.php:31 +#: ../../mod/profiles.php:344 ../../mod/pubsites.php:31 msgid "Location" msgstr "Luogo attuale" -#: ../../mod/profiles.php:439 +#: ../../mod/profiles.php:427 msgid "Profile updated." msgstr "Profilo aggiornato." -#: ../../mod/profiles.php:494 +#: ../../mod/profiles.php:482 msgid "Hide your contact/friend list from viewers of this profile?" msgstr "Nascondi la tua lista di contatti/amici ai visitatori di questo profilo?" -#: ../../mod/profiles.php:517 +#: ../../mod/profiles.php:505 msgid "Edit Profile Details" msgstr "Modifica i dettagli del profilo" -#: ../../mod/profiles.php:519 +#: ../../mod/profiles.php:507 msgid "View this profile" msgstr "Guarda questo profilo" -#: ../../mod/profiles.php:520 +#: ../../mod/profiles.php:508 msgid "Change Profile Photo" msgstr "Cambia la foto del profilo" -#: ../../mod/profiles.php:521 +#: ../../mod/profiles.php:509 msgid "Create a new profile using these settings" msgstr "Crea un nuovo profilo usando queste impostazioni" -#: ../../mod/profiles.php:522 +#: ../../mod/profiles.php:510 msgid "Clone this profile" msgstr "Clona questo profilo" -#: ../../mod/profiles.php:523 +#: ../../mod/profiles.php:511 msgid "Delete this profile" msgstr "Elimina questo profilo" -#: ../../mod/profiles.php:524 +#: ../../mod/profiles.php:512 msgid "Profile Name:" msgstr "Nome del profilo:" -#: ../../mod/profiles.php:525 +#: ../../mod/profiles.php:513 msgid "Your Full Name:" msgstr "Il tuo nome completo:" -#: ../../mod/profiles.php:526 +#: ../../mod/profiles.php:514 msgid "Title/Description:" msgstr "Titolo/descrizione:" -#: ../../mod/profiles.php:527 +#: ../../mod/profiles.php:515 msgid "Your Gender:" msgstr "Sesso:" -#: ../../mod/profiles.php:528 +#: ../../mod/profiles.php:516 #, php-format msgid "Birthday (%s):" msgstr "Compleanno (%s):" -#: ../../mod/profiles.php:529 +#: ../../mod/profiles.php:517 msgid "Street Address:" msgstr "Indirizzo (via/piazza):" -#: ../../mod/profiles.php:530 +#: ../../mod/profiles.php:518 msgid "Locality/City:" msgstr "Località:" -#: ../../mod/profiles.php:531 +#: ../../mod/profiles.php:519 msgid "Postal/Zip Code:" msgstr "CAP:" -#: ../../mod/profiles.php:532 +#: ../../mod/profiles.php:520 msgid "Country:" msgstr "Nazione:" -#: ../../mod/profiles.php:533 +#: ../../mod/profiles.php:521 msgid "Region/State:" msgstr "Regione/stato:" -#: ../../mod/profiles.php:534 +#: ../../mod/profiles.php:522 msgid " Marital Status:" msgstr " Stato sentimentale:" -#: ../../mod/profiles.php:535 +#: ../../mod/profiles.php:523 msgid "Who: (if applicable)" msgstr "Con chi: (se possibile)" -#: ../../mod/profiles.php:536 +#: ../../mod/profiles.php:524 msgid "Examples: cathy123, Cathy Williams, cathy@example.com" msgstr "Per esempio: cathy123, Cathy Williams, cathy@example.com" -#: ../../mod/profiles.php:537 +#: ../../mod/profiles.php:525 msgid "Since [date]:" msgstr "dal [data]:" -#: ../../mod/profiles.php:539 +#: ../../mod/profiles.php:527 msgid "Homepage URL:" msgstr "Indirizzo home page:" -#: ../../mod/profiles.php:542 +#: ../../mod/profiles.php:530 msgid "Religious Views:" msgstr "Orientamento religioso:" -#: ../../mod/profiles.php:543 +#: ../../mod/profiles.php:531 msgid "Keywords:" msgstr "Parole chiave, tag:" -#: ../../mod/profiles.php:546 +#: ../../mod/profiles.php:534 msgid "Example: fishing photography software" msgstr "Per esempio: pesca fotografia programmazione" -#: ../../mod/profiles.php:547 +#: ../../mod/profiles.php:535 msgid "Used in directory listings" msgstr "Visibile nell'elenco pubblico di canali" -#: ../../mod/profiles.php:548 +#: ../../mod/profiles.php:536 msgid "Tell us about yourself..." msgstr "Raccontaci di te..." -#: ../../mod/profiles.php:549 +#: ../../mod/profiles.php:537 msgid "Hobbies/Interests" msgstr "Hobby/interessi" -#: ../../mod/profiles.php:550 +#: ../../mod/profiles.php:538 msgid "Contact information and Social Networks" msgstr "Contatti personali e i tuoi social network" -#: ../../mod/profiles.php:551 +#: ../../mod/profiles.php:539 msgid "My other channels" msgstr "I miei altri canali" -#: ../../mod/profiles.php:552 +#: ../../mod/profiles.php:540 msgid "Musical interests" msgstr "Interessi musicali" -#: ../../mod/profiles.php:553 +#: ../../mod/profiles.php:541 msgid "Books, literature" msgstr "Libri, letteratura" -#: ../../mod/profiles.php:554 +#: ../../mod/profiles.php:542 msgid "Television" msgstr "Televisione" -#: ../../mod/profiles.php:555 +#: ../../mod/profiles.php:543 msgid "Film/dance/culture/entertainment" msgstr "Film/danza/cultura/intrattenimento" -#: ../../mod/profiles.php:556 +#: ../../mod/profiles.php:544 msgid "Love/romance" msgstr "Amore" -#: ../../mod/profiles.php:557 +#: ../../mod/profiles.php:545 msgid "Work/employment" msgstr "Lavoro/impiego" -#: ../../mod/profiles.php:558 +#: ../../mod/profiles.php:546 msgid "School/education" msgstr "Scuola/educazione" -#: ../../mod/profiles.php:563 +#: ../../mod/profiles.php:551 msgid "" "This is your public profile.
    It may " "be visible to anybody using the internet." msgstr "Questo è il tuo profilo publico.
    Potrebbe essere visto da chiunque attraverso internet." -#: ../../mod/profiles.php:573 ../../mod/directory.php:161 -msgid "Age: " -msgstr "Età:" - -#: ../../mod/profiles.php:612 +#: ../../mod/profiles.php:600 msgid "Edit/Manage Profiles" msgstr "Modifica/gestisci i profili" +#: ../../mod/profiles.php:601 +msgid "Add profile things" +msgstr "Aggiungi oggetti al profilo" + +#: ../../mod/profiles.php:602 +msgid "Include desirable objects in your profile" +msgstr "Aggiungi oggetti interessanti al tuo profilo" + #: ../../mod/new_channel.php:107 msgid "Add a Channel" msgstr "Aggiungi un canale" @@ -5655,653 +5636,731 @@ msgstr "Il nome breve sarà usato per creare un indirizzo facile da ricordare pe msgid "Or import an existing channel from another location" msgstr "Oppure importa un tuo canale esistente da un altro server/hub" -#: ../../mod/connections.php:71 -msgid "Could not access contact record." -msgstr "Non è possibile accedere alle informazioni sul contatto." +#: ../../mod/filestorage.php:68 +msgid "Permission Denied." +msgstr "Permesso negato." -#: ../../mod/connections.php:85 -msgid "Could not locate selected profile." -msgstr "Non riesco a trovare il profilo selezionato." +#: ../../mod/filestorage.php:86 +msgid "File not found." +msgstr "File non trovato." -#: ../../mod/connections.php:126 -msgid "Connection updated." -msgstr "Contatto aggiornato." +#: ../../mod/filestorage.php:120 +msgid "Edit file permissions" +msgstr "Modifica i permessi del file" -#: ../../mod/connections.php:128 -msgid "Failed to update connection record." -msgstr "Impossibile aggiornare le informazioni del contatto." +#: ../../mod/filestorage.php:127 +msgid "Include all files and sub folders" +msgstr "Includi tutti i file e le sottocartelle" -#: ../../mod/connections.php:223 -msgid "Could not access address book record." -msgstr "Impossibile accedere alle informazioni della rubrica." +#: ../../mod/filestorage.php:128 +msgid "Return to file list" +msgstr "Torna all'elenco dei file" -#: ../../mod/connections.php:237 -msgid "Refresh failed - channel is currently unavailable." -msgstr "Il canale non è disponibile - impossibile aggiornare." +#: ../../mod/filestorage.php:130 +msgid "Copy/paste this code to attach file to a post" +msgstr "Copia/incolla questo codice per far comparire il file in un articolo" -#: ../../mod/connections.php:244 -msgid "Channel has been unblocked" -msgstr "Il canale è stato sbloccato" +#: ../../mod/filestorage.php:131 +msgid "Copy/paste this URL to link file from a web page" +msgstr "Copia/incolla questo indirizzo in una pagina web per avere un link al file" -#: ../../mod/connections.php:245 -msgid "Channel has been blocked" -msgstr "Il canale è stato bloccato" +#: ../../mod/filestorage.php:168 +msgid "Download" +msgstr "Scaricamento dati" -#: ../../mod/connections.php:249 ../../mod/connections.php:261 -#: ../../mod/connections.php:273 ../../mod/connections.php:285 -#: ../../mod/connections.php:300 -msgid "Unable to set address book parameters." -msgstr "Impossibile impostare i parametri della rubrica." +#: ../../mod/filestorage.php:174 +msgid "Used: " +msgstr "Usato:" -#: ../../mod/connections.php:256 -msgid "Channel has been unignored" -msgstr "Il canale non sarà più ignorato" +#: ../../mod/filestorage.php:175 +msgid "[directory]" +msgstr "[cartella]" -#: ../../mod/connections.php:257 -msgid "Channel has been ignored" -msgstr "Il canale sarà ignorato" +#: ../../mod/filestorage.php:177 +msgid "Limit: " +msgstr "Limite:" -#: ../../mod/connections.php:268 -msgid "Channel has been unarchived" -msgstr "Il canale non è più archiviato" +#: ../../mod/lostpass.php:15 +msgid "No valid account found." +msgstr "Nessun account valido trovato." -#: ../../mod/connections.php:269 -msgid "Channel has been archived" -msgstr "Il canale è stato archiviato" +#: ../../mod/lostpass.php:29 +msgid "Password reset request issued. Check your email." +msgstr "La richiesta per reimpostare la password è stata inviata. Controlla la tua email." -#: ../../mod/connections.php:280 -msgid "Channel has been unhidden" -msgstr "Il canale non è più nascosto" +#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102 +#, php-format +msgid "Site Member (%s)" +msgstr "Utente del sito (%s)" + +#: ../../mod/lostpass.php:40 +#, php-format +msgid "Password reset requested at %s" +msgstr "È stato richiesto di reimpostare password su %s" + +#: ../../mod/lostpass.php:63 +msgid "" +"Request could not be verified. (You may have previously submitted it.) " +"Password reset failed." +msgstr "La richiesta non può essere verificata (potresti averla già usata precedentemente). La password non può essere reimpostata." + +#: ../../mod/lostpass.php:85 ../../boot.php:1431 +msgid "Password Reset" +msgstr "Reimposta la password" + +#: ../../mod/lostpass.php:86 +msgid "Your password has been reset as requested." +msgstr "La password è stata reimpostata come richiesto." + +#: ../../mod/lostpass.php:87 +msgid "Your new password is" +msgstr "La tua nuova password è" + +#: ../../mod/lostpass.php:88 +msgid "Save or copy your new password - and then" +msgstr "Salva o copia la tua nuova password, quindi" + +#: ../../mod/lostpass.php:89 +msgid "click here to login" +msgstr "clicca qui per accedere" + +#: ../../mod/lostpass.php:90 +msgid "" +"Your password may be changed from the Settings page after " +"successful login." +msgstr "Puoi cambiare la tua password dalla pagina delle Impostazioni dopo aver effettuato l'accesso." + +#: ../../mod/lostpass.php:107 +#, php-format +msgid "Your password has changed at %s" +msgstr "La tua password su %s è cambiata" + +#: ../../mod/lostpass.php:122 +msgid "Forgot your Password?" +msgstr "Hai dimenticato la password?" + +#: ../../mod/lostpass.php:123 +msgid "" +"Enter your email address and submit to have your password reset. Then check " +"your email for further instructions." +msgstr "Inserisci il tuo indirizzo email per reimpostare la password. Dopo aver inviato la richiesta, controlla l'email e troverai le istruzioni per continuare." + +#: ../../mod/lostpass.php:124 +msgid "Email Address" +msgstr "Indirizzo email" + +#: ../../mod/lostpass.php:125 +msgid "Reset" +msgstr "Reimposta" + +#: ../../mod/import.php:36 +msgid "Nothing to import." +msgstr "Non c'è niente da importare." + +#: ../../mod/import.php:58 +msgid "Unable to download data from old server" +msgstr "Impossibile importare i dati dal vecchio server" + +#: ../../mod/import.php:64 +msgid "Imported file is empty." +msgstr "Il file da importare è vuoto." + +#: ../../mod/import.php:88 +msgid "" +"Cannot create a duplicate channel identifier on this system. Import failed." +msgstr "Non posso creare un canale con un identificativo che già esiste su questo sistema. L'importazione è fallita." + +#: ../../mod/import.php:106 +msgid "Channel clone failed. Import failed." +msgstr "Impossibile clonare il canale. L'importazione è fallita." + +#: ../../mod/import.php:116 +msgid "Cloned channel not found. Import failed." +msgstr "Impossibile trovare il canale clonato. L'importazione è fallita." + +#: ../../mod/import.php:358 +msgid "Import completed." +msgstr "L'importazione è terminata con successo!" -#: ../../mod/connections.php:281 -msgid "Channel has been hidden" -msgstr "Il canale è stato nascosto" +#: ../../mod/import.php:371 +msgid "You must be logged in to use this feature." +msgstr "Per questa funzionalità devi aver effettuato l'accesso." -#: ../../mod/connections.php:295 -msgid "Channel has been approved" -msgstr "Il canale è stato approvato" +#: ../../mod/import.php:376 +msgid "Import Channel" +msgstr "Importa un canale" -#: ../../mod/connections.php:296 -msgid "Channel has been unapproved" -msgstr "Il canale non è più approvato" +#: ../../mod/import.php:377 +msgid "" +"Use this form to import an existing channel from a different server/hub. You" +" may retrieve the channel identity from the old server/hub via the network " +"or provide an export file. Only identity and connections/relationships will " +"be imported. Importation of content is not yet available." +msgstr "Usa questo modulo per importare un tuo canale da un altro server/hub. Puoi scaricare i dati identificativi del canale direttamente dall'altro server/hub oppure tramite un file che hai esportato. Saranno importati solamente l'identità e i contatti. L'importazione dei contenuti non è ancora disponibile." -#: ../../mod/connections.php:314 -msgid "Contact has been removed." -msgstr "Il contatto è stato rimosso." +#: ../../mod/import.php:378 +msgid "File to Upload" +msgstr "File da caricare" -#: ../../mod/connections.php:334 -#, php-format -msgid "View %s's profile" -msgstr "Guarda il profilo di %s" +#: ../../mod/import.php:379 +msgid "Or provide the old server/hub details" +msgstr "Oppure fornisci i dettagli del vecchio server/hub" -#: ../../mod/connections.php:338 -msgid "Refresh Permissions" -msgstr "Aggiorna i permessi" +#: ../../mod/import.php:380 +msgid "Your old identity address (xyz@example.com)" +msgstr "Il tuo vecchio identificativo (per esempio pippo@esempio.com)" -#: ../../mod/connections.php:341 -msgid "Fetch updated permissions" -msgstr "Scarica i permessi aggiornati" +#: ../../mod/import.php:381 +msgid "Your old login email address" +msgstr "L'email che usavi per accedere sul vecchio server" -#: ../../mod/connections.php:345 -msgid "Recent Activity" -msgstr "Attività recenti" +#: ../../mod/import.php:382 +msgid "Your old login password" +msgstr "La password per il vecchio server" -#: ../../mod/connections.php:348 -msgid "View recent posts and comments" -msgstr "Leggi i post recenti e i commenti" +#: ../../mod/import.php:383 +msgid "" +"For either option, please choose whether to make this hub your new primary " +"address, or whether your old location should continue this role. You will be" +" able to post from either location, but only one can be marked as the " +"primary location for files, photos, and media." +msgstr "Per ciascuna opzione, scegli se vuoi rendere questo server il tuo indirizzo primario, oppure se preferisci che lo rimanga il vecchio. Potrai pubblicare da entrambi i server, ma solamente uno sarà marcato come primario per i tuoi file, foto, ecc." -#: ../../mod/connections.php:355 -msgid "Block or Unblock this connection" -msgstr "Per bloccare o meno questo contatto" +#: ../../mod/import.php:384 +msgid "Make this hub my primary location" +msgstr "Rendi questo server il mio indirizzo primario" -#: ../../mod/connections.php:359 ../../mod/connections.php:495 -msgid "Unignore" -msgstr "Non ignorare" +#: ../../mod/manage.php:63 +#, php-format +msgid "You have created %1$.0f of %2$.0f allowed channels." +msgstr "Hai creato %1$.0f dei %2$.0f canali permessi." -#: ../../mod/connections.php:359 ../../mod/connections.php:495 -#: ../../mod/notifications.php:51 -msgid "Ignore" -msgstr "Ignora" +#: ../../mod/manage.php:71 +msgid "Create a new channel" +msgstr "Crea un nuovo canale" -#: ../../mod/connections.php:362 -msgid "Ignore or Unignore this connection" -msgstr "Per ignorare o meno questo contatto" +#: ../../mod/manage.php:76 +msgid "Channel Manager" +msgstr "Gestione canali" -#: ../../mod/connections.php:365 -msgid "Unarchive" -msgstr "Non archiviare" +#: ../../mod/manage.php:77 +msgid "Current Channel" +msgstr "Canale attuale" -#: ../../mod/connections.php:365 -msgid "Archive" -msgstr "Archivia" +#: ../../mod/manage.php:79 +msgid "Attach to one of your channels by selecting it." +msgstr "Seleziona il canale a cui vuoi passare." -#: ../../mod/connections.php:368 -msgid "Archive or Unarchive this connection" -msgstr "Per archiviare o meno questo contatto" +#: ../../mod/manage.php:80 +msgid "Default Channel" +msgstr "Canale predefinito" -#: ../../mod/connections.php:371 -msgid "Unhide" -msgstr "Non nascondere" +#: ../../mod/manage.php:81 +msgid "Make Default" +msgstr "Rendi predefinito" -#: ../../mod/connections.php:371 -msgid "Hide" -msgstr "Nascondi" +#: ../../mod/vote.php:97 +msgid "Total votes" +msgstr "Totale voti" -#: ../../mod/connections.php:374 -msgid "Hide or Unhide this connection" -msgstr "Per nascondere o meno questo contatto" +#: ../../mod/vote.php:98 +msgid "Average Rating" +msgstr "Media" -#: ../../mod/connections.php:381 -msgid "Delete this connection" -msgstr "Elimina questo contatto" +#: ../../mod/match.php:16 +msgid "Profile Match" +msgstr "Profili corrispondenti" -#: ../../mod/connections.php:414 -msgid "Unknown" -msgstr "Sconosciuto" +#: ../../mod/match.php:24 +msgid "No keywords to match. Please add keywords to your default profile." +msgstr "Nessuna parola chiave per le ricerche. Aggiungi parole chiave al tuo profilo predefinito." -#: ../../mod/connections.php:424 ../../mod/connections.php:453 -msgid "Approve this connection" -msgstr "Approva questo contatto" +#: ../../mod/match.php:61 +msgid "is interested in:" +msgstr "interessi personali:" -#: ../../mod/connections.php:424 -msgid "Accept connection to allow communication" -msgstr "Entra in contatto per poter comunicare" +#: ../../mod/match.php:69 +msgid "No matches" +msgstr "Nessun risultato" -#: ../../mod/connections.php:440 -msgid "Automatic Permissions Settings" -msgstr "Permessi predefiniti" +#: ../../mod/zfinger.php:23 +msgid "invalid target signature" +msgstr "la firma riscontrata non è valida" -#: ../../mod/connections.php:440 -#, php-format -msgid "Connections: settings for %s" -msgstr "Contatti: impostazioni per %s" +#: ../../mod/settings.php:71 +msgid "Name is required" +msgstr "Il nome è obbligatorio" -#: ../../mod/connections.php:444 -msgid "" -"When receiving a channel introduction, any permissions provided here will be" -" applied to the new connection automatically and the introduction approved. " -"Leave this page if you do not wish to use this feature." -msgstr "Hai ricevuto da un canale una richiesta di entrare in contatto, se prosegui la richiesta sarà approvata e saranno applicati i permessi mostrati. Lascia questa pagina se non vuoi proseguire." +#: ../../mod/settings.php:75 +msgid "Key and Secret are required" +msgstr "Chiave e Segreto sono richiesti" -#: ../../mod/connections.php:446 -msgid "Slide to adjust your degree of friendship" -msgstr "Trascina per restringere il grado di amicizia da mostrare" +#: ../../mod/settings.php:79 ../../mod/settings.php:533 +msgid "Update" +msgstr "Aggiorna" -#: ../../mod/connections.php:452 -msgid "inherited" -msgstr "derivato" +#: ../../mod/settings.php:192 +msgid "Passwords do not match. Password unchanged." +msgstr "Le password non corrispondono. Password non cambiata." -#: ../../mod/connections.php:454 -msgid "Connection has no individual permissions!" -msgstr "Non hai assegnato permessi individuali a questo contatto!" +#: ../../mod/settings.php:196 +msgid "Empty passwords are not allowed. Password unchanged." +msgstr "Le password non possono essere vuote. Password non cambiata." -#: ../../mod/connections.php:455 -msgid "" -"This may be appropriate based on your privacy " -"settings, though you may wish to review the \"Advanced Permissions\"." -msgstr "Questo corrisponde alle tue impostazioni di privacy, ma puoi anche dare un'occhiata ai 'Permessi avanzati' per opzioni più dettagliate." +#: ../../mod/settings.php:209 +msgid "Password changed." +msgstr "Password cambiata." -#: ../../mod/connections.php:457 -msgid "Profile Visibility" -msgstr "Visibilità del profilo" +#: ../../mod/settings.php:211 +msgid "Password update failed. Please try again." +msgstr "Aggiornamento password fallito. Prova ancora." -#: ../../mod/connections.php:458 -#, php-format -msgid "" -"Please choose the profile you would like to display to %s when viewing your " -"profile securely." -msgstr "Seleziona il profilo che vuoi mostrare a %s quando visita il tuo profilo in modo sicuro." +#: ../../mod/settings.php:225 +msgid "Not valid email." +msgstr "Email non valida." -#: ../../mod/connections.php:459 -msgid "Contact Information / Notes" -msgstr "Informazioni e annotazioni sul contatto" +#: ../../mod/settings.php:228 +msgid "Protected email address. Cannot change to that email." +msgstr "È un indirizzo email riservato. Non puoi sceglierlo." -#: ../../mod/connections.php:460 -msgid "Edit contact notes" -msgstr "Modifica le informazioni sul contatto" +#: ../../mod/settings.php:237 +msgid "System failure storing new email. Please try again." +msgstr "Errore di sistema. Non è stato possibile memorizzare il tuo messaggio, riprova per favore." -#: ../../mod/connections.php:462 -msgid "Their Settings" -msgstr "Permessi concessi a te" +#: ../../mod/settings.php:435 +msgid "Settings updated." +msgstr "Impostazioni aggiornate." -#: ../../mod/connections.php:463 -msgid "My Settings" -msgstr "I permessi che concedo" +#: ../../mod/settings.php:506 ../../mod/settings.php:532 +#: ../../mod/settings.php:568 +msgid "Add application" +msgstr "Aggiungi una app" -#: ../../mod/connections.php:465 -msgid "Forum Members" -msgstr "Membro di un forum" +#: ../../mod/settings.php:509 ../../mod/settings.php:535 +msgid "Name" +msgstr "Nome" -#: ../../mod/connections.php:466 -msgid "Soapbox" -msgstr "Comunicati e annunci" +#: ../../mod/settings.php:509 +msgid "Name of application" +msgstr "Nome dell'applicazione" -#: ../../mod/connections.php:467 -msgid "Full Sharing" -msgstr "Condivisione totale" +#: ../../mod/settings.php:510 ../../mod/settings.php:536 +msgid "Consumer Key" +msgstr "Consumer Key" -#: ../../mod/connections.php:468 -msgid "Cautious Sharing" -msgstr "Condivisione prudente" +#: ../../mod/settings.php:510 ../../mod/settings.php:511 +msgid "Automatically generated - change if desired. Max length 20" +msgstr "Generato automaticamente - è possibile cambiarlo. Lunghezza massima 20" -#: ../../mod/connections.php:469 -msgid "Follow Only" -msgstr "Follower" +#: ../../mod/settings.php:511 ../../mod/settings.php:537 +msgid "Consumer Secret" +msgstr "Consumer Secret" -#: ../../mod/connections.php:470 -msgid "Individual Permissions" -msgstr "Permessi individuali" +#: ../../mod/settings.php:512 ../../mod/settings.php:538 +msgid "Redirect" +msgstr "Redirect" -#: ../../mod/connections.php:471 +#: ../../mod/settings.php:512 msgid "" -"Some permissions may be inherited from your channel privacy settings, which have higher priority. Changing" -" those inherited settings on this page will have no effect." -msgstr "Alcuni permessi derivano dalle impostazioni di privacy, che hanno una priorità maggiore. Cambiarli in questa pagina non avrà alcun effetto." +"Redirect URI - leave blank unless your application specifically requires " +"this" +msgstr "URI ridirezionato - lasciare bianco se non richiesto specificamente dall'applicazione." -#: ../../mod/connections.php:472 -msgid "Advanced Permissions" -msgstr "Permessi avanzati" +#: ../../mod/settings.php:513 ../../mod/settings.php:539 +msgid "Icon url" +msgstr "Url icona" -#: ../../mod/connections.php:473 -msgid "Quick Links" -msgstr "Impostazioni veloci" +#: ../../mod/settings.php:513 +msgid "Optional" +msgstr "Opzionale" -#: ../../mod/connections.php:477 -#, php-format -msgid "Visit %s's profile - %s" -msgstr "Guarda il profilo di %s - %s" +#: ../../mod/settings.php:524 +msgid "You can't edit this application." +msgstr "Non puoi modificare questa applicazione." -#: ../../mod/connections.php:478 -msgid "Block/Unblock contact" -msgstr "Blocca/sblocca contatto" +#: ../../mod/settings.php:567 +msgid "Connected Apps" +msgstr "App connesse" -#: ../../mod/connections.php:479 -msgid "Ignore contact" -msgstr "Ignora il contatto" +#: ../../mod/settings.php:571 +msgid "Client key starts with" +msgstr "La client key inizia con" -#: ../../mod/connections.php:480 -msgid "Repair URL settings" -msgstr "Ripara le impostazioni URL" +#: ../../mod/settings.php:572 +msgid "No name" +msgstr "Nessun nome" -#: ../../mod/connections.php:481 -msgid "View conversations" -msgstr "Leggi le conversazioni" +#: ../../mod/settings.php:573 +msgid "Remove authorization" +msgstr "Revoca l'autorizzazione" + +#: ../../mod/settings.php:584 +msgid "No feature settings configured" +msgstr "Non ci sono funzionalità aggiuntive personalizzabili" + +#: ../../mod/settings.php:592 +msgid "Feature Settings" +msgstr "Impostazioni aggiuntive" -#: ../../mod/connections.php:483 -msgid "Delete contact" -msgstr "Elimina contatto" +#: ../../mod/settings.php:615 +msgid "Account Settings" +msgstr "Impostazioni account" -#: ../../mod/connections.php:486 -msgid "Last update:" -msgstr "Ultimo aggiornamento:" +#: ../../mod/settings.php:616 +msgid "Password Settings" +msgstr "Impostazioni password" -#: ../../mod/connections.php:488 -msgid "Update public posts" -msgstr "Aggiorna gli articoli pubblici" +#: ../../mod/settings.php:617 +msgid "New Password:" +msgstr "Nuova password:" -#: ../../mod/connections.php:490 -msgid "Update now" -msgstr "Aggiorna adesso" +#: ../../mod/settings.php:618 +msgid "Confirm:" +msgstr "Conferma:" -#: ../../mod/connections.php:496 -msgid "Currently blocked" -msgstr "Attualmente bloccato" +#: ../../mod/settings.php:618 +msgid "Leave password fields blank unless changing" +msgstr "Lascia questi campi in bianco per non cambiare la password" -#: ../../mod/connections.php:497 -msgid "Currently ignored" -msgstr "Attualmente ignorato" +#: ../../mod/settings.php:620 ../../mod/settings.php:912 +msgid "Email Address:" +msgstr "Indirizzo email:" -#: ../../mod/connections.php:498 -msgid "Currently archived" -msgstr "Attualmente archiviato" +#: ../../mod/settings.php:621 +msgid "Remove Account" +msgstr "Elimina l'account" -#: ../../mod/connections.php:499 -msgid "Currently pending" -msgstr "Attualmente da approvare" +#: ../../mod/settings.php:622 +msgid "Warning: This action is permanent and cannot be reversed." +msgstr "Attenzione: questa azione è permanente e non potrà più essere annullata." -#: ../../mod/connections.php:500 -msgid "Hide this contact from others" -msgstr "Nascondi questo contatto agli altri" +#: ../../mod/settings.php:638 +msgid "Off" +msgstr "Off" -#: ../../mod/connections.php:500 -msgid "" -"Replies/likes to your public posts may still be visible" -msgstr "Le risposte ai tuoi articoli pubblici potrebbero restare comunque visibili" +#: ../../mod/settings.php:638 +msgid "On" +msgstr "On" -#: ../../mod/connections.php:536 ../../mod/connections.php:608 -msgid "Blocked" -msgstr "Bloccati" +#: ../../mod/settings.php:645 +msgid "Additional Features" +msgstr "Funzionalità aggiuntive" -#: ../../mod/connections.php:541 ../../mod/connections.php:615 -msgid "Ignored" -msgstr "Ignorati" +#: ../../mod/settings.php:670 +msgid "Connector Settings" +msgstr "Impostazioni del connettore" -#: ../../mod/connections.php:546 ../../mod/connections.php:629 -msgid "Hidden" -msgstr "Nascosti" +#: ../../mod/settings.php:740 +msgid "Display Settings" +msgstr "Impostazioni grafiche" -#: ../../mod/connections.php:551 ../../mod/connections.php:622 -msgid "Archived" -msgstr "Archiviati" +#: ../../mod/settings.php:746 +msgid "Display Theme:" +msgstr "Tema per monitor:" -#: ../../mod/connections.php:562 -msgid "All" -msgstr "Tutti" +#: ../../mod/settings.php:747 +msgid "Mobile Theme:" +msgstr "Tema per dispositivi mobili:" -#: ../../mod/connections.php:586 -msgid "Suggest new connections" -msgstr "Suggerisci nuovi contatti" +#: ../../mod/settings.php:748 +msgid "Update browser every xx seconds" +msgstr "Aggiorna il browser ogni x secondi" -#: ../../mod/connections.php:592 -msgid "Show pending (new) connections" -msgstr "Richieste di contatto in attesa" +#: ../../mod/settings.php:748 +msgid "Minimum of 10 seconds, no maximum" +msgstr "Minimo 10 secondi, nessun limite massimo" -#: ../../mod/connections.php:595 -msgid "All Connections" -msgstr "Tutti i contatti" +#: ../../mod/settings.php:749 +msgid "Maximum number of conversations to load at any time:" +msgstr "Massimo numero di conversazioni da mostrare ogni volta:" -#: ../../mod/connections.php:598 -msgid "Show all connections" -msgstr "Mostra tutti i contatti" +#: ../../mod/settings.php:749 +msgid "Maximum of 100 items" +msgstr "Massimo 100" -#: ../../mod/connections.php:601 -msgid "Unblocked" -msgstr "Non bloccati" +#: ../../mod/settings.php:750 +msgid "Don't show emoticons" +msgstr "Non mostrare le emoticons" -#: ../../mod/connections.php:604 -msgid "Only show unblocked connections" -msgstr "Mostra solo i contatti non bloccati" +#: ../../mod/settings.php:786 +msgid "Nobody except yourself" +msgstr "Nessuno tranne te" -#: ../../mod/connections.php:611 -msgid "Only show blocked connections" -msgstr "Mostra solo i contatti bloccati" +#: ../../mod/settings.php:787 +msgid "Only those you specifically allow" +msgstr "Solo chi riceve il mio permesso" -#: ../../mod/connections.php:618 -msgid "Only show ignored connections" -msgstr "Mostra solo i contatti ignorati" +#: ../../mod/settings.php:788 +msgid "Anybody in your address book" +msgstr "Chiunque tra i miei contatti" -#: ../../mod/connections.php:625 -msgid "Only show archived connections" -msgstr "Mostra solo i contatti archiviati" +#: ../../mod/settings.php:789 +msgid "Anybody on this website" +msgstr "Chiunque su questo sito" -#: ../../mod/connections.php:632 -msgid "Only show hidden connections" -msgstr "Mostra solo i contatti nascosti" +#: ../../mod/settings.php:790 +msgid "Anybody in this network" +msgstr "Chiunque su Red" -#: ../../mod/connections.php:674 -#, php-format -msgid "%1$s [%2$s]" -msgstr "%1$s [%2$s]" +#: ../../mod/settings.php:791 +msgid "Anybody on the internet" +msgstr "Chiunque su internet" -#: ../../mod/connections.php:675 -msgid "Edit contact" -msgstr "Modifica il contatto" +#: ../../mod/settings.php:865 +msgid "Publish your default profile in the network directory" +msgstr "Pubblica il mio profilo predefinito sull'elenco pubblico dei canali" -#: ../../mod/connections.php:698 -msgid "Search your connections" -msgstr "Cerca tra i contatti" +#: ../../mod/settings.php:870 +msgid "Allow us to suggest you as a potential friend to new members?" +msgstr "Vuoi essere suggerito come potenziale amico ai nuovi membri?" -#: ../../mod/connections.php:699 -msgid "Finding: " -msgstr "Ricerca: " +#: ../../mod/settings.php:874 ../../mod/profile_photo.php:288 +msgid "or" +msgstr "o" -#: ../../mod/filestorage.php:35 -msgid "Permission Denied." -msgstr "Permesso negato." +#: ../../mod/settings.php:879 +msgid "Your channel address is" +msgstr "L'indirizzo del tuo canale è" -#: ../../mod/filestorage.php:42 -msgid "Permission denied. VS." -msgstr "Permesso negato." +#: ../../mod/settings.php:901 +msgid "Channel Settings" +msgstr "Impostazioni del canale" -#: ../../mod/filestorage.php:79 -msgid "Download" -msgstr "Scaricamento dati" +#: ../../mod/settings.php:910 +msgid "Basic Settings" +msgstr "Impostazioni di base" -#: ../../mod/filestorage.php:84 -msgid "Used: " -msgstr "Usato:" +#: ../../mod/settings.php:913 +msgid "Your Timezone:" +msgstr "Il tuo fuso orario:" -#: ../../mod/filestorage.php:86 -msgid "Limit: " -msgstr "Limite:" +#: ../../mod/settings.php:914 +msgid "Default Post Location:" +msgstr "Località predefinita:" -#: ../../mod/lostpass.php:15 -msgid "No valid account found." -msgstr "Nessun account valido trovato." +#: ../../mod/settings.php:915 +msgid "Use Browser Location:" +msgstr "Usa la località rilevata dal browser:" -#: ../../mod/lostpass.php:29 -msgid "Password reset request issued. Check your email." -msgstr "La richiesta per reimpostare la password è stata inviata. Controlla la tua email." +#: ../../mod/settings.php:917 +msgid "Adult Content" +msgstr "Contenuto per adulti" -#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102 -#, php-format -msgid "Site Member (%s)" -msgstr "Utente del sito (%s)" +#: ../../mod/settings.php:917 +msgid "This channel publishes adult content." +msgstr "Questo canale pubblica contenuto per adulti." -#: ../../mod/lostpass.php:40 -#, php-format -msgid "Password reset requested at %s" -msgstr "È stato richiesto di reimpostare password su %s" +#: ../../mod/settings.php:919 +msgid "Security and Privacy Settings" +msgstr "Impostazioni di sicurezza e privacy" -#: ../../mod/lostpass.php:63 -msgid "" -"Request could not be verified. (You may have previously submitted it.) " -"Password reset failed." -msgstr "La richiesta non può essere verificata (potresti averla già usata precedentemente). La password non può essere reimpostata." +#: ../../mod/settings.php:921 +msgid "Quick Privacy Settings:" +msgstr "Impostazioni veloci della privacy:" -#: ../../mod/lostpass.php:85 ../../boot.php:1450 -msgid "Password Reset" -msgstr "Reimposta la password" +#: ../../mod/settings.php:922 +msgid "Very Public - extremely permissive" +msgstr "Tutto pubblico - molto permissivo" -#: ../../mod/lostpass.php:86 -msgid "Your password has been reset as requested." -msgstr "La password è stata reimpostata come richiesto." +#: ../../mod/settings.php:923 +msgid "Typical - default public, privacy when desired" +msgstr "Normale - tutto sarà pubblico tranne quel che vorrai tu" -#: ../../mod/lostpass.php:87 -msgid "Your new password is" -msgstr "La tua nuova password è" +#: ../../mod/settings.php:924 +msgid "Private - default private, rarely open or public" +msgstr "Privato - i contenuti saranno privati ma, se vorrai, alcuni potrai renderli pubblici" -#: ../../mod/lostpass.php:88 -msgid "Save or copy your new password - and then" -msgstr "Salva o copia la tua nuova password, quindi" +#: ../../mod/settings.php:925 +msgid "Blocked - default blocked to/from everybody" +msgstr "Bloccato - non ci saranno interazioni con altri a meno che tu non voglia" -#: ../../mod/lostpass.php:89 -msgid "click here to login" -msgstr "clicca qui per accedere" +#: ../../mod/settings.php:928 +msgid "Maximum Friend Requests/Day:" +msgstr "Numero massimo giornaliero di richieste di amicizia:" -#: ../../mod/lostpass.php:90 -msgid "" -"Your password may be changed from the Settings page after " -"successful login." -msgstr "Puoi cambiare la tua password dalla pagina delle Impostazioni dopo aver effettuato l'accesso." +#: ../../mod/settings.php:928 +msgid "May reduce spam activity" +msgstr "Serve e ridurre lo spam" -#: ../../mod/lostpass.php:107 -#, php-format -msgid "Your password has changed at %s" -msgstr "La tua password su %s è cambiata" +#: ../../mod/settings.php:929 +msgid "Default Post Permissions" +msgstr "Permessi predefiniti per gli articoli" -#: ../../mod/lostpass.php:122 -msgid "Forgot your Password?" -msgstr "Hai dimenticato la password?" +#: ../../mod/settings.php:941 +msgid "Maximum private messages per day from unknown people:" +msgstr "Numero massimo giornaliero di messaggi privati da utenti sconosciuti:" -#: ../../mod/lostpass.php:123 -msgid "" -"Enter your email address and submit to have your password reset. Then check " -"your email for further instructions." -msgstr "Inserisci il tuo indirizzo email per reimpostare la password. Dopo aver inviato la richiesta, controlla l'email e troverai le istruzioni per continuare." +#: ../../mod/settings.php:941 +msgid "Useful to reduce spamming" +msgstr "Serve e ridurre lo spam" -#: ../../mod/lostpass.php:124 -msgid "Email Address" -msgstr "Indirizzo email" +#: ../../mod/settings.php:944 +msgid "Notification Settings" +msgstr "Impostazioni di notifica" -#: ../../mod/lostpass.php:125 -msgid "Reset" -msgstr "Reimposta" +#: ../../mod/settings.php:945 +msgid "By default post a status message when:" +msgstr "Pubblica un messaggio di stato quando:" -#: ../../mod/import.php:36 -msgid "Nothing to import." -msgstr "Non c'è niente da importare." +#: ../../mod/settings.php:946 +msgid "accepting a friend request" +msgstr "accetto una nuova amicizia" -#: ../../mod/import.php:58 -msgid "Unable to download data from old server" -msgstr "Impossibile importare i dati dal vecchio server" +#: ../../mod/settings.php:947 +msgid "joining a forum/community" +msgstr "entro a far parte di un forum" -#: ../../mod/import.php:64 -msgid "Imported file is empty." -msgstr "Il file da importare è vuoto." +#: ../../mod/settings.php:948 +msgid "making an interesting profile change" +msgstr "faccio un cambiamento interessante al mio profilo" -#: ../../mod/import.php:88 -msgid "" -"Cannot create a duplicate channel identifier on this system. Import failed." -msgstr "Non posso creare un canale con un identificativo che già esiste su questo sistema. L'importazione è fallita." +#: ../../mod/settings.php:949 +msgid "Send a notification email when:" +msgstr "Invia una email di notifica quando:" -#: ../../mod/import.php:106 -msgid "Channel clone failed. Import failed." -msgstr "Impossibile clonare il canale. L'importazione è fallita." +#: ../../mod/settings.php:950 +msgid "You receive an introduction" +msgstr "Ricevi una richiesta di amicizia" -#: ../../mod/import.php:116 -msgid "Cloned channel not found. Import failed." -msgstr "Impossibile trovare il canale clonato. L'importazione è fallita." +#: ../../mod/settings.php:951 +msgid "Your introductions are confirmed" +msgstr "Le tue richieste di amicizia sono state accettate" -#: ../../mod/import.php:358 -msgid "Import completed." -msgstr "L'importazione è terminata con successo!" +#: ../../mod/settings.php:952 +msgid "Someone writes on your profile wall" +msgstr "Qualcuno scrive sulla tua bacheca" -#: ../../mod/import.php:371 -msgid "You must be logged in to use this feature." -msgstr "Per questa funzionalità devi aver effettuato l'accesso." +#: ../../mod/settings.php:953 +msgid "Someone writes a followup comment" +msgstr "Qualcuno scrive un commento a un tuo articolo" -#: ../../mod/import.php:376 -msgid "Import Channel" -msgstr "Importa un canale" +#: ../../mod/settings.php:954 +msgid "You receive a private message" +msgstr "Ricevi un messaggio privato" -#: ../../mod/import.php:377 -msgid "" -"Use this form to import an existing channel from a different server/hub. You" -" may retrieve the channel identity from the old server/hub via the network " -"or provide an export file. Only identity and connections/relationships will " -"be imported. Importation of content is not yet available." -msgstr "Usa questo modulo per importare un tuo canale da un altro server/hub. Puoi scaricare i dati identificativi del canale direttamente dall'altro server/hub oppure tramite un file che hai esportato. Saranno importati solamente l'identità e i contatti. L'importazione dei contenuti non è ancora disponibile." +#: ../../mod/settings.php:955 +msgid "You receive a friend suggestion" +msgstr "Ti viene suggerito un amico" -#: ../../mod/import.php:378 -msgid "File to Upload" -msgstr "File da caricare" +#: ../../mod/settings.php:956 +msgid "You are tagged in a post" +msgstr "Sei taggato in un articolo" -#: ../../mod/import.php:379 -msgid "Or provide the old server/hub details" -msgstr "Oppure fornisci i dettagli del vecchio server/hub" +#: ../../mod/settings.php:957 +msgid "You are poked/prodded/etc. in a post" +msgstr "Ricevi un poke in un articolo" -#: ../../mod/import.php:380 -msgid "Your old identity address (xyz@example.com)" -msgstr "Il tuo vecchio identificativo (per esempio pippo@esempio.com)" +#: ../../mod/settings.php:960 +msgid "Advanced Account/Page Type Settings" +msgstr "Impostazioni avanzate" -#: ../../mod/import.php:381 -msgid "Your old login email address" -msgstr "L'email che usavi per accedere sul vecchio server" +#: ../../mod/settings.php:961 +msgid "Change the behaviour of this account for special situations" +msgstr "Cambia il funzionamento di questo account in situazioni particolari" -#: ../../mod/import.php:382 -msgid "Your old login password" -msgstr "La password per il vecchio server" +#: ../../mod/mail.php:33 +msgid "Unable to lookup recipient." +msgstr "Impossibile associare un destinatario." -#: ../../mod/import.php:383 -msgid "" -"For either option, please choose whether to make this hub your new primary " -"address, or whether your old location should continue this role. You will be" -" able to post from either location, but only one can be marked as the " -"primary location for files, photos, and media." -msgstr "Per ciascuna opzione, scegli se vuoi rendere questo server il tuo indirizzo primario, oppure se preferisci che lo rimanga il vecchio. Potrai pubblicare da entrambi i server, ma solamente uno sarà marcato come primario per i tuoi file, foto, ecc." +#: ../../mod/mail.php:41 +msgid "Unable to communicate with requested channel." +msgstr "Impossibile comunicare con il canale richiesto." -#: ../../mod/import.php:384 -msgid "Make this hub my primary location" -msgstr "Rendi questo server il mio indirizzo primario" +#: ../../mod/mail.php:48 +msgid "Cannot verify requested channel." +msgstr "Impossibile verificare il canale richiesto." -#: ../../mod/manage.php:63 -#, php-format -msgid "You have created %1$.0f of %2$.0f allowed channels." -msgstr "Hai creato %1$.0f dei %2$.0f canali permessi." +#: ../../mod/mail.php:74 +msgid "Selected channel has private message restrictions. Send failed." +msgstr "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito." -#: ../../mod/manage.php:71 -msgid "Create a new channel" -msgstr "Crea un nuovo canale" +#: ../../mod/mail.php:121 ../../mod/message.php:31 +msgid "Messages" +msgstr "Messaggi" -#: ../../mod/manage.php:76 -msgid "Channel Manager" -msgstr "Gestione canali" +#: ../../mod/mail.php:132 +msgid "Message deleted." +msgstr "Messaggio eliminato." -#: ../../mod/manage.php:77 -msgid "Current Channel" -msgstr "Canale attuale" +#: ../../mod/mail.php:149 +msgid "Message recalled." +msgstr "Messaggio revocato." -#: ../../mod/manage.php:79 -msgid "Attach to one of your channels by selecting it." -msgstr "Seleziona il canale a cui vuoi passare." +#: ../../mod/mail.php:206 +msgid "Send Private Message" +msgstr "Invia un messaggio privato" -#: ../../mod/manage.php:80 -msgid "Default Channel" -msgstr "Canale predefinito" +#: ../../mod/mail.php:207 ../../mod/mail.php:323 +msgid "To:" +msgstr "A:" -#: ../../mod/manage.php:81 -msgid "Make Default" -msgstr "Rendi predefinito" +#: ../../mod/mail.php:212 ../../mod/mail.php:325 +msgid "Subject:" +msgstr "Oggetto:" -#: ../../mod/vote.php:97 -msgid "Total votes" -msgstr "Totale voti" +#: ../../mod/mail.php:249 +msgid "Message not found." +msgstr "Messaggio non trovato." -#: ../../mod/vote.php:98 -msgid "Average Rating" -msgstr "Media" +#: ../../mod/mail.php:292 ../../mod/message.php:72 +msgid "Delete message" +msgstr "Elimina il messaggio" -#: ../../mod/match.php:16 -msgid "Profile Match" -msgstr "Profili corrispondenti" +#: ../../mod/mail.php:293 +msgid "Recall message" +msgstr "Revoca il messaggio" -#: ../../mod/match.php:24 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "Nessuna parola chiave per le ricerche. Aggiungi parole chiave al tuo profilo predefinito." +#: ../../mod/mail.php:295 +msgid "Message has been recalled." +msgstr "Il messaggio è stato revocato." -#: ../../mod/match.php:61 -msgid "is interested in:" -msgstr "interessi personali:" +#: ../../mod/mail.php:312 +msgid "Private Conversation" +msgstr "Conversazione privata" -#: ../../mod/match.php:69 -msgid "No matches" -msgstr "Nessun risultato" +#: ../../mod/mail.php:316 +msgid "Delete conversation" +msgstr "Elimina la conversazione" -#: ../../mod/zfinger.php:23 -msgid "invalid target signature" -msgstr "la firma riscontrata non è valida" +#: ../../mod/mail.php:318 +msgid "" +"No secure communications available. You may be able to " +"respond from the sender's profile page." +msgstr "Non è disponibile alcun sistema per comunicare in modo sicuro. Puoi verificare se eventualmente è possibile rispondere dalla pagina del profilo del mittente." -#: ../../mod/follow.php:25 -msgid "Channel added." -msgstr "Canale aggiunto." +#: ../../mod/mail.php:322 +msgid "Send Reply" +msgstr "Invia la risposta" -#: ../../mod/editlayout.php:36 ../../mod/editwebpage.php:32 -#: ../../mod/editpost.php:20 ../../mod/editblock.php:36 +#: ../../mod/editlayout.php:36 ../../mod/editpost.php:20 +#: ../../mod/editwebpage.php:32 ../../mod/editblock.php:36 msgid "Item not found" msgstr "Elemento non trovato" -#: ../../mod/editlayout.php:68 +#: ../../mod/editlayout.php:72 msgid "Edit Layout" msgstr "Modifica il layout" -#: ../../mod/editlayout.php:104 ../../mod/editwebpage.php:147 -#: ../../mod/editpost.php:101 ../../mod/editblock.php:118 +#: ../../mod/editlayout.php:82 +msgid "Delete layout?" +msgstr "Vuoi eliminare questo layout?" + +#: ../../mod/editlayout.php:110 ../../mod/editpost.php:102 +#: ../../mod/editwebpage.php:148 ../../mod/editblock.php:124 msgid "Insert YouTube video" msgstr "Inserisci video da YouTube" -#: ../../mod/editlayout.php:105 ../../mod/editwebpage.php:148 -#: ../../mod/editpost.php:102 ../../mod/editblock.php:119 +#: ../../mod/editlayout.php:111 ../../mod/editpost.php:103 +#: ../../mod/editwebpage.php:149 ../../mod/editblock.php:125 msgid "Insert Vorbis [.ogg] video" msgstr "Inserisci video Vorbis [.ogg]" -#: ../../mod/editlayout.php:106 ../../mod/editwebpage.php:149 -#: ../../mod/editpost.php:103 ../../mod/editblock.php:120 +#: ../../mod/editlayout.php:112 ../../mod/editpost.php:104 +#: ../../mod/editwebpage.php:150 ../../mod/editblock.php:126 msgid "Insert Vorbis [.ogg] audio" msgstr "Inserisci audio Vorbis [.ogg]" -#: ../../mod/editlayout.php:140 +#: ../../mod/editlayout.php:147 msgid "Delete Layout" msgstr "Elimina il layout" @@ -6381,13 +6440,13 @@ msgstr "Il caricamento dell'immagine è fallito." msgid "Image size reduction [%s] failed." msgstr "Il ridimensionamento del'immagine [%s] è fallito." -#: ../../mod/editwebpage.php:106 -msgid "Edit Webpage" -msgstr "Modifica la pagina web" +#: ../../mod/editpost.php:31 +msgid "Item is not editable" +msgstr "L'elemento non è modificabile" -#: ../../mod/editwebpage.php:188 -msgid "Delete Webpage" -msgstr "Elimina la pagina web" +#: ../../mod/editpost.php:53 +msgid "Delete item?" +msgstr "Eliminare questo elemento?" #: ../../mod/notifications.php:26 msgid "Invalid request identifier." @@ -6417,9 +6476,17 @@ msgstr "Impossibile raggiungere il tuo hub." msgid "Post successful." msgstr "Inviato!" -#: ../../mod/editpost.php:31 -msgid "Item is not editable" -msgstr "L'elemento non è modificabile" +#: ../../mod/editwebpage.php:106 +msgid "Edit Webpage" +msgstr "Modifica la pagina web" + +#: ../../mod/editwebpage.php:116 +msgid "Delete webpage?" +msgstr "Vuoi eliminare questa pagina web?" + +#: ../../mod/editwebpage.php:189 +msgid "Delete Webpage" +msgstr "Elimina la pagina web" #: ../../mod/profile.php:64 ../../mod/profile.php:72 msgid "Access to this profile has been restricted." @@ -6445,7 +6512,7 @@ msgstr "Scegli cosa vuoi inviare al destinatario" msgid "Make this post private" msgstr "Rendi privato questo articolo" -#: ../../mod/wall_upload.php:41 ../../mod/item.php:1077 +#: ../../mod/wall_upload.php:41 ../../mod/item.php:1075 msgid "Wall Photos" msgstr "Foto della bacheca" @@ -6453,7 +6520,7 @@ msgstr "Foto della bacheca" msgid "You must be logged in to see this page." msgstr "Devi aver effettuato l'accesso per vedere questa pagina." -#: ../../mod/channel.php:83 +#: ../../mod/channel.php:85 msgid "Insufficient permissions. Request redirected to profile page." msgstr "Permessi insufficienti. Sarà visualizzata la pagina del profilo." @@ -6469,10 +6536,6 @@ msgstr "Comunità" msgid "No results." msgstr "Nessun risultato." -#: ../../mod/fbrowser.php:114 -msgid "Files" -msgstr "Elenco file" - #: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92 msgid "Contact not found." msgstr "Contatto non trovato." @@ -6490,109 +6553,95 @@ msgstr "Suggerisci amici" msgid "Suggest a friend for %s" msgstr "Suggerisci un amico a %s" -#: ../../mod/editblock.php:82 +#: ../../mod/editblock.php:86 msgid "Edit Block" msgstr "Modifica il riquadro" -#: ../../mod/editblock.php:156 +#: ../../mod/editblock.php:96 +msgid "Delete block?" +msgstr "Vuoi eliminare questo riquadro?" + +#: ../../mod/editblock.php:163 msgid "Delete Block" msgstr "Elimina il riquadro" -#: ../../mod/profperm.php:25 ../../mod/profperm.php:55 +#: ../../mod/profperm.php:29 ../../mod/profperm.php:58 msgid "Invalid profile identifier." msgstr "Indentificativo del profilo non valido." -#: ../../mod/profperm.php:101 +#: ../../mod/profperm.php:105 msgid "Profile Visibility Editor" msgstr "Modifica la visibilità del profilo" -#: ../../mod/profperm.php:105 +#: ../../mod/profperm.php:109 msgid "Click on a contact to add or remove." msgstr "Clicca su un contatto per aggiungerlo o rimuoverlo." -#: ../../mod/profperm.php:114 +#: ../../mod/profperm.php:118 msgid "Visible To" msgstr "Visibile a" -#: ../../mod/profperm.php:130 -msgid "All Contacts (with secure profile access)" -msgstr "Tutti i contatti (con accesso fidato al profilo)" - -#: ../../mod/item.php:144 -msgid "Unable to locate original post." -msgstr "Impossibile trovare il messaggio originale." - -#: ../../mod/item.php:341 -msgid "Empty post discarded." -msgstr "L'articolo vuoto è stato ignorato." - -#: ../../mod/item.php:383 -msgid "Executable content type not permitted to this channel." -msgstr "I contenuti eseguibili non sono permessi su questo canale." - -#: ../../mod/item.php:793 -msgid "System error. Post not saved." -msgstr "Errore di sistema. Articolo non salvato." - -#: ../../mod/item.php:1156 -#, php-format -msgid "You have reached your limit of %1$.0f top level posts." -msgstr "Hai raggiunto il limite massimo di %1$.0f articoli sulla pagina principale." - -#: ../../mod/item.php:1162 -#, php-format -msgid "You have reached your limit of %1$.0f webpages." -msgstr "Hai raggiunto il limite massimo di %1$.0f pagine web." - -#: ../../mod/siteinfo.php:51 +#: ../../mod/siteinfo.php:57 #, php-format msgid "Version %s" msgstr "Versione %s" -#: ../../mod/siteinfo.php:65 +#: ../../mod/siteinfo.php:76 msgid "Installed plugins/addons/apps:" msgstr "App e componenti aggiuntivi instalati:" -#: ../../mod/siteinfo.php:78 +#: ../../mod/siteinfo.php:89 msgid "No installed plugins/addons/apps" msgstr "Nessuna app o componente aggiuntivo installato" -#: ../../mod/siteinfo.php:81 +#: ../../mod/siteinfo.php:92 msgid "Red" msgstr "Red" -#: ../../mod/siteinfo.php:82 +#: ../../mod/siteinfo.php:93 msgid "" "This is a hub of the Red Matrix - a global cooperative network of " "decentralised privacy enhanced websites." msgstr "Questo è un hub di Red Matrix - una rete cooperativa e decentralizzata di siti con elevato livello di privacy. " -#: ../../mod/siteinfo.php:84 +#: ../../mod/siteinfo.php:96 msgid "Running at web location" msgstr "In esecuzione sull'indirizzo web" -#: ../../mod/siteinfo.php:85 +#: ../../mod/siteinfo.php:97 msgid "" "Please visit GetZot.com to learn more " "about the Red Matrix." msgstr "Visita GetZot.com per scoprire il progetto Red Matrix." -#: ../../mod/siteinfo.php:86 +#: ../../mod/siteinfo.php:98 msgid "Bug reports and issues: please visit" msgstr "Per segnalare bug e problemi: visita" -#: ../../mod/siteinfo.php:89 +#: ../../mod/siteinfo.php:101 msgid "" "Suggestions, praise, donations, etc. - please email \"redmatrix\" at " "librelist - dot com" msgstr "Per consigli, ringraziamenti, donazioni, ecc. - scrivi a \"redmatrix\" at librelist - dot com" -#: ../../mod/suggest.php:42 +#: ../../mod/suggest.php:35 msgid "" "No suggestions available. If this is a new site, please try again in 24 " "hours." msgstr "Nessun suggerimento disponibile. Se questo è un sito nuovo, riprova tra 24 ore." +#: ../../mod/message.php:41 +msgid "Conversation removed." +msgstr "Conversazione rimossa." + +#: ../../mod/message.php:56 +msgid "No messages." +msgstr "Nessun messaggio." + +#: ../../mod/message.php:74 +msgid "D, d M Y - g:i A" +msgstr "D d M Y - G:i" + #: ../../mod/pubsites.php:22 msgid "Public Sites" msgstr "Siti pubblici" @@ -6645,43 +6694,51 @@ msgstr "La tua richiesta è in attesa di approvazione da parte dell'amministrato msgid "Your registration can not be processed." msgstr "La tua registrazione non puo' essere acquisita." -#: ../../mod/register.php:149 +#: ../../mod/register.php:147 +msgid "Registration on this site/hub is by approval only." +msgstr "La registrazione su questo sito è soggetta ad approvazione." + +#: ../../mod/register.php:148 +msgid "Register at another affiliated site/hub" +msgstr "Registrati su un altro server affiliato" + +#: ../../mod/register.php:156 msgid "" "This site has exceeded the number of allowed daily account registrations. " "Please try again tomorrow." msgstr "Questo sito ha superato il numero di registrazioni giornaliere consentite. Prova di nuovo domani." -#: ../../mod/register.php:160 +#: ../../mod/register.php:167 msgid "Terms of Service" msgstr "Condizioni d'Uso" -#: ../../mod/register.php:166 +#: ../../mod/register.php:173 #, php-format msgid "I accept the %s for this website" msgstr "Accetto le %s di questo sito" -#: ../../mod/register.php:168 +#: ../../mod/register.php:175 #, php-format msgid "I am over 13 years of age and accept the %s for this website" msgstr "Ho più di 13 anni e accetto le %s di questo sito" -#: ../../mod/register.php:183 +#: ../../mod/register.php:194 msgid "Membership on this site is by invitation only." msgstr "Per registrarsi su questo sito è necessario un invito." -#: ../../mod/register.php:184 +#: ../../mod/register.php:195 msgid "Please enter your invitation code" msgstr "Inserisci il codice dell'invito" -#: ../../mod/register.php:187 +#: ../../mod/register.php:198 msgid "Your email address" msgstr "Il tuo indirizzo email" -#: ../../mod/register.php:188 +#: ../../mod/register.php:199 msgid "Choose a password" msgstr "Scegli una password" -#: ../../mod/register.php:189 +#: ../../mod/register.php:200 msgid "Please re-enter your password" msgstr "Ripeti la password per verifica" @@ -6714,37 +6771,79 @@ msgid "" msgstr "L'impostazione predefinita è che sia eliminata solo l'istanza del canale presente su questo hub, non gli eventuali cloni" #: ../../mod/removeme.php:53 -msgid "Remove My Account" -msgstr "Elimina il mio account" +msgid "Remove Channel" +msgstr "Elimina questo canale" -#: ../../mod/directory.php:164 -msgid "Gender: " -msgstr "Sesso:" +#: ../../mod/item.php:145 +msgid "Unable to locate original post." +msgstr "Impossibile trovare il messaggio originale." -#: ../../mod/directory.php:225 -msgid "Finding:" -msgstr "Ricerca:" +#: ../../mod/item.php:346 +msgid "Empty post discarded." +msgstr "L'articolo vuoto è stato ignorato." -#: ../../mod/directory.php:233 -msgid "next page" -msgstr "pagina succ." +#: ../../mod/item.php:388 +msgid "Executable content type not permitted to this channel." +msgstr "I contenuti eseguibili non sono permessi su questo canale." -#: ../../mod/directory.php:233 -msgid "previous page" -msgstr "pagina prec." +#: ../../mod/item.php:819 +msgid "System error. Post not saved." +msgstr "Errore di sistema. Articolo non salvato." -#: ../../mod/directory.php:240 -msgid "No entries (some entries may be hidden)." -msgstr "Nessun risultato (qualcosa potrebbe essere nascosto)." +#: ../../mod/item.php:1155 +#, php-format +msgid "You have reached your limit of %1$.0f top level posts." +msgstr "Hai raggiunto il limite massimo di %1$.0f articoli sulla pagina principale." + +#: ../../mod/item.php:1161 +#, php-format +msgid "You have reached your limit of %1$.0f webpages." +msgstr "Hai raggiunto il limite massimo di %1$.0f pagine web." -#: ../../mod/mood.php:133 +#: ../../mod/mood.php:138 msgid "Mood" msgstr "Umore" -#: ../../mod/mood.php:134 +#: ../../mod/mood.php:139 msgid "Set your current mood and tell your friends" msgstr "Scegli il tuo umore attuale per mostrarlo agli amici" +#: ../../mod/ping.php:160 +msgid "sent you a private message" +msgstr "ti ha inviato un messaggio privato" + +#: ../../mod/ping.php:218 +msgid "added your channel" +msgstr "ha aggiunto il tuo canale" + +#: ../../mod/ping.php:262 +msgid "posted an event" +msgstr "ha creato un evento" + +#: ../../mod/dirprofile.php:111 +msgid "Status: " +msgstr "Stato:" + +#: ../../mod/dirprofile.php:112 +msgid "Sexual Preference: " +msgstr "Preferenza sessuale:" + +#: ../../mod/dirprofile.php:114 +msgid "Homepage: " +msgstr "Homepage:" + +#: ../../mod/dirprofile.php:115 +msgid "Hometown: " +msgstr "Città dove vivo:" + +#: ../../mod/dirprofile.php:117 +msgid "About: " +msgstr "Informazioni:" + +#: ../../mod/dirprofile.php:164 +msgid "Keywords: " +msgstr "Parole chiave:" + #: ../../view/theme/redbasic/php/config.php:74 msgid "Scheme Default" msgstr "Schema predefinito" @@ -6990,41 +7089,41 @@ msgstr "Immagine dell'intestazione" msgid "Header image only on profile pages" msgstr "È possibile mettere un'immagine solo nell'intestazione dei profili" -#: ../../boot.php:1255 +#: ../../boot.php:1229 #, php-format msgid "Update %s failed. See error logs." msgstr "%s: aggiornamento fallito. Controlla i log di errore." -#: ../../boot.php:1258 +#: ../../boot.php:1232 #, php-format msgid "Update Error at %s" msgstr "Errore di aggiornamento su %s" -#: ../../boot.php:1415 +#: ../../boot.php:1396 msgid "" "Create an account to access services and applications within the Red Matrix" msgstr "Registrati per accedere ai servizi e alle applicazioni di Red Matrix" -#: ../../boot.php:1443 +#: ../../boot.php:1424 msgid "Password" msgstr "Password" -#: ../../boot.php:1444 +#: ../../boot.php:1425 msgid "Remember me" msgstr "Resta connesso" -#: ../../boot.php:1449 +#: ../../boot.php:1430 msgid "Forgot your password?" msgstr "Hai dimenticato la password?" -#: ../../boot.php:1514 +#: ../../boot.php:1495 msgid "permission denied" msgstr "permesso negato" -#: ../../boot.php:1515 +#: ../../boot.php:1496 msgid "Got Zot?" msgstr "Hai Zot?" -#: ../../boot.php:1907 +#: ../../boot.php:1892 msgid "toggle mobile" msgstr "attiva/disattiva versione mobile" diff --git a/view/it/strings.php b/view/it/strings.php index 5a3279eda..087cc66dc 100644 --- a/view/it/strings.php +++ b/view/it/strings.php @@ -12,127 +12,68 @@ $a->strings["public profile"] = "profilo pubblico"; $a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s ha cambiato %2\$s in “%3\$s”"; $a->strings["Visit %1\$s's %2\$s"] = "Guarda %2\$s di %1\$s "; $a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s ha aggiornato %2\$s cambiando %3\$s."; -$a->strings["Sort Options"] = "Opzioni di ordinamento"; -$a->strings["Alphabetic"] = "Alfabetico"; -$a->strings["Reverse Alphabetic"] = "Alfabetico inverso"; -$a->strings["Newest to Oldest"] = "Dal più nuovo al più vecchio"; -$a->strings["Enable Safe Search"] = "Abilita SafeSearch"; -$a->strings["Disable Safe Search"] = "Disabilita SafeSearch"; -$a->strings["Safe Mode"] = "Modalità SafeSearch"; -$a->strings["Red Matrix Notification"] = "Notifica di Red Matrix"; -$a->strings["redmatrix"] = "redmatrix"; -$a->strings["Thank You,"] = "Grazie,"; -$a->strings["%s Administrator"] = "Amministratore %s"; -$a->strings["%s "] = "%s "; -$a->strings["[Red:Notify] New mail received at %s"] = "[Red:Notifica] Nuovo messaggio ricevuto alle %s"; -$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s ti ha mandato un messaggio privato alle %3\$s."; -$a->strings["%1\$s sent you %2\$s."] = "%1\$s ti ha mandato %2\$s."; -$a->strings["a private message"] = "un messaggio privato"; -$a->strings["Please visit %s to view and/or reply to your private messages."] = "Visita %s per leggere i tuoi messaggi privati e rispondere."; -$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%4\$s[/zrl]"; -$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%5\$s di %4\$s[/zrl]"; -$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%4\$s che hai creato[/zrl]"; -$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Notifica] Nuovo commento di %2\$s alla conversazione #%1\$d"; -$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s ha commentato un elemento che stavi seguendo."; -$a->strings["Please visit %s to view and/or reply to the conversation."] = "Visita %s per leggere o commentare la conversazione."; -$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Notifica] %s ha scritto sulla tua bacheca"; -$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s ha scritto sulla bacheca del tuo profilo alle %3\$s"; -$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s ha scritto sulla [zrl=%3\$s]tua bacheca[/zrl]"; -$a->strings["[Red:Notify] %s tagged you"] = "[Red:Notifica] %s ti ha taggato"; -$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s ti ha taggato alle %3\$s"; -$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]ti ha taggato[/zrl]."; -$a->strings["[Red:Notify] %1\$s poked you"] = "[Red:Notifica] %1\$s ti ha mandato un poke"; -$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s ti ha mandato un poke alle %3\$s"; -$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]ti ha mandato un poke[/zrl]."; -$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Notifica] %s ha taggato il tuo articolo"; -$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s ha taggato il tuo articolo alle %3\$s"; -$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s ha taggato [zrl=%3\$s]il tuo articolo[/zrl]"; -$a->strings["[Red:Notify] Introduction received"] = "[Red:Notifica] Hai una richiesta di amicizia"; -$a->strings["%1\$s, you've received an introduction from '%2\$s' at %3\$s"] = "%1\$s, hai ricevuto una richiesta di contatto da '%2\$s' alle %3\$s"; -$a->strings["%1\$s, you've received [zrl=%2\$s]an introduction[/zrl] from %3\$s."] = "%1\$s, hai ricevuto [zrl=%2\$s]una richiesta di amicizia[/zrl] da %3\$s."; -$a->strings["You may visit their profile at %s"] = "Puoi visitare il suo profilo su %s"; -$a->strings["Please visit %s to approve or reject the introduction."] = "Visita %s per approvare o rifiutare la richiesta."; -$a->strings["[Red:Notify] Friend suggestion received"] = "[Red:Notifica] Ti è stato suggerito un amico"; -$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, ti è stato suggerito un amico da '%2\$s' alle %3\$s"; -$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, %4\$s ti [zrl=%2\$s]ha suggerito %3\$s[/zrl] come amico."; -$a->strings["Name:"] = "Nome:"; -$a->strings["Photo:"] = "Foto:"; -$a->strings["Please visit %s to approve or reject the suggestion."] = "Visita %s per approvare o rifiutare il suggerimento."; -$a->strings["Private Message"] = "Messaggio privato"; -$a->strings["Edit"] = "Modifica"; -$a->strings["Delete"] = "Elimina"; -$a->strings["Select"] = "Seleziona"; -$a->strings["save to folder"] = "salva in una cartella"; -$a->strings["add star"] = "aggiungi ai preferiti"; -$a->strings["remove star"] = "rimuovi dai preferiti"; -$a->strings["toggle star status"] = "Attiva/disattiva preferito"; -$a->strings["starred"] = "preferito"; -$a->strings["Message is verified"] = "Messaggio verificato"; -$a->strings["add tag"] = "Aggiungi tag"; -$a->strings["I like this (toggle)"] = "Attiva/disattiva Mi piace"; -$a->strings["like"] = "mi piace"; -$a->strings["I don't like this (toggle)"] = "Attiva/disattiva Non mi piace"; -$a->strings["dislike"] = "non mi piace"; -$a->strings["Share this"] = "Condividi"; -$a->strings["share"] = "condividi"; -$a->strings["View %s's profile - %s"] = "Guarda il profilo di %s - %s"; -$a->strings["to"] = "a"; -$a->strings["via"] = "via"; -$a->strings["Wall-to-Wall"] = "Da bacheca a bacheca"; -$a->strings["via Wall-To-Wall:"] = "da bacheca a bacheca:"; -$a->strings[" from %s"] = " da %s"; -$a->strings["last edited: %s"] = "ultima modifica: %s"; -$a->strings["Please wait"] = "Attendere"; -$a->strings["%d comment"] = array( - 0 => "%d commento", - 1 => "%d commenti", -); -$a->strings["show more"] = "mostra tutto"; -$a->strings["This is you"] = "Questo sei tu"; -$a->strings["Comment"] = "Commento"; -$a->strings["Submit"] = "Salva"; -$a->strings["Bold"] = "Grassetto"; -$a->strings["Italic"] = "Corsivo"; -$a->strings["Underline"] = "Sottolineato"; -$a->strings["Quote"] = "Citazione"; -$a->strings["Code"] = "Codice"; -$a->strings["Image"] = "Immagine"; -$a->strings["Link"] = "Link"; -$a->strings["Video"] = "Video"; -$a->strings["Preview"] = "Anteprima"; -$a->strings["Encrypt text"] = "Crittografia del testo"; +$a->strings["Public Timeline"] = "Diario pubblico"; +$a->strings["Logout"] = "Esci"; +$a->strings["End this session"] = "Chiudi questa sessione"; +$a->strings["Home"] = "Bacheca"; +$a->strings["Your posts and conversations"] = "I tuoi articoli e conversazioni"; +$a->strings["View Profile"] = "Profilo"; +$a->strings["Your profile page"] = "Il tuo profilo"; +$a->strings["Edit Profiles"] = "Modifica i profili"; +$a->strings["Manage/Edit Profiles"] = "Gestisci e modifica i profili"; +$a->strings["Photos"] = "Foto"; +$a->strings["Your photos"] = "Le tue foto"; +$a->strings["Login"] = "Accedi"; +$a->strings["Sign in"] = "Entra"; +$a->strings["%s - click to logout"] = "%s - clicca per uscire"; +$a->strings["Click to authenticate to your home hub"] = "Clicca per autenticarti sul tuo server principale"; +$a->strings["Home Page"] = "Bacheca"; +$a->strings["Register"] = "Iscriviti"; +$a->strings["Create an account"] = "Crea un account"; +$a->strings["Help"] = "Guida"; +$a->strings["Help and documentation"] = "Guida e documentazione"; +$a->strings["Apps"] = "Apps"; +$a->strings["Addon applications, utilities, games"] = "App, strumenti e giochi aggiuntivi"; +$a->strings["Search"] = "Cerca"; +$a->strings["Search site content"] = "Cerca nel sito"; +$a->strings["Directory"] = "Tutti i canali"; +$a->strings["Channel Locator"] = "Ricerca canali"; +$a->strings["Matrix"] = "La tua rete"; +$a->strings["Your matrix"] = "La tua rete"; +$a->strings["Mark all matrix notifications seen"] = "Segna come lette le notifiche della tua rete"; +$a->strings["Channel Home"] = "Bacheca del canale"; +$a->strings["Channel home"] = "Bacheca del canale"; +$a->strings["Mark all channel notifications seen"] = "Segna come lette le notifiche dei canali"; +$a->strings["Intros"] = "Richieste"; +$a->strings["New Connections"] = "Nuovi contatti"; +$a->strings["Notices"] = "Notifiche"; +$a->strings["Notifications"] = "Notifiche"; +$a->strings["See all notifications"] = "Vedi tutte le notifiche"; +$a->strings["Mark all system notifications seen"] = "Segna come lette le notifiche di sistema"; +$a->strings["Mail"] = "Messaggi"; +$a->strings["Private mail"] = "Messaggi privati"; +$a->strings["See all private messages"] = "Guarda tutti i messaggi privati"; +$a->strings["Mark all private messages seen"] = "Segna come letti tutti i messaggi privati"; +$a->strings["Inbox"] = "In arrivo"; +$a->strings["Outbox"] = "Inviati"; +$a->strings["New Message"] = "Nuovo messaggio"; +$a->strings["Events"] = "Eventi"; +$a->strings["Event Calendar"] = "Calendario"; +$a->strings["See all events"] = "Guarda tutti gli eventi"; +$a->strings["Mark all events seen"] = "Marca come letti tutti gli eventi"; +$a->strings["Channel Select"] = "Gestisci i canali"; +$a->strings["Manage Your Channels"] = "Gestisci i contatti dei tuoi canali"; +$a->strings["Settings"] = "Impostazioni"; +$a->strings["Account/Channel Settings"] = "Impostazioni account e canali"; +$a->strings["Connections"] = "Contatti"; +$a->strings["Manage/Edit Friends and Connections"] = "Modifica amici e contatti"; +$a->strings["Admin"] = "Amministrazione"; +$a->strings["Site Setup and Configuration"] = "Configurazione del sito"; +$a->strings["Nothing new here"] = "Niente di nuovo qui"; +$a->strings["Please wait..."] = "Attendere..."; $a->strings["Connect"] = "Entra in contatto"; $a->strings["New window"] = "Nuova finestra"; $a->strings["Open the selected location in a different window or browser tab"] = "Apri l'indirizzo selezionato in una nuova scheda o finestra"; -$a->strings["Displays a full channel profile"] = "Mostra il profilo completo del canale"; -$a->strings["Tag cloud of webpage categories"] = "Nuvola dei tag"; -$a->strings["List and filter by collection"] = "Filtra per insiemi di canali"; -$a->strings["Show a couple of channel suggestion"] = "Mostra i canali suggeriti"; -$a->strings["Provide a channel follow form"] = "Mostra il link connettersi al canale"; -$a->strings["Categories"] = "Categorie"; -$a->strings["Ignore/Hide"] = "Ignora/nascondi"; -$a->strings["Suggestions"] = "Suggerimenti"; -$a->strings["See more..."] = "Altro..."; -$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Hai attivato %1$.0f delle %2$.0f connessioni permesse."; -$a->strings["Add New Connection"] = "Aggiungi un contatto"; -$a->strings["Enter the channel address"] = "Scrivi l'indirizzo del canale"; -$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Per esempio: mario@pippo.it oppure http://pluto.com/barbara"; -$a->strings["Notes"] = "Note"; -$a->strings["Save"] = "Salva"; -$a->strings["Remove term"] = "Rimuovi termine"; -$a->strings["Saved Searches"] = "Ricerche salvate"; -$a->strings["add"] = "aggiungi"; -$a->strings["Saved Folders"] = "Cartelle salvate"; -$a->strings["Everything"] = "Tutto"; -$a->strings["Archives"] = "Archivi"; -$a->strings["Refresh"] = "Aggiorna"; -$a->strings["Me"] = "Io"; -$a->strings["Best Friends"] = "Buoni amici"; -$a->strings["Friends"] = "Amici"; -$a->strings["Co-workers"] = "Colleghi"; -$a->strings["Former Friends"] = "Ex amici"; -$a->strings["Acquaintances"] = "Conoscenti"; -$a->strings["Everybody"] = "Tutti"; $a->strings["Unknown | Not categorised"] = "Sconosciuto | Senza categoria"; $a->strings["Block immediately"] = "Blocca subito"; $a->strings["Shady, spammer, self-marketer"] = "Spammer o dedito al marketing"; @@ -178,15 +119,93 @@ $a->strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i"; $a->strings["Starts:"] = "Inizio:"; $a->strings["Finishes:"] = "Fine:"; $a->strings["Location:"] = "Luogo:"; -$a->strings["A deleted group with this name was revived. Existing item permissions may apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "È stato ripristinato un insieme con lo stesso nome che era stato eliminato in precedenza. I permessi già presenti potrebbero rimanere validi per i nuovi canali. Se non vuoi che ciò accada, devi creare un altro insieme con un nome diverso."; -$a->strings["Default privacy group for new contacts"] = "Insieme predefinito per i nuovi canali che aggiungi"; -$a->strings["All Channels"] = "Tutti i canali"; -$a->strings["edit"] = "modifica"; -$a->strings["Collections"] = "Insiemi di canali"; -$a->strings["Edit collection"] = "Modifica l'insieme di canali"; -$a->strings["Create a new collection"] = "Crea un nuovo insieme"; -$a->strings["Channels not in any collection"] = "Canali che non sono in un insieme"; +$a->strings["prev"] = "prec"; +$a->strings["first"] = "inizio"; +$a->strings["last"] = "fine"; +$a->strings["next"] = "succ"; +$a->strings["older"] = "più recenti"; +$a->strings["newer"] = "più nuovi"; +$a->strings["No connections"] = "Nessun contatto"; +$a->strings["%d Connection"] = array( + 0 => "%d contatto", + 1 => "%d contatti", +); +$a->strings["View Connections"] = "Elenco contatti"; +$a->strings["Save"] = "Salva"; +$a->strings["poke"] = "poke"; +$a->strings["poked"] = "ha ricevuto un poke"; +$a->strings["ping"] = "ping"; +$a->strings["pinged"] = "ha ricevuto un ping"; +$a->strings["prod"] = "prod"; +$a->strings["prodded"] = "ha ricevuto un prod"; +$a->strings["slap"] = "schiaffo"; +$a->strings["slapped"] = "ha ricevuto uno schiaffo"; +$a->strings["finger"] = "finger"; +$a->strings["fingered"] = "ha ricevuto un finger"; +$a->strings["rebuff"] = "rifiuto"; +$a->strings["rebuffed"] = "ha ricevuto un rifiuto"; +$a->strings["happy"] = "allegro"; +$a->strings["sad"] = "triste"; +$a->strings["mellow"] = "calmo"; +$a->strings["tired"] = "stanco"; +$a->strings["perky"] = "vivace"; +$a->strings["angry"] = "arrabbiato"; +$a->strings["stupified"] = "stordito"; +$a->strings["puzzled"] = "confuso"; +$a->strings["interested"] = "attento"; +$a->strings["bitter"] = "amaro"; +$a->strings["cheerful"] = "allegro"; +$a->strings["alive"] = "vivace"; +$a->strings["annoyed"] = "seccato"; +$a->strings["anxious"] = "ansioso"; +$a->strings["cranky"] = "irritabile"; +$a->strings["disturbed"] = "turbato"; +$a->strings["frustrated"] = "frustrato"; +$a->strings["motivated"] = "motivato"; +$a->strings["relaxed"] = "rilassato"; +$a->strings["surprised"] = "sorpreso"; +$a->strings["Monday"] = "lunedì"; +$a->strings["Tuesday"] = "martedì"; +$a->strings["Wednesday"] = "mercoledì"; +$a->strings["Thursday"] = "giovedì"; +$a->strings["Friday"] = "venerdì"; +$a->strings["Saturday"] = "sabato"; +$a->strings["Sunday"] = "domenica"; +$a->strings["January"] = "gennaio"; +$a->strings["February"] = "febbraio"; +$a->strings["March"] = "marzo"; +$a->strings["April"] = "aprile"; +$a->strings["May"] = "maggio"; +$a->strings["June"] = "giugno"; +$a->strings["July"] = "luglio"; +$a->strings["August"] = "agosto"; +$a->strings["September"] = "settembre"; +$a->strings["October"] = "ottobre"; +$a->strings["November"] = "novembre"; +$a->strings["December"] = "dicembre"; +$a->strings["unknown.???"] = "sconosciuto???"; +$a->strings["bytes"] = "byte"; +$a->strings["remove category"] = "rimuovi la categoria"; +$a->strings["remove from file"] = "rimuovi dal file"; +$a->strings["Click to open/close"] = "Clicca per aprire/chiudere"; +$a->strings["link to source"] = "Link all'originale"; +$a->strings["Select a page layout: "] = "Scegli il layout della pagina:"; +$a->strings["default"] = "predefinito"; +$a->strings["Page content type: "] = "Contenuto della pagina:"; +$a->strings["Select an alternate language"] = "Seleziona una lingua diversa"; +$a->strings["photo"] = "la foto"; +$a->strings["event"] = "l'evento"; +$a->strings["status"] = "il messaggio di stato"; +$a->strings["comment"] = "il commento"; +$a->strings["activity"] = "l'attività"; +$a->strings["Design"] = "Design"; +$a->strings["Blocks"] = "Riquadri"; +$a->strings["Menus"] = "Menù"; +$a->strings["Layouts"] = "Layout"; +$a->strings["Pages"] = "Pagine"; $a->strings["Delete this item?"] = "Eliminare questo elemento?"; +$a->strings["Comment"] = "Commento"; +$a->strings["show more"] = "mostra tutto"; $a->strings["show fewer"] = "riduci"; $a->strings["Password too short"] = "Password troppo corta"; $a->strings["Passwords do not match"] = "Le password non corrispondono"; @@ -215,10 +234,67 @@ $a->strings["[no subject]"] = "[nessun titolo]"; $a->strings["Unable to determine sender."] = "Impossibile determinare il mittente."; $a->strings["Stored post could not be verified."] = "Non è stato possibile verificare l'articolo inserito."; $a->strings["Profile Photos"] = "Foto del profilo"; -$a->strings["Public Timeline"] = "Diario pubblico"; $a->strings["view full size"] = "guarda nelle dimensioni reali"; +$a->strings["Unable to obtain identity information from database"] = "Impossibile ottenere le informazioni di identificazione dal database"; +$a->strings["Empty name"] = "Nome vuoto"; +$a->strings["Name too long"] = "Nome troppo lungo"; +$a->strings["No account identifier"] = "Account senza identificativo"; +$a->strings["Nickname is required."] = "Il nome dell'account è obbligatorio."; +$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Il nome dell'account è già in uso oppure ha dei caratteri non supportati."; +$a->strings["Unable to retrieve created identity"] = "Impossibile caricare l'identità creata"; +$a->strings["Default Profile"] = "Profilo predefinito"; +$a->strings["Friends"] = "Amici"; +$a->strings["Requested channel is not available."] = "Il canale che cerchi non è disponibile."; +$a->strings[" Sorry, you don't have the permission to view this profile. "] = "Purtroppo non hai il permesso di vedere questo profilo."; +$a->strings["Requested profile is not available."] = "Il profilo richiesto non è disponibile."; +$a->strings["Change profile photo"] = "Cambia la foto del profilo"; +$a->strings["Profiles"] = "Profili"; +$a->strings["Manage/edit profiles"] = "Gestisci/modifica i profili"; +$a->strings["Create New Profile"] = "Crea un nuovo profilo"; +$a->strings["Edit Profile"] = "Modifica il profilo"; +$a->strings["Profile Image"] = "Immagine del profilo"; +$a->strings["visible to everybody"] = "visibile a tutti"; +$a->strings["Edit visibility"] = "Cambia la visibilità"; +$a->strings["Gender:"] = "Sesso:"; +$a->strings["Status:"] = "Stato:"; +$a->strings["Homepage:"] = "Home page:"; +$a->strings["g A l F d"] = "g A l d F"; +$a->strings["F d"] = "d F"; +$a->strings["[today]"] = "[oggi]"; +$a->strings["Birthday Reminders"] = "Promemoria compleanni"; +$a->strings["Birthdays this week:"] = "Compleanni questa settimana:"; +$a->strings["[No description]"] = "[Nessuna descrizione]"; +$a->strings["Event Reminders"] = "Promemoria"; +$a->strings["Events this week:"] = "Eventi di questa settimana:"; +$a->strings["Profile"] = "Profilo"; +$a->strings["Full Name:"] = "Nome completo:"; +$a->strings["j F, Y"] = "j F Y"; +$a->strings["j F"] = "j F"; +$a->strings["Birthday:"] = "Compleanno:"; +$a->strings["Age:"] = "Età:"; +$a->strings["for %1\$d %2\$s"] = "per %1\$d %2\$s"; +$a->strings["Sexual Preference:"] = "Preferenze sessuali:"; +$a->strings["Hometown:"] = "Città dove vivo:"; +$a->strings["Tags:"] = "Tag:"; +$a->strings["Political Views:"] = "Orientamento politico:"; +$a->strings["Religion:"] = "Religione:"; +$a->strings["About:"] = "Informazioni:"; +$a->strings["Hobbies/Interests:"] = "Interessi e hobby:"; +$a->strings["Likes:"] = "Mi piace:"; +$a->strings["Dislikes:"] = "Non mi piace:"; +$a->strings["Contact information and Social Networks:"] = "Contatti e social network:"; +$a->strings["My other channels:"] = "I miei altri canali:"; +$a->strings["Musical interests:"] = "Gusti musicali:"; +$a->strings["Books, literature:"] = "Libri, letteratura:"; +$a->strings["Television:"] = "Televisione:"; +$a->strings["Film/dance/culture/entertainment:"] = "Film, danza, cultura, intrattenimento:"; +$a->strings["Love/Romance:"] = "Amore:"; +$a->strings["Work/employment:"] = "Lavoro:"; +$a->strings["School/education:"] = "Scuola:"; +$a->strings["Edit File properties"] = "Modifica le proprietà dei file"; $a->strings["Image/photo"] = "Immagine"; $a->strings["Encrypted content"] = "Contenuto crittografato"; +$a->strings["QR code"] = "QR code"; $a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s ha scritto %2\$s seguente %3\$s"; $a->strings["post"] = "l'articolo"; $a->strings["$1 wrote:"] = "$1 ha scritto:"; @@ -233,9 +309,8 @@ $a->strings["Web Pages"] = "Pagine web"; $a->strings["Provide managed web pages on your channel"] = "Attiva la creazione di pagine web sul tuo canale"; $a->strings["Private Notes"] = "Note private"; $a->strings["Enables a tool to store notes and reminders"] = "Abilita il riquadro per scrivere annotazioni"; -$a->strings["Enhanced Photo Albums"] = "Album fotografici avanzati"; -$a->strings["Enable photo album with enhanced features"] = "Abilita gli album fotografici con funzionalità avanzate"; $a->strings["Extended Identity Sharing"] = "Condivisione avanzata dell'identità"; +$a->strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Rendi nota la tua identità a tutti i siti internet. Se disabilitato, la tua identità sarà comunicata solo ai siti red matrix."; $a->strings["Expert Mode"] = "Modalità esperto"; $a->strings["Enable Expert Mode to provide advanced configuration options"] = "Abilita la modalità esperto per vedere le opzioni di configurazione avanzate"; $a->strings["Premium Channel"] = "Canale premium"; @@ -248,12 +323,13 @@ $a->strings["Allow previewing posts and comments before publishing them"] = "Abi $a->strings["Channel Sources"] = "Sorgenti del canale"; $a->strings["Automatically import channel content from other channels or feeds"] = "Importa automaticamente il contenuto del canale da altri canali o feed"; $a->strings["Even More Encryption"] = "Crittografia addizionale"; -$a->strings["Allow encryption of content end-to-end with a shared secret key"] = "Abilita la crittografia dei contenuti tra il mittente e i destinatari con una chiave segreta"; +$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Rendi possibile la crittografia dei contenuti tra mittente e destinatari con una chiave segreta"; $a->strings["Network and Stream Filtering"] = "Filtraggio dei contenuti"; $a->strings["Search by Date"] = "Ricerca per data"; $a->strings["Ability to select posts by date ranges"] = "Per selezionare gli articoli in un intervallo tra date"; $a->strings["Collections Filter"] = "Filtra per insiemi di canali"; $a->strings["Enable widget to display Network posts only from selected collections"] = "Mostra il riquadro per filtrare gli articoli di certi insiemi di canali"; +$a->strings["Saved Searches"] = "Ricerche salvate"; $a->strings["Save search terms for re-use"] = "Salva i termini delle ricerche per poterle ripetere"; $a->strings["Network Personal Tab"] = "Attività personale"; $a->strings["Enable tab to display only Network posts that you've interacted on"] = "Abilita il link per mostrare solamente i contenuti con cui hai interagito"; @@ -270,6 +346,7 @@ $a->strings["Tagging"] = "Tag"; $a->strings["Ability to tag existing posts"] = "Permetti l'aggiunta di tag su articoli già esistenti"; $a->strings["Post Categories"] = "Categorie degli articoli"; $a->strings["Add categories to your posts"] = "Abilita le categorie per i tuoi articoli"; +$a->strings["Saved Folders"] = "Cartelle salvate"; $a->strings["Ability to file posts under folders"] = "Abilita la raccolta dei tuoi articoli in cartelle"; $a->strings["Dislike Posts"] = "Non mi piace"; $a->strings["Ability to dislike posts/comments"] = "Abilità la funzionalità \"non mi piace\" per i tuoi articoli"; @@ -277,6 +354,15 @@ $a->strings["Star Posts"] = "Articoli stella (preferiti)"; $a->strings["Ability to mark special posts with a star indicator"] = "Mostra la stella per scegliere gli articoli preferiti"; $a->strings["Tag Cloud"] = "Nuvola di tag"; $a->strings["Provide a personal tag cloud on your channel page"] = "Mostra la nuvola dei tag che usi di più sulla pagina del tuo canale"; +$a->strings["A deleted group with this name was revived. Existing item permissions may apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "È stato ripristinato un insieme con lo stesso nome che era stato eliminato in precedenza. I permessi già presenti potrebbero rimanere validi per i nuovi canali. Se non vuoi che ciò accada, devi creare un altro insieme con un nome diverso."; +$a->strings["Default privacy group for new contacts"] = "Insieme predefinito per i nuovi canali che aggiungi"; +$a->strings["All Channels"] = "Tutti i canali"; +$a->strings["edit"] = "modifica"; +$a->strings["Collections"] = "Insiemi di canali"; +$a->strings["Edit collection"] = "Modifica l'insieme di canali"; +$a->strings["Create a new collection"] = "Crea un nuovo insieme"; +$a->strings["Channels not in any collection"] = "Canali che non sono in un insieme"; +$a->strings["add"] = "aggiungi"; $a->strings["created a new post"] = "Ha creato un nuovo articolo"; $a->strings["commented on %s's post"] = "ha commentato l'articolo di %s"; $a->strings["Permission denied."] = "Permesso negato."; @@ -357,75 +443,19 @@ $a->strings["duplicate filename or path"] = "il file o percorso del file è dupl $a->strings["Path not found."] = "Percorso del file non trovato."; $a->strings["mkdir failed."] = "mkdir fallito."; $a->strings["database storage failed."] = "scrittura su database fallita."; -$a->strings["Invalid data packet"] = "Dati non validi"; -$a->strings["Unable to verify channel signature"] = "Impossibile verificare la firma elettronica del canale"; -$a->strings["Unable to verify site signature for %s"] = "Impossibile verificare la firma elettronica del sito %s"; -$a->strings["Logout"] = "Esci"; -$a->strings["End this session"] = "Chiudi questa sessione"; -$a->strings["Home"] = "Bacheca"; -$a->strings["Your posts and conversations"] = "I tuoi articoli e conversazioni"; -$a->strings["View Profile"] = "Profilo"; -$a->strings["Your profile page"] = "Il tuo profilo"; -$a->strings["Edit Profiles"] = "Modifica i profili"; -$a->strings["Manage/Edit Profiles"] = "Gestisci e modifica i profili"; -$a->strings["Photos"] = "Foto"; -$a->strings["Your photos"] = "Le tue foto"; -$a->strings["Login"] = "Accedi"; -$a->strings["Sign in"] = "Entra"; -$a->strings["%s - click to logout"] = "%s - clicca per uscire"; -$a->strings["Click to authenticate to your home hub"] = "Clicca per autenticarti sul tuo server principale"; -$a->strings["Home Page"] = "Bacheca"; -$a->strings["Register"] = "Iscriviti"; -$a->strings["Create an account"] = "Crea un account"; -$a->strings["Help"] = "Guida"; -$a->strings["Help and documentation"] = "Guida e documentazione"; -$a->strings["Apps"] = "Apps"; -$a->strings["Addon applications, utilities, games"] = "App, strumenti e giochi aggiuntivi"; -$a->strings["Search"] = "Cerca"; -$a->strings["Search site content"] = "Cerca nel sito"; -$a->strings["Directory"] = "Tutti i canali"; -$a->strings["Channel Locator"] = "Ricerca canali"; -$a->strings["Matrix"] = "La tua rete"; -$a->strings["Your matrix"] = "La tua rete"; -$a->strings["Mark all matrix notifications seen"] = "Segna come lette le notifiche della tua rete"; -$a->strings["Channel Home"] = "Bacheca del canale"; -$a->strings["Channel home"] = "Bacheca del canale"; -$a->strings["Mark all channel notifications seen"] = "Segna come lette le notifiche dei canali"; -$a->strings["Intros"] = "Richieste"; -$a->strings["New Connections"] = "Nuovi contatti"; -$a->strings["Notices"] = "Notifiche"; -$a->strings["Notifications"] = "Notifiche"; -$a->strings["See all notifications"] = "Vedi tutte le notifiche"; -$a->strings["Mark all system notifications seen"] = "Segna come lette le notifiche di sistema"; -$a->strings["Mail"] = "Messaggi"; -$a->strings["Private mail"] = "Messaggi privati"; -$a->strings["See all private messages"] = "Guarda tutti i messaggi privati"; -$a->strings["Mark all private messages seen"] = "Segna come letti tutti i messaggi privati"; -$a->strings["Inbox"] = "In arrivo"; -$a->strings["Outbox"] = "Inviati"; -$a->strings["New Message"] = "Nuovo messaggio"; -$a->strings["Events"] = "Eventi"; -$a->strings["Event Calendar"] = "Calendario"; -$a->strings["See all events"] = "Guarda tutti gli eventi"; -$a->strings["Mark all events seen"] = "Marca come letti tutti gli eventi"; -$a->strings["Channel Select"] = "Gestisci i canali"; -$a->strings["Manage Your Channels"] = "Gestisci i contatti dei tuoi canali"; -$a->strings["Settings"] = "Impostazioni"; -$a->strings["Account/Channel Settings"] = "Impostazioni account e canali"; -$a->strings["Connections"] = "Contatti"; -$a->strings["Manage/Edit Friends and Connections"] = "Modifica amici e contatti"; -$a->strings["Admin"] = "Amministrazione"; -$a->strings["Site Setup and Configuration"] = "Configurazione del sito"; -$a->strings["Nothing new here"] = "Niente di nuovo qui"; -$a->strings["Please wait..."] = "Attendere..."; $a->strings["Tags"] = "Tag"; $a->strings["Keywords"] = "Parole chiave"; $a->strings["have"] = "ho"; $a->strings["has"] = "ha"; $a->strings["want"] = "voglio"; $a->strings["wants"] = "vuole"; +$a->strings["like"] = "mi piace"; $a->strings["likes"] = "ama"; +$a->strings["dislike"] = "non mi piace"; $a->strings["dislikes"] = "non ama"; +$a->strings["Logged out."] = "Uscita effettuata."; +$a->strings["Failed authentication"] = "Autenticazione fallita"; +$a->strings["Login failed."] = "Accesso fallito."; $a->strings["Not a valid email address"] = "Email non valida"; $a->strings["Your email domain is not among those allowed on this site"] = "Il dominio della tua email attualmente non è permesso su questo sito"; $a->strings["Your email address is already registered at this site."] = "La tua email è già registrata su questo sito."; @@ -439,102 +469,81 @@ $a->strings["your registration password"] = "la password di registrazione"; $a->strings["Registration details for %s"] = "Dettagli della registrazione di %s"; $a->strings["Account approved."] = "Account approvato."; $a->strings["Registration revoked for %s"] = "Registrazione revocata per %s"; -$a->strings["photo"] = "la foto"; -$a->strings["event"] = "l'evento"; -$a->strings["channel"] = "canale"; -$a->strings["status"] = "il messaggio di stato"; -$a->strings["comment"] = "il commento"; -$a->strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s piace %3\$s di %2\$s"; -$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s non piace %3\$s di %2\$s"; -$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s adesso è connesso con %2\$s"; -$a->strings["%1\$s poked %2\$s"] = "%1\$s ha mandato un poke a %2\$s"; -$a->strings["poked"] = "ha ricevuto un poke"; -$a->strings["%1\$s is currently %2\$s"] = "%1\$s al momento è %2\$s"; -$a->strings["View %s's profile @ %s"] = "Vedi il profilo di %s @ %s"; -$a->strings["Categories:"] = "Categorie:"; -$a->strings["Filed under:"] = "Classificato come:"; -$a->strings["View in context"] = "Vedi nel contesto"; -$a->strings["remove"] = "rimuovi"; -$a->strings["Loading..."] = "Caricamento in corso..."; -$a->strings["Delete Selected Items"] = "Elimina gli oggetti selezionati"; -$a->strings["View Source"] = "Vedi il sorgente"; -$a->strings["Follow Thread"] = "Segui la discussione"; -$a->strings["View Status"] = "Guarda il messaggio di stato"; -$a->strings["View Photos"] = "Guarda le foto"; -$a->strings["Matrix Activity"] = "Attività nella tua rete"; -$a->strings["Edit Contact"] = "Modifica il contatto"; -$a->strings["Send PM"] = "Invia messaggio privato"; -$a->strings["Poke"] = "Poke"; -$a->strings["%s likes this."] = "Piace a %s."; -$a->strings["%s doesn't like this."] = "Non piace a %s."; -$a->strings["%2\$d people like this."] = array( - 0 => "", - 1 => "Piace a %2\$d persone.", -); -$a->strings["%2\$d people don't like this."] = array( - 0 => "", - 1 => "Non piace a %2\$d persone.", -); -$a->strings["and"] = "e"; -$a->strings[", and %d other people"] = array( - 0 => "", - 1 => "e altre %d persone", -); -$a->strings["%s like this."] = "Piace a %s."; -$a->strings["%s don't like this."] = "Non piace a %s."; -$a->strings["Visible to everybody"] = "Visibile a tutti"; -$a->strings["Please enter a link URL:"] = "Inserisci l'indirizzo del link:"; -$a->strings["Please enter a video link/URL:"] = "Inserisci l'indirizzo del video:"; -$a->strings["Please enter an audio link/URL:"] = "Inserisci l'indirizzo dell'audio:"; -$a->strings["Tag term:"] = "Tag:"; -$a->strings["Save to Folder:"] = "Salva nella cartella:"; -$a->strings["Where are you right now?"] = "Dove sei ora?"; -$a->strings["Expires YYYY-MM-DD HH:MM"] = "Scadenza il AAAA-MM-GG OO:MM"; -$a->strings["Share"] = "Condividi"; -$a->strings["Page link title"] = "Link del titolo"; -$a->strings["Upload photo"] = "Carica foto"; -$a->strings["upload photo"] = "carica foto"; -$a->strings["Attach file"] = "Allega file"; -$a->strings["attach file"] = "allega file"; -$a->strings["Insert web link"] = "Inserisci un indirizzo web"; -$a->strings["web link"] = "link web"; -$a->strings["Insert video link"] = "Inserisci l'indirizzo di un video"; -$a->strings["video link"] = "link video"; -$a->strings["Insert audio link"] = "Inserisci l'indirizzo di un audio"; -$a->strings["audio link"] = "link audio"; -$a->strings["Set your location"] = "La tua località"; -$a->strings["set location"] = "la tua località"; -$a->strings["Clear browser location"] = "Rimuovi la località data dal browser"; -$a->strings["clear location"] = "rimuovi la località"; -$a->strings["Set title"] = "Scegli un titolo"; -$a->strings["Categories (comma-separated list)"] = "Categorie (separate da virgola)"; -$a->strings["Permission settings"] = "Impostazioni permessi"; -$a->strings["permissions"] = "permessi"; -$a->strings["Public post"] = "Articolo pubblico"; -$a->strings["Example: bob@example.com, mary@example.com"] = "Per esempio: mario@esempio.com, simona@esempio.com"; -$a->strings["Set expiration date"] = "Data di scadenza"; -$a->strings["Commented Order"] = "Ultimi commenti"; -$a->strings["Sort by Comment Date"] = "Per data del commento"; -$a->strings["Posted Order"] = "Ultimi articoli"; -$a->strings["Sort by Post Date"] = "Per data di creazione"; -$a->strings["Personal"] = "Personali"; -$a->strings["Posts that mention or involve you"] = "Articoli che ti riguardano o ti menzionano"; -$a->strings["New"] = "Novità"; -$a->strings["Activity Stream - by date"] = "Elenco attività - per data"; -$a->strings["Starred"] = "Preferiti"; -$a->strings["Favourite Posts"] = "Articoli preferiti"; -$a->strings["Spam"] = "Spam"; -$a->strings["Posts flagged as SPAM"] = "Articoli marcati come spam"; -$a->strings["Channel"] = "Canale"; -$a->strings["Status Messages and Posts"] = "Articoli e messaggi di stato"; -$a->strings["About"] = "Informazioni"; -$a->strings["Profile Details"] = "Dettagli del profilo"; -$a->strings["Events and Calendar"] = "Calendario eventi"; -$a->strings["Webpages"] = "Pagine web"; -$a->strings["Manage Webpages"] = "Gestisci le pagine web"; -$a->strings["Logged out."] = "Uscita effettuata."; -$a->strings["Failed authentication"] = "Autenticazione fallita"; -$a->strings["Login failed."] = "Accesso fallito."; +$a->strings["Sort Options"] = "Opzioni di ordinamento"; +$a->strings["Alphabetic"] = "Alfabetico"; +$a->strings["Reverse Alphabetic"] = "Alfabetico inverso"; +$a->strings["Newest to Oldest"] = "Dal più nuovo al più vecchio"; +$a->strings["Enable Safe Search"] = "Abilita SafeSearch"; +$a->strings["Disable Safe Search"] = "Disabilita SafeSearch"; +$a->strings["Safe Mode"] = "Modalità SafeSearch"; +$a->strings["Red Matrix Notification"] = "Notifica di Red Matrix"; +$a->strings["redmatrix"] = "redmatrix"; +$a->strings["Thank You,"] = "Grazie,"; +$a->strings["%s Administrator"] = "Amministratore %s"; +$a->strings["%s "] = "%s "; +$a->strings["[Red:Notify] New mail received at %s"] = "[Red:Notifica] Nuovo messaggio ricevuto alle %s"; +$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s ti ha mandato un messaggio privato alle %3\$s."; +$a->strings["%1\$s sent you %2\$s."] = "%1\$s ti ha mandato %2\$s."; +$a->strings["a private message"] = "un messaggio privato"; +$a->strings["Please visit %s to view and/or reply to your private messages."] = "Visita %s per leggere i tuoi messaggi privati e rispondere."; +$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%4\$s[/zrl]"; +$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%5\$s di %4\$s[/zrl]"; +$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%4\$s che hai creato[/zrl]"; +$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Notifica] Nuovo commento di %2\$s alla conversazione #%1\$d"; +$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s ha commentato un elemento che stavi seguendo."; +$a->strings["Please visit %s to view and/or reply to the conversation."] = "Visita %s per leggere o commentare la conversazione."; +$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Notifica] %s ha scritto sulla tua bacheca"; +$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s ha scritto sulla bacheca del tuo profilo alle %3\$s"; +$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s ha scritto sulla [zrl=%3\$s]tua bacheca[/zrl]"; +$a->strings["[Red:Notify] %s tagged you"] = "[Red:Notifica] %s ti ha taggato"; +$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s ti ha taggato alle %3\$s"; +$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]ti ha taggato[/zrl]."; +$a->strings["[Red:Notify] %1\$s poked you"] = "[Red:Notifica] %1\$s ti ha mandato un poke"; +$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s ti ha mandato un poke alle %3\$s"; +$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]ti ha mandato un poke[/zrl]."; +$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Notifica] %s ha taggato il tuo articolo"; +$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s ha taggato il tuo articolo alle %3\$s"; +$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s ha taggato [zrl=%3\$s]il tuo articolo[/zrl]"; +$a->strings["[Red:Notify] Introduction received"] = "[Red:Notifica] Hai una richiesta di amicizia"; +$a->strings["%1\$s, you've received an introduction from '%2\$s' at %3\$s"] = "%1\$s, hai ricevuto una richiesta di contatto da '%2\$s' alle %3\$s"; +$a->strings["%1\$s, you've received [zrl=%2\$s]an introduction[/zrl] from %3\$s."] = "%1\$s, hai ricevuto [zrl=%2\$s]una richiesta di amicizia[/zrl] da %3\$s."; +$a->strings["You may visit their profile at %s"] = "Puoi visitare il suo profilo su %s"; +$a->strings["Please visit %s to approve or reject the introduction."] = "Visita %s per approvare o rifiutare la richiesta."; +$a->strings["[Red:Notify] Friend suggestion received"] = "[Red:Notifica] Ti è stato suggerito un amico"; +$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, ti è stato suggerito un amico da '%2\$s' alle %3\$s"; +$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, %4\$s ti [zrl=%2\$s]ha suggerito %3\$s[/zrl] come amico."; +$a->strings["Name:"] = "Nome:"; +$a->strings["Photo:"] = "Foto:"; +$a->strings["Please visit %s to approve or reject the suggestion."] = "Visita %s per approvare o rifiutare il suggerimento."; +$a->strings["Categories"] = "Categorie"; +$a->strings["Ignore/Hide"] = "Ignora/nascondi"; +$a->strings["Suggestions"] = "Suggerimenti"; +$a->strings["See more..."] = "Altro..."; +$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Hai attivato %1$.0f delle %2$.0f connessioni permesse."; +$a->strings["Add New Connection"] = "Aggiungi un contatto"; +$a->strings["Enter the channel address"] = "Scrivi l'indirizzo del canale"; +$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Per esempio: mario@pippo.it oppure http://pluto.com/barbara"; +$a->strings["Notes"] = "Note"; +$a->strings["Remove term"] = "Rimuovi termine"; +$a->strings["Everything"] = "Tutto"; +$a->strings["Archives"] = "Archivi"; +$a->strings["Refresh"] = "Aggiorna"; +$a->strings["Me"] = "Io"; +$a->strings["Best Friends"] = "Buoni amici"; +$a->strings["Co-workers"] = "Colleghi"; +$a->strings["Former Friends"] = "Ex amici"; +$a->strings["Acquaintances"] = "Conoscenti"; +$a->strings["Everybody"] = "Tutti"; +$a->strings["Account settings"] = "Impostazioni dell'account"; +$a->strings["Channel settings"] = "Impostazioni del canale"; +$a->strings["Additional features"] = "Funzionalità aggiuntive"; +$a->strings["Feature settings"] = "Impostazioni aggiuntive"; +$a->strings["Display settings"] = "Impostazioni grafiche"; +$a->strings["Connected apps"] = "App connesse"; +$a->strings["Export channel"] = "Esporta il canale"; +$a->strings["Automatic Permissions (Advanced)"] = "Permessi predefiniti (avanzato)"; +$a->strings["Premium Channel Settings"] = "Canale premium - impostazioni"; +$a->strings["Check Mail"] = "Controlla i messaggi"; $a->strings["%d invitation available"] = array( 0 => "%d invito disponibile", 1 => "%d inviti disponibili", @@ -552,84 +561,7 @@ $a->strings["%d connection in common"] = array( 1 => "%d contatti in comune", ); $a->strings["New Page"] = "Nuova pagina web"; -$a->strings["prev"] = "prec"; -$a->strings["first"] = "inizio"; -$a->strings["last"] = "fine"; -$a->strings["next"] = "succ"; -$a->strings["older"] = "più recenti"; -$a->strings["newer"] = "più nuovi"; -$a->strings["No connections"] = "Nessun contatto"; -$a->strings["%d Connection"] = array( - 0 => "%d contatto", - 1 => "%d contatti", -); -$a->strings["View Connections"] = "Elenco contatti"; -$a->strings["poke"] = "poke"; -$a->strings["ping"] = "ping"; -$a->strings["pinged"] = "ha ricevuto un ping"; -$a->strings["prod"] = "prod"; -$a->strings["prodded"] = "ha ricevuto un prod"; -$a->strings["slap"] = "schiaffo"; -$a->strings["slapped"] = "ha ricevuto uno schiaffo"; -$a->strings["finger"] = "finger"; -$a->strings["fingered"] = "ha ricevuto un finger"; -$a->strings["rebuff"] = "rifiuto"; -$a->strings["rebuffed"] = "ha ricevuto un rifiuto"; -$a->strings["happy"] = "allegro"; -$a->strings["sad"] = "triste"; -$a->strings["mellow"] = "calmo"; -$a->strings["tired"] = "stanco"; -$a->strings["perky"] = "vivace"; -$a->strings["angry"] = "arrabbiato"; -$a->strings["stupified"] = "stordito"; -$a->strings["puzzled"] = "confuso"; -$a->strings["interested"] = "attento"; -$a->strings["bitter"] = "amaro"; -$a->strings["cheerful"] = "allegro"; -$a->strings["alive"] = "vivace"; -$a->strings["annoyed"] = "seccato"; -$a->strings["anxious"] = "ansioso"; -$a->strings["cranky"] = "irritabile"; -$a->strings["disturbed"] = "turbato"; -$a->strings["frustrated"] = "frustrato"; -$a->strings["motivated"] = "motivato"; -$a->strings["relaxed"] = "rilassato"; -$a->strings["surprised"] = "sorpreso"; -$a->strings["Monday"] = "lunedì"; -$a->strings["Tuesday"] = "martedì"; -$a->strings["Wednesday"] = "mercoledì"; -$a->strings["Thursday"] = "giovedì"; -$a->strings["Friday"] = "venerdì"; -$a->strings["Saturday"] = "sabato"; -$a->strings["Sunday"] = "domenica"; -$a->strings["January"] = "gennaio"; -$a->strings["February"] = "febbraio"; -$a->strings["March"] = "marzo"; -$a->strings["April"] = "aprile"; -$a->strings["May"] = "maggio"; -$a->strings["June"] = "giugno"; -$a->strings["July"] = "luglio"; -$a->strings["August"] = "agosto"; -$a->strings["September"] = "settembre"; -$a->strings["October"] = "ottobre"; -$a->strings["November"] = "novembre"; -$a->strings["December"] = "dicembre"; -$a->strings["unknown.???"] = "sconosciuto???"; -$a->strings["bytes"] = "byte"; -$a->strings["remove category"] = "rimuovi la categoria"; -$a->strings["remove from file"] = "rimuovi dal file"; -$a->strings["Click to open/close"] = "Clicca per aprire/chiudere"; -$a->strings["link to source"] = "Link all'originale"; -$a->strings["Select a page layout: "] = "Scegli il layout della pagina:"; -$a->strings["default"] = "predefinito"; -$a->strings["Page content type: "] = "Contenuto della pagina:"; -$a->strings["Select an alternate language"] = "Seleziona una lingua diversa"; -$a->strings["activity"] = "l'attività"; -$a->strings["Design"] = "Design"; -$a->strings["Blocks"] = "Riquadri"; -$a->strings["Menus"] = "Menù"; -$a->strings["Layouts"] = "Layout"; -$a->strings["Pages"] = "Pagine"; +$a->strings["Edit"] = "Modifica"; $a->strings["Click here to upgrade."] = "Clicca qui per aggiornare."; $a->strings["This action exceeds the limits set by your subscription plan."] = "Questa operazione esce dai termini del tuo abbonamento."; $a->strings["This action is not available under your subscription plan."] = "Questa operazione non è prevista dal tuo abbonamento."; @@ -646,7 +578,7 @@ $a->strings["Can view my \"public\" photo albums"] = "Può vedere il mio album f $a->strings["Can view my \"public\" address book"] = "Può vedere il mio elenco contatti \"pubblico\""; $a->strings["Can view my \"public\" file storage"] = "Può vedere il mio archivio file \"pubblico\""; $a->strings["Can view my \"public\" pages"] = "Può vedere le mie pagine web \"pubbliche\""; -$a->strings["Can send me their channel stream and posts"] = "Seguo i contenuti e gli articoli del suo canale"; +$a->strings["Can send me their channel stream and posts"] = "È tra i canali che seguo"; $a->strings["Can post on my channel page (\"wall\")"] = "Può scrivere sulla bacheca del mio canale"; $a->strings["Can comment on my posts"] = "Può commentare i miei articoli"; $a->strings["Can send me private mail messages"] = "Può inviarmi messaggi privati"; @@ -662,64 +594,6 @@ $a->strings["Somewhat advanced - very useful in open communities"] = "Piuttosto $a->strings["Can administer my channel resources"] = "Può amministrare i contenuti del mio canale"; $a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Impostazione pericolosa - lasciare il valore predefinito se non si è assolutamente sicuri"; $a->strings["Default"] = "Predefinito"; -$a->strings["Unable to obtain identity information from database"] = "Impossibile ottenere le informazioni di identificazione dal database"; -$a->strings["Empty name"] = "Nome vuoto"; -$a->strings["Name too long"] = "Nome troppo lungo"; -$a->strings["No account identifier"] = "Account senza identificativo"; -$a->strings["Nickname is required."] = "Il nome dell'account è obbligatorio."; -$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Il nome dell'account è già in uso oppure ha dei caratteri non supportati."; -$a->strings["Unable to retrieve created identity"] = "Impossibile caricare l'identità creata"; -$a->strings["Default Profile"] = "Profilo predefinito"; -$a->strings["Requested channel is not available."] = "Il canale che cerchi non è disponibile."; -$a->strings[" Sorry, you don't have the permission to view this profile. "] = "Purtroppo non hai il permesso di vedere questo profilo."; -$a->strings["Requested profile is not available."] = "Il profilo richiesto non è disponibile."; -$a->strings["Change profile photo"] = "Cambia la foto del profilo"; -$a->strings["Profiles"] = "Profili"; -$a->strings["Manage/edit profiles"] = "Gestisci/modifica i profili"; -$a->strings["Create New Profile"] = "Crea un nuovo profilo"; -$a->strings["Edit Profile"] = "Modifica il profilo"; -$a->strings["Profile Image"] = "Immagine del profilo"; -$a->strings["visible to everybody"] = "visibile a tutti"; -$a->strings["Edit visibility"] = "Cambia la visibilità"; -$a->strings["Gender:"] = "Sesso:"; -$a->strings["Status:"] = "Stato:"; -$a->strings["Homepage:"] = "Home page:"; -$a->strings["g A l F d"] = "g A l d F"; -$a->strings["F d"] = "d F"; -$a->strings["[today]"] = "[oggi]"; -$a->strings["Birthday Reminders"] = "Promemoria compleanni"; -$a->strings["Birthdays this week:"] = "Compleanni questa settimana:"; -$a->strings["[No description]"] = "[Nessuna descrizione]"; -$a->strings["Event Reminders"] = "Promemoria"; -$a->strings["Events this week:"] = "Eventi di questa settimana:"; -$a->strings["Profile"] = "Profilo"; -$a->strings["Full Name:"] = "Nome completo:"; -$a->strings["j F, Y"] = "j F Y"; -$a->strings["j F"] = "j F"; -$a->strings["Birthday:"] = "Compleanno:"; -$a->strings["Age:"] = "Età:"; -$a->strings["for %1\$d %2\$s"] = "per %1\$d %2\$s"; -$a->strings["Sexual Preference:"] = "Preferenze sessuali:"; -$a->strings["Hometown:"] = "Città dove vivo:"; -$a->strings["Tags:"] = "Tag:"; -$a->strings["Political Views:"] = "Orientamento politico:"; -$a->strings["Religion:"] = "Religione:"; -$a->strings["About:"] = "Informazioni:"; -$a->strings["Hobbies/Interests:"] = "Interessi e hobby:"; -$a->strings["Likes:"] = "Mi piace:"; -$a->strings["Dislikes:"] = "Non mi piace:"; -$a->strings["Contact information and Social Networks:"] = "Contatti e social network:"; -$a->strings["Musical interests:"] = "Gusti musicali:"; -$a->strings["Books, literature:"] = "Libri, letteratura:"; -$a->strings["Television:"] = "Televisione:"; -$a->strings["Film/dance/culture/entertainment:"] = "Film, danza, cultura, intrattenimento:"; -$a->strings["Love/Romance:"] = "Amore:"; -$a->strings["Work/employment:"] = "Lavoro:"; -$a->strings["School/education:"] = "Scuola:"; -$a->strings["Welcome "] = "Ciao"; -$a->strings["Please upload a profile photo."] = "Carica una foto per il profilo!"; -$a->strings["Welcome back "] = "Ciao, è bello rivederti"; -$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "L'identificativo di sicurezza del modulo che hai riempito non è corretto. Probabilmente è accaduto perché la pagina è stata tenuta aperta troppo a lungo (ore?) prima di inviare il contenuto."; $a->strings["Permission denied"] = "Permesso negato"; $a->strings["Item not found."] = "Elemento non trovato."; $a->strings["Collection not found."] = "Insieme non trovato."; @@ -727,6 +601,144 @@ $a->strings["Collection is empty."] = "L'insieme di canali è vuoto."; $a->strings["Collection: %s"] = "Insieme: %s"; $a->strings["Connection: %s"] = "Contatto: %s"; $a->strings["Connection not found."] = "Contatto non trovato."; +$a->strings["Private Message"] = "Messaggio privato"; +$a->strings["Delete"] = "Elimina"; +$a->strings["Select"] = "Seleziona"; +$a->strings["save to folder"] = "salva in una cartella"; +$a->strings["add star"] = "aggiungi ai preferiti"; +$a->strings["remove star"] = "rimuovi dai preferiti"; +$a->strings["toggle star status"] = "Attiva/disattiva preferito"; +$a->strings["starred"] = "preferito"; +$a->strings["Message is verified"] = "Messaggio verificato"; +$a->strings["add tag"] = "Aggiungi tag"; +$a->strings["I like this (toggle)"] = "Attiva/disattiva Mi piace"; +$a->strings["I don't like this (toggle)"] = "Attiva/disattiva Non mi piace"; +$a->strings["Share this"] = "Condividi"; +$a->strings["share"] = "condividi"; +$a->strings["View %s's profile - %s"] = "Guarda il profilo di %s - %s"; +$a->strings["to"] = "a"; +$a->strings["via"] = "via"; +$a->strings["Wall-to-Wall"] = "Da bacheca a bacheca"; +$a->strings["via Wall-To-Wall:"] = "da bacheca a bacheca:"; +$a->strings[" from %s"] = " da %s"; +$a->strings["last edited: %s"] = "ultima modifica: %s"; +$a->strings["Expires: %s"] = "Scadenza: %s"; +$a->strings["Please wait"] = "Attendere"; +$a->strings["%d comment"] = array( + 0 => "%d commento", + 1 => "%d commenti", +); +$a->strings["This is you"] = "Questo sei tu"; +$a->strings["Submit"] = "Salva"; +$a->strings["Bold"] = "Grassetto"; +$a->strings["Italic"] = "Corsivo"; +$a->strings["Underline"] = "Sottolineato"; +$a->strings["Quote"] = "Citazione"; +$a->strings["Code"] = "Codice"; +$a->strings["Image"] = "Immagine"; +$a->strings["Link"] = "Link"; +$a->strings["Video"] = "Video"; +$a->strings["Preview"] = "Anteprima"; +$a->strings["Encrypt text"] = "Crittografia del testo"; +$a->strings["Welcome "] = "Ciao"; +$a->strings["Please upload a profile photo."] = "Carica una foto per il profilo!"; +$a->strings["Welcome back "] = "Ciao, è bello rivederti"; +$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "L'identificativo di sicurezza del modulo che hai riempito non è corretto. Probabilmente è accaduto perché la pagina è stata tenuta aperta troppo a lungo (ore?) prima di inviare il contenuto."; +$a->strings["channel"] = "canale"; +$a->strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s piace %3\$s di %2\$s"; +$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s non piace %3\$s di %2\$s"; +$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s adesso è connesso con %2\$s"; +$a->strings["%1\$s poked %2\$s"] = "%1\$s ha mandato un poke a %2\$s"; +$a->strings["%1\$s is currently %2\$s"] = "%1\$s al momento è %2\$s"; +$a->strings["View %s's profile @ %s"] = "Vedi il profilo di %s @ %s"; +$a->strings["Categories:"] = "Categorie:"; +$a->strings["Filed under:"] = "Classificato come:"; +$a->strings["View in context"] = "Vedi nel contesto"; +$a->strings["remove"] = "rimuovi"; +$a->strings["Loading..."] = "Caricamento in corso..."; +$a->strings["Delete Selected Items"] = "Elimina gli oggetti selezionati"; +$a->strings["View Source"] = "Vedi il sorgente"; +$a->strings["Follow Thread"] = "Segui la discussione"; +$a->strings["View Status"] = "Guarda il messaggio di stato"; +$a->strings["View Photos"] = "Guarda le foto"; +$a->strings["Matrix Activity"] = "Attività nella tua rete"; +$a->strings["Edit Contact"] = "Modifica il contatto"; +$a->strings["Send PM"] = "Invia messaggio privato"; +$a->strings["Poke"] = "Poke"; +$a->strings["%s likes this."] = "Piace a %s."; +$a->strings["%s doesn't like this."] = "Non piace a %s."; +$a->strings["%2\$d people like this."] = array( + 0 => "", + 1 => "Piace a %2\$d persone.", +); +$a->strings["%2\$d people don't like this."] = array( + 0 => "", + 1 => "Non piace a %2\$d persone.", +); +$a->strings["and"] = "e"; +$a->strings[", and %d other people"] = array( + 0 => "", + 1 => "e altre %d persone", +); +$a->strings["%s like this."] = "Piace a %s."; +$a->strings["%s don't like this."] = "Non piace a %s."; +$a->strings["Visible to everybody"] = "Visibile a tutti"; +$a->strings["Please enter a link URL:"] = "Inserisci l'indirizzo del link:"; +$a->strings["Please enter a video link/URL:"] = "Inserisci l'indirizzo del video:"; +$a->strings["Please enter an audio link/URL:"] = "Inserisci l'indirizzo dell'audio:"; +$a->strings["Tag term:"] = "Tag:"; +$a->strings["Save to Folder:"] = "Salva nella cartella:"; +$a->strings["Where are you right now?"] = "Dove sei ora?"; +$a->strings["Expires YYYY-MM-DD HH:MM"] = "Scadenza il AAAA-MM-GG OO:MM"; +$a->strings["Share"] = "Condividi"; +$a->strings["Page link title"] = "Link del titolo"; +$a->strings["Upload photo"] = "Carica foto"; +$a->strings["upload photo"] = "carica foto"; +$a->strings["Attach file"] = "Allega file"; +$a->strings["attach file"] = "allega file"; +$a->strings["Insert web link"] = "Inserisci un indirizzo web"; +$a->strings["web link"] = "link web"; +$a->strings["Insert video link"] = "Inserisci l'indirizzo di un video"; +$a->strings["video link"] = "link video"; +$a->strings["Insert audio link"] = "Inserisci l'indirizzo di un audio"; +$a->strings["audio link"] = "link audio"; +$a->strings["Set your location"] = "La tua località"; +$a->strings["set location"] = "la tua località"; +$a->strings["Clear browser location"] = "Rimuovi la località data dal browser"; +$a->strings["clear location"] = "rimuovi la località"; +$a->strings["Set title"] = "Scegli un titolo"; +$a->strings["Categories (comma-separated list)"] = "Categorie (separate da virgola)"; +$a->strings["Permission settings"] = "Impostazioni permessi"; +$a->strings["permissions"] = "permessi"; +$a->strings["Public post"] = "Articolo pubblico"; +$a->strings["Example: bob@example.com, mary@example.com"] = "Per esempio: mario@esempio.com, simona@esempio.com"; +$a->strings["Set expiration date"] = "Data di scadenza"; +$a->strings["OK"] = "OK"; +$a->strings["Cancel"] = "Annulla"; +$a->strings["Commented Order"] = "Ultimi commenti"; +$a->strings["Sort by Comment Date"] = "Per data del commento"; +$a->strings["Posted Order"] = "Ultimi articoli"; +$a->strings["Sort by Post Date"] = "Per data di creazione"; +$a->strings["Personal"] = "Personali"; +$a->strings["Posts that mention or involve you"] = "Articoli che ti riguardano o ti menzionano"; +$a->strings["New"] = "Novità"; +$a->strings["Activity Stream - by date"] = "Elenco attività - per data"; +$a->strings["Starred"] = "Preferiti"; +$a->strings["Favourite Posts"] = "Articoli preferiti"; +$a->strings["Spam"] = "Spam"; +$a->strings["Posts flagged as SPAM"] = "Articoli marcati come spam"; +$a->strings["Channel"] = "Canale"; +$a->strings["Status Messages and Posts"] = "Articoli e messaggi di stato"; +$a->strings["About"] = "Informazioni"; +$a->strings["Profile Details"] = "Dettagli del profilo"; +$a->strings["Files"] = "Elenco file"; +$a->strings["Files and Storage"] = "Archivio file"; +$a->strings["Events and Calendar"] = "Calendario eventi"; +$a->strings["Webpages"] = "Pagine web"; +$a->strings["Manage Webpages"] = "Gestisci le pagine web"; +$a->strings["Invalid data packet"] = "Dati non validi"; +$a->strings["Unable to verify channel signature"] = "Impossibile verificare la firma elettronica del canale"; +$a->strings["Unable to verify site signature for %s"] = "Impossibile verificare la firma elettronica del sito %s"; $a->strings["No channel."] = "Nessun canale."; $a->strings["Common connections"] = "Contatti in comune"; $a->strings["No connections in common."] = "Nessun contatto in comune."; @@ -747,16 +759,19 @@ $a->strings["Adjust for viewer timezone"] = "Adatta al fuso orario di chi legge" $a->strings["Description:"] = "Descrizione:"; $a->strings["Title:"] = "Titolo:"; $a->strings["Share this event"] = "Condividi questo evento"; +$a->strings["Thing updated"] = "L'oggetto è stato aggiornato"; $a->strings["Object store: failed"] = "Impossibile memorizzare l'oggetto."; -$a->strings["thing/stuff added"] = "oggetto aggiunto"; +$a->strings["Thing added"] = "L'oggetto è stato aggiunto"; $a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; -$a->strings["not yet implemented."] = "non ancora implementato."; -$a->strings["Add Stuff to your Profile"] = "Aggiungi un oggetto al tuo profilo"; +$a->strings["Show Thing"] = "Mostra l'oggetto"; +$a->strings["item not found."] = "non trovato."; +$a->strings["Edit Thing"] = "Modifica l'oggetto"; $a->strings["Select a profile"] = "Scegli un profilo"; $a->strings["Select a category of stuff. e.g. I ______ something"] = "Scegli come riferirsi all'oggetto. Esempio: Io _____ l'oggetto"; -$a->strings["Name of thing or stuff e.g. something"] = "Nome dell'oggetto"; -$a->strings["URL of thing or stuff (optional)"] = "Indirizzo web dell'oggetto (se cel'ha)"; -$a->strings["URL for photo of thing or stuff (optional)"] = "Indirizzo web della foto dell'oggetto (facoltativo)"; +$a->strings["Name of thing e.g. something"] = "Nome dell'oggetto"; +$a->strings["URL of thing (optional)"] = "Indirizzo web dell'oggetto"; +$a->strings["URL for photo of thing (optional)"] = "Indirizzo di un'immagine dell'oggetto (facoltativo)"; +$a->strings["Add Thing to your Profile"] = "Aggiungi l'oggetto al tuo profilo"; $a->strings["Total invitation limit exceeded."] = "Hai superato il numero massimo di inviti."; $a->strings["%s : Not a valid email address."] = "%s: non è un indirizzo email valido."; $a->strings["Please join us on Red"] = "Vieni con noi su Red"; @@ -776,8 +791,83 @@ $a->strings["Please visit my channel at"] = "Puoi visitare il mio canale su"; $a->strings["Once you have registered (on ANY Red Matrix site - they are all inter-connected), please connect with my Red Matrix channel address:"] = "Una volta che avrai completato la registrazione (su QUALSIASI sito Red Matrix - sono tutti interconnessi), potrai connetterti al mio canale:"; $a->strings["Click the [Register] link on the following page to join."] = "Fai clic su [Registrati] nella pagina seguente per iscriverti."; $a->strings["For more information about the Red Matrix Project and why it has the potential to change the internet as we know it, please visit http://getzot.com"] = "Per saperne di più sul progetto Red Matrix e sul perché potrebbe cambiare internet per come la conosciamo, visita http://getzot.com"; -$a->strings["Friends of %s"] = "Amici di %s"; -$a->strings["No friends to display."] = "Nessun amico da visualizzare."; +$a->strings["Red Matrix - Guests: Username: {your email address}, Password: +++"] = "Red Matrix - Ospiti: Nome utente: {il tuo indirizzo email}, Password: +++"; +$a->strings["Could not access contact record."] = "Non è possibile accedere alle informazioni sul contatto."; +$a->strings["Could not locate selected profile."] = "Non riesco a trovare il profilo selezionato."; +$a->strings["Connection updated."] = "Contatto aggiornato."; +$a->strings["Failed to update connection record."] = "Impossibile aggiornare le informazioni del contatto."; +$a->strings["Could not access address book record."] = "Impossibile accedere alle informazioni della rubrica."; +$a->strings["Refresh failed - channel is currently unavailable."] = "Il canale non è disponibile - impossibile aggiornare."; +$a->strings["Channel has been unblocked"] = "Il canale è stato sbloccato"; +$a->strings["Channel has been blocked"] = "Il canale è stato bloccato"; +$a->strings["Unable to set address book parameters."] = "Impossibile impostare i parametri della rubrica."; +$a->strings["Channel has been unignored"] = "Il canale non sarà più ignorato"; +$a->strings["Channel has been ignored"] = "Il canale sarà ignorato"; +$a->strings["Channel has been unarchived"] = "Il canale non è più archiviato"; +$a->strings["Channel has been archived"] = "Il canale è stato archiviato"; +$a->strings["Channel has been unhidden"] = "Il canale non è più nascosto"; +$a->strings["Channel has been hidden"] = "Il canale è stato nascosto"; +$a->strings["Channel has been approved"] = "Il canale è stato approvato"; +$a->strings["Channel has been unapproved"] = "Il canale non è più approvato"; +$a->strings["Contact has been removed."] = "Il contatto è stato rimosso."; +$a->strings["View %s's profile"] = "Guarda il profilo di %s"; +$a->strings["Refresh Permissions"] = "Aggiorna i permessi"; +$a->strings["Fetch updated permissions"] = "Scarica i permessi aggiornati"; +$a->strings["Recent Activity"] = "Attività recenti"; +$a->strings["View recent posts and comments"] = "Leggi i post recenti e i commenti"; +$a->strings["Unblock"] = "Sblocca"; +$a->strings["Block"] = "Blocca"; +$a->strings["Block or Unblock this connection"] = "Per bloccare o meno questo contatto"; +$a->strings["Unignore"] = "Non ignorare"; +$a->strings["Ignore"] = "Ignora"; +$a->strings["Ignore or Unignore this connection"] = "Per ignorare o meno questo contatto"; +$a->strings["Unarchive"] = "Non archiviare"; +$a->strings["Archive"] = "Archivia"; +$a->strings["Archive or Unarchive this connection"] = "Per archiviare o meno questo contatto"; +$a->strings["Unhide"] = "Non nascondere"; +$a->strings["Hide"] = "Nascondi"; +$a->strings["Hide or Unhide this connection"] = "Per nascondere o meno questo contatto"; +$a->strings["Delete this connection"] = "Elimina questo contatto"; +$a->strings["Unknown"] = "Sconosciuto"; +$a->strings["Approve this connection"] = "Approva questo contatto"; +$a->strings["Accept connection to allow communication"] = "Entra in contatto per poter comunicare"; +$a->strings["Automatic Permissions Settings"] = "Permessi predefiniti"; +$a->strings["Connections: settings for %s"] = "Contatti: impostazioni per %s"; +$a->strings["When receiving a channel introduction, any permissions provided here will be applied to the new connection automatically and the introduction approved. Leave this page if you do not wish to use this feature."] = "Hai ricevuto da un canale una richiesta di entrare in contatto, se prosegui la richiesta sarà approvata e saranno applicati i permessi mostrati. Lascia questa pagina se non vuoi proseguire."; +$a->strings["Slide to adjust your degree of friendship"] = "Trascina per restringere il grado di amicizia da mostrare"; +$a->strings["inherited"] = "derivato"; +$a->strings["Connection has no individual permissions!"] = "Non hai assegnato permessi individuali a questo contatto!"; +$a->strings["This may be appropriate based on your privacy settings, though you may wish to review the \"Advanced Permissions\"."] = "Questo corrisponde alle tue impostazioni di privacy, ma puoi anche dare un'occhiata ai 'Permessi avanzati' per opzioni più dettagliate."; +$a->strings["Profile Visibility"] = "Visibilità del profilo"; +$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Seleziona il profilo che vuoi mostrare a %s quando visita il tuo profilo in modo sicuro."; +$a->strings["Contact Information / Notes"] = "Informazioni e annotazioni sul contatto"; +$a->strings["Edit contact notes"] = "Modifica le informazioni sul contatto"; +$a->strings["Their Settings"] = "Permessi concessi a te"; +$a->strings["My Settings"] = "I permessi che concedo"; +$a->strings["Forum Members"] = "Membro di un forum"; +$a->strings["Soapbox"] = "Comunicati e annunci"; +$a->strings["Full Sharing"] = "Condivisione totale"; +$a->strings["Cautious Sharing"] = "Condivisione prudente"; +$a->strings["Follow Only"] = "Follower"; +$a->strings["Individual Permissions"] = "Permessi individuali"; +$a->strings["Some permissions may be inherited from your channel privacy settings, which have higher priority. Changing those inherited settings on this page will have no effect."] = "Alcuni permessi derivano dalle impostazioni di privacy, che hanno una priorità maggiore. Cambiarli in questa pagina non avrà alcun effetto."; +$a->strings["Advanced Permissions"] = "Permessi avanzati"; +$a->strings["Quick Links"] = "Impostazioni veloci"; +$a->strings["Visit %s's profile - %s"] = "Guarda il profilo di %s - %s"; +$a->strings["Block/Unblock contact"] = "Blocca/sblocca contatto"; +$a->strings["Ignore contact"] = "Ignora il contatto"; +$a->strings["Repair URL settings"] = "Ripara le impostazioni URL"; +$a->strings["View conversations"] = "Leggi le conversazioni"; +$a->strings["Delete contact"] = "Elimina contatto"; +$a->strings["Last update:"] = "Ultimo aggiornamento:"; +$a->strings["Update public posts"] = "Aggiorna gli articoli pubblici"; +$a->strings["Update now"] = "Aggiorna adesso"; +$a->strings["Currently blocked"] = "Attualmente bloccato"; +$a->strings["Currently ignored"] = "Attualmente ignorato"; +$a->strings["Currently archived"] = "Attualmente archiviato"; +$a->strings["Currently pending"] = "Attualmente da approvare"; +$a->strings["Hide this contact from others"] = "Nascondi questo contatto agli altri"; +$a->strings["Replies/likes to your public posts may still be visible"] = "Le risposte ai tuoi articoli pubblici potrebbero restare comunque visibili"; $a->strings["View"] = "Guarda"; $a->strings["Authorize application connection"] = "Autorizza la app"; $a->strings["Return to your app and insert this Securty Code:"] = "Torna alla app e inserisci questo codice di sicurezza:"; @@ -854,6 +944,8 @@ $a->strings["In order to store these compiled templates, the web server needs to $a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Assicurati che il tuo web server sia in esecuzione come un utente che ha diritto di scrittura su quella cartella (ad esempio www-data)."; $a->strings["Note: as a security measure, you should give the web server write access to view/tpl/smarty3/ only--not the template files (.tpl) that it contains."] = "Nota bene: come precauzione, dovresti dare i diritti di scrittura solamente per view/tpl/smarty3/ non per tutti i file di template (.tpl) che contiene."; $a->strings["view/tpl/smarty3 is writable"] = "view/tpl/smarty3 è scrivibile"; +$a->strings["Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "Red usa un archivio per salvare i file caricati. Il server deve avere i diritti di scrittura sulla cartella dell'archivio che si trova dentro la cartella principale di Red"; +$a->strings["store is writable"] = "l'archivio è scrivibile"; $a->strings["SSL certificate validation"] = "Validazione del certificato SSL"; $a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "Il certificato SSL non può essere validato. Correggi l'errore o disabilita l'accesso https al sito."; $a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "In .htaccess la funzionalità url rewrite non funziona. Controlla la configurazione del server."; @@ -867,110 +959,6 @@ $a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s sta seguendo %3\$s di % $a->strings["[Embedded content - reload page to view]"] = "[Contenuto incorporato - ricarica la pagina per visualizzarlo correttamente]"; $a->strings["toggle full screen mode"] = "attiva/disattiva schermo intero"; $a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s ha taggato %3\$s di %2\$s con %4\$s"; -$a->strings["Account settings"] = "Impostazioni dell'account"; -$a->strings["Channel settings"] = "Impostazioni del canale"; -$a->strings["Additional features"] = "Funzionalità aggiuntive"; -$a->strings["Feature settings"] = "Impostazioni aggiuntive"; -$a->strings["Display settings"] = "Impostazioni grafiche"; -$a->strings["Connected apps"] = "App connesse"; -$a->strings["Export channel"] = "Esporta il canale"; -$a->strings["Automatic Permissions (Advanced)"] = "Permessi predefiniti (avanzato)"; -$a->strings["Premium Channel Settings"] = "Canale premium - impostazioni"; -$a->strings["Name is required"] = "Il nome è obbligatorio"; -$a->strings["Key and Secret are required"] = "Chiave e Segreto sono richiesti"; -$a->strings["Update"] = "Aggiorna"; -$a->strings["Passwords do not match. Password unchanged."] = "Le password non corrispondono. Password non cambiata."; -$a->strings["Empty passwords are not allowed. Password unchanged."] = "Le password non possono essere vuote. Password non cambiata."; -$a->strings["Password changed."] = "Password cambiata."; -$a->strings["Password update failed. Please try again."] = "Aggiornamento password fallito. Prova ancora."; -$a->strings["Not valid email."] = "Email non valida."; -$a->strings["Protected email address. Cannot change to that email."] = "È un indirizzo email riservato. Non puoi sceglierlo."; -$a->strings["System failure storing new email. Please try again."] = "Errore di sistema. Non è stato possibile memorizzare il tuo messaggio, riprova per favore."; -$a->strings["Settings updated."] = "Impostazioni aggiornate."; -$a->strings["Add application"] = "Aggiungi una app"; -$a->strings["Cancel"] = "Annulla"; -$a->strings["Name"] = "Nome"; -$a->strings["Name of application"] = "Nome dell'applicazione"; -$a->strings["Consumer Key"] = "Consumer Key"; -$a->strings["Automatically generated - change if desired. Max length 20"] = "Generato automaticamente - è possibile cambiarlo. Lunghezza massima 20"; -$a->strings["Consumer Secret"] = "Consumer Secret"; -$a->strings["Redirect"] = "Redirect"; -$a->strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI ridirezionato - lasciare bianco se non richiesto specificamente dall'applicazione."; -$a->strings["Icon url"] = "Url icona"; -$a->strings["Optional"] = "Opzionale"; -$a->strings["You can't edit this application."] = "Non puoi modificare questa applicazione."; -$a->strings["Connected Apps"] = "App connesse"; -$a->strings["Client key starts with"] = "La client key inizia con"; -$a->strings["No name"] = "Nessun nome"; -$a->strings["Remove authorization"] = "Revoca l'autorizzazione"; -$a->strings["No feature settings configured"] = "Non ci sono funzionalità aggiuntive personalizzabili"; -$a->strings["Feature Settings"] = "Impostazioni aggiuntive"; -$a->strings["Account Settings"] = "Impostazioni account"; -$a->strings["Password Settings"] = "Impostazioni password"; -$a->strings["New Password:"] = "Nuova password:"; -$a->strings["Confirm:"] = "Conferma:"; -$a->strings["Leave password fields blank unless changing"] = "Lascia questi campi in bianco per non cambiare la password"; -$a->strings["Email Address:"] = "Indirizzo email:"; -$a->strings["Remove Account"] = "Elimina l'account"; -$a->strings["Warning: This action is permanent and cannot be reversed."] = "Attenzione: questa azione è permanente e non potrà più essere annullata."; -$a->strings["Off"] = "Off"; -$a->strings["On"] = "On"; -$a->strings["Additional Features"] = "Funzionalità aggiuntive"; -$a->strings["Connector Settings"] = "Impostazioni del connettore"; -$a->strings["No special theme for mobile devices"] = "Nessun tema per dispositivi mobili"; -$a->strings["Display Settings"] = "Impostazioni grafiche"; -$a->strings["Display Theme:"] = "Tema per monitor:"; -$a->strings["Mobile Theme:"] = "Tema per dispositivi mobili:"; -$a->strings["Update browser every xx seconds"] = "Aggiorna il browser ogni x secondi"; -$a->strings["Minimum of 10 seconds, no maximum"] = "Minimo 10 secondi, nessun limite massimo"; -$a->strings["Maximum number of conversations to load at any time:"] = "Massimo numero di conversazioni da mostrare ogni volta:"; -$a->strings["Maximum of 100 items"] = "Massimo 100"; -$a->strings["Don't show emoticons"] = "Non mostrare le emoticons"; -$a->strings["Nobody except yourself"] = "Nessuno tranne te"; -$a->strings["Only those you specifically allow"] = "Solo chi riceve il mio permesso"; -$a->strings["Anybody in your address book"] = "Chiunque tra i miei contatti"; -$a->strings["Anybody on this website"] = "Chiunque su questo sito"; -$a->strings["Anybody in this network"] = "Chiunque su Red"; -$a->strings["Anybody on the internet"] = "Chiunque su internet"; -$a->strings["Publish your default profile in the network directory"] = "Pubblica il mio profilo predefinito sull'elenco pubblico dei canali"; -$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Vuoi essere suggerito come potenziale amico ai nuovi membri?"; -$a->strings["or"] = "o"; -$a->strings["Your channel address is"] = "L'indirizzo del tuo canale è"; -$a->strings["Channel Settings"] = "Impostazioni del canale"; -$a->strings["Basic Settings"] = "Impostazioni di base"; -$a->strings["Your Timezone:"] = "Il tuo fuso orario:"; -$a->strings["Default Post Location:"] = "Località predefinita:"; -$a->strings["Use Browser Location:"] = "Usa la località rilevata dal browser:"; -$a->strings["Adult Content"] = "Contenuto per adulti"; -$a->strings["This channel publishes adult content."] = "Questo canale pubblica contenuto per adulti."; -$a->strings["Security and Privacy Settings"] = "Impostazioni di sicurezza e privacy"; -$a->strings["Quick Privacy Settings:"] = "Impostazioni veloci della privacy:"; -$a->strings["Very Public - extremely permissive"] = "Tutto pubblico - molto permissivo"; -$a->strings["Typical - default public, privacy when desired"] = "Normale - tutto sarà pubblico tranne quel che vorrai tu"; -$a->strings["Private - default private, rarely open or public"] = "Privato - i contenuti saranno privati ma, se vorrai, alcuni potrai renderli pubblici"; -$a->strings["Blocked - default blocked to/from everybody"] = "Bloccato - non ci saranno interazioni con altri a meno che tu non voglia"; -$a->strings["Maximum Friend Requests/Day:"] = "Numero massimo giornaliero di richieste di amicizia:"; -$a->strings["May reduce spam activity"] = "Serve e ridurre lo spam"; -$a->strings["Default Post Permissions"] = "Permessi predefiniti per gli articoli"; -$a->strings["(click to open/close)"] = "(clicca per aprire/chiudere)"; -$a->strings["Maximum private messages per day from unknown people:"] = "Numero massimo giornaliero di messaggi privati da utenti sconosciuti:"; -$a->strings["Useful to reduce spamming"] = "Serve e ridurre lo spam"; -$a->strings["Notification Settings"] = "Impostazioni di notifica"; -$a->strings["By default post a status message when:"] = "Pubblica un messaggio di stato quando:"; -$a->strings["accepting a friend request"] = "accetto una nuova amicizia"; -$a->strings["joining a forum/community"] = "entro a far parte di un forum"; -$a->strings["making an interesting profile change"] = "faccio un cambiamento interessante al mio profilo"; -$a->strings["Send a notification email when:"] = "Invia una email di notifica quando:"; -$a->strings["You receive an introduction"] = "Ricevi una richiesta di amicizia"; -$a->strings["Your introductions are confirmed"] = "Le tue richieste di amicizia sono state accettate"; -$a->strings["Someone writes on your profile wall"] = "Qualcuno scrive sulla tua bacheca"; -$a->strings["Someone writes a followup comment"] = "Qualcuno scrive un commento a un tuo articolo"; -$a->strings["You receive a private message"] = "Ricevi un messaggio privato"; -$a->strings["You receive a friend suggestion"] = "Ti viene suggerito un amico"; -$a->strings["You are tagged in a post"] = "Sei taggato in un articolo"; -$a->strings["You are poked/prodded/etc. in a post"] = "Ricevi un poke in un articolo"; -$a->strings["Advanced Account/Page Type Settings"] = "Impostazioni avanzate"; -$a->strings["Change the behaviour of this account for special situations"] = "Cambia il funzionamento di questo account in situazioni particolari"; $a->strings["Public access denied."] = "Accesso pubblico negato."; $a->strings["No connections."] = "Nessun contatto."; $a->strings["Visit %s's profile [%s]"] = "Visita il profilo di %s [%s]"; @@ -996,6 +984,7 @@ $a->strings["Existing Page Delegates"] = "Delegati attuali della pagina"; $a->strings["Potential Delegates"] = "Delegati potenziali"; $a->strings["Add"] = "Aggiungi"; $a->strings["No entries."] = "Nessun risultato."; +$a->strings["Failed to create source. No channel selected."] = "Impossibile creare la sorgente. Nessun canale selezionato."; $a->strings["Source created."] = "Sorgente creata."; $a->strings["Source updated."] = "Sorgente aggiornata."; $a->strings["Manage remote sources of content for your channel."] = "Gestisci le sorgenti dei contenuti del tuo canale."; @@ -1027,6 +1016,7 @@ $a->strings["Pending registrations"] = "Registrazioni da approvare"; $a->strings["Version"] = "Versione"; $a->strings["Active plugins"] = "Plugin attivi"; $a->strings["Site settings updated."] = "Impostazioni del sito aggiornate."; +$a->strings["No special theme for mobile devices"] = "Nessun tema per dispositivi mobili"; $a->strings["No special theme for accessibility"] = "Nessun tema speciale per l'accessibilità"; $a->strings["Closed"] = "Chiusa"; $a->strings["Requires approval"] = "Richiede l'approvazione"; @@ -1110,8 +1100,6 @@ $a->strings["Request date"] = "Data richiesta"; $a->strings["No registrations."] = "Nessuna registrazione."; $a->strings["Approve"] = "Approva"; $a->strings["Deny"] = "Nega"; -$a->strings["Block"] = "Blocca"; -$a->strings["Unblock"] = "Sblocca"; $a->strings["Register date"] = "Data registrazione"; $a->strings["Last login"] = "Ultimo accesso"; $a->strings["Expires"] = "Scadenza"; @@ -1152,6 +1140,7 @@ $a->strings["Delete this menu item"] = "Elimina questo elemento del menù"; $a->strings["Edit this menu item"] = "Modifica questo elemento del menù"; $a->strings["New Menu Element"] = "Nuovo elemento del menù"; $a->strings["Menu Item Permissions"] = "Permessi del menu"; +$a->strings["(click to open/close)"] = "(clicca per aprire/chiudere)"; $a->strings["Link text"] = "Testo del link"; $a->strings["URL of link"] = "Indirizzo del link"; $a->strings["Use Red magic-auth if available"] = "Usa l'autenticazione magica di Red, se disponibile"; @@ -1180,8 +1169,6 @@ $a->strings["Page owner information could not be retrieved."] = "Impossibile ott $a->strings["Album not found."] = "Album non trovato."; $a->strings["Delete Album"] = "Elimina album"; $a->strings["Delete Photo"] = "Elimina foto"; -$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%3\$s ha taggato %1\$s in %2\$s"; -$a->strings["a photo"] = "una foto"; $a->strings["No photos selected"] = "Nessuna foto selezionata"; $a->strings["Access to this item is restricted."] = "Questo elemento non è visibile a tutti."; $a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Hai usato %1$.2f Mb di %2$.2f Mb disponibili per le foto."; @@ -1209,9 +1196,6 @@ $a->strings["Add a Tag"] = "Aggiungi tag"; $a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Per esempio: @luca, @Maria_Bianchi, @bob@example.com, #California, #camping"; $a->strings["View Album"] = "Guarda l'album"; $a->strings["Recent Photos"] = "Foto recenti"; -$a->strings["sent you a private message"] = "ti ha inviato un messaggio privato"; -$a->strings["added your channel"] = "ha aggiunto il tuo canale"; -$a->strings["posted an event"] = "ha creato un evento"; $a->strings["- select -"] = "- scegli -"; $a->strings["Menu updated."] = "Menù aggiornato."; $a->strings["Unable to update menu."] = "Impossibile aggiornare il menù."; @@ -1233,28 +1217,31 @@ $a->strings["Menu could not be deleted."] = "Il menù non può essere eliminato. $a->strings["Edit Menu"] = "Modifica menù"; $a->strings["Add or remove entries to this menu"] = "Aggiungi o rimuovi elementi di questo menù"; $a->strings["Welcome to %s"] = "%s ti dà il benvenuto"; -$a->strings["Check Mail"] = "Controlla i messaggi"; -$a->strings["Unable to lookup recipient."] = "Impossibile associare un destinatario."; -$a->strings["Unable to communicate with requested channel."] = "Impossibile comunicare con il canale richiesto."; -$a->strings["Cannot verify requested channel."] = "Impossibile verificare il canale richiesto."; -$a->strings["Selected channel has private message restrictions. Send failed."] = "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito."; -$a->strings["Messages"] = "Messaggi"; -$a->strings["Message deleted."] = "Messaggio eliminato."; -$a->strings["Conversation removed."] = "Conversazione rimossa."; -$a->strings["Message recalled."] = "Messaggio revocato."; -$a->strings["Send Private Message"] = "Invia un messaggio privato"; -$a->strings["To:"] = "A:"; -$a->strings["Subject:"] = "Oggetto:"; -$a->strings["No messages."] = "Nessun messaggio."; -$a->strings["Delete message"] = "Elimina il messaggio"; -$a->strings["D, d M Y - g:i A"] = "D d M Y - G:i"; -$a->strings["Message not found."] = "Messaggio non trovato."; -$a->strings["Recall message"] = "Revoca il messaggio"; -$a->strings["Message has been recalled."] = "Il messaggio è stato revocato."; -$a->strings["Private Conversation"] = "Conversazione privata"; -$a->strings["Delete conversation"] = "Elimina la conversazione"; -$a->strings["No secure communications available. You may be able to respond from the sender's profile page."] = "Non è disponibile alcun sistema per comunicare in modo sicuro. Puoi verificare se eventualmente è possibile rispondere dalla pagina del profilo del mittente."; -$a->strings["Send Reply"] = "Invia la risposta"; +$a->strings["Age: "] = "Età:"; +$a->strings["Gender: "] = "Sesso:"; +$a->strings["Finding:"] = "Ricerca:"; +$a->strings["next page"] = "pagina succ."; +$a->strings["previous page"] = "pagina prec."; +$a->strings["No entries (some entries may be hidden)."] = "Nessun risultato (qualcosa potrebbe essere nascosto)."; +$a->strings["Blocked"] = "Bloccati"; +$a->strings["Ignored"] = "Ignorati"; +$a->strings["Hidden"] = "Nascosti"; +$a->strings["Archived"] = "Archiviati"; +$a->strings["All"] = "Tutti"; +$a->strings["Suggest new connections"] = "Suggerisci nuovi contatti"; +$a->strings["Show pending (new) connections"] = "Richieste di contatto in attesa"; +$a->strings["All Connections"] = "Tutti i contatti"; +$a->strings["Show all connections"] = "Mostra tutti i contatti"; +$a->strings["Unblocked"] = "Non bloccati"; +$a->strings["Only show unblocked connections"] = "Mostra solo i contatti non bloccati"; +$a->strings["Only show blocked connections"] = "Mostra solo i contatti bloccati"; +$a->strings["Only show ignored connections"] = "Mostra solo i contatti ignorati"; +$a->strings["Only show archived connections"] = "Mostra solo i contatti archiviati"; +$a->strings["Only show hidden connections"] = "Mostra solo i contatti nascosti"; +$a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]"; +$a->strings["Edit contact"] = "Modifica il contatto"; +$a->strings["Search your connections"] = "Cerca tra i contatti"; +$a->strings["Finding: "] = "Ricerca: "; $a->strings["Layout Help"] = "Guida al layout"; $a->strings["Help with this feature"] = "La guida per questa funzionalità"; $a->strings["Layout Name"] = "Nome layout"; @@ -1269,6 +1256,7 @@ $a->strings["Collection is empty"] = "L'insieme di canali è vuoto"; $a->strings["Collection: "] = "Insieme:"; $a->strings["Connection: "] = "Connessione:"; $a->strings["Invalid connection."] = "Connessione non valida."; +$a->strings["Channel added."] = "Canale aggiunto."; $a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "L'autenticazione remota non è disponibile. Hai accesso solamente a questo sito. Puoi provare ad uscire per tentare di nuovo."; $a->strings["Welcome %s. Remote authentication successful."] = "Ciao %s. La tua autenticazione da remoto è avvenuta con successo."; $a->strings["This site is not a directory server"] = "Questo sito non fornisce l'elenco generale dei canali"; @@ -1333,111 +1321,25 @@ $a->strings["Love/romance"] = "Amore"; $a->strings["Work/employment"] = "Lavoro/impiego"; $a->strings["School/education"] = "Scuola/educazione"; $a->strings["This is your public profile.
    It may be visible to anybody using the internet."] = "Questo è il tuo profilo publico.
    Potrebbe essere visto da chiunque attraverso internet."; -$a->strings["Age: "] = "Età:"; $a->strings["Edit/Manage Profiles"] = "Modifica/gestisci i profili"; +$a->strings["Add profile things"] = "Aggiungi oggetti al profilo"; +$a->strings["Include desirable objects in your profile"] = "Aggiungi oggetti interessanti al tuo profilo"; $a->strings["Add a Channel"] = "Aggiungi un canale"; $a->strings["A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows."] = "I contenuti che pubblichi finiscono in un \"canale\". Un canale può essere usato per mantenere un tuo profilo personale, per avere un blog, per creare forum di discussione o gruppi di interesse, per pagine di celebrità e molto altro. Puoi creare quanti canali vuoi a meno di limiti dati dal gestore del sito."; $a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Per esempio: \"Mario Rossi\", \"Lisa e le sue ricette\", \"Il campionato\", \"Il gruppo di escursionismo\""; $a->strings["Choose a short nickname"] = "Scegli un nome breve"; $a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Il nome breve sarà usato per creare un indirizzo facile da ricordare per il tuo canale (simile a una email). Così potrai condividerlo e gli altri potranno trovarti."; $a->strings["Or import an existing channel from another location"] = "Oppure importa un tuo canale esistente da un altro server/hub"; -$a->strings["Could not access contact record."] = "Non è possibile accedere alle informazioni sul contatto."; -$a->strings["Could not locate selected profile."] = "Non riesco a trovare il profilo selezionato."; -$a->strings["Connection updated."] = "Contatto aggiornato."; -$a->strings["Failed to update connection record."] = "Impossibile aggiornare le informazioni del contatto."; -$a->strings["Could not access address book record."] = "Impossibile accedere alle informazioni della rubrica."; -$a->strings["Refresh failed - channel is currently unavailable."] = "Il canale non è disponibile - impossibile aggiornare."; -$a->strings["Channel has been unblocked"] = "Il canale è stato sbloccato"; -$a->strings["Channel has been blocked"] = "Il canale è stato bloccato"; -$a->strings["Unable to set address book parameters."] = "Impossibile impostare i parametri della rubrica."; -$a->strings["Channel has been unignored"] = "Il canale non sarà più ignorato"; -$a->strings["Channel has been ignored"] = "Il canale sarà ignorato"; -$a->strings["Channel has been unarchived"] = "Il canale non è più archiviato"; -$a->strings["Channel has been archived"] = "Il canale è stato archiviato"; -$a->strings["Channel has been unhidden"] = "Il canale non è più nascosto"; -$a->strings["Channel has been hidden"] = "Il canale è stato nascosto"; -$a->strings["Channel has been approved"] = "Il canale è stato approvato"; -$a->strings["Channel has been unapproved"] = "Il canale non è più approvato"; -$a->strings["Contact has been removed."] = "Il contatto è stato rimosso."; -$a->strings["View %s's profile"] = "Guarda il profilo di %s"; -$a->strings["Refresh Permissions"] = "Aggiorna i permessi"; -$a->strings["Fetch updated permissions"] = "Scarica i permessi aggiornati"; -$a->strings["Recent Activity"] = "Attività recenti"; -$a->strings["View recent posts and comments"] = "Leggi i post recenti e i commenti"; -$a->strings["Block or Unblock this connection"] = "Per bloccare o meno questo contatto"; -$a->strings["Unignore"] = "Non ignorare"; -$a->strings["Ignore"] = "Ignora"; -$a->strings["Ignore or Unignore this connection"] = "Per ignorare o meno questo contatto"; -$a->strings["Unarchive"] = "Non archiviare"; -$a->strings["Archive"] = "Archivia"; -$a->strings["Archive or Unarchive this connection"] = "Per archiviare o meno questo contatto"; -$a->strings["Unhide"] = "Non nascondere"; -$a->strings["Hide"] = "Nascondi"; -$a->strings["Hide or Unhide this connection"] = "Per nascondere o meno questo contatto"; -$a->strings["Delete this connection"] = "Elimina questo contatto"; -$a->strings["Unknown"] = "Sconosciuto"; -$a->strings["Approve this connection"] = "Approva questo contatto"; -$a->strings["Accept connection to allow communication"] = "Entra in contatto per poter comunicare"; -$a->strings["Automatic Permissions Settings"] = "Permessi predefiniti"; -$a->strings["Connections: settings for %s"] = "Contatti: impostazioni per %s"; -$a->strings["When receiving a channel introduction, any permissions provided here will be applied to the new connection automatically and the introduction approved. Leave this page if you do not wish to use this feature."] = "Hai ricevuto da un canale una richiesta di entrare in contatto, se prosegui la richiesta sarà approvata e saranno applicati i permessi mostrati. Lascia questa pagina se non vuoi proseguire."; -$a->strings["Slide to adjust your degree of friendship"] = "Trascina per restringere il grado di amicizia da mostrare"; -$a->strings["inherited"] = "derivato"; -$a->strings["Connection has no individual permissions!"] = "Non hai assegnato permessi individuali a questo contatto!"; -$a->strings["This may be appropriate based on your privacy settings, though you may wish to review the \"Advanced Permissions\"."] = "Questo corrisponde alle tue impostazioni di privacy, ma puoi anche dare un'occhiata ai 'Permessi avanzati' per opzioni più dettagliate."; -$a->strings["Profile Visibility"] = "Visibilità del profilo"; -$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Seleziona il profilo che vuoi mostrare a %s quando visita il tuo profilo in modo sicuro."; -$a->strings["Contact Information / Notes"] = "Informazioni e annotazioni sul contatto"; -$a->strings["Edit contact notes"] = "Modifica le informazioni sul contatto"; -$a->strings["Their Settings"] = "Permessi concessi a te"; -$a->strings["My Settings"] = "I permessi che concedo"; -$a->strings["Forum Members"] = "Membro di un forum"; -$a->strings["Soapbox"] = "Comunicati e annunci"; -$a->strings["Full Sharing"] = "Condivisione totale"; -$a->strings["Cautious Sharing"] = "Condivisione prudente"; -$a->strings["Follow Only"] = "Follower"; -$a->strings["Individual Permissions"] = "Permessi individuali"; -$a->strings["Some permissions may be inherited from your channel privacy settings, which have higher priority. Changing those inherited settings on this page will have no effect."] = "Alcuni permessi derivano dalle impostazioni di privacy, che hanno una priorità maggiore. Cambiarli in questa pagina non avrà alcun effetto."; -$a->strings["Advanced Permissions"] = "Permessi avanzati"; -$a->strings["Quick Links"] = "Impostazioni veloci"; -$a->strings["Visit %s's profile - %s"] = "Guarda il profilo di %s - %s"; -$a->strings["Block/Unblock contact"] = "Blocca/sblocca contatto"; -$a->strings["Ignore contact"] = "Ignora il contatto"; -$a->strings["Repair URL settings"] = "Ripara le impostazioni URL"; -$a->strings["View conversations"] = "Leggi le conversazioni"; -$a->strings["Delete contact"] = "Elimina contatto"; -$a->strings["Last update:"] = "Ultimo aggiornamento:"; -$a->strings["Update public posts"] = "Aggiorna gli articoli pubblici"; -$a->strings["Update now"] = "Aggiorna adesso"; -$a->strings["Currently blocked"] = "Attualmente bloccato"; -$a->strings["Currently ignored"] = "Attualmente ignorato"; -$a->strings["Currently archived"] = "Attualmente archiviato"; -$a->strings["Currently pending"] = "Attualmente da approvare"; -$a->strings["Hide this contact from others"] = "Nascondi questo contatto agli altri"; -$a->strings["Replies/likes to your public posts may still be visible"] = "Le risposte ai tuoi articoli pubblici potrebbero restare comunque visibili"; -$a->strings["Blocked"] = "Bloccati"; -$a->strings["Ignored"] = "Ignorati"; -$a->strings["Hidden"] = "Nascosti"; -$a->strings["Archived"] = "Archiviati"; -$a->strings["All"] = "Tutti"; -$a->strings["Suggest new connections"] = "Suggerisci nuovi contatti"; -$a->strings["Show pending (new) connections"] = "Richieste di contatto in attesa"; -$a->strings["All Connections"] = "Tutti i contatti"; -$a->strings["Show all connections"] = "Mostra tutti i contatti"; -$a->strings["Unblocked"] = "Non bloccati"; -$a->strings["Only show unblocked connections"] = "Mostra solo i contatti non bloccati"; -$a->strings["Only show blocked connections"] = "Mostra solo i contatti bloccati"; -$a->strings["Only show ignored connections"] = "Mostra solo i contatti ignorati"; -$a->strings["Only show archived connections"] = "Mostra solo i contatti archiviati"; -$a->strings["Only show hidden connections"] = "Mostra solo i contatti nascosti"; -$a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]"; -$a->strings["Edit contact"] = "Modifica il contatto"; -$a->strings["Search your connections"] = "Cerca tra i contatti"; -$a->strings["Finding: "] = "Ricerca: "; $a->strings["Permission Denied."] = "Permesso negato."; -$a->strings["Permission denied. VS."] = "Permesso negato."; +$a->strings["File not found."] = "File non trovato."; +$a->strings["Edit file permissions"] = "Modifica i permessi del file"; +$a->strings["Include all files and sub folders"] = "Includi tutti i file e le sottocartelle"; +$a->strings["Return to file list"] = "Torna all'elenco dei file"; +$a->strings["Copy/paste this code to attach file to a post"] = "Copia/incolla questo codice per far comparire il file in un articolo"; +$a->strings["Copy/paste this URL to link file from a web page"] = "Copia/incolla questo indirizzo in una pagina web per avere un link al file"; $a->strings["Download"] = "Scaricamento dati"; $a->strings["Used: "] = "Usato:"; +$a->strings["[directory]"] = "[cartella]"; $a->strings["Limit: "] = "Limite:"; $a->strings["No valid account found."] = "Nessun account valido trovato."; $a->strings["Password reset request issued. Check your email."] = "La richiesta per reimpostare la password è stata inviata. Controlla la tua email."; @@ -1486,9 +1388,119 @@ $a->strings["No keywords to match. Please add keywords to your default profile." $a->strings["is interested in:"] = "interessi personali:"; $a->strings["No matches"] = "Nessun risultato"; $a->strings["invalid target signature"] = "la firma riscontrata non è valida"; -$a->strings["Channel added."] = "Canale aggiunto."; +$a->strings["Name is required"] = "Il nome è obbligatorio"; +$a->strings["Key and Secret are required"] = "Chiave e Segreto sono richiesti"; +$a->strings["Update"] = "Aggiorna"; +$a->strings["Passwords do not match. Password unchanged."] = "Le password non corrispondono. Password non cambiata."; +$a->strings["Empty passwords are not allowed. Password unchanged."] = "Le password non possono essere vuote. Password non cambiata."; +$a->strings["Password changed."] = "Password cambiata."; +$a->strings["Password update failed. Please try again."] = "Aggiornamento password fallito. Prova ancora."; +$a->strings["Not valid email."] = "Email non valida."; +$a->strings["Protected email address. Cannot change to that email."] = "È un indirizzo email riservato. Non puoi sceglierlo."; +$a->strings["System failure storing new email. Please try again."] = "Errore di sistema. Non è stato possibile memorizzare il tuo messaggio, riprova per favore."; +$a->strings["Settings updated."] = "Impostazioni aggiornate."; +$a->strings["Add application"] = "Aggiungi una app"; +$a->strings["Name"] = "Nome"; +$a->strings["Name of application"] = "Nome dell'applicazione"; +$a->strings["Consumer Key"] = "Consumer Key"; +$a->strings["Automatically generated - change if desired. Max length 20"] = "Generato automaticamente - è possibile cambiarlo. Lunghezza massima 20"; +$a->strings["Consumer Secret"] = "Consumer Secret"; +$a->strings["Redirect"] = "Redirect"; +$a->strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI ridirezionato - lasciare bianco se non richiesto specificamente dall'applicazione."; +$a->strings["Icon url"] = "Url icona"; +$a->strings["Optional"] = "Opzionale"; +$a->strings["You can't edit this application."] = "Non puoi modificare questa applicazione."; +$a->strings["Connected Apps"] = "App connesse"; +$a->strings["Client key starts with"] = "La client key inizia con"; +$a->strings["No name"] = "Nessun nome"; +$a->strings["Remove authorization"] = "Revoca l'autorizzazione"; +$a->strings["No feature settings configured"] = "Non ci sono funzionalità aggiuntive personalizzabili"; +$a->strings["Feature Settings"] = "Impostazioni aggiuntive"; +$a->strings["Account Settings"] = "Impostazioni account"; +$a->strings["Password Settings"] = "Impostazioni password"; +$a->strings["New Password:"] = "Nuova password:"; +$a->strings["Confirm:"] = "Conferma:"; +$a->strings["Leave password fields blank unless changing"] = "Lascia questi campi in bianco per non cambiare la password"; +$a->strings["Email Address:"] = "Indirizzo email:"; +$a->strings["Remove Account"] = "Elimina l'account"; +$a->strings["Warning: This action is permanent and cannot be reversed."] = "Attenzione: questa azione è permanente e non potrà più essere annullata."; +$a->strings["Off"] = "Off"; +$a->strings["On"] = "On"; +$a->strings["Additional Features"] = "Funzionalità aggiuntive"; +$a->strings["Connector Settings"] = "Impostazioni del connettore"; +$a->strings["Display Settings"] = "Impostazioni grafiche"; +$a->strings["Display Theme:"] = "Tema per monitor:"; +$a->strings["Mobile Theme:"] = "Tema per dispositivi mobili:"; +$a->strings["Update browser every xx seconds"] = "Aggiorna il browser ogni x secondi"; +$a->strings["Minimum of 10 seconds, no maximum"] = "Minimo 10 secondi, nessun limite massimo"; +$a->strings["Maximum number of conversations to load at any time:"] = "Massimo numero di conversazioni da mostrare ogni volta:"; +$a->strings["Maximum of 100 items"] = "Massimo 100"; +$a->strings["Don't show emoticons"] = "Non mostrare le emoticons"; +$a->strings["Nobody except yourself"] = "Nessuno tranne te"; +$a->strings["Only those you specifically allow"] = "Solo chi riceve il mio permesso"; +$a->strings["Anybody in your address book"] = "Chiunque tra i miei contatti"; +$a->strings["Anybody on this website"] = "Chiunque su questo sito"; +$a->strings["Anybody in this network"] = "Chiunque su Red"; +$a->strings["Anybody on the internet"] = "Chiunque su internet"; +$a->strings["Publish your default profile in the network directory"] = "Pubblica il mio profilo predefinito sull'elenco pubblico dei canali"; +$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Vuoi essere suggerito come potenziale amico ai nuovi membri?"; +$a->strings["or"] = "o"; +$a->strings["Your channel address is"] = "L'indirizzo del tuo canale è"; +$a->strings["Channel Settings"] = "Impostazioni del canale"; +$a->strings["Basic Settings"] = "Impostazioni di base"; +$a->strings["Your Timezone:"] = "Il tuo fuso orario:"; +$a->strings["Default Post Location:"] = "Località predefinita:"; +$a->strings["Use Browser Location:"] = "Usa la località rilevata dal browser:"; +$a->strings["Adult Content"] = "Contenuto per adulti"; +$a->strings["This channel publishes adult content."] = "Questo canale pubblica contenuto per adulti."; +$a->strings["Security and Privacy Settings"] = "Impostazioni di sicurezza e privacy"; +$a->strings["Quick Privacy Settings:"] = "Impostazioni veloci della privacy:"; +$a->strings["Very Public - extremely permissive"] = "Tutto pubblico - molto permissivo"; +$a->strings["Typical - default public, privacy when desired"] = "Normale - tutto sarà pubblico tranne quel che vorrai tu"; +$a->strings["Private - default private, rarely open or public"] = "Privato - i contenuti saranno privati ma, se vorrai, alcuni potrai renderli pubblici"; +$a->strings["Blocked - default blocked to/from everybody"] = "Bloccato - non ci saranno interazioni con altri a meno che tu non voglia"; +$a->strings["Maximum Friend Requests/Day:"] = "Numero massimo giornaliero di richieste di amicizia:"; +$a->strings["May reduce spam activity"] = "Serve e ridurre lo spam"; +$a->strings["Default Post Permissions"] = "Permessi predefiniti per gli articoli"; +$a->strings["Maximum private messages per day from unknown people:"] = "Numero massimo giornaliero di messaggi privati da utenti sconosciuti:"; +$a->strings["Useful to reduce spamming"] = "Serve e ridurre lo spam"; +$a->strings["Notification Settings"] = "Impostazioni di notifica"; +$a->strings["By default post a status message when:"] = "Pubblica un messaggio di stato quando:"; +$a->strings["accepting a friend request"] = "accetto una nuova amicizia"; +$a->strings["joining a forum/community"] = "entro a far parte di un forum"; +$a->strings["making an interesting profile change"] = "faccio un cambiamento interessante al mio profilo"; +$a->strings["Send a notification email when:"] = "Invia una email di notifica quando:"; +$a->strings["You receive an introduction"] = "Ricevi una richiesta di amicizia"; +$a->strings["Your introductions are confirmed"] = "Le tue richieste di amicizia sono state accettate"; +$a->strings["Someone writes on your profile wall"] = "Qualcuno scrive sulla tua bacheca"; +$a->strings["Someone writes a followup comment"] = "Qualcuno scrive un commento a un tuo articolo"; +$a->strings["You receive a private message"] = "Ricevi un messaggio privato"; +$a->strings["You receive a friend suggestion"] = "Ti viene suggerito un amico"; +$a->strings["You are tagged in a post"] = "Sei taggato in un articolo"; +$a->strings["You are poked/prodded/etc. in a post"] = "Ricevi un poke in un articolo"; +$a->strings["Advanced Account/Page Type Settings"] = "Impostazioni avanzate"; +$a->strings["Change the behaviour of this account for special situations"] = "Cambia il funzionamento di questo account in situazioni particolari"; +$a->strings["Unable to lookup recipient."] = "Impossibile associare un destinatario."; +$a->strings["Unable to communicate with requested channel."] = "Impossibile comunicare con il canale richiesto."; +$a->strings["Cannot verify requested channel."] = "Impossibile verificare il canale richiesto."; +$a->strings["Selected channel has private message restrictions. Send failed."] = "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito."; +$a->strings["Messages"] = "Messaggi"; +$a->strings["Message deleted."] = "Messaggio eliminato."; +$a->strings["Message recalled."] = "Messaggio revocato."; +$a->strings["Send Private Message"] = "Invia un messaggio privato"; +$a->strings["To:"] = "A:"; +$a->strings["Subject:"] = "Oggetto:"; +$a->strings["Message not found."] = "Messaggio non trovato."; +$a->strings["Delete message"] = "Elimina il messaggio"; +$a->strings["Recall message"] = "Revoca il messaggio"; +$a->strings["Message has been recalled."] = "Il messaggio è stato revocato."; +$a->strings["Private Conversation"] = "Conversazione privata"; +$a->strings["Delete conversation"] = "Elimina la conversazione"; +$a->strings["No secure communications available. You may be able to respond from the sender's profile page."] = "Non è disponibile alcun sistema per comunicare in modo sicuro. Puoi verificare se eventualmente è possibile rispondere dalla pagina del profilo del mittente."; +$a->strings["Send Reply"] = "Invia la risposta"; $a->strings["Item not found"] = "Elemento non trovato"; $a->strings["Edit Layout"] = "Modifica il layout"; +$a->strings["Delete layout?"] = "Vuoi eliminare questo layout?"; $a->strings["Insert YouTube video"] = "Inserisci video da YouTube"; $a->strings["Insert Vorbis [.ogg] video"] = "Inserisci video Vorbis [.ogg]"; $a->strings["Insert Vorbis [.ogg] audio"] = "Inserisci audio Vorbis [.ogg]"; @@ -1511,8 +1523,8 @@ $a->strings["Done Editing"] = "Modifica terminata"; $a->strings["Image uploaded successfully."] = "Immagine caricata con successo."; $a->strings["Image upload failed."] = "Il caricamento dell'immagine è fallito."; $a->strings["Image size reduction [%s] failed."] = "Il ridimensionamento del'immagine [%s] è fallito."; -$a->strings["Edit Webpage"] = "Modifica la pagina web"; -$a->strings["Delete Webpage"] = "Elimina la pagina web"; +$a->strings["Item is not editable"] = "L'elemento non è modificabile"; +$a->strings["Delete item?"] = "Eliminare questo elemento?"; $a->strings["Invalid request identifier."] = "L'identificativo della richiesta non è valido."; $a->strings["Discard"] = "Rifiuta"; $a->strings["No more system notifications."] = "Non ci sono nuove notifiche di sistema."; @@ -1520,7 +1532,9 @@ $a->strings["System Notifications"] = "Notifiche di sistema"; $a->strings["Block Name"] = "Nome del riquadro"; $a->strings["Unable to find your hub."] = "Impossibile raggiungere il tuo hub."; $a->strings["Post successful."] = "Inviato!"; -$a->strings["Item is not editable"] = "L'elemento non è modificabile"; +$a->strings["Edit Webpage"] = "Modifica la pagina web"; +$a->strings["Delete webpage?"] = "Vuoi eliminare questa pagina web?"; +$a->strings["Delete Webpage"] = "Elimina la pagina web"; $a->strings["Access to this profile has been restricted."] = "L'accesso a questo profilo è stato limitato."; $a->strings["Poke/Prod"] = "Poke/Prod"; $a->strings["poke, prod or do other things to somebody"] = "Manda un poke, un prod o altro"; @@ -1533,24 +1547,17 @@ $a->strings["Insufficient permissions. Request redirected to profile page."] = $a->strings["Not available."] = "Non disponibile."; $a->strings["Community"] = "Comunità"; $a->strings["No results."] = "Nessun risultato."; -$a->strings["Files"] = "Elenco file"; $a->strings["Contact not found."] = "Contatto non trovato."; $a->strings["Friend suggestion sent."] = "Suggerimento di amicizia inviato."; $a->strings["Suggest Friends"] = "Suggerisci amici"; $a->strings["Suggest a friend for %s"] = "Suggerisci un amico a %s"; $a->strings["Edit Block"] = "Modifica il riquadro"; +$a->strings["Delete block?"] = "Vuoi eliminare questo riquadro?"; $a->strings["Delete Block"] = "Elimina il riquadro"; $a->strings["Invalid profile identifier."] = "Indentificativo del profilo non valido."; $a->strings["Profile Visibility Editor"] = "Modifica la visibilità del profilo"; $a->strings["Click on a contact to add or remove."] = "Clicca su un contatto per aggiungerlo o rimuoverlo."; $a->strings["Visible To"] = "Visibile a"; -$a->strings["All Contacts (with secure profile access)"] = "Tutti i contatti (con accesso fidato al profilo)"; -$a->strings["Unable to locate original post."] = "Impossibile trovare il messaggio originale."; -$a->strings["Empty post discarded."] = "L'articolo vuoto è stato ignorato."; -$a->strings["Executable content type not permitted to this channel."] = "I contenuti eseguibili non sono permessi su questo canale."; -$a->strings["System error. Post not saved."] = "Errore di sistema. Articolo non salvato."; -$a->strings["You have reached your limit of %1$.0f top level posts."] = "Hai raggiunto il limite massimo di %1$.0f articoli sulla pagina principale."; -$a->strings["You have reached your limit of %1$.0f webpages."] = "Hai raggiunto il limite massimo di %1$.0f pagine web."; $a->strings["Version %s"] = "Versione %s"; $a->strings["Installed plugins/addons/apps:"] = "App e componenti aggiuntivi instalati:"; $a->strings["No installed plugins/addons/apps"] = "Nessuna app o componente aggiuntivo installato"; @@ -1561,6 +1568,9 @@ $a->strings["Please visit GetZot.com to learn $a->strings["Bug reports and issues: please visit"] = "Per segnalare bug e problemi: visita"; $a->strings["Suggestions, praise, donations, etc. - please email \"redmatrix\" at librelist - dot com"] = "Per consigli, ringraziamenti, donazioni, ecc. - scrivi a \"redmatrix\" at librelist - dot com"; $a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Nessun suggerimento disponibile. Se questo è un sito nuovo, riprova tra 24 ore."; +$a->strings["Conversation removed."] = "Conversazione rimossa."; +$a->strings["No messages."] = "Nessun messaggio."; +$a->strings["D, d M Y - g:i A"] = "D d M Y - G:i"; $a->strings["Public Sites"] = "Siti pubblici"; $a->strings["The listed sites allow public registration into the Red Matrix. All sites in the matrix are interlinked so membership on any of them conveys membership in the matrix as a whole. Some sites may require subscription or provide tiered service plans. The provider links may provide additional details."] = "Gli indirizzi elencati permettono la registrazione su Red Matrix. Tutti i siti di questa rete sono interconnessi, quindi essere registrati su uno è come essere registrati ovunque. Alcuni potrebbero richiedere un'iscrizione a pagamento o prevedere tipi diversi di abbonamento. Potrai trovare maggiori informazioni al riguardo visitando ciascun sito."; $a->strings["Site URL"] = "URL del sito"; @@ -1572,6 +1582,8 @@ $a->strings["Passwords do not match."] = "Le password non corrispondono."; $a->strings["Registration successful. Please check your email for validation instructions."] = "La registrazione è terminata correttamente. Per continuare controlla l'email che ti è stata inviata."; $a->strings["Your registration is pending approval by the site owner."] = "La tua richiesta è in attesa di approvazione da parte dell'amministratore del sito."; $a->strings["Your registration can not be processed."] = "La tua registrazione non puo' essere acquisita."; +$a->strings["Registration on this site/hub is by approval only."] = "La registrazione su questo sito è soggetta ad approvazione."; +$a->strings["Register at another affiliated site/hub"] = "Registrati su un altro server affiliato"; $a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Questo sito ha superato il numero di registrazioni giornaliere consentite. Prova di nuovo domani."; $a->strings["Terms of Service"] = "Condizioni d'Uso"; $a->strings["I accept the %s for this website"] = "Accetto le %s di questo sito"; @@ -1587,14 +1599,24 @@ $a->strings["This will completely remove this channel from the network. Once thi $a->strings["Please enter your password for verification:"] = "Inserisci la tua password per verifica:"; $a->strings["Remove this channel and all its clones from the network"] = "Rimuovi questo canale e tutti i suoi cloni dalla rete"; $a->strings["By default only the instance of the channel located on this hub will be removed from the network"] = "L'impostazione predefinita è che sia eliminata solo l'istanza del canale presente su questo hub, non gli eventuali cloni"; -$a->strings["Remove My Account"] = "Elimina il mio account"; -$a->strings["Gender: "] = "Sesso:"; -$a->strings["Finding:"] = "Ricerca:"; -$a->strings["next page"] = "pagina succ."; -$a->strings["previous page"] = "pagina prec."; -$a->strings["No entries (some entries may be hidden)."] = "Nessun risultato (qualcosa potrebbe essere nascosto)."; +$a->strings["Remove Channel"] = "Elimina questo canale"; +$a->strings["Unable to locate original post."] = "Impossibile trovare il messaggio originale."; +$a->strings["Empty post discarded."] = "L'articolo vuoto è stato ignorato."; +$a->strings["Executable content type not permitted to this channel."] = "I contenuti eseguibili non sono permessi su questo canale."; +$a->strings["System error. Post not saved."] = "Errore di sistema. Articolo non salvato."; +$a->strings["You have reached your limit of %1$.0f top level posts."] = "Hai raggiunto il limite massimo di %1$.0f articoli sulla pagina principale."; +$a->strings["You have reached your limit of %1$.0f webpages."] = "Hai raggiunto il limite massimo di %1$.0f pagine web."; $a->strings["Mood"] = "Umore"; $a->strings["Set your current mood and tell your friends"] = "Scegli il tuo umore attuale per mostrarlo agli amici"; +$a->strings["sent you a private message"] = "ti ha inviato un messaggio privato"; +$a->strings["added your channel"] = "ha aggiunto il tuo canale"; +$a->strings["posted an event"] = "ha creato un evento"; +$a->strings["Status: "] = "Stato:"; +$a->strings["Sexual Preference: "] = "Preferenza sessuale:"; +$a->strings["Homepage: "] = "Homepage:"; +$a->strings["Hometown: "] = "Città dove vivo:"; +$a->strings["About: "] = "Informazioni:"; +$a->strings["Keywords: "] = "Parole chiave:"; $a->strings["Scheme Default"] = "Schema predefinito"; $a->strings["red"] = "rosso"; $a->strings["black"] = "nero"; -- cgit v1.2.3 From fe2b6f3dfb4a9473905dde49b7741a6c03699c23 Mon Sep 17 00:00:00 2001 From: marijus Date: Thu, 30 Jan 2014 00:01:19 +0100 Subject: add image floating to bbcode --- doc/bbcode.html | 6 +++++- include/bbcode.php | 50 ++++++++++++++++++++++++++++++++++++++---------- view/tpl/item_attach.tpl | 2 +- 3 files changed, 46 insertions(+), 12 deletions(-) diff --git a/doc/bbcode.html b/doc/bbcode.html index a24dd8b5d..d46f9d05a 100644 --- a/doc/bbcode.html +++ b/doc/bbcode.html @@ -1,5 +1,5 @@

    BBcode reference

    -
    +


    • [b]bold[/b] - bold
      @@ -9,6 +9,10 @@
    • [color=red]red[/color] - red
    • [url=https://redmatrix.me]Red Matrix[/url] Red Matrix
    • [img]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img] Image/photo
      +
    • [img float=left]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img] Image/photo
      +
      +
    • [img float=right]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img] Image/photo
      +
    • [code]code[/code] code
    • [quote]quote[/quote]
      quote

    • [quote=Author]Author? Me? No, no, no...[/quote]
      Author wrote:
      Author? Me? No, no, no...

      diff --git a/include/bbcode.php b/include/bbcode.php index fec8750e9..57494bd7a 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -439,6 +439,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) { if (strpos($Text,'[/center]') !== false) { $Text = preg_replace("(\[center\](.*?)\[\/center\])ism","
      $1
      ",$Text); } + // Check for list text $Text = str_replace("[*]", "
    • ", $Text); @@ -531,23 +532,52 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) { "
      " . $t_wrote . "
      $2
      ", $Text); - // [img=widthxheight]image source[/img] - //$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '', $Text); - if (strpos($Text,'[/img]') !== false) { - $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '', $Text); - } - if (strpos($Text,'[/zmg]') !== false) { - $Text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*)\](.*?)\[\/zmg\]/ism", '', $Text); - } // Images // [img]pathtoimage[/img] - if (strpos($Text,'[/img]') !== false) { + if (strpos($Text,'[/img]') !== false) { $Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '' . t('Image/photo') . '', $Text); } - if (strpos($Text,'[/zmg]') !== false) { + if (strpos($Text,'[/zmg]') !== false) { $Text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '' . t('Image/photo') . '', $Text); } + // [img float={left, right}]pathtoimage[/img] + if (strpos($Text,'[/img]') !== false) { + $Text = preg_replace("/\[img float=left\](.*?)\[\/img\]/ism", '' . t('Image/photo') . '', $Text); + } + if (strpos($Text,'[/img]') !== false) { + $Text = preg_replace("/\[img float=right\](.*?)\[\/img\]/ism", '' . t('Image/photo') . '', $Text); + } + if (strpos($Text,'[/zmg]') !== false) { + $Text = preg_replace("/\[zmg float=left\](.*?)\[\/zmg\]/ism", '' . t('Image/photo') . '', $Text); + } + if (strpos($Text,'[/zmg]') !== false) { + $Text = preg_replace("/\[zmg float=right\](.*?)\[\/zmg\]/ism", '' . t('Image/photo') . '', $Text); + } + + // [img=widthxheight]pathtoimage[/img] + if (strpos($Text,'[/img]') !== false) { + $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '' . t('Image/photo') . '', $Text); + } + if (strpos($Text,'[/zmg]') !== false) { + $Text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*)\](.*?)\[\/zmg\]/ism", '' . t('Image/photo') . '', $Text); + } + + // [img=widthxheight float={left, right}]pathtoimage[/img] + if (strpos($Text,'[/img]') !== false) { + $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*) float=left\](.*?)\[\/img\]/ism", '' . t('Image/photo') . '', $Text); + } + if (strpos($Text,'[/img]') !== false) { + $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*) float=right\](.*?)\[\/img\]/ism", '' . t('Image/photo') . '', $Text); + } + if (strpos($Text,'[/zmg]') !== false) { + $Text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*) float=left\](.*?)\[\/zmg\]/ism", '' . t('Image/photo') . '', $Text); + } + if (strpos($Text,'[/zmg]') !== false) { + $Text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*) float=right\](.*?)\[\/zmg\]/ism", '' . t('Image/photo') . '', $Text); + } + + // crypt if (strpos($Text,'[/crypt]') !== false) { $x = random_string(); $Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'
      ' . t('Encrypted content') . '
      ', $Text); diff --git a/view/tpl/item_attach.tpl b/view/tpl/item_attach.tpl index 25c127a15..7dc8dfd59 100644 --- a/view/tpl/item_attach.tpl +++ b/view/tpl/item_attach.tpl @@ -1,6 +1,6 @@ +
      {{foreach $attaches as $a}} {{/foreach}} -
      -- cgit v1.2.3