Version 4.1.19

This commit is contained in:
Neo committed 2025-12-19 05:38:56 -08:00
1 parent 28bd025b35
commit 2bd5025018
2674 files changed
+233518 -77766

No files matched your search

+127 -1
View File
@@ -1 +1,127 @@
[]
{
"app=chat&module=chat&controller=logs": {
"lang_key": "menu__chat_chat_logs",
"restriction": "logs_manage",
"keywords": [
"chat logs",
"жерналы чата",
"логи чата"
]
},
"app=chat&module=chat&controller=settings": {
"lang_key": "menu__chat_chat_settings",
"restriction": "settings_manage",
"keywords": [
"Chat",
"Chat Settings",
"Chatroom",
"чат",
"комната",
"настройки чата",
"комната чата"
]
},
"app=chat&module=chat&controller=settings&searchResult=form_ipchat_24hour": {
"lang_key": "ipchat_24hour",
"restriction": "settings_manage",
"keywords": [
"Time Format",
"формат времени"
]
},
"app=chat&module=chat&controller=settings&searchResult=form_ipchat_hide_usermessage": {
"lang_key": "ipchat_hide_usermessage",
"restriction": "settings_manage",
"keywords": [
"chat messages",
"Show room join messages",
"сообщения чата",
"сообщение чата"
]
},
"app=chat&module=chat&controller=settings&searchResult=form_ipchat_inactive_minutes": {
"lang_key": "ipchat_inactive_minutes",
"restriction": "settings_manage",
"keywords": [
"inactivity",
"inactivity period",
"бездействие",
"время бездействия",
"период бездействия"
]
},
"app=chat&module=chat&controller=settings&searchResult=form_ipchat_new_window": {
"lang_key": "ipchat_new_window",
"restriction": "settings_manage",
"keywords": [
"chat new window",
"Open in a new window",
"новое окно",
"открыть в новом окне",
"чат в новом окне"
]
},
"app=chat&module=chat&controller=settings&searchResult=form_ipchat_no_buffer": {
"lang_key": "ipchat_no_buffer",
"restriction": "settings_manage",
"keywords": [
"chat history",
"история чата",
"история"
]
},
"app=chat&module=chat&controller=settings&searchResult=form_ipschat_enable_rules": {
"lang_key": "ipschat_enable_rules",
"restriction": "settings_manage",
"keywords": [
"chat rules",
"правила чата"
]
},
"app=chat&module=chat&controller=settings&searchResult=ipschat_online": {
"lang_key": "ipschat_online",
"restriction": "settings_manage",
"keywords": [
"chat online",
"online times",
"чат онлайн",
"включить чат",
"чат включён"
]
},
"app=core&module=members&controller=groups&searchResult=4_chat_access": {
"lang_key": "chat_access",
"restriction": "groups_manage",
"keywords": [
"access chat",
"chat",
"чат",
"доступ к чату"
]
},
"app=core&module=members&controller=groups&searchResult=4_chat_moderate": {
"lang_key": "chat_moderate",
"restriction": "groups_manage",
"keywords": [
"chat",
"chat moderation",
"moderate",
"moderate chat",
"чат",
"модерация чата",
"модерация",
"модерирование чата",
"модератор чата"
]
},
"app=core&module=members&controller=members&searchResult=form_chat_banned": {
"lang_key": "chat_banned",
"restriction": null,
"keywords": [
"Access",
"Chat",
"чат",
"доступ"
]
}
}
+47 -73
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="chat">
<file javascript_app="chat" javascript_location="front" javascript_path="controllers/chat" javascript_name="ips.chat.main.js" javascript_type="controller" javascript_version="101012" javascript_position="1000050"><![CDATA[/**
* IPS Social Suite 4
<file javascript_app="chat" javascript_location="front" javascript_path="controllers/chat" javascript_name="ips.chat.main.js" javascript_type="controller" javascript_version="101093" javascript_position="1000050"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
* ips.chat.main.js - Main chat controller
@@ -33,7 +33,7 @@
_iframe: null,
_iframeWindow: null,
_secure: true,
_urlRegex: /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;\(\)]*[-A-Z0-9+&@#\/%=~_|])/ig,
_urlRegex: /\b(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:localhost)|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,}))\.?)(?::\d{2,5})?(?:[/?#]\S*)?\b/ig,
_imgRegex: /^(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;\(\)]*[-A-Z0-9+&@#\/%=~_|])(\.jpg|\.png|\.gif)$/ig,
initialize: function () {
@@ -48,7 +48,7 @@
this.on( window, 'focus', this.windowFocus );
this.on( window, 'blur', this.windowBlur );
this.on( document, 'insertEmoticon', this.insertEmoticon );
this.setup();
this.setup();
},
/**
@@ -921,6 +921,7 @@
}
var sound = new buzz.sound( ips.getSetting('baseURL') + 'applications/chat/interface/sounds/' + ips.getSetting('sounds')[ soundName ], {
webAudioApi: true,
formats: [ "mp3" ]
});
@@ -1013,7 +1014,7 @@
}
}
if( !state.previousLastMsgID && this._noBuffer ){
if( !state.previousLastMsgID && ips.getSetting('noBuffer') ){
continue;
}
@@ -1059,6 +1060,8 @@
thisRoomID = 'private_' + user;
}
msgDetails[4] = msgDetails[4].replace( '~~#~~', "," );
}
}
@@ -1069,8 +1072,7 @@
var itemDate = this._getChatTime( msgDetails[0] );
msgDetails[2] = msgDetails[2].replace( '~~#~~', "," );
msgDetails[2] = this._unCleanMessage( msgDetails[2] );
msgDetails[4] = msgDetails[4].replace( '~~#~~', "," );
msgDetails[2] = this._unCleanMessage( msgDetails[2] );
msgDetails[3] = msgDetails[3].replace( '~~#~~', "," );
msgDetails[3] = this._unCleanMessage( msgDetails[3] );
msgDetails[3] = this._parseEmoticonsAndBbcode( msgDetails[3], msgDetails[5] );
@@ -1366,7 +1368,8 @@
.replace( /=/g, "__E__" )
.replace( /\+/g, "__PS__" )
.replace( /&/g, "__A__" )
.replace( /%/g, "__P__" );
.replace( /%/g, "__P__" )
.replace( /~~\|\|~~/, "~~###~~" );
},
/**
@@ -1382,7 +1385,8 @@
.replace( /__P__/g, "%" )
.replace( /__A__/g, "&" )
.replace( /__C__/g, "," )
.replace( /__N__/g, "<br />" );
.replace( /__N__/g, "<br />" )
.replace( /~~###~~/, "~~||~~" );
},
/**
@@ -1395,44 +1399,37 @@
_parseEmoticonsAndBbcode: function (message, chatUserID) {
var self = this;
// Basics
message = message.replace( /\[b\](.+?)\[\/b\]/gi, "<strong class='ipsStyle'>$1</strong>" );
message = message.replace( /\[i\](.+?)\[\/i\]/gi, "<em class='ipsStyle'>$1</em>" );
message = message.replace( /\[u\](.+?)\[\/u\]/gi, "<u class='ipsStyle'>$1</u>" );
// Emoticons
// @todo this line still needed?
message = message.replace( '!', '&#33;' );
_.each( ips.getSetting('chatEmoticons'), function (url, emoticon) {
_.each( ips.getSetting('chatEmoticons'), function (url, emoticon) {
var img = $('<img/>').attr({ 'src': url['image'], 'data-emoticon': 'true' });
if ( url['width'] ) {
img.attr( 'width', url['width'] );
}
if ( url['height'] ) {
img.attr( 'height', url['width'] );
img.attr( 'height', url['height'] );
}
if ( url['image_2x'] ) {
img.attr( 'srcset', url['image_2x'] );
}
img = "$1" + $('<div/>').append( img ).html() + "$2";
var regexp = new RegExp( "(^|\\s)" + self._escapeRegex( emoticon ) + "(\\s|$)", "gi" );
var regexp = new RegExp( "(^|\\s)" + self._escapeRegex( emoticon.replace( /</g, "&lt;" ).replace( />/g, "&gt;" ) ) + "(\\s|$)", "gi" );
while( message.match( regexp ) ){
message = message.replace( regexp, img );
}
});
// Bad words
var groupID = 0;
var canBypassBadwords = false;
var canBypassBadwords = false;
if( chatUserID ){
var forumUser = ips.getSetting('forumIDMap')[ chatUserID ];
if( !_.isUndefined( forumUser ) ){
groupID = forumUser.groupID
canBypassBadwords = forumUser.canBypassBadwords;
}
}
@@ -1451,56 +1448,26 @@
info.swop = '#####';
}
// Apparently we have to treat 'ass' differently because of the HTML class attribute
if( badword == 'ass' ){
var reversed = esrever.reverse( message );
if( info.m_exact ){
// Loose
regex = new RegExp( '(\\b|!|\\?|\\.|,|$)' + self._escapeRegex( reversed ) + '(?!lc)(^|\\b|\\s)', "gi" );
} else {
// Exact
regex = new RegExp( self._escapeRegex( reversed ) + '(?!lc)', "gi" );
}
while( matches = regex.exec( message ) ){
if( matches !== null ){
if( info.m_exact ){
replaceMap[ "__BW" + iteration + "__" ] = esrever.reverse( matches[2] ) + info.swop + esrever.reverse( matches[1] );
} else {
replaceMap[ "__BW" + iteration + "__" ] = info.swop;
}
reversed = reversed.replace( matches[0], "__" + iteration + "WB__" );
iteration++;
}
}
message = esrever.reverse( reversed );
return;
// Is this a loose replacement or exact match?
if( info.m_exact ){
// Loose
regex = new RegExp( '(^|\\b|\\s)' + self._escapeRegex( badword ) + '(\\b|!|\\?|\\.|,|$)', "gi" );
} else {
// Exact
regex = new RegExp( self._escapeRegex( badword ), "gi" );
}
// Is this a loose replacement or exact match?
if( info.m_exact ){
// Loose
regex = new RegExp( '(^|\\b|\\s)' + self._escapeRegex( badword ) + '(\\b|!|\\?|\\.|,|$)', "gi" );
} else {
// Exact
regex = new RegExp( self._escapeRegex( badword ), "gi" );
}
// Iterate through the matches
while( matches = regex.exec( message ) ){
if( matches !== null ){
if( info.m_exact ){
replaceMap[ "__BW" + iteration + "__" ] = matches[1] + info.swop + matches[2];
} else {
replaceMap[ "__BW" + iteration + "__" ] = info.swop;
}
message = message.replace( matches[0], "__BW" + iteration + "__" );
iteration++;
// Iterate through the matches
while( matches = regex.exec( message ) ){
if( matches !== null ){
if( info.m_exact ){
replaceMap[ "__BW" + iteration + "__" ] = matches[1] + info.swop + matches[2];
} else {
replaceMap[ "__BW" + iteration + "__" ] = info.swop;
}
message = message.replace( matches[0], "__BW" + iteration + "__" );
iteration++;
}
}
});
@@ -1511,6 +1478,11 @@
});
}
// Basics
message = message.replace( /\[b\](.+?)\[\/b\]/gi, "<strong class='ipsStyle'>$1</strong>" );
message = message.replace( /\[i\](.+?)\[\/i\]/gi, "<em class='ipsStyle'>$1</em>" );
message = message.replace( /\[u\](.+?)\[\/u\]/gi, "<u class='ipsStyle'>$1</u>" );
return message;
},
@@ -1521,6 +1493,9 @@
* @returns {string}
*/
_parseMessage: function (message) {
// Because we insert as text, we need to make sure &amp; is converted to &, otherwise entities will display incorrectly
message = message.replace( /&amp;/gi, '&' );
message = message.replace( /%20/gi, ' ' );
message = message.replace( /%23/gi, '#' );
message = message.replace( /%22/gi, '&quot;' );
@@ -1698,7 +1673,7 @@
var returnURL = url;
if( text.substring( indexOfURL, indexOfURL - 5) !== 'src="' && text.substring( indexOfURL, indexOfURL - 8) !== 'srcset="' ){
returnURL = '<a href="' + url + '" target="_blank">' + url + '</a>';
returnURL = '<a href="' + url + '" target="_blank" rel="noopener noreferrer">' + url + '</a>';
}
lastPos = indexOfURL + url.length;
@@ -1879,7 +1854,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="chat" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.chat.js" javascript_type="template" javascript_version="101012" javascript_position="1000100"><![CDATA[ips.templates.set('chat.tabs.tab', " \
<file javascript_app="chat" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.chat.js" javascript_type="template" javascript_version="101093" javascript_position="1000100"><![CDATA[ips.templates.set('chat.tabs.tab', " \
<li role='presentation' data-roomID='{{roomID}}'>\
<a href='#' role='tab' id='{{roomID}}' class='ipsFaded_withHover ipsTabs_item ipsType_blendLinks {{#active}}ipsTabs_activeItem{{/active}}' aria-selected='false'>\
{{roomTitle}} {{#close}}&nbsp;<span class='ipsFaded ipsFaded_more' data-action='closeTab' data-ipsTooltip title='{{#lang}}closeThisTab{{/lang}}'><i class='fa fa-times'></i></span>{{/close}}\
@@ -1996,9 +1971,10 @@ ips.templates.set('chat.chatDate', " \
");
ips.templates.set('chat.parsedImage', " \
<div class='cChatParsedImage ipsFaded_withHover'><a href='{{url}}' target='_blank' data-ipsLightbox><img src='{{url}}'></a> <span class='ipsType_light ipsHide' data-role='imageHidden'>{{#lang}}imageHidden{{/lang}}</span> <a href='#' class='ipsFaded ipsFaded_more ipsButton ipsButton_narrow ipsButton_verySmall ipsButton_primary' title='{{#lang}}hideImage{{/lang}}' data-ipsTooltip data-action='toggleImage'><i class='fa fa-caret-up'></i></a></div>\
<div class='cChatParsedImage ipsFaded_withHover'><a href='{{url}}' target='_blank' rel='noopener noreferrer' data-ipsLightbox><img src='{{url}}'></a> <span class='ipsType_light ipsHide' data-role='imageHidden'>{{#lang}}imageHidden{{/lang}}</span> <a href='#' class='ipsFaded ipsFaded_more ipsButton ipsButton_narrow ipsButton_verySmall ipsButton_primary' title='{{#lang}}hideImage{{/lang}}' data-ipsTooltip data-action='toggleImage'><i class='fa fa-caret-up'></i></a></div>\
");]]></file>
<order app="global" path="/dev/js//framework/">templates
common/ips.loader.js
common/ui
common/utils
common
@@ -2012,6 +1988,4 @@ app.js</order>
<order app="global" path="/dev/js//library//jquery">jquery.js
jquery.history.js
jquery.transform.js</order>
<order app="global" path="/dev/js//library//xregexp">xregexp-all.js
xregexp-lookbehind.js</order>
</javascript>
+6 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="chat" version="101012">
<app key="chat" version="101093">
<word key="__app_chat" js="0">Chat</word>
<word key="frontnavigation_chat" js="0">Chat</word>
<word key="chat_title" js="0">Chat</word>
@@ -37,6 +37,10 @@
<word key="acplogs__chat_settings" js="0">Updated chat settings</word>
<word key="ipschat_online" js="0">Online times</word>
<word key="ipschat_online_desc" js="0">Optionally specify a time period that chat will be available</word>
<word key="ipschat_service_closed" js="0">The chat room is not presently available</word>
<word key="ipschat_service_closed_admin" js="0"><![CDATA[IPS Chat Service is no longer available. <a href='{external.chat_closure}' target='_blank'>More Information</a>]]></word>
<word key="ipschat_closure_warning" js="0"><![CDATA[On %s IPS will be retiring the Chat service. <a href='{external.chat_closure}' target='_blank'>Read More &rarr;</a>]]></word>
<word key="ipschat_closure_warning_2" js="0">This message only shows to staff.</word>
<word key="ipschat_no_license" js="0">The chat room is not presently available</word>
<word key="ipschat_no_license_admin" js="0">You must supply a license key in order to enable the chat room</word>
<word key="ipschat_no_license_access" js="0">Your license does not include access to the chat room</word>
@@ -72,6 +76,7 @@
<word key="connect_error_3" js="0">No room number was supplied to connect to the chat room. Please contact technical support for assistance.</word>
<word key="connect_error_5" js="0">The room id supplied is invalid. Please contact technical support for assistance.</word>
<word key="connect_error_6" js="0">The license key used was invalid, or is not correctly associated with a chat account. Please contact technical support for assistance.</word>
<word key="connect_error_7" js="0">The server the chat room was hosted on is no longer online. Please wait a few moments and try again or contact technical support for assistance.</word>
<word key="connect_error_8" js="0">The server the chat room was hosted on is no longer online. Please wait a few moments and try again or contact technical support for assistance.</word>
<word key="connect_error_10" js="0">The chat server is offline. Please contact technical support for assistance.</word>
<word key="chat_room_full" js="0">The chat room limit has been reached. You will not be able to join the chat room until some users first leave.</word>
+118
View File
@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="chat" version="101093">
<word key_rus="Чат" key="__app_chat" js="0">Chat</word>
<word key_rus="Чат" key="frontnavigation_chat" js="0">Chat</word>
<word key_rus="Чат" key="chat_title" js="0">Chat</word>
<word key_rus="Чат" key="module__chat_chat" js="0">Chat</word>
<word key_rus="Чат" key="menu__chat_chat" js="0">Chat</word>
<word key_rus="PM" key="time_pm" js="0">PM</word>
<word key_rus="AM" key="time_am" js="0">AM</word>
<word key_rus="Вставить смайлик" key="chat_insert_emoticon" js="0">Insert Emoticon</word>
<word key_rus="0 пользователей в чате" key="no_users_chatting" js="0">0 users chatting</word>
<word key_rus="Настройки" key="menu__chat_chat_settings" js="0">Settings</word>
<word key_rus="Журналы" key="menu__chat_chat_logs" js="0">Logs</word>
<word key_rus="Журналы" key="r__logs" js="0">Logs</word>
<word key_rus="Можно просматривать журналы чата?" key="r__logs_manage" js="0">Can view chat logs?</word>
<word key_rus="Есть доступ к чату?" key="chat_banned" js="0">Can access chat?</word>
<word key_rus="Есть доступ к чату?" key="chat_access" js="0">Can access chat?</word>
<word key_rus="Можно модерировать чат?" key="chat_moderate" js="0">Can moderate chats?</word>
<word key_rus="Можно создавать приватные чаты?" key="chat_private" js="0">Can send private chats?</word>
<word key_rus="Чат" key="group__chat_ChatAccess" js="0">Chat</word>
<word key_rus="Чат" key="member__chat_ChatBanned" js="0">Chat</word>
<word key_rus="Формат времени" key="ipchat_24hour" js="0">Time format</word>
<word key_rus="Время в 12-часовом формате" key="chat_12hour" js="0">Show times with AM/PM</word>
<word key_rus="Время в 24-часовом формате" key="chat_24hour" js="0">Show times with 24 hour format</word>
<word key_rus="Отображать сообщения входа/выхода" key="ipchat_hide_usermessage" js="0">Show room join messages</word>
<word key_rus="Отображение сообщения в чате при входе или выходе пользователя из чата" key="ipchat_hide_usermessage_desc" js="0">Shows a message in the chat window when users enter and leave the room</word>
<word key_rus="Период бездействия" key="ipchat_inactive_minutes" js="0">Inactivity period</word>
<word key_rus="Если пользователь был неактивен указанный период времени, он автоматически покинет комнату чата" key="ipchat_inactive_minutes_desc" js="0">When the user has been inactive for this amount of time, they will be automatically kicked from the room</word>
<word key_rus="Максимальное количество отображаемых сообщений в чате" key="ipchat_max_messages" js="0">Maximum number of displayed chats</word>
<word key_rus="Открыть в новом окне" key="ipchat_new_window" js="0">Open in a new window</word>
<word key_rus="Показать историю чата после входа в комнату" key="ipchat_no_buffer" js="0">Show chat history upon joining a room</word>
<word key_rus="Показать правила чата" key="ipschat_enable_rules" js="0">Show chat rules</word>
<word key_rus="Пользователю будет предложено согласиться с правилами, перед входом в чат" key="ipschat_enable_rules_desc" js="0">The user will be prompted to agree to the rules before being allowed to join the room</word>
<word key_rus="Правила чата" key="ipschat_rules_text" js="0">Chat rules</word>
<word key_rus="ЧЧ:ММ" key="chat_timeplaceholder" js="0">HH:MM</word>
<word key_rus="Обновлены настройки чата" key="acplogs__chat_settings" js="0">Updated chat settings</word>
<word key_rus="Время онлайн" key="ipschat_online" js="0">Online times</word>
<word key_rus="При необходимости укажите период времени, когда чат будет доступен" key="ipschat_online_desc" js="0">Optionally specify a time period that chat will be available</word>
<word key_rus="Комната чата в настоящее время недоступна" key="ipschat_service_closed" js="0">The chat room is not presently available</word>
<word key_rus="Чат IPS больше недоступен. &lt;a href='{external.chat_closure}' target='_blank'&gt;дополнительная информация&lt;/a&gt;" key="ipschat_service_closed_admin" js="0"><![CDATA[IPS Chat Service is no longer available. <a href='{external.chat_closure}' target='_blank'>More Information</a>]]></word>
<word key_rus="В %s IPS Чат станет недоступен. &lt;a href='{external.chat_closure}' target='_blank'&gt;Подробнее &#8594;&lt;/a&gt;" key="ipschat_closure_warning" js="0"><![CDATA[On %s IPS will be retiring the Chat service. <a href='{external.chat_closure}' target='_blank'>Read More &rarr;</a>]]></word>
<word key_rus="Сообщение отображается только для модераторов." key="ipschat_closure_warning_2" js="0">This message only shows to staff.</word>
<word key_rus="Чат в настоящее время недоступен" key="ipschat_no_license" js="0">The chat room is not presently available</word>
<word key_rus="Вы должны ввести ключ лицензии для возможности пользоваться чатом" key="ipschat_no_license_admin" js="0">You must supply a license key in order to enable the chat room</word>
<word key_rus="Ваша лицензия не включает в себя возможность доступа к чату" key="ipschat_no_license_access" js="0">Your license does not include access to the chat room</word>
<word key_rus="Ваша группа имеет доступа к чату" key="ipschat_no_group_access" js="0">Your group does not have permission to access the chat room</word>
<word key_rus="Вы не имеете доступа к чату" key="ipschat_no_access" js="0">You do not have permission to access the chat room</word>
<word key_rus="Этот пользователь не может быть проигнорирован" key="ipschat_no_ignore" js="0">This user cannot be ignored</word>
<word key_rus="У вас нет прав для блокировки пользователей в чате" key="ipschat_no_ban" js="0">You do not have permission to ban users in chat</word>
<word key_rus="Журналы чата" key="ipschat_log_archive" js="0">Chat Logs</word>
<word key_rus="Изменены настройки очищения журнала чата" key="acplog__chatlog_settings" js="0">Edited chat log prune settings</word>
<word key_rus="Очистить журналы чата" key="ipchat_log_prune" js="0">Prune chat logs</word>
<word key_rus="Дата" key="chatlog_log_time" js="0">Date</word>
<word key_rus="Пользователь" key="chatlog_log_user" js="0">User</word>
<word key_rus="Сообщение" key="chatlog_log_message" js="0">Message</word>
<word key_rus="%s вошёл в комнату" key="chatlog__hasentered" js="0">%s entered the room</word>
<word key_rus="%s вышел из комнаты" key="chatlog__hasleft" js="0">%s left the room</word>
<word key_rus="Выгнан: %s" key="chatlog__kicked" js="0">Kicked: %s</word>
<word key_rus="Приватный чат с %s: %s" key="chatlog__private" js="0">Private chat with %s: %s</word>
<word key_rus="Переключить звуковые уведомления" key="chat_toggle_sound" js="0">Toggle sound notifications</word>
<word key_rus="Выйти из чата" key="chat_leave_room" js="0">Leave Chatroom</word>
<word key_rus="Я согласен с условиями" key="ipschat_confirm" js="0">I agree to the terms</word>
<word key_rus="Возникла ошибка входа в комнату чата. Пожалуйста, попробуйте ещё раз или свяжитесь с нами." key="generic_chatconnect_error" js="0">There was an error joining the chat room. Please try again or contact us.</word>
<word key_rus="В настоящее время чат не работает, но будет доступен в %s." key="chat_currently_offline" js="0">The chat room is currently offline but will be back at %s.</word>
<word key_rus="В настоящее время чат не работает согласно настройкам Сообщество -&gt; Чат -&gt; Настройки" key="chat_offline_admin" js="0"><![CDATA[The chat room is currently offline based upon the ACP configuration available at Community -> Chat -> Settings]]></word>
<word key_rus="Вы вышли из чата" key="leave_chat_room" js="0">You have left the chat room</word>
<word key_rus="Начать приватный чат" key="ipchat_private_chat" js="0">Start private chat</word>
<word key_rus="Игнорировать приватные чаты" key="ipchat_ignore_chats" js="0">Ignore private chats</word>
<word key_rus="Перестать игнорировать приватные чаты" key="ipchat_unignore_chats" js="0">Stop ignoring private chats</word>
<word key_rus="Выгнать пользователя из комнаты" key="ipchat_kick" js="0">Kick user from room</word>
<word key_rus="Забанить пользователя в комнате" key="ipchat_ban" js="0">Ban user from room</word>
<word key_rus="Просмотр профиля" key="ipchat_profile" js="0">View user profile</word>
<word key_rus="Используемый лицензионный ключ недействителен, или неверно связан с аккаунтом чата." key="connect_error_1" js="0">The license key used was invalid, or is not correctly associated with a chat account.</word>
<word key_rus="Не предоставлено имя пользователя для соединения с комнатой чата. Пожалуйста, свяжитесь со службой технической поддержки для получения помощи." key="connect_error_2" js="0">No username was supplied to connect to the chat room. Please contact technical support for assistance.</word>
<word key_rus="Не указан номер комнаты чата для соединения. Пожалуйста, свяжитесь со службой технической поддержки для получения помощи." key="connect_error_3" js="0">No room number was supplied to connect to the chat room. Please contact technical support for assistance.</word>
<word key_rus="Указанный id комнаты чата недействителен. Пожалуйста, свяжитесь со службой технической поддержки для получения помощи." key="connect_error_5" js="0">The room id supplied is invalid. Please contact technical support for assistance.</word>
<word key_rus="Используемый лицензионный ключ недействителен, или неверно связан с аккаунтом чата. Пожалуйста, свяжитесь со службой технической поддержки для получения помощи." key="connect_error_6" js="0">The license key used was invalid, or is not correctly associated with a chat account. Please contact technical support for assistance.</word>
<word key_rus="Сервер чата больше не доступен. Пожалуйста, подождите несколько минут и попробуйте снова или обратитесь в службу технической поддержки за помощью." key="connect_error_7" js="0">The server the chat room was hosted on is no longer online. Please wait a few moments and try again or contact technical support for assistance.</word>
<word key_rus="Сервер чата больше не доступен. Пожалуйста, подождите несколько минут и попробуйте снова или обратитесь в службу технической поддержки за помощью." key="connect_error_8" js="0">The server the chat room was hosted on is no longer online. Please wait a few moments and try again or contact technical support for assistance.</word>
<word key_rus="Сервер чата больше не доступен. Пожалуйста, свяжитесь со службой технической поддержки для получения помощи." key="connect_error_10" js="0">The chat server is offline. Please contact technical support for assistance.</word>
<word key_rus="Был достигнут лимит чата. Вы не сможете войти в чат до тех пор, пока кто-то из пользователей из него не выйдет." key="chat_room_full" js="0">The chat room limit has been reached. You will not be able to join the chat room until some users first leave.</word>
<word key_rus="Ваша лицензия не включает Чат, либо её срок действия истёк. Пожалуйста, свяжитесь со службой обслуживания клиентов за помощью." key="license_no_chat" js="0">Your license does not include Chat or has expired. Please contact customer services for assistance.</word>
<word key_rus="Ваш сервер не может соединиться с нашими серверами чата. Пожалуйста, обратитесь в службу технической поддержки компании." key="connect_gw_error_0" js="0">Your server was unable to communicate with our chat servers. Please contact technical support for assistance.</word>
<word key_rus="Используемый лицензионный ключ недействителен, или неверно связан с аккаунтом чата. Пожалуйста, свяжитесь со службой технической поддержки для получения помощи." key="connect_gw_error_1" js="0">The license key used was invalid, or is not correctly associated with a chat account. Please contact technical support for assistance.</word>
<word key_rus="Не предоставлено имя пользователя для соединения с комнатой чата. Пожалуйста, свяжитесь со службой технической поддержки для получения помощи." key="connect_gw_error_2" js="0">No username was supplied to connect to the chat room. Please contact technical support for assistance.</word>
<word key_rus="Указанный ID комнаты был признан недействительным. Пожалуйста, подождите несколько минут и попробуйте снова или обратитесь в службу технической поддержки за помощью." key="connect_gw_error_4" js="0">The room ID supplied was invalid. Please wait a few moments and try again or contact technical support for assistance.</word>
<word key_rus="Срок использования ключа для комнаты чата истёк. Пожалуйста, подождите несколько минут и попробуйте снова или обратитесь в службу технической поддержки за помощью." key="connect_gw_error_5" js="0">The chat room key has expired. Please wait a few moments and try again or contact technical support for assistance.</word>
<word key_rus="Лицензионный ключ не соответствует ключу чата. Пожалуйста, подождите несколько минут и попробуйте снова или обратитесь в службу технической поддержки за помощью." key="connect_gw_error_6" js="0">The license key did not match the key for the chat room. Please wait a few moments and try again or contact technical support for assistance.</word>
<word key_rus="Кто в чате" key="block_chatwhoschatting" js="0">Who's Chatting</word>
<word key_rus="Отображение пользователей, находящихся в чате" key="block_chatwhoschatting_desc" js="0">Show the users currently in the chat room</word>
<word key_rus="В настоящее время пользователей в чате нет" key="chatters_list_empty" js="0">There are no users currently in the chat room</word>
<word key_rus="Принять и войти в чат" key="accept_rules" js="0">Accept and enter chatroom</word>
<word key_rus="Правила чата" key="chatroom_rules" js="0">Chatroom Rules</word>
<word key_rus="Заблокированные в чате" key="modcp_members_chatBanned" js="0">Chat Banned</word>
<word key_rus="{{username}} вышел из комнаты" key="leftRoom" js="1">{{username}} left the room</word>
<word key_rus="{{username}} вошёл в комнату" key="enteredRoom" js="1">{{username}} entered the room</word>
<word key_rus="Приватный чат с {{user}}" key="privateChatWith" js="1">Private chat with {{user}}</word>
<word key_rus="Приватный чат" key="privateChat" js="1">Private Chat</word>
<word key_rus="Звуковое уведомление включено" key="soundEnabled" js="1">Notification sounds have been enabled</word>
<word key_rus="Звуковое уведомление отключено" key="soundDisabled" js="1">Notification sounds have been disabled</word>
<word key_rus="В чате {# [*1:пользователь][*2:пользователя][*3:пользователя][*4:пользователя][11:пользователей][12:пользователей][13:пользователей][14:пользователей][?:пользователей]}" key="usersChatting" js="1">{# [1:user][?:users]} chatting</word>
<word key_rus="Вы не можете начать приватный чат с самим собой!" key="cantChatWithSelf" js="1">You can't start a private chat with yourself!</word>
<word key_rus="{{user}} не может быть проигнорирован" key="cantIgnoreUser" js="1">{{user}} can't be ignored</word>
<word key_rus="Закрыть чат" key="closeThisTab" js="1">Close this chat</word>
<word key_rus="Вставить смайлик" key="insertEmoticon" js="1">Insert Emoticon</word>
<word key_rus="Отправить" key="sendChat" js="1">Send</word>
<word key_rus="Пользователей в чате нет" key="noUsersChatting" js="1">No users chatting</word>
<word key_rus="Чат" key="chatroom" js="1">Chat</word>
<word key_rus="Публичный чат" key="chatroomTooltip" js="1">Public Chat</word>
<word key_rus="Система" key="system" js="1">System</word>
<word key_rus="Вас выгнали из чата." key="kickedFromServer" js="1">You have been kicked from the chatroom.</word>
<word key_rus="AM" key="time_am" js="1">AM</word>
<word key_rus="PM" key="time_pm" js="1">PM</word>
<word key_rus="Переключить изображение" key="hideImage" js="1">Toggle image</word>
<word key_rus="Изображение скрыто" key="imageHidden" js="1">Image hidden</word>
</app>
</language>
+1 -2
View File
@@ -123,7 +123,6 @@
]
}
},
"collation": "latin1_swedish_ci",
"engine": "MyISAM"
"collation": "utf8mb4_unicode_ci"
}
}
+10 -3
View File
@@ -78,7 +78,14 @@
</li>
</ul>
</div>
</div>]]></template>
</div>
{{if member.isAdmin() or !empty( member.modPermissions() )}}
<p class="ipsMessage ipsMessage_information">
{lang="ipschat_closure_warning" sprintf="\IPS\DateTime::ts( 1493596800 )->format( 'j M Y' )"}<br>
<span class="ipsType_small">{lang="ipschat_closure_warning_2"}</span>
</p>
{{endif}}]]></template>
<template template_group="view" template_name="chatvars" template_data="$options, $forumIdMap, $groups, $badwords, $ignored, $emoticons" template_location="front" template_app="chat"><![CDATA[
<script type='text/javascript'>
// System vars
@@ -124,7 +131,7 @@
ips.setSetting( 'moderator', {{if \IPS\Member::loggedIn()->group['chat_moderate']}}true{{else}}false{{endif}} );
ips.setSetting( 'private', {{if \IPS\Member::loggedIn()->group['chat_private']}}true{{else}}false{{endif}} );
ips.setSetting( 'hideEnterExit', '{expression="(bool) \IPS\Settings::i()->ipchat_hide_usermessage"}' );
ips.setSetting( 'noBuffer', '{expression="(bool) \IPS\Settings::i()->ipchat_no_buffer"}' );
ips.setSetting( 'noBuffer', {{if \IPS\Settings::i()->ipchat_no_buffer}}false{{else}}true{{endif}} );
ips.setSetting( 'inactiveKick', parseInt( {expression="\IPS\Settings::i()->ipchat_inactive_minutes"} * 60 ) );
ips.setSetting( 'user24hour', {{if \IPS\Settings::i()->ipchat_24hour == '24'}}true{{else}}false{{endif}} );
ips.setSetting( 'soundEnabled', ips.utils.db.get( 'chat', 'sounds' ) );
@@ -191,7 +198,7 @@
<template template_group="widgets" template_name="chatwhoschatting" template_data="$chatters, $orientation='vertical'" template_location="front" template_app="chat"><![CDATA[<h3 class='ipsType_reset ipsWidget_title'>
{lang="block_chatwhoschatting"}
</h3>
<div class='ipsWidget_inner {{if $orientation == 'vertical'}}ipsPad{{endif}}'>
<div class='ipsWidget_inner {{if $orientation == 'vertical'}}ipsPad{{else}}ipsPad_half{{endif}}'>
{{if count( $chatters )}}
<ul class='ipsList_inline ipsList_csv ipsList_noSpacing'>
{{foreach $chatters as $row}}
+75 -1
View File
@@ -98,5 +98,79 @@
"101009": "4.1.0 Beta 10",
"101010": "4.1.0",
"101011": "4.1.1",
"101012": "4.1.2"
"101012": "4.1.2",
"101013": "4.1.3",
"101014": "4.1.3.1",
"101015": "4.1.3.2",
"101016": "4.1.4",
"101017": "4.1.4.1",
"101018": "4.1.5",
"101019": "4.1.5.1",
"101020": "4.1.5.2",
"101021": "4.1.6",
"101022": "4.1.6.1",
"101023": "4.1.7",
"101024": "4.1.8",
"101025": "4.1.8.1",
"101026": "4.1.9",
"101027": "4.1.10",
"101028": "4.1.11",
"101029": "4.1.11.1",
"101030": "4.1.12",
"101031": "4.1.12.1",
"101032": "4.1.12.2",
"101033": "4.1.12.3",
"101034": "4.1.13 Beta 1",
"101035": "4.1.13 Beta 2",
"101036": "4.1.13",
"101037": "4.1.13",
"101038": "4.1.13.1",
"101040": "4.1.13.2",
"101041": "4.1.13.2",
"101042": "4.1.14 Beta 1",
"101043": "4.1.14 Beta 2",
"101044": "4.1.14 Beta 3",
"101045": "4.1.14 Beta 4",
"101046": "4.1.14 Beta 5",
"101049": "4.1.14 Beta 6",
"101050": "4.1.14 Beta 7",
"101051": "4.1.14 RC",
"101052": "4.1.14",
"101053": "4.1.14.1",
"101054": "4.1.14.2",
"101055": "4.1.14.3",
"101056": "4.1.15",
"101057": "4.1.15 Beta 1",
"101058": "4.1.15 Beta 2",
"101059": "4.1.15 Beta 2a",
"101060": "4.1.15 Beta 3",
"101061": "4.1.15",
"101062": "4.1.15",
"101063": "4.1.15",
"101064": "4.1.16 Beta 1",
"101065": "4.1.16 Beta 2",
"101066": "4.1.16 Beta 3",
"101067": "4.1.16 Beta 4",
"101068": "4.1.16 Beta 5",
"101069": "4.1.16",
"101070": "4.1.16.1",
"101071": "4.1.17 Beta 1",
"101072": "4.1.17 Beta 1a",
"101073": "4.1.17 Beta 1b",
"101074": "4.1.17 Beta 2",
"101075": "4.1.17 Beta 3",
"101076": "4.1.17 Beta 3",
"101077": "4.1.17",
"101078": "4.1.17.1",
"101079": "4.1.18 Beta 1",
"101082": "4.1.18 Beta 1b",
"101083": "4.1.18 Beta 2",
"101084": "4.1.18 Beta 3",
"101085": "4.1.18",
"101088": "4.1.18.1",
"101089": "4.1.18.2",
"101090": "4.1.19 Beta 1",
"101091": "4.1.19 Beta 2",
"101092": "4.1.19 Beta 3",
"101093": "4.1.19"
}