diff --git a/README b/README index 59c1aca..b95bfe0 100644 --- a/README +++ b/README @@ -41,7 +41,7 @@ Private messages Multi-line messages Change font, colour and refresh rate in profile settings Autologout when inactive for some time -Image and video embedding +Image embedding Notes for admins and moderators Clone the chat to have multiple tabs Kick chatters diff --git a/README.md b/README.md index e2371c5..8b498ce 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Features: * Multi-line messages * Change font, colour and refresh rate in profile settings * Autologout when inactive for some time -* Image and video embedding +* Image embedding * Notes for admins and moderators * Clone the chat to have multiple tabs * Kick chatters diff --git a/chat.php b/chat.php index 2283c19..87732da 100755 --- a/chat.php +++ b/chat.php @@ -2337,7 +2337,7 @@ function check_init(){ } function init_chat(){ - global $C, $H, $I, $mysqli; + global $C, $H, $I, $memcached, $mysqli; $suwrite=''; if(check_init()>=7){ $suwrite=$I['initdbexist']; @@ -2380,6 +2380,7 @@ function init_chat(){ "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');"); while(mysqli_more_results($mysqli)) mysqli_next_result($mysqli); + if($C['memcached']) $memcached->delete("$C[dbname]-$C[prefix]num-tables"); $reg=array( 'nickname' =>$_REQUEST['sunick'], 'passhash' =>md5(sha1(md5($_REQUEST['sunick'].$_REQUEST['supass']))), @@ -2582,7 +2583,8 @@ function load_lang(){ global $C, $I, $L; $L=array( 'de' =>'Deutsch', - 'en' =>'English' + 'en' =>'English', + 'ru' =>'Русский' ); if(isSet($_REQUEST['lang']) && array_key_exists($_REQUEST['lang'], $L)){ $C['lang']=$_REQUEST['lang']; @@ -2591,7 +2593,10 @@ function load_lang(){ $C['lang']=$_COOKIE['language']; } 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(){ diff --git a/lang_de.php b/lang_de.php index 98d2c00..98cbdb1 100644 --- a/lang_de.php +++ b/lang_de.php @@ -18,7 +18,7 @@ * along with this program. If not, see . */ -$I=array( +$T=array( '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.', 'changelang' => 'Sprache ändern:', diff --git a/lang_ru.php b/lang_ru.php new file mode 100644 index 0000000..0a45a09 --- /dev/null +++ b/lang_ru.php @@ -0,0 +1,238 @@ + +* +* 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 . +*/ + +//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' => 'Формат даты', + 'admfunc' => 'Административные функции', + 'allguests' => 'Все гости', + 'cleanmsgs' => 'Очистка сообщений', + 'room' => 'Целая комната', + 'selection' => 'Выбор', + 'clean' => 'Чистый', + 'kickchat' => 'Бан (%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' => 'Этот чат использует frames. Пожалуйста, включите поддержку в Вашем браузере или используйте подходящий!', + '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' => 'Все функции должны быть в значительной степени самоуправления объяснения, просто используйте кнопки. В настройках вашего профиля вы можете настроить частоту обновления, цвет шрифта и желаемый размер окна входа.
Заметка: Это чат, так что если вы молчите, вы будете автоматически зарегистрированы через некоторое время..', + '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' => 'Желто-зеленый', +); +?>