Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
1887d42a78 | |||
95fd504249 | |||
c728d6d447 | |||
95c1faf1d9
|
|||
c5e55e8bc0 | |||
1cdf6cbf55 | |||
7adf9732ef | |||
f0659466c1 | |||
0963acafcf | |||
d58fdeee8b
|
|||
e0d6fe5d91 | |||
f605137313 | |||
03f9a86515
|
@ -1,3 +1,6 @@
|
|||||||
|
Allow making file upload member-only
|
||||||
|
Added required tag to captcha input
|
||||||
|
|
||||||
Version 1.23.7 - Feb. 24, 2019
|
Version 1.23.7 - Feb. 24, 2019
|
||||||
Support V3 hidden services
|
Support V3 hidden services
|
||||||
Fixed filtermodkick setting
|
Fixed filtermodkick setting
|
||||||
|
2
README
2
README
@ -42,7 +42,7 @@ Optionally, you can install:
|
|||||||
- the json extension for save/restore
|
- the json extension for save/restore
|
||||||
- a memcached server and the memcached extension and change the configuaration to use memcached. This will lessen the database load a bit.
|
- a memcached server and the memcached extension and change the configuaration to use memcached. This will lessen the database load a bit.
|
||||||
- a MySQL or PostgreSQL server to use as an external database instead of SQLite
|
- a MySQL or PostgreSQL server to use as an external database instead of SQLite
|
||||||
- the openssl extension for encryption of messages and notes in the database
|
- the libsodium extension for encryption of messages and notes in the database (bundled with PHP >= 7.2)
|
||||||
When you have everything installed and use MySQL or PostgreSQL, you'll have to create a database and a user for the chat.
|
When you have everything installed and use MySQL or PostgreSQL, you'll have to create a database and a user for the chat.
|
||||||
Then edit the configuration at the bottom of the script to reflect the appropriate database settings and to modify the chat settings the way you like them.
|
Then edit the configuration at the bottom of the script to reflect the appropriate database settings and to modify the chat settings the way you like them.
|
||||||
Then copy the script to your web-server directory and call the script in your browser with a parameter like this:
|
Then copy the script to your web-server directory and call the script in your browser with a parameter like this:
|
||||||
|
@ -45,7 +45,7 @@ Optionally, you can install:
|
|||||||
- the json extension for save/restore
|
- the json extension for save/restore
|
||||||
- a memcached server and the memcached extension and change the configuaration to use memcached. This will lessen the database load a bit.
|
- a memcached server and the memcached extension and change the configuaration to use memcached. This will lessen the database load a bit.
|
||||||
- a MySQL or PostgreSQL server to use as an external database instead of SQLite
|
- a MySQL or PostgreSQL server to use as an external database instead of SQLite
|
||||||
- the openssl extension for encryption of messages and notes in the database
|
- the libsodium extension (PHP >= 7.2) for encryption of messages and notes in the database
|
||||||
When you have everything installed and use MySQL or PostgreSQL, you'll have to create a database and a user for the chat.
|
When you have everything installed and use MySQL or PostgreSQL, you'll have to create a database and a user for the chat.
|
||||||
Then edit the configuration at the bottom of the script to reflect the appropriate database settings and to modify the chat settings the way you like them.
|
Then edit the configuration at the bottom of the script to reflect the appropriate database settings and to modify the chat settings the way you like them.
|
||||||
Then copy the script to your web-server directory and call the script in your browser with a parameter like this:
|
Then copy the script to your web-server directory and call the script in your browser with a parameter like this:
|
||||||
|
55
chat.php
55
chat.php
@ -222,10 +222,10 @@ function route_setup(){
|
|||||||
if(!valid_admin()){
|
if(!valid_admin()){
|
||||||
send_alogin();
|
send_alogin();
|
||||||
}
|
}
|
||||||
$C['bool_settings']=['suguests', 'imgembed', 'timestamps', 'trackip', 'memkick', 'forceredirect', 'incognito', 'sendmail', 'modfallback', 'disablepm', 'eninbox', 'enablegreeting', 'sortupdown', 'hidechatters', 'enfileupload', 'personalnotes', 'filtermodkick'];
|
$C['bool_settings']=['suguests', 'imgembed', 'timestamps', 'trackip', 'memkick', 'forceredirect', 'incognito', 'sendmail', 'modfallback', 'disablepm', 'eninbox', 'enablegreeting', 'sortupdown', 'hidechatters', 'personalnotes', 'filtermodkick'];
|
||||||
$C['colour_settings']=['colbg', 'coltxt'];
|
$C['colour_settings']=['colbg', 'coltxt'];
|
||||||
$C['msg_settings']=['msgenter', 'msgexit', 'msgmemreg', 'msgsureg', 'msgkick', 'msgmultikick', 'msgallkick', 'msgclean', 'msgsendall', 'msgsendmem', 'msgsendmod', 'msgsendadm', 'msgsendprv', 'msgattache'];
|
$C['msg_settings']=['msgenter', 'msgexit', 'msgmemreg', 'msgsureg', 'msgkick', 'msgmultikick', 'msgallkick', 'msgclean', 'msgsendall', 'msgsendmem', 'msgsendmod', 'msgsendadm', 'msgsendprv', 'msgattache'];
|
||||||
$C['number_settings']=['memberexpire', 'guestexpire', 'kickpenalty', 'entrywait', 'captchatime', 'messageexpire', 'messagelimit', 'maxmessage', 'maxname', 'minpass', 'defaultrefresh', 'numnotes', 'maxuploadsize'];
|
$C['number_settings']=['memberexpire', 'guestexpire', 'kickpenalty', 'entrywait', 'captchatime', 'messageexpire', 'messagelimit', 'maxmessage', 'maxname', 'minpass', 'defaultrefresh', 'numnotes', 'maxuploadsize', 'enfileupload'];
|
||||||
$C['textarea_settings']=['rulestxt', 'css', 'disabletext'];
|
$C['textarea_settings']=['rulestxt', 'css', 'disabletext'];
|
||||||
$C['text_settings']=['dateformat', 'captchachars', 'redirect', 'chatname', 'mailsender', 'mailreceiver', 'nickregex', 'passregex', 'externalcss'];
|
$C['text_settings']=['dateformat', 'captchachars', 'redirect', 'chatname', 'mailsender', 'mailreceiver', 'nickregex', 'passregex', 'externalcss'];
|
||||||
$C['settings']=array_merge(['guestaccess', 'englobalpass', 'globalpass', 'captcha', 'dismemcaptcha', 'topic', 'guestreg', 'defaulttz'], $C['bool_settings'], $C['colour_settings'], $C['msg_settings'], $C['number_settings'], $C['textarea_settings'], $C['text_settings']); // All settings in the database
|
$C['settings']=array_merge(['guestaccess', 'englobalpass', 'globalpass', 'captcha', 'dismemcaptcha', 'topic', 'guestreg', 'defaulttz'], $C['bool_settings'], $C['colour_settings'], $C['msg_settings'], $C['number_settings'], $C['textarea_settings'], $C['text_settings']); // All settings in the database
|
||||||
@ -499,7 +499,7 @@ function send_captcha(){
|
|||||||
imagegif($im);
|
imagegif($im);
|
||||||
imagedestroy($im);
|
imagedestroy($im);
|
||||||
echo base64_encode(ob_get_clean()).'">';
|
echo base64_encode(ob_get_clean()).'">';
|
||||||
echo '</td><td>'.hidden('challenge', $randid).'<input type="text" name="captcha" size="15" autocomplete="off"></td></tr>';
|
echo '</td><td>'.hidden('challenge', $randid).'<input type="text" name="captcha" size="15" autocomplete="off" required></td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
function send_setup($C){
|
function send_setup($C){
|
||||||
@ -768,7 +768,7 @@ function restore_backup($C){
|
|||||||
$note['type']=1;
|
$note['type']=1;
|
||||||
}
|
}
|
||||||
if(MSGENCRYPTED){
|
if(MSGENCRYPTED){
|
||||||
$note['text']=openssl_encrypt($note['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
$note['text']=base64_encode(sodium_crypto_aead_aes256gcm_encrypt($note['text'], '', AES_IV, ENCRYPTKEY));
|
||||||
}
|
}
|
||||||
$stmt->execute([$note['type'], $note['lastedited'], $note['editedby'], $note['text']]);
|
$stmt->execute([$note['type'], $note['lastedited'], $note['editedby'], $note['text']]);
|
||||||
}
|
}
|
||||||
@ -804,7 +804,7 @@ function send_backup($C){
|
|||||||
$result=$db->query('SELECT * FROM ' . PREFIX . "notes;");
|
$result=$db->query('SELECT * FROM ' . PREFIX . "notes;");
|
||||||
while($note=$result->fetch(PDO::FETCH_ASSOC)){
|
while($note=$result->fetch(PDO::FETCH_ASSOC)){
|
||||||
if(MSGENCRYPTED){
|
if(MSGENCRYPTED){
|
||||||
$note['text']=openssl_decrypt($note['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
$note['text']=sodium_crypto_aead_aes256gcm_decrypt(base64_decode($note['text']), null, AES_IV, ENCRYPTKEY);
|
||||||
}
|
}
|
||||||
$code['notes'][]=$note;
|
$code['notes'][]=$note;
|
||||||
}
|
}
|
||||||
@ -1415,7 +1415,7 @@ function send_frameset(){
|
|||||||
}else{
|
}else{
|
||||||
$bottom='';
|
$bottom='';
|
||||||
}
|
}
|
||||||
if(($U['status']>=5 || ($U['status']>2 && get_count_mods()==0)) && get_setting('enfileupload')){
|
if(($U['status']>=5 || ($U['status']>2 && get_count_mods()==0)) && get_setting('enfileupload')>0 && get_setting('enfileupload')<=$U['status']){
|
||||||
$postheight=120;
|
$postheight=120;
|
||||||
}else{
|
}else{
|
||||||
$postheight=100;
|
$postheight=100;
|
||||||
@ -1539,7 +1539,7 @@ function send_notes($type){
|
|||||||
}
|
}
|
||||||
if(isset($_REQUEST['text'])){
|
if(isset($_REQUEST['text'])){
|
||||||
if(MSGENCRYPTED){
|
if(MSGENCRYPTED){
|
||||||
$_REQUEST['text']=openssl_encrypt($_REQUEST['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
$_REQUEST['text']=base64_encode(sodium_crypto_aead_aes256gcm_encrypt($_REQUEST['text'], '', AES_IV, ENCRYPTKEY));
|
||||||
}
|
}
|
||||||
$time=time();
|
$time=time();
|
||||||
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'notes (type, lastedited, editedby, text) VALUES (?, ?, ?, ?);');
|
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'notes (type, lastedited, editedby, text) VALUES (?, ?, ?, ?);');
|
||||||
@ -1573,7 +1573,7 @@ function send_notes($type){
|
|||||||
$note['text']='';
|
$note['text']='';
|
||||||
}
|
}
|
||||||
if(MSGENCRYPTED){
|
if(MSGENCRYPTED){
|
||||||
$note['text']=openssl_decrypt($note['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
$note['text']=sodium_crypto_aead_aes256gcm_decrypt(base64_decode($note['text']), null, AES_IV, ENCRYPTKEY);
|
||||||
}
|
}
|
||||||
echo "</p>".form('notes');
|
echo "</p>".form('notes');
|
||||||
echo "$hiddendo<textarea name=\"text\">".htmlspecialchars($note['text']).'</textarea><br>';
|
echo "$hiddendo<textarea name=\"text\">".htmlspecialchars($note['text']).'</textarea><br>';
|
||||||
@ -1766,7 +1766,7 @@ function send_post($rejected=''){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo '</select></td>';
|
echo '</select></td>';
|
||||||
if(get_setting('enfileupload')){
|
if(get_setting('enfileupload')>0 && get_setting('enfileupload')<=$U['status']){
|
||||||
if(!$disablepm && ($U['status']>=5 || ($U['status']>=3 && get_count_mods()==0 && get_setting('memkick')))){
|
if(!$disablepm && ($U['status']>=5 || ($U['status']>=3 && get_count_mods()==0 && get_setting('memkick')))){
|
||||||
echo '</tr></table><table><tr id="secondline">';
|
echo '</tr></table><table><tr id="secondline">';
|
||||||
}
|
}
|
||||||
@ -2910,7 +2910,7 @@ function validate_input(){
|
|||||||
$message=apply_filter($message, $poststatus, $U['nickname']);
|
$message=apply_filter($message, $poststatus, $U['nickname']);
|
||||||
$message=create_hotlinks($message);
|
$message=create_hotlinks($message);
|
||||||
$message=apply_linkfilter($message);
|
$message=apply_linkfilter($message);
|
||||||
if(isset($_FILES['file']) && get_setting('enfileupload')){
|
if(isset($_FILES['file']) && get_setting('enfileupload')>0 && get_setting('enfileupload')<=$U['status']){
|
||||||
if($_FILES['file']['error']===UPLOAD_ERR_OK && $_FILES['file']['size']<=(1024*get_setting('maxuploadsize'))){
|
if($_FILES['file']['error']===UPLOAD_ERR_OK && $_FILES['file']['size']<=(1024*get_setting('maxuploadsize'))){
|
||||||
$hash=sha1_file($_FILES['file']['tmp_name']);
|
$hash=sha1_file($_FILES['file']['tmp_name']);
|
||||||
$name=htmlspecialchars($_FILES['file']['name']);
|
$name=htmlspecialchars($_FILES['file']['name']);
|
||||||
@ -2932,7 +2932,7 @@ function validate_input(){
|
|||||||
'text' =>"<span class=\"usermsg\">$displaysend".style_this($message, $U['style']).'</span>'
|
'text' =>"<span class=\"usermsg\">$displaysend".style_this($message, $U['style']).'</span>'
|
||||||
];
|
];
|
||||||
if(MSGENCRYPTED){
|
if(MSGENCRYPTED){
|
||||||
$newmessage['text']=openssl_encrypt($newmessage['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
$newmessage['text']=base64_encode(sodium_crypto_aead_aes256gcm_encrypt($newmessage['text'], '', AES_IV, ENCRYPTKEY));
|
||||||
}
|
}
|
||||||
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'inbox (postdate, postid, poster, recipient, text) VALUES(?, ?, ?, ?, ?)');
|
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'inbox (postdate, postid, poster, recipient, text) VALUES(?, ?, ?, ?, ?)');
|
||||||
$stmt->execute([$newmessage['postdate'], $id[0], $newmessage['poster'], $newmessage['recipient'], $newmessage['text']]);
|
$stmt->execute([$newmessage['postdate'], $id[0], $newmessage['poster'], $newmessage['recipient'], $newmessage['text']]);
|
||||||
@ -3030,9 +3030,9 @@ function create_hotlinks($message){
|
|||||||
$message=preg_replace_callback('/<<([^<>]+)>>/u',
|
$message=preg_replace_callback('/<<([^<>]+)>>/u',
|
||||||
function ($matches){
|
function ($matches){
|
||||||
if(strpos($matches[1], '://')===false){
|
if(strpos($matches[1], '://')===false){
|
||||||
return "<a href=\"http://$matches[1]\" target=\"_blank\">$matches[1]</a>";
|
return "<a href=\"http://$matches[1]\" target=\"_blank\" rel=\"noreferrer noopener\">$matches[1]</a>";
|
||||||
}else{
|
}else{
|
||||||
return "<a href=\"$matches[1]\" target=\"_blank\">$matches[1]</a>";
|
return "<a href=\"$matches[1]\" target=\"_blank\" rel=\"noreferrer noopener\">$matches[1]</a>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, $message);
|
, $message);
|
||||||
@ -3120,7 +3120,7 @@ function add_system_message($mes){
|
|||||||
function write_message($message){
|
function write_message($message){
|
||||||
global $db;
|
global $db;
|
||||||
if(MSGENCRYPTED){
|
if(MSGENCRYPTED){
|
||||||
$message['text']=openssl_encrypt($message['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
$message['text']=base64_encode(sodium_crypto_aead_aes256gcm_encrypt($message['text'], '', AES_IV, ENCRYPTKEY));
|
||||||
}
|
}
|
||||||
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'messages (postdate, poststatus, poster, recipient, text, delstatus) VALUES (?, ?, ?, ?, ?, ?);');
|
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'messages (postdate, poststatus, poster, recipient, text, delstatus) VALUES (?, ?, ?, ?, ?, ?);');
|
||||||
$stmt->execute([$message['postdate'], $message['poststatus'], $message['poster'], $message['recipient'], $message['text'], $message['delstatus']]);
|
$stmt->execute([$message['postdate'], $message['poststatus'], $message['poster'], $message['recipient'], $message['text'], $message['delstatus']]);
|
||||||
@ -3241,7 +3241,7 @@ function print_messages($delstatus=0){
|
|||||||
|
|
||||||
function prepare_message_print(&$message, $removeEmbed){
|
function prepare_message_print(&$message, $removeEmbed){
|
||||||
if(MSGENCRYPTED){
|
if(MSGENCRYPTED){
|
||||||
$message['text']=openssl_decrypt($message['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
$message['text']=sodium_crypto_aead_aes256gcm_decrypt(base64_decode($message['text']), null, AES_IV, ENCRYPTKEY);
|
||||||
}
|
}
|
||||||
if($removeEmbed){
|
if($removeEmbed){
|
||||||
$message['text']=preg_replace_callback('/<img src="([^"]+)"><\/a>/u',
|
$message['text']=preg_replace_callback('/<img src="([^"]+)"><\/a>/u',
|
||||||
@ -3261,6 +3261,9 @@ function send_headers(){
|
|||||||
header('Expires: 0');
|
header('Expires: 0');
|
||||||
header('Referrer-Policy: no-referrer');
|
header('Referrer-Policy: no-referrer');
|
||||||
header('Content-Security-Policy: referrer never');
|
header('Content-Security-Policy: referrer never');
|
||||||
|
header('X-Content-Type-Options: nosniff');
|
||||||
|
header('X-Frame-Options: sameorigin');
|
||||||
|
header('X-XSS-Protection: 1; mode=block');
|
||||||
if($_SERVER['REQUEST_METHOD']==='HEAD'){
|
if($_SERVER['REQUEST_METHOD']==='HEAD'){
|
||||||
exit; // headers sent, no further processing needed
|
exit; // headers sent, no further processing needed
|
||||||
}
|
}
|
||||||
@ -3999,16 +4002,16 @@ function update_db(){
|
|||||||
}
|
}
|
||||||
update_setting('dbversion', DBVERSION);
|
update_setting('dbversion', DBVERSION);
|
||||||
if($msgencrypted!==MSGENCRYPTED){
|
if($msgencrypted!==MSGENCRYPTED){
|
||||||
if(!extension_loaded('openssl')){
|
if(!extension_loaded('sodium')){
|
||||||
send_fatal_error($I['opensslextrequired']);
|
send_fatal_error($I['sodiumextrequired']);
|
||||||
}
|
}
|
||||||
$result=$db->query('SELECT id, text FROM ' . PREFIX . 'messages;');
|
$result=$db->query('SELECT id, text FROM ' . PREFIX . 'messages;');
|
||||||
$stmt=$db->prepare('UPDATE ' . PREFIX . 'messages SET text=? WHERE id=?;');
|
$stmt=$db->prepare('UPDATE ' . PREFIX . 'messages SET text=? WHERE id=?;');
|
||||||
while($message=$result->fetch(PDO::FETCH_ASSOC)){
|
while($message=$result->fetch(PDO::FETCH_ASSOC)){
|
||||||
if(MSGENCRYPTED){
|
if(MSGENCRYPTED){
|
||||||
$message['text']=openssl_encrypt($message['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
$message['text']=base64_encode(sodium_crypto_aead_aes256gcm_encrypt($message['text'], '', AES_IV, ENCRYPTKEY));
|
||||||
}else{
|
}else{
|
||||||
$message['text']=openssl_decrypt($message['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
$message['text']=sodium_crypto_aead_aes256gcm_decrypt(base64_decode($message['text']), null, AES_IV, ENCRYPTKEY);
|
||||||
}
|
}
|
||||||
$stmt->execute([$message['text'], $message['id']]);
|
$stmt->execute([$message['text'], $message['id']]);
|
||||||
}
|
}
|
||||||
@ -4016,9 +4019,9 @@ function update_db(){
|
|||||||
$stmt=$db->prepare('UPDATE ' . PREFIX . 'notes SET text=? WHERE id=?;');
|
$stmt=$db->prepare('UPDATE ' . PREFIX . 'notes SET text=? WHERE id=?;');
|
||||||
while($message=$result->fetch(PDO::FETCH_ASSOC)){
|
while($message=$result->fetch(PDO::FETCH_ASSOC)){
|
||||||
if(MSGENCRYPTED){
|
if(MSGENCRYPTED){
|
||||||
$message['text']=openssl_encrypt($message['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
$message['text']=base64_encode(sodium_crypto_aead_aes256gcm_encrypt($message['text'], '', AES_IV, ENCRYPTKEY));
|
||||||
}else{
|
}else{
|
||||||
$message['text']=openssl_decrypt($message['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
|
$message['text']=sodium_crypto_aead_aes256gcm_decrypt(base64_decode($message['text']), null, AES_IV, ENCRYPTKEY);
|
||||||
}
|
}
|
||||||
$stmt->execute([$message['text'], $message['id']]);
|
$stmt->execute([$message['text'], $message['id']]);
|
||||||
}
|
}
|
||||||
@ -4177,10 +4180,11 @@ function load_lang(){
|
|||||||
|
|
||||||
function load_config(){
|
function load_config(){
|
||||||
mb_internal_encoding('UTF-8');
|
mb_internal_encoding('UTF-8');
|
||||||
define('VERSION', '1.23.7'); // Script version
|
define('VERSION', '1.24'); // Script version
|
||||||
define('DBVERSION', 42); // Database layout version
|
define('DBVERSION', 42); // Database layout version
|
||||||
define('MSGENCRYPTED', false); // Store messages encrypted in the database to prevent other database users from reading them - true/false - visit the setup page after editing!
|
define('MSGENCRYPTED', false); // Store messages encrypted in the database to prevent other database users from reading them - true/false - visit the setup page after editing!
|
||||||
define('ENCRYPTKEY', 'MY_KEY'); // Encryption key for messages
|
define('ENCRYPTKEY_PASS', 'MY_SECRET_KEY'); // Encryption key for messages
|
||||||
|
define('AES_IV_PASS', '1234567890123456'); //AES Encryption IV
|
||||||
define('DBHOST', 'localhost'); // Database host
|
define('DBHOST', 'localhost'); // Database host
|
||||||
define('DBUSER', 'www-data'); // Database user
|
define('DBUSER', 'www-data'); // Database user
|
||||||
define('DBPASS', 'YOUR_DB_PASS'); // Database password
|
define('DBPASS', 'YOUR_DB_PASS'); // Database password
|
||||||
@ -4198,4 +4202,9 @@ function load_config(){
|
|||||||
}
|
}
|
||||||
define('COOKIENAME', PREFIX . 'chat_session'); // Cookie name storing the session information
|
define('COOKIENAME', PREFIX . 'chat_session'); // Cookie name storing the session information
|
||||||
define('LANG', 'en'); // Default language
|
define('LANG', 'en'); // Default language
|
||||||
|
if (MSGENCRYPTED){
|
||||||
|
//Do not touch: Compute real keys needed by encryption functions
|
||||||
|
define('ENCRYPTKEY', substr(hash("sha512/256",ENCRYPTKEY_PASS),0, SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES));
|
||||||
|
define('AES_IV', substr(hash("sha512/256",AES_IV_PASS), 0, SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
8
chatters_list_on_right_example.css
Normal file
8
chatters_list_on_right_example.css
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.msg {padding: 0.5em 0; border-bottom: 1px solid #363636}
|
||||||
|
input, select, textarea, button {padding: 0.2em; border: 1px solid #ffffff; border-radius: 0.5em}
|
||||||
|
#messages small {color: #989898}
|
||||||
|
#messages {display: block; width: 79%}
|
||||||
|
.messages #topic {display: block; width: 79%}
|
||||||
|
.messages #chatters {display: block; float:right; width: 20%; overflow-y: auto; position:fixed; right:0px; max-height:100%; bottom:2em; top:2em;}
|
||||||
|
.messages #chatters td, #chatters tr, #chatters th {display: table-row; width: 100%!important;}
|
||||||
|
.messages #chatters table a {display: table-row; line-height: 0;}
|
@ -310,7 +310,7 @@ $T=[
|
|||||||
'nopass' => 'Невалидна парола (поне %d символа), не променям ника',
|
'nopass' => 'Невалидна парола (поне %d символа), не променям ника',
|
||||||
'gdextrequired' => 'Добавката gd за PHP е необходима за тази функционалност. Моля, първо я инсталирайте.',
|
'gdextrequired' => 'Добавката gd за PHP е необходима за тази функционалност. Моля, първо я инсталирайте.',
|
||||||
'memcachedextrequired' => 'Добавката memcached за PHP е необходима за кеш функционалностите. Моля, първо я инсталирайте или върнете настройките за memcached обратно на false.',
|
'memcachedextrequired' => 'Добавката memcached за PHP е необходима за кеш функционалностите. Моля, първо я инсталирайте или върнете настройките за memcached обратно на false.',
|
||||||
'opensslextrequired' => 'Добавката openssl за PHP е необходима the криптиращата функционалност. Моля, първо я инсталирайте или върнете настройките за криптиране обратно на false.',
|
'sodiumextrequired' => 'Добавката libsodium за PHP е необходима the криптиращата функционалност. Моля, първо я инсталирайте или върнете настройките за криптиране обратно на false.',
|
||||||
'pdo_mysqlextrequired' => 'Добавката pdo_mysql за PHP е необходима за избрания драйвер за базата данни. Моля, първо я инсталирайте.',
|
'pdo_mysqlextrequired' => 'Добавката pdo_mysql за PHP е необходима за избрания драйвер за базата данни. Моля, първо я инсталирайте.',
|
||||||
'pdo_pgsqlextrequired' => 'Добавката pdo_pgsql за PHP е необходима за избрания драйвер за базата данни. Моля, първо я инсталирайте.',
|
'pdo_pgsqlextrequired' => 'Добавката pdo_pgsql за PHP е необходима за избрания драйвер за базата данни. Моля, първо я инсталирайте.',
|
||||||
'pdo_sqliteextrequired' => 'Добавката pdo_sqlite за PHP е необходима за избрния драйвер за базата данни. Моля, първо я инсталирайте.',
|
'pdo_sqliteextrequired' => 'Добавката pdo_sqlite за PHP е необходима за избрния драйвер за базата данни. Моля, първо я инсталирайте.',
|
||||||
|
@ -310,7 +310,7 @@ $I=[
|
|||||||
'nopass' => 'Chybné heslo (Nejméně %d znaků), přezdívka zůstala stejná',
|
'nopass' => 'Chybné heslo (Nejméně %d znaků), přezdívka zůstala stejná',
|
||||||
'gdextrequired' => 'Rozšíření PHP gd je pro tuto funkci vyžadováno. Nejprve ho nainstalujte.',
|
'gdextrequired' => 'Rozšíření PHP gd je pro tuto funkci vyžadováno. Nejprve ho nainstalujte.',
|
||||||
'memcachedextrequired' => 'Pro funkci ukládání do mezipaměti je vyžadováno memcached rozšíření PHP. Nejprve ho nainstalujte, nebo nastavte parametr memcached na hodnotu false.',
|
'memcachedextrequired' => 'Pro funkci ukládání do mezipaměti je vyžadováno memcached rozšíření PHP. Nejprve ho nainstalujte, nebo nastavte parametr memcached na hodnotu false.',
|
||||||
'opensslextrequired' => 'Pro funkci šifrování je vyžadováno rozšíření PHP openssl. Nejprve ho nainstalujte nebo nastavte šifrované nastavení zpět na hodnotu false.',
|
'sodiumextrequired' => 'Pro funkci šifrování je vyžadováno rozšíření PHP libsodium. Nejprve ho nainstalujte nebo nastavte šifrované nastavení zpět na hodnotu false.',
|
||||||
'pdo_mysqlextrequired' => 'Rozšíření pdo_mysql PHP je vyžadováno pro zvolený ovladač databáze. Nejprve ho nainstalujte.',
|
'pdo_mysqlextrequired' => 'Rozšíření pdo_mysql PHP je vyžadováno pro zvolený ovladač databáze. Nejprve ho nainstalujte.',
|
||||||
'pdo_pgsqlextrequired' => 'Pro zvolený databázový ovladač je vyžadováno rozšíření PHP pdo_pgsql. Nejprve ho nainstalujte.',
|
'pdo_pgsqlextrequired' => 'Pro zvolený databázový ovladač je vyžadováno rozšíření PHP pdo_pgsql. Nejprve ho nainstalujte.',
|
||||||
'pdo_sqliteextrequired' => 'Rozšíření pdo_sqlite PHP je vyžadováno pro zvolený ovladač databáze. Nejprve ho nainstalujte.',
|
'pdo_sqliteextrequired' => 'Rozšíření pdo_sqlite PHP je vyžadováno pro zvolený ovladač databáze. Nejprve ho nainstalujte.',
|
||||||
|
@ -310,7 +310,7 @@ $T=[
|
|||||||
'nopass' => 'Ungültiges Passwort (Mindestens %d Zeichen), Nickname nicht geändert',
|
'nopass' => 'Ungültiges Passwort (Mindestens %d Zeichen), Nickname nicht geändert',
|
||||||
'gdextrequired' => 'Für diese Funktion wird die gd Erweiterung von PHP benötigt. Bitte installieren Sie diese zuerst.',
|
'gdextrequired' => 'Für diese Funktion wird die gd Erweiterung von PHP benötigt. Bitte installieren Sie diese zuerst.',
|
||||||
'memcachedextrequired' => 'Die memcached Erweiterung von PHP wird benötigt, um die Cache-Funktion zu benutzen. Bitte installieren Sie diese zuerst oder setzen Sie die memcached Einstellung zurück auf false.',
|
'memcachedextrequired' => 'Die memcached Erweiterung von PHP wird benötigt, um die Cache-Funktion zu benutzen. Bitte installieren Sie diese zuerst oder setzen Sie die memcached Einstellung zurück auf false.',
|
||||||
'opensslextrequired' => 'Die openssl Erweiterung von PHP wird benötigt, um die Verschlüsselungs-Funktion zu benutzen. Bitte installieren Sie diese zuerst oder setzen Sie die encrypted Einstellung zurück auf false.',
|
'sodiumextrequired' => 'Die libsodium Erweiterung von PHP wird benötigt, um die Verschlüsselungs-Funktion zu benutzen. Bitte installieren Sie diese zuerst oder setzen Sie die encrypted Einstellung zurück auf false.',
|
||||||
'pdo_mysqlextrequired' => 'Die pdo_mysql Erweiterung von PHP wird für den ausgewählten Datenbanktreiber benötigt. Bitte installieren Sie diese zuerst.',
|
'pdo_mysqlextrequired' => 'Die pdo_mysql Erweiterung von PHP wird für den ausgewählten Datenbanktreiber benötigt. Bitte installieren Sie diese zuerst.',
|
||||||
'pdo_pgsqlextrequired' => 'Die pdo_pgsql Erweiterung von PHP wird für den ausgewählten Datenbanktreiber benötigt. Bitte installieren Sie diese zuerst.',
|
'pdo_pgsqlextrequired' => 'Die pdo_pgsql Erweiterung von PHP wird für den ausgewählten Datenbanktreiber benötigt. Bitte installieren Sie diese zuerst.',
|
||||||
'pdo_sqliteextrequired' => 'Die pdo_sqlite Erweiterung von PHP wird für den ausgewählten Datenbanktreiber benötigt. Bitte installieren Sie diese zuerst.',
|
'pdo_sqliteextrequired' => 'Die pdo_sqlite Erweiterung von PHP wird für den ausgewählten Datenbanktreiber benötigt. Bitte installieren Sie diese zuerst.',
|
||||||
|
@ -310,7 +310,7 @@ $I=[
|
|||||||
'nopass' => 'Invalid password (At least %d characters), not changing nickname',
|
'nopass' => 'Invalid password (At least %d characters), not changing nickname',
|
||||||
'gdextrequired' => 'The gd extension of PHP is required for this feature. Please install it first.',
|
'gdextrequired' => 'The gd extension of PHP is required for this feature. Please install it first.',
|
||||||
'memcachedextrequired' => 'The memcached extension of PHP is required for the caching feature. Please install it first or set the memcached setting back to false.',
|
'memcachedextrequired' => 'The memcached extension of PHP is required for the caching feature. Please install it first or set the memcached setting back to false.',
|
||||||
'opensslextrequired' => 'The openssl extension of PHP is required for the encryption feature. Please install it first or set the encrypted setting back to false.',
|
'sodiumextrequired' => 'The libsodium extension of PHP is required for the encryption feature. Please install it first or set the encrypted setting back to false.',
|
||||||
'pdo_mysqlextrequired' => 'The pdo_mysql extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_mysqlextrequired' => 'The pdo_mysql extension of PHP is required for the selected database driver. Please install it first.',
|
||||||
'pdo_pgsqlextrequired' => 'The pdo_pgsql extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_pgsqlextrequired' => 'The pdo_pgsql extension of PHP is required for the selected database driver. Please install it first.',
|
||||||
'pdo_sqliteextrequired' => 'The pdo_sqlite extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_sqliteextrequired' => 'The pdo_sqlite extension of PHP is required for the selected database driver. Please install it first.',
|
||||||
|
@ -310,7 +310,7 @@ $T=[
|
|||||||
'nopass' => 'Constraseña incorrecta (al menos %d caracteres), no se cambia apodo',
|
'nopass' => 'Constraseña incorrecta (al menos %d caracteres), no se cambia apodo',
|
||||||
'gdextrequired' => 'La extensión gd de PHP es requerida para esto. Instálela primero.',
|
'gdextrequired' => 'La extensión gd de PHP es requerida para esto. Instálela primero.',
|
||||||
'memcachedextrequired' => 'La extensión memcached de PHP es requerida para esto. Instalela primero o configure memcached en false.',
|
'memcachedextrequired' => 'La extensión memcached de PHP es requerida para esto. Instalela primero o configure memcached en false.',
|
||||||
'opensslextrequired' => 'La extensión openssl de PHP es necesaria para la encriptación. Instálela o configure la encriptación en false.',
|
'sodiumextrequired' => 'La extensión libsodium de PHP es necesaria para la encriptación. Instálela o configure la encriptación en false.',
|
||||||
'pdo_mysqlextrequired' => 'La extensión pdo_mysql de PHP es necesaria para la database driver seleccionada. Instálelo primero.',
|
'pdo_mysqlextrequired' => 'La extensión pdo_mysql de PHP es necesaria para la database driver seleccionada. Instálelo primero.',
|
||||||
'pdo_pgsqlextrequired' => ' La extensión pdo_pgsql de PHP es necesaria para la database driver seleccionada. Instálelo primero.',
|
'pdo_pgsqlextrequired' => ' La extensión pdo_pgsql de PHP es necesaria para la database driver seleccionada. Instálelo primero.',
|
||||||
'pdo_sqliteextrequired' => ' La extensión pdo_sqlite de PHP es necesaria para la database driver seleccionada. Instálelo primero.',
|
'pdo_sqliteextrequired' => ' La extensión pdo_sqlite de PHP es necesaria para la database driver seleccionada. Instálelo primero.',
|
||||||
|
@ -310,7 +310,7 @@ $T=[
|
|||||||
'nopass' => 'Password sbagliata (Almeno %d simboli), senza cambiare nome',
|
'nopass' => 'Password sbagliata (Almeno %d simboli), senza cambiare nome',
|
||||||
'gdextrequired' => 'The gd extension of PHP is required for this feature. Please install it first.',
|
'gdextrequired' => 'The gd extension of PHP is required for this feature. Please install it first.',
|
||||||
'memcachedextrequired' => 'The memcached extension of PHP is required for the caching feature. Please install it first or set the memcached setting back to false.',
|
'memcachedextrequired' => 'The memcached extension of PHP is required for the caching feature. Please install it first or set the memcached setting back to false.',
|
||||||
'opensslextrequired' => 'The openssl extension of PHP is required for the encryption feature. Please install it first or set the encrypted setting back to false.',
|
'sodiumextrequired' => 'The libsodium extension of PHP is required for the encryption feature. Please install it first or set the encrypted setting back to false.',
|
||||||
'pdo_mysqlextrequired' => 'The pdo_mysql extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_mysqlextrequired' => 'The pdo_mysql extension of PHP is required for the selected database driver. Please install it first.',
|
||||||
'pdo_pgsqlextrequired' => 'The pdo_pgsql extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_pgsqlextrequired' => 'The pdo_pgsql extension of PHP is required for the selected database driver. Please install it first.',
|
||||||
'pdo_sqliteextrequired' => 'The pdo_sqlite extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_sqliteextrequired' => 'The pdo_sqlite extension of PHP is required for the selected database driver. Please install it first.',
|
||||||
|
@ -310,7 +310,7 @@ $T=[
|
|||||||
'nopass' => 'Некорректный пароль (Хотя бы %d символов), не меняя имени',
|
'nopass' => 'Некорректный пароль (Хотя бы %d символов), не меняя имени',
|
||||||
'gdextrequired' => 'gd расширение для PHP требуетса для етой функции. Пожалуйста установите его сначала...',
|
'gdextrequired' => 'gd расширение для PHP требуетса для етой функции. Пожалуйста установите его сначала...',
|
||||||
'memcachedextrequired' => 'The memcached extension of PHP is required for the caching feature. Please install it first or set the memcached setting back to false.',
|
'memcachedextrequired' => 'The memcached extension of PHP is required for the caching feature. Please install it first or set the memcached setting back to false.',
|
||||||
'opensslextrequired' => 'The openssl extension of PHP is required for the encryption feature. Please install it first or set the encrypted setting back to false.',
|
'sodiumextrequired' => 'The libsodium extension of PHP is required for the encryption feature. Please install it first or set the encrypted setting back to false.',
|
||||||
'pdo_mysqlextrequired' => 'Pdo_mysql расширение для PHP требуетса для драйверов базы данных. Пожалуйста установите его сначала..',
|
'pdo_mysqlextrequired' => 'Pdo_mysql расширение для PHP требуетса для драйверов базы данных. Пожалуйста установите его сначала..',
|
||||||
'pdo_pgsqlextrequired' => 'Pdo_pgsql расширение для PHP требуетса для драйверов базы данных. Пожалуйста установите его сначала..',
|
'pdo_pgsqlextrequired' => 'Pdo_pgsql расширение для PHP требуетса для драйверов базы данных. Пожалуйста установите его сначала..',
|
||||||
'pdo_sqliteextrequired' => 'Pdo_sqlite расширение для PHP требуетса для драйверов базы данных. Пожалуйста установите его сначала.',
|
'pdo_sqliteextrequired' => 'Pdo_sqlite расширение для PHP требуетса для драйверов базы данных. Пожалуйста установите его сначала.',
|
||||||
|
@ -310,7 +310,7 @@ $T=[
|
|||||||
'nopass' => 'Негідний пароль (Хотя б %d символів), не міняя імя',
|
'nopass' => 'Негідний пароль (Хотя б %d символів), не міняя імя',
|
||||||
'gdextrequired' => 'The gd extension of PHP is required for this feature. Please install it first.',
|
'gdextrequired' => 'The gd extension of PHP is required for this feature. Please install it first.',
|
||||||
'memcachedextrequired' => 'The memcached extension of PHP is required for the caching feature. Please install it first or set the memcached setting back to false.',
|
'memcachedextrequired' => 'The memcached extension of PHP is required for the caching feature. Please install it first or set the memcached setting back to false.',
|
||||||
'opensslextrequired' => 'The openssl extension of PHP is required for the encryption feature. Please install it first or set the encrypted setting back to false.',
|
'sodiumextrequired' => 'The libsodium extension of PHP is required for the encryption feature. Please install it first or set the encrypted setting back to false.',
|
||||||
'pdo_mysqlextrequired' => 'The pdo_mysql extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_mysqlextrequired' => 'The pdo_mysql extension of PHP is required for the selected database driver. Please install it first.',
|
||||||
'pdo_pgsqlextrequired' => 'The pdo_pgsql extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_pgsqlextrequired' => 'The pdo_pgsql extension of PHP is required for the selected database driver. Please install it first.',
|
||||||
'pdo_sqliteextrequired' => 'The pdo_sqlite extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_sqliteextrequired' => 'The pdo_sqlite extension of PHP is required for the selected database driver. Please install it first.',
|
||||||
|
497
lang_zh_CN.php
497
lang_zh_CN.php
@ -1,23 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
|
||||||
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Simplified Chinese translation
|
|
||||||
*
|
|
||||||
* Copyright (C) 2015-2018 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/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
//Native language name: 简体中文
|
//Native language name: 简体中文
|
||||||
$T=[
|
$T=[
|
||||||
'nodb' => '没有连接到数据库!',
|
'nodb' => '没有连接到数据库!',
|
||||||
@ -29,8 +10,8 @@ $T=[
|
|||||||
'invalpass' => '无效的密码 (至少包含%1$d个字符,并且必须与正则表达式"%2$s"匹配)',
|
'invalpass' => '无效的密码 (至少包含%1$d个字符,并且必须与正则表达式"%2$s"匹配)',
|
||||||
'noconfirm' => '重复密码不匹配!',
|
'noconfirm' => '重复密码不匹配!',
|
||||||
'incorregex' => '正则表达式错误!',
|
'incorregex' => '正则表达式错误!',
|
||||||
'bottom' => 'Bottom',
|
'bottom' => '底部',
|
||||||
'top' => '排行',
|
'top' => '顶部',
|
||||||
'choose' => '(选择)',
|
'choose' => '(选择)',
|
||||||
'setup' => '安装程序',
|
'setup' => '安装程序',
|
||||||
'init' => '初始化设置',
|
'init' => '初始化设置',
|
||||||
@ -64,7 +45,7 @@ $T=[
|
|||||||
'msgmultikick' => '批量踢出',
|
'msgmultikick' => '批量踢出',
|
||||||
'msgallkick' => '全部踢出',
|
'msgallkick' => '全部踢出',
|
||||||
'msgclean' => '房间清理',
|
'msgclean' => '房间清理',
|
||||||
'dateformat' => '<a target="_blank" href="http://php.net/manual/en/function.date.php#refsect1-function.date-parameters">Date formating</a>',
|
'dateformat' => '<a target="_blank" href="http://php.net/manual/en/function.date.php#refsect1-function.date-parameters">日期格式</a>',
|
||||||
'admfunc' => '管理员功能',
|
'admfunc' => '管理员功能',
|
||||||
'allguests' => '全部游客',
|
'allguests' => '全部游客',
|
||||||
'cleanmsgs' => '清理消息',
|
'cleanmsgs' => '清理消息',
|
||||||
@ -83,7 +64,7 @@ $T=[
|
|||||||
'filter' => '过滤',
|
'filter' => '过滤',
|
||||||
'guestacc' => '修改游客访问',
|
'guestacc' => '修改游客访问',
|
||||||
'guestallow' => '允许',
|
'guestallow' => '允许',
|
||||||
'guestwait' => 'Allow with waitingroom',
|
'guestwait' => '等候室允许',
|
||||||
'adminallow' => '请求审核人批准',
|
'adminallow' => '请求审核人批准',
|
||||||
'guestdisallow' => '只仅正式成员',
|
'guestdisallow' => '只仅正式成员',
|
||||||
'addsuguest' => '注册申请员',
|
'addsuguest' => '注册申请员',
|
||||||
@ -94,7 +75,7 @@ $T=[
|
|||||||
'memsuguest' => '申请为申请人 (G)',
|
'memsuguest' => '申请为申请人 (G)',
|
||||||
'memreg' => '设置为正式成员',
|
'memreg' => '设置为正式成员',
|
||||||
'memmod' => '设置为主持人 (M)',
|
'memmod' => '设置为主持人 (M)',
|
||||||
'memsumod' => 'Set to supermod (SM)',
|
'memsumod' => '设置为0.5 (SM)',
|
||||||
'memadm' => '设置为管理员 (A)',
|
'memadm' => '设置为管理员 (A)',
|
||||||
'change' => '修改',
|
'change' => '修改',
|
||||||
'regguest' => '注册游客',
|
'regguest' => '注册游客',
|
||||||
@ -119,246 +100,246 @@ $T=[
|
|||||||
'lastedited' => '上次由%1$s编辑 时间为%2$s',
|
'lastedited' => '上次由%1$s编辑 时间为%2$s',
|
||||||
'savenotes' => '保存说明',
|
'savenotes' => '保存说明',
|
||||||
'waitingroom' => '等候室',
|
'waitingroom' => '等候室',
|
||||||
'waittext' => 'Welcome %1$s, your login has been delayed, you can access the chat in %2$d seconds.',
|
'waittext' => '欢迎%1$s, 您的登录信息已被延迟,您可以访问聊天记录%2$d秒.',
|
||||||
'admwaittext' => 'Welcome %1$s, your login has been delayed, you can access the chat as soon, as a moderator lets you in.',
|
'admwaittext' => '欢迎%1$s, 您的登录信息已被延迟,您可以尽快访问聊天内容,因为主持人会让您进入.',
|
||||||
'waitreload' => 'If this page doesn\'t refresh every %d seconds, use the button below to reload it manually!',
|
'waitreload' => '如果这个页面没有刷新%d秒, 使用下面的按钮手动重新加载!',
|
||||||
'reload' => 'Reload',
|
'reload' => '刷新',
|
||||||
'rules' => 'Rules',
|
'rules' => '规则',
|
||||||
'talkto' => 'Send to',
|
'talkto' => '发送至',
|
||||||
'toall' => 'All chatters',
|
'toall' => '所有的聊天者',
|
||||||
'tomem' => 'Members only',
|
'tomem' => '内部使用',
|
||||||
'tostaff' => 'Staff only',
|
'tostaff' => '只供职员使用',
|
||||||
'toadmin' => 'Admin only',
|
'toadmin' => '仅限管理员',
|
||||||
'alsopurge' => 'Also purge messages',
|
'alsopurge' => '同时清除消息',
|
||||||
'dellast' => 'Delete last message',
|
'dellast' => '删除上一条消息',
|
||||||
'delall' => 'Delete all messages',
|
'delall' => '删除所有信息',
|
||||||
'switchsingle' => 'Switch to single-line',
|
'switchsingle' => '切换到单行',
|
||||||
'switchmulti' => 'Switch to multi-line',
|
'switchmulti' => '切换到多行',
|
||||||
'help' => 'Help',
|
'help' => '帮助',
|
||||||
'helpguest' => 'All functions should be pretty much self-explaining, just use the buttons. In your profile you can adjust the refresh rate, font colour and your preferred input box size.<br><u>Note:</u> This is a chat, so if you don\'t keep talking, you will be automatically logged out after a while.',
|
'helpguest' => '这里一切解释权归我所有,只需使用按钮。 在您的配置文件中,您可以调整刷新率,字体颜色和首选输入框大小.<br><u>注意:</u> 这是一个聊天室,所以如果你不再说话,你会在一段时间后自动退出.',
|
||||||
'helpembed' => 'If you want to embed an image in your post, simply put [img] in front of your image URL. Example: [img]http://example.com/images/file.jpg will embed the image in your post.',
|
'helpembed' => '如果您想在帖子中嵌入图片,只需将[img]放在图片网址前面即可。示例:[img]http://example.com/images/file.jpg会将图片嵌入到您的帖子中.',
|
||||||
'helpmem' => 'Members: You\'ll have some more options in your profile. You can adjust your font face, change your password anytime and of course you can delete your account.',
|
'helpmem' => '成员:您的个人资料中还有更多选项。 您可以随时调整字体,更改密码,当然也可以删除您的帐户.',
|
||||||
'helpmod' => 'Moderators: Notice the Admin-button at the bottom. It\'ll bring up a page where you can clean the room, kick chatters, view all active sessions and disable guest access completely if needed.',
|
'helpmod' => '版主:请注意底部。 它将打开一个页面,您可以在其中清理房间,踢聊天,查看所有活动会话并在需要时完全禁用访客访问权限.',
|
||||||
'helpadm' => 'Admins: You\'ll be furthermore able to register guests, edit members and register new nicknames.',
|
'helpadm' => '管理员:您还可以注册客人,编辑成员并注册新的昵称。',
|
||||||
'profile' => 'Your Profile',
|
'profile' => '你的个人资料',
|
||||||
'ignore' => 'Ignore',
|
'ignore' => '忽略',
|
||||||
'unignore' => 'Don\'t ignore anymore',
|
'unignore' => '取消忽略',
|
||||||
'refreshrate' => 'Refresh rate (5-150 seconds)',
|
'refreshrate' => '刷新时间(5秒-150秒)',
|
||||||
'fontcolour' => 'Font colour',
|
'fontcolour' => '字体颜色',
|
||||||
'viewexample' => 'View examples',
|
'viewexample' => '查看示例',
|
||||||
'bgcolour' => 'Background colour',
|
'bgcolour' => '背景色',
|
||||||
'fontface' => 'Fontface',
|
'fontface' => '字体',
|
||||||
'roomdefault' => 'Room Default',
|
'roomdefault' => '默认房间',
|
||||||
'bold' => 'Bold',
|
'bold' => '大胆',
|
||||||
'italic' => 'Italic',
|
'italic' => '斜体',
|
||||||
'fontexample' => 'Example for your chosen font',
|
'fontexample' => '您选择的字体的示例',
|
||||||
'timestamps' => 'Show Timestamps',
|
'timestamps' => '显示时间戳',
|
||||||
'embed' => 'Embed images',
|
'embed' => '嵌入图像',
|
||||||
'incognito' => 'Incognito mode',
|
'incognito' => '隐身模式',
|
||||||
'changepass' => 'Change Password',
|
'changepass' => '更改密码',
|
||||||
'oldpass' => 'Old password:',
|
'oldpass' => '旧密码:',
|
||||||
'newpass' => 'New password:',
|
'newpass' => '新密码:',
|
||||||
'confirmpass' => 'Confirm new password:',
|
'confirmpass' => '在重复一次新密码:',
|
||||||
'savechanges' => 'Save changes',
|
'savechanges' => '保存更改',
|
||||||
'reloadpb' => 'Reload Post Box',
|
'reloadpb' => '刷新缓存',
|
||||||
'reloadmsgs' => 'Reload Messages',
|
'reloadmsgs' => '刷新一下消息',
|
||||||
'chgprofile' => 'Profile',
|
'chgprofile' => '个人资料',
|
||||||
'adminbtn' => 'Admin',
|
'adminbtn' => '管理',
|
||||||
'admnotes' => 'Admin Notes',
|
'admnotes' => '管理员公告',
|
||||||
'notes' => 'Notes',
|
'notes' => '公告',
|
||||||
'clone' => 'Clone',
|
'clone' => '打开新标签',
|
||||||
'randh' => 'Rules & Help',
|
'randh' => '条款 & 帮助',
|
||||||
'exit' => 'Exit Chat',
|
'exit' => '退出聊天室',
|
||||||
'bye' => 'Bye %s, visit again soon!',
|
'bye' => '再见%s, 欢迎你再此访问!',
|
||||||
'colourtable' => 'Colourtable',
|
'colourtable' => '颜色表',
|
||||||
'backtoprofile' => 'Back to your Profile',
|
'backtoprofile' => '回到你的个人资料',
|
||||||
'copy' => 'Copy:',
|
'copy' => '验证码:',
|
||||||
'choosecol' => 'Guests, choose a colour:',
|
'choosecol' => '客人,选择一种颜色:',
|
||||||
'randomcol' => 'Random Colour',
|
'randomcol' => '随机颜色',
|
||||||
'enter' => 'Enter Chat',
|
'enter' => '回车',
|
||||||
'error' => 'Error',
|
'error' => '错误',
|
||||||
'members' => 'Members',
|
'members' => '会员',
|
||||||
'guests' => 'Guests',
|
'guests' => '游客',
|
||||||
'approveguests' => '%d new guests to approve',
|
'approveguests' => '%d新客人批准',
|
||||||
'allowchecked' => 'Allow checked',
|
'allowchecked' => '允许检查',
|
||||||
'allowall' => 'Allow all',
|
'allowall' => '允许全部',
|
||||||
'denychecked' => 'Deny checked',
|
'denychecked' => '拒绝检查',
|
||||||
'denyall' => 'Deny all',
|
'denyall' => '全部拒绝',
|
||||||
'denymessage' => 'Send message to denied:',
|
'denymessage' => '发送消息给拒绝:',
|
||||||
'butallowdeny' => 'Submit',
|
'butallowdeny' => '提交',
|
||||||
'waitempty' => 'No more entry requests to approve.',
|
'waitempty' => '不再需要批准入场申请.',
|
||||||
'wrongcaptcha' => 'Wrong Captcha',
|
'wrongcaptcha' => '错误验证码',
|
||||||
'captchaexpire' => 'Captcha already used or timed out.',
|
'captchaexpire' => '验证码已经使用或超时.',
|
||||||
'noguests' => 'Sorry, currently members only!',
|
'noguests' => '对不起,目前仅限会员!',
|
||||||
'curchat' => 'Currently %d chatter(s) in room:',
|
'curchat' => '目前%d人在房间里聊天:',
|
||||||
'cantreg' => 'Can\'t register %s',
|
'cantreg' => '无法注册%s',
|
||||||
'alreadyreged' => '%s is already registered.',
|
'alreadyreged' => '%s已经注册',
|
||||||
'successreg' => '%s successfully registered.',
|
'successreg' => '%s成功注册.',
|
||||||
'cantchgstat' => 'Can\'t change status of %s',
|
'cantchgstat' => '无法改变状态%s',
|
||||||
'succdel' => '%s successfully deleted from database.',
|
'succdel' => '%s已成功从数据库中删除.',
|
||||||
'succchg' => 'Status of %s successfully changed.',
|
'succchg' => '%s的状态已更改.',
|
||||||
'wrongpass' => 'Wrong Password!',
|
'wrongpass' => '密码错误!',
|
||||||
'wrongglobalpass' => 'Wrong global Password!',
|
'wrongglobalpass' => '错误的全球密码!',
|
||||||
'succprofile' => 'Your profile has successfully been saved.',
|
'succprofile' => '您的个人资料已成功保存.',
|
||||||
'backtologin' => 'Back to the login page.',
|
'backtologin' => '返回登录页面.',
|
||||||
'backtochat' => 'Back to the chat.',
|
'backtochat' => '回到聊天室.',
|
||||||
'Beige' => 'Beige',
|
'Beige' => '米色',
|
||||||
'Black' => 'Black',
|
'Black' => '黑色',
|
||||||
'Blue' => 'Blue',
|
'Blue' => '蓝色',
|
||||||
'BlueViolet' => 'Blue violet',
|
'BlueViolet' => '紫罗兰色',
|
||||||
'Brown' => 'Brown',
|
'Brown' => '棕色',
|
||||||
'Cyan' => 'Cyan',
|
'Cyan' => '青色',
|
||||||
'DarkBlue' => 'Dark blue',
|
'DarkBlue' => '深蓝',
|
||||||
'DarkGreen' => 'Dark green',
|
'DarkGreen' => '深绿色',
|
||||||
'DarkRed' => 'Dark red',
|
'DarkRed' => '深红',
|
||||||
'DarkViolet' => 'Dark violet',
|
'DarkViolet' => '深紫罗兰',
|
||||||
'DeepSkyBlue' => 'Sky blue',
|
'DeepSkyBlue' => '天蓝色',
|
||||||
'Gold' => 'Gold',
|
'Gold' => '金',
|
||||||
'Grey' => 'Grey',
|
'Grey' => '灰色',
|
||||||
'Green' => 'Green',
|
'Green' => '绿色',
|
||||||
'HotPink' => 'Hot pink',
|
'HotPink' => '亮粉色',
|
||||||
'Indigo' => 'Indigo',
|
'Indigo' => '靛青',
|
||||||
'LightBlue' => 'Light blue',
|
'LightBlue' => '浅蓝',
|
||||||
'LightGreen' => 'Light green',
|
'LightGreen' => '浅绿色',
|
||||||
'LimeGreen' => 'Lime green',
|
'LimeGreen' => '柠檬绿',
|
||||||
'Magenta' => 'Magenta',
|
'Magenta' => '品红',
|
||||||
'Olive' => 'Olive',
|
'Olive' => '橄榄',
|
||||||
'Orange' => 'Orange',
|
'Orange' => '橙子',
|
||||||
'OrangeRed' => 'Orange red',
|
'OrangeRed' => '橙红色',
|
||||||
'Purple' => 'Purple',
|
'Purple' => '紫色',
|
||||||
'Red' => 'Red',
|
'Red' => '红色',
|
||||||
'RoyalBlue' => 'Royal blue',
|
'RoyalBlue' => '宝蓝色',
|
||||||
'SeaGreen' => 'Sea green',
|
'SeaGreen' => '海绿色',
|
||||||
'Sienna' => 'Sienna',
|
'Sienna' => '黄土',
|
||||||
'Silver' => 'Silver',
|
'Silver' => '银色',
|
||||||
'Tan' => 'Tan',
|
'Tan' => '黄褐色',
|
||||||
'Teal' => 'Teal',
|
'Teal' => '蓝绿色',
|
||||||
'Violet' => 'Violet',
|
'Violet' => '紫色',
|
||||||
'White' => 'White',
|
'White' => '白色',
|
||||||
'Yellow' => 'Yellow',
|
'Yellow' => '黄色',
|
||||||
'YellowGreen' => 'Yellow green',
|
'YellowGreen' => '黄绿色',
|
||||||
'redirectto' => 'Redirecting to:',
|
'redirectto' => '重定向到:',
|
||||||
'nonhttp' => 'Non-http link requested:',
|
'nonhttp' => '请求非http链接:',
|
||||||
'httpredir' => 'If it\'s not working, try this one:',
|
'httpredir' => '如果它不起作用,试试这个:',
|
||||||
'actions' => 'Actions',
|
'actions' => '操作',
|
||||||
'sesip' => 'IP-Address',
|
'sesip' => 'IP地址',
|
||||||
'css' => 'CSS Style',
|
'css' => 'CSS风格',
|
||||||
'memberexpire' => 'Member timeout (minutes)',
|
'memberexpire' => '会员超时(分钟)',
|
||||||
'guestexpire' => 'Guest timeout (minutes)',
|
'guestexpire' => '访客超时(分钟)',
|
||||||
'kickpenalty' => 'Kick penalty (minutes)',
|
'kickpenalty' => '踢罚(分钟)',
|
||||||
'entrywait' => 'Waiting room time (seconds)',
|
'entrywait' => '等候室时间(秒)',
|
||||||
'captchatime' => 'Captcha timeout (seconds)',
|
'captchatime' => '验证码超时(秒)',
|
||||||
'messageexpire' => 'Message timeout (minutes)',
|
'messageexpire' => '消息超时(分钟)',
|
||||||
'messagelimit' => 'Message limit (public)',
|
'messagelimit' => '消息限制(公开)',
|
||||||
'maxmessage' => 'Maximal message length',
|
'maxmessage' => '最大消息长度',
|
||||||
'confirm' => 'Are you sure?',
|
'confirm' => '你确定吗?',
|
||||||
'yes' => 'Yes',
|
'yes' => '是',
|
||||||
'no' => 'No',
|
'no' => '否',
|
||||||
'colbg' => 'Background colour',
|
'colbg' => '背景色',
|
||||||
'coltxt' => 'Text colour',
|
'coltxt' => '文字颜色',
|
||||||
'maxname' => 'Maximal nickname length',
|
'maxname' => '最大昵称长度',
|
||||||
'minpass' => 'Minimal password length',
|
'minpass' => '最小密码长度',
|
||||||
'defaultrefresh' => 'Default message reload time (seconds)',
|
'defaultrefresh' => '默认消息重新加载时间(秒)',
|
||||||
'suguests' => 'Enable applicants',
|
'suguests' => '启用申请人',
|
||||||
'rulestxt' => 'Rules (html)',
|
'rulestxt' => '规则(html)',
|
||||||
'imgembed' => 'Embed images',
|
'imgembed' => '嵌入图像',
|
||||||
'trackip' => 'Show session-IP',
|
'trackip' => '显示会话-IP',
|
||||||
'captchachars' => 'Characters used in Captcha',
|
'captchachars' => '验证码中使用的字符',
|
||||||
'memkick' => 'Members can kick, if no moderator is present',
|
'memkick' => '如果没有主持人,会员可以踢',
|
||||||
'forceredirect' => 'Force redirection',
|
'forceredirect' => '强制重定向',
|
||||||
'redirect' => 'Custom redirection script',
|
'redirect' => '自定义重定向脚本',
|
||||||
'backuprestore' => 'Backup and restore',
|
'backuprestore' => '备份还原',
|
||||||
'backup' => 'Backup',
|
'backup' => '备用',
|
||||||
'restore' => 'Restore',
|
'restore' => '恢复',
|
||||||
'settings' => 'Settings',
|
'settings' => '设置',
|
||||||
'linkfilter' => 'Linkfilter',
|
'linkfilter' => '链接过滤器',
|
||||||
'chatname' => 'Chat name',
|
'chatname' => '聊天名称',
|
||||||
'destroy' => 'Destroy chat',
|
'destroy' => '摧毁聊天',
|
||||||
'destroyed' => 'Successfully destroyed chat',
|
'destroyed' => '成功破坏了聊天',
|
||||||
'topic' => 'Topic',
|
'topic' => '话题',
|
||||||
'passreset' => 'Reset password',
|
'passreset' => '重设密码',
|
||||||
'cantresetpass' => 'Can\'t reset password',
|
'cantresetpass' => '无法重置密码',
|
||||||
'succpassreset' => 'Successfully reset password',
|
'succpassreset' => '成功重置密码',
|
||||||
'entermsg' => '%s entered the chat.',
|
'entermsg' => '%s进入聊天室.',
|
||||||
'exitmsg' => '%s left the chat.',
|
'exitmsg' => '%s离开了聊天室',
|
||||||
'memregmsg' => '%s is now a registered member.',
|
'memregmsg' => '%s现在是注册会员.',
|
||||||
'suregmsg' => '%s is now a registered applicant.',
|
'suregmsg' => '%s现在是注册申请人.',
|
||||||
'kickmsg' => '%s has been kicked.',
|
'kickmsg' => '%s被踢了.',
|
||||||
'multikickmsg' => '%s have been kicked.',
|
'multikickmsg' => '%s被踢了.',
|
||||||
'allkickmsg' => 'All guests have been kicked.',
|
'allkickmsg' => '所有客人都被踢了.',
|
||||||
'cleanmsg' => '%s has been cleaned.',
|
'cleanmsg' => '%s已经清理干净了.',
|
||||||
'sendallmsg' => '%s - ',
|
'sendallmsg' => '%s - ',
|
||||||
'sendmemmsg' => '[M] %s - ',
|
'sendmemmsg' => '[M] %s - ',
|
||||||
'sendmodmsg' => '[Staff] %s - ',
|
'sendmodmsg' => '[Staff] %s - ',
|
||||||
'sendadmmsg' => '[Admin] %s - ',
|
'sendadmmsg' => '[Admin] %s - ',
|
||||||
'sendprvmsg' => '[%1$s to %2$s] - ',
|
'sendprvmsg' => '[%1$s to %2$s] - ',
|
||||||
'msgsendall' => 'Message to all',
|
'msgsendall' => '给所有人的信息',
|
||||||
'msgsendmem' => 'Message to members only',
|
'msgsendmem' => '仅向会员发送消息',
|
||||||
'msgsendmod' => 'Message to staff only',
|
'msgsendmod' => '仅向员工发送消息',
|
||||||
'msgsendadm' => 'Message to admins only',
|
'msgsendadm' => '仅向管理员发送消息',
|
||||||
'msgsendprv' => 'Private message',
|
'msgsendprv' => '私人信息',
|
||||||
'numnotes' => 'Number of notes revisions to keep',
|
'numnotes' => '要保留的备注数量',
|
||||||
'revisions' => 'Revisions:',
|
'revisions' => '修订:',
|
||||||
'older' => 'Older',
|
'older' => '旧的',
|
||||||
'newer' => 'Newer',
|
'newer' => '较新',
|
||||||
'accessdenied' => 'Access denied',
|
'accessdenied' => '拒绝访问',
|
||||||
'loggedinas' => 'You are logged in as %s and don\'t have access to this section.',
|
'loggedinas' => '您以%s身份登录,无法访问此部分',
|
||||||
'newnickname' => 'New nickname:',
|
'newnickname' => '新昵称:',
|
||||||
'nicknametaken' => 'Nickname is already taken',
|
'nicknametaken' => '昵称已被取消',
|
||||||
'nopass' => 'Invalid password (At least %d characters), not changing nickname',
|
'nopass' => '密码无效(至少%d个字符),不更改昵称.',
|
||||||
'gdextrequired' => 'The gd extension of PHP is required for this feature. Please install it first.',
|
'gdextrequired' => '此功能需要PHP的gd扩展名。 请先安装它。.',
|
||||||
'memcachedextrequired' => 'The memcached extension of PHP is required for the caching feature. Please install it first or set the memcached setting back to false.',
|
'memcachedextrequired' => '缓存功能需要PHP的memcached扩展。 请先安装它或将memcached设置恢复为false.',
|
||||||
'opensslextrequired' => 'The openssl extension of PHP is required for the encryption feature. Please install it first or set the encrypted setting back to false.',
|
'sodiumextrequired' => '加密功能需要PHP的libsodium扩展。 请先安装它或将加密设置恢复为false.',
|
||||||
'pdo_mysqlextrequired' => 'The pdo_mysql extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_mysqlextrequired' => '所选数据库驱动程序需要PHP的pdo_mysql扩展名。 请先安装它.',
|
||||||
'pdo_pgsqlextrequired' => 'The pdo_pgsql extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_pgsqlextrequired' => '所选数据库驱动程序需要PHP的pdo_pgsql扩展名。 请先安装它。',
|
||||||
'pdo_sqliteextrequired' => 'The pdo_sqlite extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_sqliteextrequired' => '所选数据库驱动程序需要PHP的pdo_sqlite扩展。 请先安装它.',
|
||||||
'jsonextrequired' => 'The json extension of PHP is required for this feature. Please install it first.',
|
'jsonextrequired' => '此功能需要PHP的json扩展名。 请先安装它.',
|
||||||
'sendmail' => 'Send mail on new public message',
|
'sendmail' => '发送新公共邮件的邮件',
|
||||||
'mailsender' => 'Send mail using this address',
|
'mailsender' => '使用此地址发送邮件',
|
||||||
'mailreceiver' => 'Send mail to this address',
|
'mailreceiver' => '发送邮件到这个地址',
|
||||||
'modfallback' => 'Fallback to waiting room, if no moderator is present to approve guests',
|
'modfallback' => '如果没有主持人来批准客人,请回到候诊室',
|
||||||
'regpass' => 'Repeat password<br>to register',
|
'regpass' => '重复密码<br>注册',
|
||||||
'guestreg' => 'Let guests register themselves',
|
'guestreg' => '让客人自己注册',
|
||||||
'asmember' => 'As member',
|
'asmember' => '作为会员',
|
||||||
'assuguest' => 'As applicant',
|
'assuguest' => '作为申请人',
|
||||||
'fatalerror' => 'Fatal error',
|
'fatalerror' => '致命错误',
|
||||||
'prevmatch' => 'Your match was as follows',
|
'prevmatch' => '你的申请如下',
|
||||||
'matchtoolong' => 'Your match was too long. You can use max. 255 characters. Try splitting it up.',
|
'matchtoolong' => '你的申请太长了。 你可以用max。 255个字符。 尝试拆分它.',
|
||||||
'nocache' => 'Autoscroll (for old browsers or top-to-bottom sort).',
|
'nocache' => '自动滚动(适用于旧浏览器或从上到下排序).',
|
||||||
'disablepm' => 'Disable private messages',
|
'disablepm' => '禁用私人消息',
|
||||||
'disablechat' => 'Disable chat',
|
'disablechat' => '禁用聊天',
|
||||||
'disabletext' => 'Chat disabled message (html)',
|
'disabletext' => '聊天禁用消息(html)',
|
||||||
'disabledtext' => 'Temporarily disabled',
|
'disabledtext' => '暂时禁用',
|
||||||
'defaulttz' => 'Default time zone',
|
'defaulttz' => '默认时区',
|
||||||
'tz' => 'Time zone',
|
'tz' => '时区',
|
||||||
'optional' => '(optional)',
|
'optional' => '(可选的)',
|
||||||
'userloggedin' => 'A user with this nickname is already logged in.',
|
'userloggedin' => '具有此昵称的用户已登录.',
|
||||||
'regednick' => 'This nickname is a registered member.',
|
'regednick' => '这个昵称是注册会员.',
|
||||||
'eninbox' => 'Enable offline inbox',
|
'eninbox' => '启用离线收件箱',
|
||||||
'inboxmsgs' => 'Read %d messages in your inbox',
|
'inboxmsgs' => '阅读收件箱中的%d条消息',
|
||||||
'offline' => '(offline)',
|
'offline' => '(离线)',
|
||||||
'deleteacc' => 'Delete account',
|
'deleteacc' => '删除帐户',
|
||||||
'eninnone' => 'For no one',
|
'eninnone' => '一个人',
|
||||||
'eninall' => 'For everyone',
|
'eninall' => '所以人',
|
||||||
'eninmem' => 'For members only',
|
'eninmem' => '仅限会员',
|
||||||
'eninstaff' => 'For staff only',
|
'eninstaff' => '仅限员工',
|
||||||
'eninadmin' => 'For admins only',
|
'eninadmin' => '仅适用于管理员',
|
||||||
'nickregex' => 'Nickname regex',
|
'nickregex' => '昵称正则表达式',
|
||||||
'passregex' => 'Password regex',
|
'passregex' => '密码正则表达式',
|
||||||
'externalcss' => 'Link to external CSS file',
|
'externalcss' => '链接到外部CSS文件',
|
||||||
'greetingmsg' => 'Welcome %s!',
|
'greetingmsg' => '欢迎%s!',
|
||||||
'entryhelp' => 'If this frame does not reload in %d seconds, you\'ll have to enable automatic redirection (meta refresh) in your browser. Also make sure no web filter, local proxy tool or browser plugin is preventing automatic refreshing! This could be for example "Polipo", "NoScript", etc.<br>As a workaround (or in case of server/proxy reload errors) you can always use the buttons at the bottom to refresh manually.',
|
'entryhelp' => 'If this frame does not reload in %d seconds, you\'ll have to enable automatic redirection (meta refresh) in your browser. Also make sure no web filter, local proxy tool or browser plugin is preventing automatic refreshing! This could be for example "Polipo", "NoScript", etc.<br>As a workaround (or in case of server/proxy reload errors) you can always use the buttons at the bottom to refresh manually.',
|
||||||
'enablegreeting' => 'Show a greeting message before showing the messages',
|
'enablegreeting' => '在显示消息之前显示问候消息',
|
||||||
'unban' => 'Unban',
|
'unban' => '取消禁止',
|
||||||
'sortupdown' => 'Sort messages from top to bottom',
|
'sortupdown' => '从上到下对消息进行排序',
|
||||||
'sortframe' => 'Rearrange',
|
'sortframe' => '改变方向',
|
||||||
'cs' => 'Case sensitive',
|
'cs' => '大小写',
|
||||||
'hidechatters' => 'Hide list of chatters',
|
'hidechatters' => '隐藏聊天列表',
|
||||||
'enfileupload' => 'Enable file uploads',
|
'enfileupload' => '启用文件上载',
|
||||||
'msgattache' => 'Attachement',
|
'msgattache' => '附件',
|
||||||
'filenotfound' => 'File not found!',
|
'filenotfound' => '找不到文件!',
|
||||||
'maxuploadsize' => 'Maximum upload size in KB',
|
'maxuploadsize' => '最大上载大小(KB)',
|
||||||
'maxsize' => 'Max %d KB',
|
'maxsize' => 'Max %d KB',
|
||||||
'cssupdate' => 'Note: Default CSS is now hardcoded and can be removed from the CSS setting',
|
'cssupdate' => '注意:默认的CSS现在是硬编码的,可以从CSS设置中删除。',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user