Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
ec72f55423 | |||
05faa22cbb | |||
1e4b1d5489 |
@ -1,3 +1,9 @@
|
|||||||
|
Version 1.12.3 - Aug. 18, 2015
|
||||||
|
Fix member registration
|
||||||
|
|
||||||
|
Version 1.12.2 - Aug. 18, 2015
|
||||||
|
Fix redirection and image embedding
|
||||||
|
|
||||||
Version 1.12.1 - Aug. 17, 2015
|
Version 1.12.1 - Aug. 17, 2015
|
||||||
Fix update query
|
Fix update query
|
||||||
|
|
||||||
|
2
README
2
README
@ -41,7 +41,7 @@ Private messages
|
|||||||
Multi-line messages
|
Multi-line messages
|
||||||
Change font, colour and refresh rate in profile settings
|
Change font, colour and refresh rate in profile settings
|
||||||
Autologout when inactive for some time
|
Autologout when inactive for some time
|
||||||
Image and video embedding
|
Image embedding
|
||||||
Notes for admins and moderators
|
Notes for admins and moderators
|
||||||
Clone the chat to have multiple tabs
|
Clone the chat to have multiple tabs
|
||||||
Kick chatters
|
Kick chatters
|
||||||
|
@ -25,7 +25,7 @@ Features:
|
|||||||
* Multi-line messages
|
* Multi-line messages
|
||||||
* Change font, colour and refresh rate in profile settings
|
* Change font, colour and refresh rate in profile settings
|
||||||
* Autologout when inactive for some time
|
* Autologout when inactive for some time
|
||||||
* Image and video embedding
|
* Image embedding
|
||||||
* Notes for admins and moderators
|
* Notes for admins and moderators
|
||||||
* Clone the chat to have multiple tabs
|
* Clone the chat to have multiple tabs
|
||||||
* Kick chatters
|
* Kick chatters
|
||||||
|
33
chat.php
33
chat.php
@ -1737,15 +1737,13 @@ function register_guest($status){
|
|||||||
if(!isSet($P[$_REQUEST['name']])) send_admin(sprintf($I['cantreg'], $_REQUEST['name']));
|
if(!isSet($P[$_REQUEST['name']])) send_admin(sprintf($I['cantreg'], $_REQUEST['name']));
|
||||||
read_members();
|
read_members();
|
||||||
if(isSet($A[$_REQUEST['name']])) send_admin(sprintf($I['alreadyreged'], $_REQUEST['name']));
|
if(isSet($A[$_REQUEST['name']])) send_admin(sprintf($I['alreadyreged'], $_REQUEST['name']));
|
||||||
$stmt=mysqli_prepare($mysqli, "SELECT `session`, `nickname`, ``passhash`, `refresh`, `bgcolour`, `boxwidth`, `boxheight`, `notesboxwidth`, `notesboxheight`, `timestamps`, `embed`, `incognito` FROM `$C[prefix]sessions` WHERE `nickname`=? AND `status`='1'");
|
$stmt=mysqli_prepare($mysqli, "SELECT `session`, `nickname`, `passhash`, `refresh`, `bgcolour`, `boxwidth`, `boxheight`, `notesboxwidth`, `notesboxheight`, `timestamps`, `embed`, `incognito`, `style` FROM `$C[prefix]sessions` WHERE `nickname`=? AND `status`='1'");
|
||||||
mysqli_stmt_bind_param($stmt, 's', $_REQUEST['name']);
|
mysqli_stmt_bind_param($stmt, 's', $_REQUEST['name']);
|
||||||
mysqli_stmt_execute($stmt);
|
mysqli_stmt_execute($stmt);
|
||||||
mysqli_stmt_bind_result($stmt, $reg['session'], $reg['nickname'], $reg['passhash'], $reg['refresh'], $reg['bgcolour'], $reg['boxwidth'], $reg['boxheight'], $reg['notesboxwidth'], $reg['notesboxheight'], $reg['timestamps'], $reg['embed'], $reg['incognito']);
|
mysqli_stmt_bind_result($stmt, $reg['session'], $reg['nickname'], $reg['passhash'], $reg['refresh'], $reg['bgcolour'], $reg['boxwidth'], $reg['boxheight'], $reg['notesboxwidth'], $reg['notesboxheight'], $reg['timestamps'], $reg['embed'], $reg['incognito'], $reg['style']);
|
||||||
if(mysqli_stmt_fetch($stmt)){
|
if(mysqli_stmt_fetch($stmt)){
|
||||||
mysqli_stmt_close($stmt);
|
mysqli_stmt_close($stmt);
|
||||||
$reg['status']=$status;
|
$reg['status']=$status;
|
||||||
if(preg_match('/#([a-f0-9]{6})/i', $reg['style'], $match)) $reg['colour']=$match[1];
|
|
||||||
else $reg['colour']=get_setting('coltxt');
|
|
||||||
$stmt=mysqli_prepare($mysqli, "UPDATE `$C[prefix]sessions` SET `status`=? WHERE `session`=?");
|
$stmt=mysqli_prepare($mysqli, "UPDATE `$C[prefix]sessions` SET `status`=? WHERE `session`=?");
|
||||||
mysqli_stmt_bind_param($stmt, 'is', $reg['status'], $reg['session']);
|
mysqli_stmt_bind_param($stmt, 'is', $reg['status'], $reg['session']);
|
||||||
mysqli_stmt_execute($stmt);
|
mysqli_stmt_execute($stmt);
|
||||||
@ -1754,8 +1752,8 @@ function register_guest($status){
|
|||||||
mysqli_stmt_close($stmt);
|
mysqli_stmt_close($stmt);
|
||||||
send_admin(sprintf($I['cantreg'], $_REQUEST['name']));
|
send_admin(sprintf($I['cantreg'], $_REQUEST['name']));
|
||||||
}
|
}
|
||||||
$stmt=mysqli_prepare($mysqli, "INSERT INTO `$C[prefix]members` (`nickname`, `passhash`, `status`, `refresh`, `colour`, `bgcolour`, `boxwidth`, `boxheight`, `notesboxwidth`, `notesboxheight`, `regedby`, `timestamps`, `embed`, `incognito`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
$stmt=mysqli_prepare($mysqli, "INSERT INTO `$C[prefix]members` (`nickname`, `passhash`, `status`, `refresh`, `bgcolour`, `boxwidth`, `boxheight`, `notesboxwidth`, `notesboxheight`, `regedby`, `timestamps`, `embed`, `incognito`, `style`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
||||||
mysqli_stmt_bind_param($stmt, 'ssiissiiiisiii', $reg['nickname'], $reg['passhash'], $reg['status'], $reg['refresh'], $reg['colour'], $reg['bgcolour'], $reg['boxwidth'], $reg['boxheight'], $reg['notesboxwidth'], $reg['notesboxheight'], $U['nickname'], $reg['timestamps'], $reg['embed'], $reg['incognito']);
|
mysqli_stmt_bind_param($stmt, 'ssiisiiiisiiis', $reg['nickname'], $reg['passhash'], $reg['status'], $reg['refresh'], $reg['bgcolour'], $reg['boxwidth'], $reg['boxheight'], $reg['notesboxwidth'], $reg['notesboxheight'], $U['nickname'], $reg['timestamps'], $reg['embed'], $reg['incognito'], $reg['style']);
|
||||||
mysqli_stmt_execute($stmt);
|
mysqli_stmt_execute($stmt);
|
||||||
mysqli_stmt_close($stmt);
|
mysqli_stmt_close($stmt);
|
||||||
if($C['memcached']) $memcached->delete("$C[dbname]-$C[prefix]members");
|
if($C['memcached']) $memcached->delete("$C[dbname]-$C[prefix]members");
|
||||||
@ -2046,7 +2044,6 @@ function apply_filter(){
|
|||||||
|
|
||||||
function apply_linkfilter(){
|
function apply_linkfilter(){
|
||||||
global $C, $U, $memcached, $mysqli;
|
global $C, $U, $memcached, $mysqli;
|
||||||
if(get_setting('imgembed')) $U['message']=preg_replace_callback('/\[img\]\s?<a href="(.*?(?="))" target="_blank">(.*?(?=<\/a>))<\/a>/i', function ($matched){ return str_ireplace('[/img]', '', "<br><a href=\"$matched[1]\" target=\"_blank\"><img src=\"$matched[1]\"></a><br>");}, $U['message']);
|
|
||||||
if($C['memcached']) $filters=$memcached->get("$C[dbname]-$C[prefix]linkfilter");
|
if($C['memcached']) $filters=$memcached->get("$C[dbname]-$C[prefix]linkfilter");
|
||||||
if(!$C['memcached'] || $memcached->getResultCode()!=Memcached::RES_SUCCESS){
|
if(!$C['memcached'] || $memcached->getResultCode()!=Memcached::RES_SUCCESS){
|
||||||
$filters=array();
|
$filters=array();
|
||||||
@ -2058,12 +2055,13 @@ function apply_linkfilter(){
|
|||||||
$U['message']=preg_replace_callback("/<a href=\"(.*?(?=\"))\" target=\"_blank\">(.*?(?=<\/a>))<\/a>/i", function ($matched) use(&$filter){ return "<a href=\"$matched[1]\" target=\"_blank\">".preg_replace("/$filter[match]/i", $filter['replace'], $matched[2]).'</a>';}, $U['message']);
|
$U['message']=preg_replace_callback("/<a href=\"(.*?(?=\"))\" target=\"_blank\">(.*?(?=<\/a>))<\/a>/i", function ($matched) use(&$filter){ return "<a href=\"$matched[1]\" target=\"_blank\">".preg_replace("/$filter[match]/i", $filter['replace'], $matched[2]).'</a>';}, $U['message']);
|
||||||
}
|
}
|
||||||
$redirect=get_setting('redirect');
|
$redirect=get_setting('redirect');
|
||||||
|
if(get_setting('imgembed')) $U['message']=preg_replace_callback('/\[img\]\s?<a href="(.*?(?="))" target="_blank">(.*?(?=<\/a>))<\/a>/i', function ($matched){ return str_ireplace('[/img]', '', "<br><a href=\"$matched[1]\" target=\"_blank\"><img src=\"$matched[1]\"></a><br>");}, $U['message']);
|
||||||
if(empty($redirect)) $redirect="$_SERVER[SCRIPT_NAME]?action=redirect&url=";
|
if(empty($redirect)) $redirect="$_SERVER[SCRIPT_NAME]?action=redirect&url=";
|
||||||
if(get_setting('forceredirect')) $U['message']=preg_replace_callback('/<a href="(.*?(?="))" target="_blank">(.*?(?=<\/a>))<\/a>/', function ($matched){ global $C; return "<a href=\"$redirect".urlencode($matched[1])."\" target=\"_blank\">$matched[2]</a>";}, $U['message']);
|
if(get_setting('forceredirect')) $U['message']=preg_replace_callback('/<a href="(.*?(?="))" target="_blank">(.*?(?=<\/a>))<\/a>/', function ($matched) use($redirect){ return "<a href=\"$redirect".urlencode($matched[1])."\" target=\"_blank\">$matched[2]</a>";}, $U['message']);
|
||||||
elseif(preg_match_all('/<a href="(.*?(?="))" target="_blank">(.*?(?=<\/a>))<\/a>/', $U['message'], $matches)){
|
elseif(preg_match_all('/<a href="(.*?(?="))" target="_blank">(.*?(?=<\/a>))<\/a>/', $U['message'], $matches)){
|
||||||
foreach($matches[1] as $match){
|
foreach($matches[1] as $match){
|
||||||
if(!preg_match('~^http(s)?://~', $match)){
|
if(!preg_match('~^http(s)?://~', $match)){
|
||||||
$U['message']=preg_replace_callback('/<a href="(.*?(?="))" target="_blank">(.*?(?=<\/a>))<\/a>/', function ($matched){ global $C; return "<a href=\"$redirect".urlencode($matched[1])."\" target=\"_blank\">$matched[2]</a>";}, $U['message']);
|
$U['message']=preg_replace_callback('/<a href="(.*?(?="))" target="_blank">(.*?(?=<\/a>))<\/a>/', function ($matched) use($redirect){ return "<a href=\"$redirect".urlencode($matched[1])."\" target=\"_blank\">$matched[2]</a>";}, $U['message']);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2203,7 +2201,7 @@ function print_messages($delstatus=''){
|
|||||||
while(mysqli_stmt_fetch($stmt)){
|
while(mysqli_stmt_fetch($stmt)){
|
||||||
if($C['msgencrypted']) $message['text']=openssl_decrypt($message['text'], 'aes-256-cbc', $C['encryptkey'], 0, '1234567890123456');
|
if($C['msgencrypted']) $message['text']=openssl_decrypt($message['text'], 'aes-256-cbc', $C['encryptkey'], 0, '1234567890123456');
|
||||||
if($injectRedirect){
|
if($injectRedirect){
|
||||||
$message['text']=preg_replace_callback('/<a href="(.*?(?="))" target="_blank">(.*?(?=<\/a>))<\/a>/', function ($matched){ global $C; return "<a href=\"$redirect".urlencode($matched[1])."\" target=\"_blank\">$matched[2]</a>";}, $message['text']);
|
$message['text']=preg_replace_callback('/<a href="(.*?(?="))" target="_blank">(.*?(?=<\/a>))<\/a>/', function ($matched) use ($redirect){ return "<a href=\"$redirect".urlencode($matched[1])."\" target=\"_blank\">$matched[2]</a>";}, $message['text']);
|
||||||
}
|
}
|
||||||
if($removeEmbed){
|
if($removeEmbed){
|
||||||
$message['text']=preg_replace_callback('/<img src="(.*?(?="))">/', function ($matched){ return $matched[1];}, $message['text']);
|
$message['text']=preg_replace_callback('/<img src="(.*?(?="))">/', function ($matched){ return $matched[1];}, $message['text']);
|
||||||
@ -2224,7 +2222,7 @@ function print_messages($delstatus=''){
|
|||||||
while(mysqli_stmt_fetch($stmt)){
|
while(mysqli_stmt_fetch($stmt)){
|
||||||
if($C['msgencrypted']) $message['text']=openssl_decrypt($message['text'], 'aes-256-cbc', $C['encryptkey'], 0, '1234567890123456');
|
if($C['msgencrypted']) $message['text']=openssl_decrypt($message['text'], 'aes-256-cbc', $C['encryptkey'], 0, '1234567890123456');
|
||||||
if($injectRedirect){
|
if($injectRedirect){
|
||||||
$message['text']=preg_replace_callback('/<a href="(.*?(?="))" target="_blank">(.*?(?=<\/a>))<\/a>/', function ($matched){ global $C; return "<a href=\"$redirect".urlencode($matched[1])."\" target=\"_blank\">$matched[2]</a>";}, $message['text']);
|
$message['text']=preg_replace_callback('/<a href="(.*?(?="))" target="_blank">(.*?(?=<\/a>))<\/a>/', function ($matched) use($redirect) { return "<a href=\"$redirect".urlencode($matched[1])."\" target=\"_blank\">$matched[2]</a>";}, $message['text']);
|
||||||
}
|
}
|
||||||
if($removeEmbed){
|
if($removeEmbed){
|
||||||
$message['text']=preg_replace_callback('/<img src="(.*?(?="))">/', function ($matched){ return $matched[1];}, $message['text']);
|
$message['text']=preg_replace_callback('/<img src="(.*?(?="))">/', function ($matched){ return $matched[1];}, $message['text']);
|
||||||
@ -2337,7 +2335,7 @@ function check_init(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function init_chat(){
|
function init_chat(){
|
||||||
global $C, $H, $I, $mysqli;
|
global $C, $H, $I, $memcached, $mysqli;
|
||||||
$suwrite='';
|
$suwrite='';
|
||||||
if(check_init()>=7){
|
if(check_init()>=7){
|
||||||
$suwrite=$I['initdbexist'];
|
$suwrite=$I['initdbexist'];
|
||||||
@ -2380,6 +2378,7 @@ function init_chat(){
|
|||||||
"ALTER TABLE `$C[prefix]settings` MODIFY `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT; ".
|
"ALTER TABLE `$C[prefix]settings` MODIFY `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT; ".
|
||||||
"INSERT INTO `$C[prefix]settings` (`setting`,`value`) VALUES ('guestaccess', '0'), ('globalpass', ''), ('englobalpass', '0'), ('captcha', '0'), ('dateformat', 'm-d H:i:s'), ('rulestxt', ''), ('msgencrypted', '0'), ('msgenter', '%s entered the chat.'), ('msgexit', '%s left the chat.'), ('msgmemreg', '%s is now a registered member.'), ('msgsureg', '%s is now a registered applicant.'), ('msgkick', '%s has been kicked.'), ('msgmultikick', '%s have been kicked.'), ('msgallkick', 'All chatters have been kicked.'), ('msgclean', '%s has been cleaned.'), ('dbversion', '$C[dbversion]'), ('css', 'a:visited{color:#B33CB4;} a:active{color:#FF0033;} a:link{color:#0000FF;} input,select,textarea{color:#FFFFFF;background-color:#000000;} a img{width:15%} a:hover img{width:35%} .error{color:#FF0033;} .delbutton{background-color:#660000;} .backbutton{background-color:#004400;} #exitbutton{background-color:#AA0000;}'), ('memberexpire', '60'), ('guestexpire', '15'), ('kickpenalty', '10'), ('entrywait', '120'), ('messageexpire', '14400'), ('messagelimit', '150'), ('maxmessage', 2000), ('captchatime', '600'), ('colbg', '000000'), ('coltxt', 'FFFFFF'), ('maxname', '20'), ('minpass', '5'), ('defaultrefresh', '20'), ('dismemcaptcha', '0'), ('suguests', '0'), ('imgembed', '1'), ('timestamps', '1'), ('trackip', '1'), ('captchachars', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'), ('memkick', '1'), ('forceredirect', '0'), ('redirect', ''), ('incognito', '1');");
|
"INSERT INTO `$C[prefix]settings` (`setting`,`value`) VALUES ('guestaccess', '0'), ('globalpass', ''), ('englobalpass', '0'), ('captcha', '0'), ('dateformat', 'm-d H:i:s'), ('rulestxt', ''), ('msgencrypted', '0'), ('msgenter', '%s entered the chat.'), ('msgexit', '%s left the chat.'), ('msgmemreg', '%s is now a registered member.'), ('msgsureg', '%s is now a registered applicant.'), ('msgkick', '%s has been kicked.'), ('msgmultikick', '%s have been kicked.'), ('msgallkick', 'All chatters have been kicked.'), ('msgclean', '%s has been cleaned.'), ('dbversion', '$C[dbversion]'), ('css', 'a:visited{color:#B33CB4;} a:active{color:#FF0033;} a:link{color:#0000FF;} input,select,textarea{color:#FFFFFF;background-color:#000000;} a img{width:15%} a:hover img{width:35%} .error{color:#FF0033;} .delbutton{background-color:#660000;} .backbutton{background-color:#004400;} #exitbutton{background-color:#AA0000;}'), ('memberexpire', '60'), ('guestexpire', '15'), ('kickpenalty', '10'), ('entrywait', '120'), ('messageexpire', '14400'), ('messagelimit', '150'), ('maxmessage', 2000), ('captchatime', '600'), ('colbg', '000000'), ('coltxt', 'FFFFFF'), ('maxname', '20'), ('minpass', '5'), ('defaultrefresh', '20'), ('dismemcaptcha', '0'), ('suguests', '0'), ('imgembed', '1'), ('timestamps', '1'), ('trackip', '1'), ('captchachars', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'), ('memkick', '1'), ('forceredirect', '0'), ('redirect', ''), ('incognito', '1');");
|
||||||
while(mysqli_more_results($mysqli)) mysqli_next_result($mysqli);
|
while(mysqli_more_results($mysqli)) mysqli_next_result($mysqli);
|
||||||
|
if($C['memcached']) $memcached->delete("$C[dbname]-$C[prefix]num-tables");
|
||||||
$reg=array(
|
$reg=array(
|
||||||
'nickname' =>$_REQUEST['sunick'],
|
'nickname' =>$_REQUEST['sunick'],
|
||||||
'passhash' =>md5(sha1(md5($_REQUEST['sunick'].$_REQUEST['supass']))),
|
'passhash' =>md5(sha1(md5($_REQUEST['sunick'].$_REQUEST['supass']))),
|
||||||
@ -2582,7 +2581,8 @@ function load_lang(){
|
|||||||
global $C, $I, $L;
|
global $C, $I, $L;
|
||||||
$L=array(
|
$L=array(
|
||||||
'de' =>'Deutsch',
|
'de' =>'Deutsch',
|
||||||
'en' =>'English'
|
'en' =>'English',
|
||||||
|
'ru' =>'Русский'
|
||||||
);
|
);
|
||||||
if(isSet($_REQUEST['lang']) && array_key_exists($_REQUEST['lang'], $L)){
|
if(isSet($_REQUEST['lang']) && array_key_exists($_REQUEST['lang'], $L)){
|
||||||
$C['lang']=$_REQUEST['lang'];
|
$C['lang']=$_REQUEST['lang'];
|
||||||
@ -2591,13 +2591,16 @@ function load_lang(){
|
|||||||
$C['lang']=$_COOKIE['language'];
|
$C['lang']=$_COOKIE['language'];
|
||||||
}
|
}
|
||||||
include('lang_en.php'); //always include English
|
include('lang_en.php'); //always include English
|
||||||
if($C['lang']!=='en') include("lang_$C[lang].php"); //replace with translation if available
|
if($C['lang']!=='en'){
|
||||||
|
include("lang_$C[lang].php"); //replace with translation if available
|
||||||
|
foreach($T as $name=>$translation) $I[$name]=$translation;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function load_config(){
|
function load_config(){
|
||||||
global $C;
|
global $C;
|
||||||
$C=array(
|
$C=array(
|
||||||
'version' =>'1.12.1', // Script version
|
'version' =>'1.12.3', // Script version
|
||||||
'dbversion' =>11, // Database version
|
'dbversion' =>11, // Database version
|
||||||
'chatname' =>'My Chat', // Chat Name
|
'chatname' =>'My Chat', // Chat Name
|
||||||
'keeplimit' =>3, // Amount of messages to keep in the database (multiplied with max messages displayed) - increase if you have many private messages
|
'keeplimit' =>3, // Amount of messages to keep in the database (multiplied with max messages displayed) - increase if you have many private messages
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$I=array(
|
$T=array(
|
||||||
'nodb' => 'Keine Verbindung zur Datenbank!',
|
'nodb' => 'Keine Verbindung zur Datenbank!',
|
||||||
'nodbsetup' => 'Keine Verbindung zur Datenbank, bitte erstelle eine Datenbank und bearbeite das Skript, um die korrekte Datenbank mit angegebenem Benutzernamen und Passwort zu benutzen.',
|
'nodbsetup' => 'Keine Verbindung zur Datenbank, bitte erstelle eine Datenbank und bearbeite das Skript, um die korrekte Datenbank mit angegebenem Benutzernamen und Passwort zu benutzen.',
|
||||||
'changelang' => 'Sprache ändern:',
|
'changelang' => 'Sprache ändern:',
|
||||||
|
238
lang_ru.php
Normal file
238
lang_ru.php
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Russian translation
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 Daniel Winzen <d@winzen4.de>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//Language: Русский
|
||||||
|
$T=array(
|
||||||
|
'nodb' => 'Нет соединения с базой данных!',
|
||||||
|
'nodbsetup' => 'Нет соединения с базой данных, пожалуйста, создайте базу данных и измените сценарий, чтобы использовать правильную базу данных с заданными именем пользователя и паролем!',
|
||||||
|
'changelang' => 'Изменить язык:',
|
||||||
|
'expire' => 'Недействительная/с истекшим сроком сессия',
|
||||||
|
'kicked' => 'Забанен!',
|
||||||
|
'invalnick' => 'Недействительный ник (20 символов максимум, никакие специальные разрешенные символы)',
|
||||||
|
'invalpass' => 'Неверный пароль (по крайней мере% D символов)',
|
||||||
|
'noconfirm' => 'Подтверждение пароля не совпадает!',
|
||||||
|
'incorregex' => 'Неправильное регулярное выражение!',
|
||||||
|
'bottom' => 'Вниз',
|
||||||
|
'top' => 'Вверх',
|
||||||
|
'choose' => '(выбрать)',
|
||||||
|
'setup' => 'Установка чата',
|
||||||
|
'init' => 'Начальная установка',
|
||||||
|
'sulogin' => 'Логин суперадминистратора',
|
||||||
|
'sunick' => 'Ник суперадминистратора:',
|
||||||
|
'supass' => 'Пароль суперадминистратора:',
|
||||||
|
'suconfirm' => 'Подтверждение пароля:',
|
||||||
|
'susuccess' => 'Успешно зарегистрирован!',
|
||||||
|
'initbtn' => 'Initalise чат',
|
||||||
|
'initdbexist' => 'Таблицы базы данных уже существуют! Чтобы продолжить, вы должны сначала удалить эти таблицы вручную.',
|
||||||
|
'initsuexist' => 'Суперадминистратор уже существует!',
|
||||||
|
'initgosetup' => 'Перейти к странице установки',
|
||||||
|
'nick' => 'Ник:',
|
||||||
|
'pass' => 'Пароль:',
|
||||||
|
'globalloginpass' => 'Глобальный пароль:',
|
||||||
|
'login' => 'Логин',
|
||||||
|
'dbupdate' => 'База данных успешно обновлена!',
|
||||||
|
'sysmessages' => 'Системные сообщения',
|
||||||
|
'msgenter' => 'Вход',
|
||||||
|
'msgexit' => 'Выход',
|
||||||
|
'msgmemreg' => 'Зарегистрированный',
|
||||||
|
'msgsureg' => 'Претендент зарегистрировался',
|
||||||
|
'msgkick' => 'Забанили',
|
||||||
|
'msgmultikick' => 'Многократно забанили',
|
||||||
|
'msgallkick' => 'Все забаненые',
|
||||||
|
'msgclean' => 'Комната очищается',
|
||||||
|
'dateformat' => '<a target="_blank" href="http://php.net/manual/ru/function.date.php#refsect1-function.date-parameters">Формат даты</a>',
|
||||||
|
'admfunc' => 'Административные функции',
|
||||||
|
'allguests' => 'Все гости',
|
||||||
|
'cleanmsgs' => 'Очистка сообщений',
|
||||||
|
'room' => 'Целая комната',
|
||||||
|
'selection' => 'Выбор',
|
||||||
|
'clean' => 'Чистый',
|
||||||
|
'kickchat' => '<b>Бан</b> (%d минут)',
|
||||||
|
'kickmsg' => 'Бан сообщения:',
|
||||||
|
'kickpurge' => 'Очистка сообщений',
|
||||||
|
'kick' => 'Бан',
|
||||||
|
'logoutinact' => 'Выход неактивного чата',
|
||||||
|
'logout' => 'Выйти',
|
||||||
|
'sessions' => 'Вид активных сессий',
|
||||||
|
'view' => 'Вид',
|
||||||
|
'filter' => 'Фильтр',
|
||||||
|
'guestacc' => 'Изменить гостевой доступ',
|
||||||
|
'guestallow' => 'Позволить',
|
||||||
|
'guestwait' => 'Разрешить с гостевой',
|
||||||
|
'adminallow' => 'Требовать одобрения модератора',
|
||||||
|
'globalpass' => 'Разрешить с глобальным паролем',
|
||||||
|
'memberglobalpass' => 'Только зарегистрированные с глобальным паролем',
|
||||||
|
'guestdisallow' => 'Только зарегистрированные',
|
||||||
|
'addsuguest' => 'Добавить заявителя',
|
||||||
|
'register' => 'Регистр',
|
||||||
|
'admmembers' => 'Зарегистрированные',
|
||||||
|
'memdel' => 'Удалить из базы данных',
|
||||||
|
'memdeny' => 'Запретить доступ (!)',
|
||||||
|
'memsuguest' => 'Набор к претенденту (G)',
|
||||||
|
'memreg' => 'Установите зарегистрированного',
|
||||||
|
'memmod' => 'Набор модератору (M)',
|
||||||
|
'memsumod' => 'Набор супермодератору (M)',
|
||||||
|
'memadm' => 'Набор администратору (A)',
|
||||||
|
'change' => 'Изменение',
|
||||||
|
'regguest' => 'Регистрация гостей',
|
||||||
|
'regmem' => 'Новая регистрация',
|
||||||
|
'sessact' => 'Активные сеансы',
|
||||||
|
'sessnick' => 'Ник',
|
||||||
|
'sesstimeout' => 'Время ожидания в',
|
||||||
|
'sessua' => 'User-Agent',
|
||||||
|
'fid' => 'Фильтр ID:',
|
||||||
|
'match' => 'Соответствие',
|
||||||
|
'replace' => 'Заменять',
|
||||||
|
'allowpm' => 'Разрешить в личку',
|
||||||
|
'regex' => 'Регулярное выражение',
|
||||||
|
'apply' => 'Применять',
|
||||||
|
'newfilter' => 'Новый фильтр:',
|
||||||
|
'add' => 'Добавить',
|
||||||
|
'noframes' => 'Этот чат использует <b>frames</b>. Пожалуйста, включите поддержку в Вашем браузере или используйте подходящий!',
|
||||||
|
'delselmes' => 'Удалить выбранные сообщения',
|
||||||
|
'staffnotes' => 'Заметки сотрудников',
|
||||||
|
'adminnotes' => 'Заметки администратора',
|
||||||
|
'notessaved' => 'Заметки сохраняются!',
|
||||||
|
'lastedited' => 'Последний раз редактировалось %1$s в %2$s',
|
||||||
|
'savenotes' => 'Сохранить заметки',
|
||||||
|
'waitingroom' => 'Гостевая',
|
||||||
|
'waittext' => 'Добро пожаловать %1$s, Ваш логин задерживается, Вы можете получить доступ в чат через %2$d секунд.',
|
||||||
|
'admwaittext' => 'Добро пожаловать %1$s, Ваш логин задерживается, Вы можете получить доступ в чат в ближайшее время, когда разрешит модератор.',
|
||||||
|
'waitreload' => 'Если эта страница не отвечает, обновления каждые %d секунд, используйте кнопку ниже, чтобы загрузить его вручную!',
|
||||||
|
'reload' => 'Перезагрузить',
|
||||||
|
'rules' => 'Правила',
|
||||||
|
'talkto' => 'Отправить',
|
||||||
|
'toall' => 'Все в чате',
|
||||||
|
'tomem' => 'Только для зарегистрированных',
|
||||||
|
'tostaff' => 'Служебное помещение',
|
||||||
|
'toadmin' => 'Только администратор',
|
||||||
|
'alsopurge' => 'Также очистить сообщения',
|
||||||
|
'dellast' => 'Удалить последнее сообщение',
|
||||||
|
'delall' => 'Удалить все сообщения',
|
||||||
|
'switchsingle' => 'Переключитесь на одну линию',
|
||||||
|
'switchmulti' => 'Переключитесь на мульти-линию',
|
||||||
|
'help' => 'Помощь',
|
||||||
|
'helpguest' => 'Все функции должны быть в значительной степени самоуправления объяснения, просто используйте кнопки. В настройках вашего профиля вы можете настроить частоту обновления, цвет шрифта и желаемый размер окна входа.<br><u>Заметка:</u> Это чат, так что если вы молчите, вы будете автоматически зарегистрированы через некоторое время..',
|
||||||
|
'helpembed' => 'Если вы хотите встроить изображение в свой пост, просто положите [img] перед вашим URL-изображением. Пример: [img]http://example.com/images/file.jpg будет вставлять изображения в вашем посте.',
|
||||||
|
'helpmem' => 'Члены: У вас есть еще несколько вариантов в вашем профиле. Вы можете настроить шрифт и изменить свой пароль в любое время.',
|
||||||
|
'helpmod' => 'Модераторы: Обратите внимание кнопку администратора внизу. Это перенесет на страницу, где вы можете очистить комнату, забанить, просмотреть все активные сеансы и отключить гостевой доступ полностью, если необходимо.',
|
||||||
|
'helpadm' => 'Администраторы: Вы способны регистрировать гостей, редактировать пользователей и регистрировать новые ники без их присутствия в комнате.',
|
||||||
|
'profile' => 'Ваш профиль',
|
||||||
|
'ignore' => 'Игнорировать',
|
||||||
|
'unignore' => 'Не игнорируйте больше',
|
||||||
|
'refreshrate' => 'Частота обновления (20-150 секунд)',
|
||||||
|
'fontcolour' => 'Цвет шрифта',
|
||||||
|
'viewexample' => 'Посмотреть примеры',
|
||||||
|
'bgcolour' => 'Фоновый цвет',
|
||||||
|
'fontface' => 'Шрифт',
|
||||||
|
'roomdefault' => 'Комната по умолчанию',
|
||||||
|
'bold' => 'Жирный',
|
||||||
|
'italic' => 'Курсив',
|
||||||
|
'fontexample' => 'Пример для выбранного шрифта',
|
||||||
|
'timestamps' => 'Показать отметки времени',
|
||||||
|
'embed' => 'Вставить изображения',
|
||||||
|
'incognito' => 'Режим инкогнито',
|
||||||
|
'pbsize' => 'Размер окна сообщений',
|
||||||
|
'nbsize' => 'Размер окна заметок',
|
||||||
|
'width' => 'Ширина:',
|
||||||
|
'height' => 'Высота:',
|
||||||
|
'changepass' => 'Изменить пароль',
|
||||||
|
'oldpass' => 'Старый пароль:',
|
||||||
|
'newpass' => 'Новый пароль:',
|
||||||
|
'confirmpass' => 'Подтвердите новый пароль:',
|
||||||
|
'savechanges' => 'Сохранить изменения',
|
||||||
|
'reloadpb' => 'Перезагрузить почтовый ящик',
|
||||||
|
'reloadmsgs' => 'Обновить сообщения',
|
||||||
|
'chgprofile' => 'Изменить профиль',
|
||||||
|
'adminbtn' => 'Администратор',
|
||||||
|
'admnotes' => 'Примечания администратора',
|
||||||
|
'notes' => 'Примечания',
|
||||||
|
'clone' => 'Клон',
|
||||||
|
'randh' => 'Правила и помощь',
|
||||||
|
'exit' => 'Выход из чата',
|
||||||
|
'bye' => 'Пока %s, заходите снова!',
|
||||||
|
'colourtable' => 'Цвет стола',
|
||||||
|
'backtoprofile' => 'Вернуться к вашей странице',
|
||||||
|
'copy' => 'Копия:',
|
||||||
|
'choosecol' => 'Гости выбирают цвет:',
|
||||||
|
'randomcol' => 'Случайный цвет',
|
||||||
|
'enter' => 'Войти в чат',
|
||||||
|
'error' => 'Ошибка:',
|
||||||
|
'members' => 'Зарегистрированные:',
|
||||||
|
'guests' => 'Гости:',
|
||||||
|
'approveguests' => '%d новые гости утвердить',
|
||||||
|
'allowchecked' => 'Разрешить проверять',
|
||||||
|
'allowall' => 'Позволять всем',
|
||||||
|
'denychecked' => 'Запретить проверять',
|
||||||
|
'denyall' => 'Запретить всем',
|
||||||
|
'denymessage' => 'Отправить сообщение с отказом:',
|
||||||
|
'butallowdeny' => 'Отправить',
|
||||||
|
'waitempty' => 'Нет больше запросов для одобрения.',
|
||||||
|
'wrongcaptcha' => 'Неправильный код',
|
||||||
|
'captchatime' => 'Защитный код уже используется или время истекло.',
|
||||||
|
'noguests' => 'К сожалению, в настоящее время только зарегистрированные!',
|
||||||
|
'curchat' => 'В настоящее время %d разговор (ов) в комнате:',
|
||||||
|
'cantreg' => 'Вы не можете зарегистрироваться %s',
|
||||||
|
'alreadyreged' => '%s уже зарегистрирован.',
|
||||||
|
'successreg' => '%s успешно зарегистрирован.',
|
||||||
|
'cantchgstat' => 'Невозможно изменить статус %s',
|
||||||
|
'succdel' => '%s успешно удален из базы данных.',
|
||||||
|
'succchg' => 'Статус %s успешно изменен.',
|
||||||
|
'wrongpass' => 'Неправильный пароль!',
|
||||||
|
'succprofile' => 'Ваш профиль был успешно сохранен.',
|
||||||
|
'backtologin' => 'Вернуться на страницу входа.',
|
||||||
|
'backtochat' => 'Вернуться в чат.',
|
||||||
|
'Beige' => 'Бежевый',
|
||||||
|
'Black' => 'Черный',
|
||||||
|
'Blue' => 'Синий',
|
||||||
|
'BlueViolet' => 'Фиолетово-синий',
|
||||||
|
'Brown' => 'Коричневый',
|
||||||
|
'Cyan' => 'Голубой',
|
||||||
|
'DarkBlue' => 'Темно-синий',
|
||||||
|
'DarkGreen' => 'Темно-зеленый',
|
||||||
|
'DarkRed' => 'Темно-красный',
|
||||||
|
'DarkViolet' => 'Темно-фиолетовый',
|
||||||
|
'DeepSkyBlue' => 'Голубое небо',
|
||||||
|
'Gold' => 'Золотой',
|
||||||
|
'Grey' => 'Серый',
|
||||||
|
'Green' => 'Зеленый',
|
||||||
|
'HotPink' => 'Ярко-розовый',
|
||||||
|
'Indigo' => 'Индиго',
|
||||||
|
'LightBlue' => 'Светло-синий',
|
||||||
|
'LightGreen' => 'Светло-зеленый',
|
||||||
|
'LimeGreen' => 'Зеленый лайм',
|
||||||
|
'Magenta' => 'Пурпурный',
|
||||||
|
'Olive' => 'Оливковый',
|
||||||
|
'Orange' => 'Оранжевый',
|
||||||
|
'OrangeRed' => 'Оранжево-красный',
|
||||||
|
'Purple' => 'Фиолетовый',
|
||||||
|
'Red' => 'Красный',
|
||||||
|
'RoyalBlue' => 'Королевский синий',
|
||||||
|
'SeaGreen' => 'Морской зеленый',
|
||||||
|
'Sienna' => 'Сиена',
|
||||||
|
'Silver' => 'Серебряный',
|
||||||
|
'Tan' => 'Загар',
|
||||||
|
'Teal' => 'Чирок',
|
||||||
|
'Violet' => 'Фиолетовый',
|
||||||
|
'White' => 'Белый',
|
||||||
|
'Yellow' => 'Желтый',
|
||||||
|
'YellowGreen' => 'Желто-зеленый',
|
||||||
|
);
|
||||||
|
?>
|
Reference in New Issue
Block a user