Compare commits

...

6 Commits

12 changed files with 673 additions and 443 deletions

View File

@ -1,3 +1,8 @@
Version 1.23.6 - Sep. 1, 2017
Added Russian and Bulgarian translation
Updated Spanish translation
Bugfixes and optimizations
Version 1.23.4 - Jan. 23, 2017 Version 1.23.4 - Jan. 23, 2017
Fix update from older versions Fix update from older versions

160
chat.php
View File

@ -2,7 +2,7 @@
/* /*
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Main program * LE CHAT-PHP - a PHP Chat based on LE CHAT - Main program
* *
* Copyright (C) 2015-2016 Daniel Winzen <d@winzen4.de> * Copyright (C) 2015-2017 Daniel Winzen <d@winzen4.de>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -164,7 +164,7 @@ function route_admin(){
}elseif($_REQUEST['what']==='room'){ }elseif($_REQUEST['what']==='room'){
clean_room(); clean_room();
}elseif($_REQUEST['what']==='nick'){ }elseif($_REQUEST['what']==='nick'){
$stmt=$db->prepare('SELECT * FROM ' . PREFIX . 'members WHERE nickname=? AND status>=?;'); $stmt=$db->prepare('SELECT null FROM ' . PREFIX . 'members WHERE nickname=? AND status>=?;');
$stmt->execute([$_REQUEST['nickname'], $U['status']]); $stmt->execute([$_REQUEST['nickname'], $U['status']]);
if(!$stmt->fetch(PDO::FETCH_ASSOC)){ if(!$stmt->fetch(PDO::FETCH_ASSOC)){
del_all_messages($_REQUEST['nickname'], 0); del_all_messages($_REQUEST['nickname'], 0);
@ -432,29 +432,21 @@ function send_captcha(){
$bg=imagecolorallocate($im, 0, 0, 0); $bg=imagecolorallocate($im, 0, 0, 0);
$fg=imagecolorallocate($im, 255, 255, 255); $fg=imagecolorallocate($im, 255, 255, 255);
imagefill($im, 0, 0, $bg); imagefill($im, 0, 0, $bg);
$line=imagecolorallocate($im, 100, 100, 100); imagestring($im, 5, 5, 5, $code, $fg);
for($i=0;$i<3;++$i){ $line=imagecolorallocate($im, 255, 255, 255);
for($i=0;$i<2;++$i){
imageline($im, 0, mt_rand(0, 24), 55, mt_rand(0, 24), $line); imageline($im, 0, mt_rand(0, 24), 55, mt_rand(0, 24), $line);
} }
$dots=imagecolorallocate($im, 200, 200, 200); $dots=imagecolorallocate($im, 255, 255, 255);
for($i=0;$i<100;++$i){ for($i=0;$i<100;++$i){
imagesetpixel($im, mt_rand(0, 55), mt_rand(0, 24), $dots); imagesetpixel($im, mt_rand(0, 55), mt_rand(0, 24), $dots);
} }
imagestring($im, 5, 5, 5, $code, $fg);
echo '<img width="55" height="24" src="data:image/gif;base64,'; echo '<img width="55" height="24" src="data:image/gif;base64,';
}else{ }else{
$im=imagecreatetruecolor(150, 200); $im=imagecreatetruecolor(150, 200);
$bg=imagecolorallocate($im, 0, 0, 0); $bg=imagecolorallocate($im, 0, 0, 0);
$fg=imagecolorallocate($im, 255, 255, 255); $fg=imagecolorallocate($im, 255, 255, 255);
imagefill($im, 0, 0, $bg); imagefill($im, 0, 0, $bg);
$line=imagecolorallocate($im, 100, 100, 100);
for($i=0;$i<5;++$i){
imageline($im, 0, mt_rand(0, 200), 150, mt_rand(0, 200), $line);
}
$dots=imagecolorallocate($im, 200, 200, 200);
for($i=0;$i<1000;++$i){
imagesetpixel($im, mt_rand(0, 150), mt_rand(0, 200), $dots);
}
$chars=[]; $chars=[];
for($i=0;$i<10;++$i){ for($i=0;$i<10;++$i){
$found=false; $found=false;
@ -493,6 +485,14 @@ function send_captcha(){
for($i=5;$i<9;++$i){ for($i=5;$i<9;++$i){
imageline($im, $chars[$i]['x']+4, $chars[$i]['y']+8, $chars[$i+1]['x']+4, $chars[$i+1]['y']+8, $follow); imageline($im, $chars[$i]['x']+4, $chars[$i]['y']+8, $chars[$i+1]['x']+4, $chars[$i+1]['y']+8, $follow);
} }
$line=imagecolorallocate($im, 255, 255, 255);
for($i=0;$i<5;++$i){
imageline($im, 0, mt_rand(0, 200), 150, mt_rand(0, 200), $line);
}
$dots=imagecolorallocate($im, 255, 255, 255);
for($i=0;$i<1000;++$i){
imagesetpixel($im, mt_rand(0, 150), mt_rand(0, 200), $dots);
}
echo '<img width="150" height="200" src="data:image/gif;base64,'; echo '<img width="150" height="200" src="data:image/gif;base64,';
} }
ob_start(); ob_start();
@ -1436,7 +1436,7 @@ function send_frameset(){
} }
echo "<frame name=\"post\" src=\"$_SERVER[SCRIPT_NAME]?action=post&session=$U[session]&lang=$language\">"; echo "<frame name=\"post\" src=\"$_SERVER[SCRIPT_NAME]?action=post&session=$U[session]&lang=$language\">";
} }
echo "<noframes><body>$I[noframes]".form_target('_parent', 'login').submit($I['backtologin'], 'class="backbutton"').'</form></body></noframes></frameset></html>'; echo "<noframes><body>$I[noframes]".form_target('_parent', '').submit($I['backtologin'], 'class="backbutton"').'</form></body></noframes></frameset></html>';
exit; exit;
} }
@ -1594,7 +1594,7 @@ function send_approve_waiting(){
global $I, $db; global $I, $db;
print_start('approve_waiting'); print_start('approve_waiting');
echo "<h2>$I[waitingroom]</h2>"; echo "<h2>$I[waitingroom]</h2>";
$result=$db->query('SELECT * FROM ' . PREFIX . 'sessions WHERE entry=0 AND status=1 ORDER BY id;'); $result=$db->query('SELECT * FROM ' . PREFIX . 'sessions WHERE entry=0 AND status=1 ORDER BY id LIMIT 100;');
if($tmp=$result->fetchAll(PDO::FETCH_ASSOC)){ if($tmp=$result->fetchAll(PDO::FETCH_ASSOC)){
echo form('admin', 'approve'); echo form('admin', 'approve');
echo '<table>'; echo '<table>';
@ -2015,9 +2015,9 @@ function send_download(){
$stmt->execute([$_REQUEST['id']]); $stmt->execute([$_REQUEST['id']]);
if($data=$stmt->fetch(PDO::FETCH_ASSOC)){ if($data=$stmt->fetch(PDO::FETCH_ASSOC)){
header("Content-Type: $data[type]"); header("Content-Type: $data[type]");
header("Content-disposition: filename=\"$data[filename]\""); header("Content-Disposition: filename=\"$data[filename]\"");
header('Pragma: no-cache'); header('Pragma: no-cache');
header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0'); header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0, private');
header('Expires: 0'); header('Expires: 0');
echo base64_decode($data['data']); echo base64_decode($data['data']);
}else{ }else{
@ -2031,7 +2031,7 @@ function send_download(){
function send_logout(){ function send_logout(){
global $I, $U; global $I, $U;
print_start('logout'); print_start('logout');
echo '<h1>'.sprintf($I['bye'], style_this(htmlspecialchars($U['nickname']), $U['style'])).'</h1>'.form_target('_parent', 'login').submit($I['backtologin'], 'class="backbutton"').'</form>'; echo '<h1>'.sprintf($I['bye'], style_this(htmlspecialchars($U['nickname']), $U['style'])).'</h1>'.form_target('_parent', '').submit($I['backtologin'], 'class="backbutton"').'</form>';
print_end(); print_end();
} }
@ -2117,7 +2117,7 @@ function send_chat_disabled(){
function send_error($err){ function send_error($err){
global $I; global $I;
print_start('error'); print_start('error');
echo "<h2>$I[error]: $err</h2>".form_target('_parent', 'login').submit($I['backtologin'], 'class="backbutton"').'</form>'; echo "<h2>$I[error]: $err</h2>".form_target('_parent', '').submit($I['backtologin'], 'class="backbutton"').'</form>';
print_end(); print_end();
} }
@ -2160,6 +2160,7 @@ function print_chatters(){
$stmt=$db->prepare('SELECT nickname, style, status FROM ' . PREFIX . 'sessions WHERE entry!=0 AND status>0 AND incognito=0 AND nickname NOT IN (SELECT ign FROM '. PREFIX . 'ignored WHERE ignby=? UNION SELECT ignby FROM '. PREFIX . 'ignored WHERE ign=?) ORDER BY status DESC, lastpost DESC;'); $stmt=$db->prepare('SELECT nickname, style, status FROM ' . PREFIX . 'sessions WHERE entry!=0 AND status>0 AND incognito=0 AND nickname NOT IN (SELECT ign FROM '. PREFIX . 'ignored WHERE ignby=? UNION SELECT ignby FROM '. PREFIX . 'ignored WHERE ign=?) ORDER BY status DESC, lastpost DESC;');
$stmt->execute([$U['nickname'], $U['nickname']]); $stmt->execute([$U['nickname'], $U['nickname']]);
$nc=substr(time(), -6); $nc=substr(time(), -6);
$G=$M=[];
while($user=$stmt->fetch(PDO::FETCH_NUM)){ while($user=$stmt->fetch(PDO::FETCH_NUM)){
$link="<a href=\"$_SERVER[SCRIPT_NAME]?action=post&amp;session=$U[session]&amp;lang=$language&amp;nc=$nc&amp;sendto=".htmlspecialchars($user[0]).'" target="post">'.style_this(htmlspecialchars($user[0]), $user[1]).'</a>'; $link="<a href=\"$_SERVER[SCRIPT_NAME]?action=post&amp;session=$U[session]&amp;lang=$language&amp;nc=$nc&amp;sendto=".htmlspecialchars($user[0]).'" target="post">'.style_this(htmlspecialchars($user[0]), $user[1]).'</a>';
if($user[2]<=2){ if($user[2]<=2){
@ -2184,43 +2185,16 @@ function print_chatters(){
// session management // session management
function create_session($setup, $nickname, $password){ function create_session($setup, $nickname, $password){
global $I, $U, $db, $memcached; global $I, $U;
$U['nickname']=str_replace(' ', '', $nickname); $U['nickname']=preg_replace('/\s/', '', $nickname);
if(!check_member($password)){ if(check_member($password)){
if($setup && $U['status']>=7){
$U['incognito']=1;
}
$U['entry']=$U['lastpost']=time();
}else{
add_user_defaults($password); add_user_defaults($password);
} check_captcha($_REQUEST['challenge'], $_REQUEST['captcha']);
$U['entry']=$U['lastpost']=time();
if($setup && $U['status']>=7){
$U['incognito']=1;
}
$captcha=(int) get_setting('captcha');
if($captcha!==0 && ($U['status']==1 || get_setting('dismemcaptcha')==0)){
if(!isset($_REQUEST['challenge'])){
send_error($I['wrongcaptcha']);
}
if(!MEMCACHED){
$stmt=$db->prepare('SELECT code FROM ' . PREFIX . 'captcha WHERE id=?;');
$stmt->execute([$_REQUEST['challenge']]);
$stmt->bindColumn(1, $code);
if(!$stmt->fetch(PDO::FETCH_BOUND)){
send_error($I['captchaexpire']);
}
$time=time();
$stmt=$db->prepare('DELETE FROM ' . PREFIX . 'captcha WHERE id=? OR time<(?-(SELECT value FROM ' . PREFIX . "settings WHERE setting='captchatime'));");
$stmt->execute([$_REQUEST['challenge'], $time]);
}else{
if(!$code=$memcached->get(DBNAME . '-' . PREFIX . "captcha-$_REQUEST[challenge]")){
send_error($I['captchaexpire']);
}
$memcached->delete(DBNAME . '-' . PREFIX . "captcha-$_REQUEST[challenge]");
}
if($_REQUEST['captcha']!==$code){
if($captcha!==3 || strrev($_REQUEST['captcha'])!==$code){
send_error($I['wrongcaptcha']);
}
}
}
if($U['status']==1){
$ga=(int) get_setting('guestaccess'); $ga=(int) get_setting('guestaccess');
if(!valid_nick($U['nickname'])){ if(!valid_nick($U['nickname'])){
send_error(sprintf($I['invalnick'], get_setting('maxname'), get_setting('nickregex'))); send_error(sprintf($I['invalnick'], get_setting('maxname'), get_setting('nickregex')));
@ -2240,6 +2214,37 @@ function create_session($setup, $nickname, $password){
write_new_session($password); write_new_session($password);
} }
function check_captcha($challenge, $captcha_code){
global $I, $db, $memcached;
$captcha=(int) get_setting('captcha');
if($captcha!==0){
if(empty($challenge)){
send_error($I['wrongcaptcha']);
}
if(MEMCACHED){
if(!$code=$memcached->get(DBNAME . '-' . PREFIX . "captcha-$_REQUEST[challenge]")){
send_error($I['captchaexpire']);
}
$memcached->delete(DBNAME . '-' . PREFIX . "captcha-$_REQUEST[challenge]");
}else{
$stmt=$db->prepare('SELECT code FROM ' . PREFIX . 'captcha WHERE id=?;');
$stmt->execute([$challenge]);
$stmt->bindColumn(1, $code);
if(!$stmt->fetch(PDO::FETCH_BOUND)){
send_error($I['captchaexpire']);
}
$time=time();
$stmt=$db->prepare('DELETE FROM ' . PREFIX . 'captcha WHERE id=? OR time<(?-(SELECT value FROM ' . PREFIX . "settings WHERE setting='captchatime'));");
$stmt->execute([$challenge, $time]);
}
if($captcha_code!==$code){
if($captcha!==3 || strrev($captcha_code)!==$code){
send_error($I['wrongcaptcha']);
}
}
}
}
function write_new_session($password){ function write_new_session($password){
global $I, $U, $db; global $I, $U, $db;
$stmt=$db->prepare('SELECT * FROM ' . PREFIX . 'sessions WHERE nickname=?;'); $stmt=$db->prepare('SELECT * FROM ' . PREFIX . 'sessions WHERE nickname=?;');
@ -2255,7 +2260,7 @@ function write_new_session($password){
} }
}else{ }else{
// create new session // create new session
$stmt=$db->prepare('SELECT * FROM ' . PREFIX . 'sessions WHERE session=?;'); $stmt=$db->prepare('SELECT null FROM ' . PREFIX . 'sessions WHERE session=?;');
do{ do{
if(function_exists('random_bytes')){ if(function_exists('random_bytes')){
$U['session']=bin2hex(random_bytes(16)); $U['session']=bin2hex(random_bytes(16));
@ -2493,6 +2498,9 @@ function check_member($password){
$stmt=$db->prepare('SELECT * FROM ' . PREFIX . 'members WHERE nickname=?;'); $stmt=$db->prepare('SELECT * FROM ' . PREFIX . 'members WHERE nickname=?;');
$stmt->execute([$U['nickname']]); $stmt->execute([$U['nickname']]);
if($temp=$stmt->fetch(PDO::FETCH_ASSOC)){ if($temp=$stmt->fetch(PDO::FETCH_ASSOC)){
if(get_setting('dismemcaptcha')==0){
check_captcha($_REQUEST['challenge'], $_REQUEST['captcha']);
}
if($temp['passhash']===md5(sha1(md5($U['nickname'].$password)))){ if($temp['passhash']===md5(sha1(md5($U['nickname'].$password)))){
// old hashing method, update on the fly // old hashing method, update on the fly
$temp['passhash']=password_hash($password, PASSWORD_DEFAULT); $temp['passhash']=password_hash($password, PASSWORD_DEFAULT);
@ -2554,11 +2562,11 @@ function register_guest($status, $nick){
function register_new($nick, $pass){ function register_new($nick, $pass){
global $I, $U, $db; global $I, $U, $db;
$nick=str_replace(' ', '', $nick); $nick=preg_replace('/\s/', '', $nick);
if(empty($nick)){ if(empty($nick)){
return ''; return '';
} }
$stmt=$db->prepare('SELECT * FROM ' . PREFIX . 'sessions WHERE nickname=?'); $stmt=$db->prepare('SELECT null FROM ' . PREFIX . 'sessions WHERE nickname=?');
$stmt->execute([$nick]); $stmt->execute([$nick]);
if($stmt->fetch(PDO::FETCH_NUM)){ if($stmt->fetch(PDO::FETCH_NUM)){
return sprintf($I['cantreg'], htmlspecialchars($nick)); return sprintf($I['cantreg'], htmlspecialchars($nick));
@ -2569,7 +2577,7 @@ function register_new($nick, $pass){
if(!valid_pass($pass)){ if(!valid_pass($pass)){
return sprintf($I['invalpass'], get_setting('minpass'), get_setting('passregex')); return sprintf($I['invalpass'], get_setting('minpass'), get_setting('passregex'));
} }
$stmt=$db->prepare('SELECT * FROM ' . PREFIX . 'members WHERE nickname=?'); $stmt=$db->prepare('SELECT null FROM ' . PREFIX . 'members WHERE nickname=?');
$stmt->execute([$nick]); $stmt->execute([$nick]);
if($stmt->fetch(PDO::FETCH_NUM)){ if($stmt->fetch(PDO::FETCH_NUM)){
return sprintf($I['alreadyreged'], htmlspecialchars($nick)); return sprintf($I['alreadyreged'], htmlspecialchars($nick));
@ -2632,7 +2640,7 @@ function passreset($nick, $pass){
if(empty($nick)){ if(empty($nick)){
return ''; return '';
} }
$stmt=$db->prepare('SELECT * FROM ' . PREFIX . 'members WHERE nickname=? AND status<?;'); $stmt=$db->prepare('SELECT null FROM ' . PREFIX . 'members WHERE nickname=? AND status<?;');
$stmt->execute([$nick, $U['status']]); $stmt->execute([$nick, $U['status']]);
if($stmt->fetch(PDO::FETCH_ASSOC)){ if($stmt->fetch(PDO::FETCH_ASSOC)){
$passhash=password_hash($pass, PASSWORD_DEFAULT); $passhash=password_hash($pass, PASSWORD_DEFAULT);
@ -2719,7 +2727,7 @@ function save_profile(){
$stmt->execute([$_REQUEST['unignore'], $U['nickname']]); $stmt->execute([$_REQUEST['unignore'], $U['nickname']]);
} }
if(!empty($_REQUEST['ignore'])){ if(!empty($_REQUEST['ignore'])){
$stmt=$db->prepare('SELECT * FROM ' . PREFIX . 'messages WHERE poster=? AND poster NOT IN (SELECT ign FROM ' . PREFIX . 'ignored WHERE ignby=?);'); $stmt=$db->prepare('SELECT null FROM ' . PREFIX . 'messages WHERE poster=? AND poster NOT IN (SELECT ign FROM ' . PREFIX . 'ignored WHERE ignby=?);');
$stmt->execute([$_REQUEST['ignore'], $U['nickname']]); $stmt->execute([$_REQUEST['ignore'], $U['nickname']]);
if($U['nickname']!==$_REQUEST['ignore'] && $stmt->fetch(PDO::FETCH_NUM)){ if($U['nickname']!==$_REQUEST['ignore'] && $stmt->fetch(PDO::FETCH_NUM)){
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'ignored (ign, ignby) VALUES (?, ?);'); $stmt=$db->prepare('INSERT INTO ' . PREFIX . 'ignored (ign, ignby) VALUES (?, ?);');
@ -2761,7 +2769,7 @@ function save_profile(){
function set_new_nickname(){ function set_new_nickname(){
global $I, $U, $db; global $I, $U, $db;
$_REQUEST['newnickname']=str_replace(' ', '', $_REQUEST['newnickname']); $_REQUEST['newnickname']=preg_replace('/\s/', '', $_REQUEST['newnickname']);
if(!valid_nick($_REQUEST['newnickname'])){ if(!valid_nick($_REQUEST['newnickname'])){
return sprintf($I['invalnick'], get_setting('maxname'), get_setting('nickregex')); return sprintf($I['invalnick'], get_setting('maxname'), get_setting('nickregex'));
} }
@ -2819,6 +2827,7 @@ function add_user_defaults($password){
$U['sortupdown']=get_setting('sortupdown'); $U['sortupdown']=get_setting('sortupdown');
$U['hidechatters']=get_setting('hidechatters'); $U['hidechatters']=get_setting('hidechatters');
$U['passhash']=password_hash($password, PASSWORD_DEFAULT); $U['passhash']=password_hash($password, PASSWORD_DEFAULT);
$U['entry']=$U['lastpost']=time();
} }
// message handling // message handling
@ -3060,7 +3069,7 @@ function apply_mention($message){
function add_message($message, $recipient, $poster, $delstatus, $poststatus, $displaysend, $style){ function add_message($message, $recipient, $poster, $delstatus, $poststatus, $displaysend, $style){
global $db; global $db;
if(empty($message)){ if($message===''){
return false; return false;
} }
$newmessage=[ $newmessage=[
@ -3082,7 +3091,7 @@ function add_message($message, $recipient, $poster, $delstatus, $poststatus, $di
} }
function add_system_message($mes){ function add_system_message($mes){
if(empty($mes)){ if($mes===''){
return; return;
} }
$sysmessage=[ $sysmessage=[
@ -3283,7 +3292,7 @@ function save_setup($C){
if($_REQUEST['memberexpire']<5){ if($_REQUEST['memberexpire']<5){
$_REQUEST['memberexpire']=5; $_REQUEST['memberexpire']=5;
} }
if($_REQUEST['captchatime']<30){ if($_REQUEST['captchatime']<30){
$_REQUEST['memberexpire']=30; $_REQUEST['memberexpire']=30;
} }
if($_REQUEST['defaultrefresh']<5){ if($_REQUEST['defaultrefresh']<5){
@ -3407,7 +3416,7 @@ function style_this($text, $styleinfo){
function check_init(){ function check_init(){
global $db; global $db;
return @$db->query('SELECT * FROM ' . PREFIX . 'settings LIMIT 1;'); return @$db->query('SELECT null FROM ' . PREFIX . 'settings LIMIT 1;');
} }
// run every minute doing various database cleanup task // run every minute doing various database cleanup task
@ -3450,6 +3459,9 @@ function cron(){
while($tmp=$result->fetch(PDO::FETCH_NUM)){ while($tmp=$result->fetch(PDO::FETCH_NUM)){
$stmt->execute([$tmp[0], $tmp[0]]); $stmt->execute([$tmp[0], $tmp[0]]);
} }
// delete old captchas
$stmt=$db->prepare('DELETE FROM ' . PREFIX . 'captcha WHERE time<(?-(SELECT value FROM ' . PREFIX . "settings WHERE setting='captchatime'));");
$stmt->execute([$time]);
} }
function destroy_chat($C){ function destroy_chat($C){
@ -3488,8 +3500,8 @@ function init_chat(){
$suwrite=''; $suwrite='';
if(check_init()){ if(check_init()){
$suwrite=$I['initdbexist']; $suwrite=$I['initdbexist'];
$result=$db->query('SELECT * FROM ' . PREFIX . 'members WHERE status=8;'); $result=$db->query('SELECT null FROM ' . PREFIX . 'members WHERE status=8;');
if($result->fetch(PDO::FETCH_ASSOC)){ if($result->fetch(PDO::FETCH_NUM)){
$suwrite=$I['initsuexist']; $suwrite=$I['initsuexist'];
} }
}elseif(!preg_match('/^[a-z0-9]{1,20}$/i', $_REQUEST['sunick'])){ }elseif(!preg_match('/^[a-z0-9]{1,20}$/i', $_REQUEST['sunick'])){
@ -4092,10 +4104,10 @@ function check_db(){
if(!check_init()){ if(!check_init()){
send_init(); send_init();
} }
update_db();
}elseif($_REQUEST['action']==='init'){ }elseif($_REQUEST['action']==='init'){
init_chat(); init_chat();
} }
update_db();
} }
function load_fonts(){ function load_fonts(){
@ -4118,10 +4130,10 @@ function load_fonts(){
function load_lang(){ function load_lang(){
global $I, $L, $language; global $I, $L, $language;
$L=[ $L=[
'bg' =>'Български',
'de' =>'Deutsch', 'de' =>'Deutsch',
'en' =>'English', 'en' =>'English',
'es_AR' =>'Español (Argentina)', 'es' =>'Español',
'es_ES' =>'Español (España)',
'fr' =>'Français', 'fr' =>'Français',
'id' =>'Bahasa Indonesia', 'id' =>'Bahasa Indonesia',
'ru' =>'Русский', 'ru' =>'Русский',
@ -4150,7 +4162,7 @@ function load_lang(){
function load_config(){ function load_config(){
mb_internal_encoding('UTF-8'); mb_internal_encoding('UTF-8');
define('VERSION', '1.23.4'); // Script version define('VERSION', '1.23.5'); // Script version
define('DBVERSION', 41); // Database layout version define('DBVERSION', 41); // 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', 'MY_KEY'); // Encryption key for messages
@ -4172,4 +4184,4 @@ 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
} }
?>

368
lang_bg.php Normal file
View File

@ -0,0 +1,368 @@
<?php
/*
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Bulgarian translation
*
* Copyright (C) 2015-2017 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: Български
$T=[
'nodb' => 'Няма връзка с базата данни!',
'nodbsetup' => 'Няма връзка с базата данни, моля създайте база данни и редактирайте скрипта да използва правилната база данни със съответния потребител и парола.',
'changelang' => 'Смени езика:',
'expire' => 'Невалидна/изтекла сесия',
'kicked' => 'Ти беше изгонен от чата!',
'invalnick' => 'Невалиден ник (Максимум %1$d символа и трябва да съвпада с регулярния израз "%2$s")',
'invalpass' => 'Невалидна парола (Най-малко %1$d символа и трябва да съвпада с регулярния израз "%2$s")',
'noconfirm' => 'Полето за потвърждение на паролата не съвпада!',
'incorregex' => 'Невалиден регулярен израз!',
'bottom' => 'Най-долу',
'top' => 'Горе',
'choose' => '(избери)',
'setup' => 'Инсталация на чата',
'init' => 'Първоначална инсталация',
'sulogin' => 'Потребителско име на супер-администратора:',
'sunick' => 'Ник на супер-администратора:',
'supass' => 'Парола на супер-администратора:',
'suconfirm' => 'Потвърди паролата:',
'susuccess' => 'Успешна регистрация!',
'initbtn' => 'Инициализация на чата',
'initdbexist' => 'Таблиците в базата данни вече съществуват! За да продължите, моля първо изтрийте тези таблици ръчно.',
'initsuexist' => 'Вече съществува супер-администратор!',
'initgosetup' => 'Отиди към страницата за инсталация',
'captcha' => 'Captcha',
'enabled' => 'Разрешено',
'onlyguests' => 'Само за гости',
'disabled' => 'Забранено',
'simple' => 'Просто',
'moderate' => 'Умерено',
'extreme' => 'Екстремно',
'nick' => 'Ник:',
'pass' => 'Парола:',
'globalloginpass' => 'Глобална парола:',
'login' => 'Вход',
'dbupdate' => 'Базата данни бе успешно обновена!',
'sysmessages' => 'Системни съобщения',
'msgenter' => 'Влизане',
'msgexit' => 'Напускане',
'msgmemreg' => 'Членът е регистриран',
'msgsureg' => 'Кандидатът е регистриран',
'msgkick' => 'Изгонен',
'msgmultikick' => 'Множество изгонени',
'msgallkick' => 'Всички са изгонени',
'msgclean' => 'Стаята беше почистена',
'dateformat' => '<a target="_blank" href="http://php.net/manual/en/function.date.php#refsect1-function.date-parameters">Формат на дата</a>',
'admfunc' => 'Административни функции',
'allguests' => 'Всички гости',
'cleanmsgs' => 'Изчисти съобщенията',
'room' => 'Цялата стая',
'selection' => 'Избор',
'cleannick' => 'Следния ник:',
'clean' => 'Изчисти',
'kickchat' => 'Изгони потребител (%d минути)',
'kickreason' => 'Причина:',
'kickpurge' => 'Заличи съобщенията',
'kick' => 'Изгони',
'logoutinact' => 'Изкарай неактивен потребител от чата',
'logout' => 'Изкарай',
'sessions' => 'Виж активните сесии',
'view' => 'Виж',
'filter' => 'Филтър',
'guestacc' => 'Промени достъпа за гост',
'guestallow' => 'Позволи',
'guestwait' => 'Позволи с чакалня',
'adminallow' => 'Изисквай одобрение от модератор',
'guestdisallow' => 'Само членове',
'addsuguest' => 'Регистрирай кандидат',
'register' => 'Регистрирай',
'admmembers' => 'Членове',
'memdel' => 'Изтрий от базата данни',
'memdeny' => 'Забрани достъп (!)',
'memsuguest' => 'Направи кандидат (G)',
'memreg' => 'Направи обикновен член',
'memmod' => 'Направи модератор (M)',
'memsumod' => 'Направи супер-модератор (SM)',
'memadm' => 'Направи администратор (A)',
'change' => 'Промени',
'regguest' => 'Регистрирай гост',
'regmem' => 'Регистрирай нов член',
'sessact' => 'Активни сесии',
'sessnick' => 'Ник',
'sesstimeout' => 'Изтичане след',
'sessua' => 'User-Agent',
'fid' => 'Филтър ID:',
'match' => 'Съвпадение',
'replace' => 'Замени',
'allowpm' => 'Разреши в ЛС',
'regex' => 'Регулярен израз',
'apply' => 'Приложи',
'newfilter' => 'Нов филтър:',
'add' => 'Добави',
'noframes' => 'Този чат използва <b>фреймове</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] пред линка с изображението. Пример: [img]http://example.com/images/file.jpg ще вгради изображението в поста ти.',
'helpmem' => 'Членове: Вие ще имате някои допълнителни опции. Може да променяте цвета на фона, да променяте паролата си по всяко време, и разбира се, да изтриете акаунта си.',
'helpmod' => 'Модератори: Забележете админ бутона най-долу. Натискането му ще изведе страница, през която ще можете да почистите стаята, да гоните потребители, да преглеждате всички активни сесии и да забраните напълно достъпа на гости, ако е необходимо.',
'helpadm' => 'Администратори: Вие ще можете допълнително да регистрирате гости, да редактирате профили на членове и да регистрирате нови никове.',
'profile' => 'Твоят профил',
'ignore' => 'Игнорирай',
'unignore' => 'Спри да игнорираш',
'refreshrate' => 'Честота на опресняване (5-150 секунди)',
'fontcolour' => 'Цвят на шрифта',
'viewexample' => 'Виж примери',
'bgcolour' => 'Цвят на фона',
'fontface' => 'Облик на шрифта',
'roomdefault' => 'По подразбиране за стаята',
'bold' => 'Получер',
'italic' => 'Курсив',
'small' => 'Малък',
'fontexample' => 'Пример за избрания шрифт',
'timestamps' => 'Покажи времеви маркери',
'embed' => 'Вграждане на изображения',
'incognito' => 'Режим Инкогнито',
'changenick' => 'Промени ник',
'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' => 'Грешна Captcha',
'captchaexpire' => 'Captcha-та е вече използвана или е изтекла.',
'noguests' => 'Съжаляваме, но в момента се допускат само членове!',
'curchat' => 'В стаята има %d потребители:',
'cantreg' => 'Не мога да регистрирам %s',
'alreadyreged' => '%s е вече регистриран.',
'successreg' => '%s е успешно регистриран.',
'cantchgstat' => 'Не мога да променя статуса на %s',
'succdel' => '%s е успешно изтрит от базата данни.',
'succchg' => 'Статусът за %s бе успешно променен.',
'wrongpass' => 'Грешна парола!',
'wrongglobalpass' => 'Грешна глобална парола!',
'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' => 'Жълто-зелено',
'redirectto' => 'Пренасочване към:',
'nonhttp' => 'Заявен е не-http линк:',
'httpredir' => 'Ако не работи, опитай това:',
'actions' => 'Действия',
'sesip' => 'IP-адрес',
'css' => 'CSS стил',
'memberexpire' => 'Изтичане на сесията на членове (минути)',
'guestexpire' => 'Изтичане на сесията за гости (минути)',
'kickpenalty' => 'Наказание с изгонване (минути)',
'entrywait' => 'Време за изчакване в чакалнята (секунди)',
'captchatime' => 'Валидност на Captcha-та (секунди)',
'messageexpire' => 'Съобщенията изтичат след (минути)',
'messagelimit' => 'Лимит на съобщенията (публичен)',
'maxmessage' => 'Максимална дължина на съобщението',
'confirm' => 'Сигурен ли си?',
'yes' => 'Да',
'no' => 'Не',
'colbg' => 'Цвят на фона',
'coltxt' => 'Цвят на текста',
'maxname' => 'Максимална дължина на ник',
'minpass' => 'Минимална дължина на паролата',
'defaultrefresh' => 'Интервал на опресняване на съобщенията по подразбиране (секунди)',
'suguests' => 'Позволи кандидати',
'rulestxt' => 'Правила (html)',
'imgembed' => 'Вгради изображения',
'trackip' => 'Покажи IP-то на сесията',
'captchachars' => 'Символи, използвани за Captcha-та',
'memkick' => 'Членовете могат да гонят, ако няма модератор в стаята',
'forceredirect' => 'Пренасочване',
'redirect' => 'Мой скрипт за пренасочване',
'backuprestore' => 'Бекъп и възстановяване',
'backup' => 'Направи бекъп',
'restore' => 'Възстанови',
'settings' => 'Настройки',
'linkfilter' => 'Филтър за линкове',
'chatname' => 'Име на чата',
'destroy' => 'Унищожи чата',
'destroyed' => 'Успешно унищожи чата',
'topic' => 'Тема',
'passreset' => 'Нулирай парола',
'cantresetpass' => 'Не мога да нулирам паролата',
'succpassreset' => 'Успешно нулира паролата',
'entermsg' => '%s влезе в чата.',
'exitmsg' => '%s напусна чата.',
'memregmsg' => '%s вече е регистриран член.',
'suregmsg' => '%s вече е регистриран кандидат.',
'kickmsg' => '%s беше изгонен.',
'multikickmsg' => '%s бяха изгонени.',
'allkickmsg' => 'Всички гости бяха изгонени.',
'cleanmsg' => '%s беше почистена.',
'sendallmsg' => '%s - ',
'sendmemmsg' => '[М] %s - ',
'sendmodmsg' => '[Екип] %s - ',
'sendadmmsg' => '[Админ] %s - ',
'sendprvmsg' => '[%1$s до %2$s] - ',
'msgsendall' => 'Съобщение до всички',
'msgsendmem' => 'Съобщение само до членовете',
'msgsendmod' => 'Съобщение само до екипа',
'msgsendadm' => 'Съобщение само до администраторите',
'msgsendprv' => 'Лично съобщение',
'numnotes' => 'Брой версии на бележки, които да се пазят',
'revisions' => 'Версии:',
'older' => 'По-стари',
'newer' => 'По-нови',
'accessdenied' => 'Достъпът е забранен',
'loggedinas' => 'В момента си логнат като %s и нямаш достъп до тази част.',
'newnickname' => 'Нов ник:',
'nicknametaken' => 'Този ник се използва от друг',
'nopass' => 'Невалидна парола (поне %d символа), не променям ника',
'gdextrequired' => 'Добавката gd за PHP е необходима за тази функционалност. Моля, първо я инсталирайте.',
'memcachedextrequired' => 'Добавката memcached за PHP е необходима за кеш функционалностите. Моля, първо я инсталирайте или върнете настройките за memcached обратно на false.',
'opensslextrequired' => 'Добавката openssl за PHP е необходима the криптиращата функционалност. Моля, първо я инсталирайте или върнете настройките за криптиране обратно на false.',
'pdo_mysqlextrequired' => 'Добавката pdo_mysql за PHP е необходима за избрания драйвер за базата данни. Моля, първо я инсталирайте.',
'pdo_pgsqlextrequired' => 'Добавката pdo_pgsql за PHP е необходима за избрания драйвер за базата данни. Моля, първо я инсталирайте.',
'pdo_sqliteextrequired' => 'Добавката pdo_sqlite за PHP е необходима за избрния драйвер за базата данни. Моля, първо я инсталирайте.',
'jsonextrequired' => 'Добавката json за PHP е необходима за тази функционалност. Моля, първо я инсталирайте.',
'sendmail' => 'Изпрати мейл при ново публично съобщение',
'mailsender' => 'Изпрати мейл, използвайки този адрес',
'mailreceiver' => 'Изпрати мейл до този адрес',
'modfallback' => 'Използвай чакалня, ако няма модератор да одобрява гостите',
'regpass' => 'Повтори паролата <br>за да се регистрираш',
'guestreg' => 'Разреши на гостите да се регистрират сами',
'asmember' => 'Като член',
'assuguest' => 'Като кандидат',
'fatalerror' => 'Фатална грешка',
'prevmatch' => 'Съвпадението ти беше както следва',
'matchtoolong' => 'Съвпадението ти беше прекалено дълго. Може да използваш най-много 255 символа. Опитай се да го разделиш.',
'nocache' => 'Автоматично скролиране (за старите браузъри или сортиране от горе надолу).',
'disablepm' => 'Забрани личните съобщения',
'disablechat' => 'Забрани чата',
'disabletext' => 'Съобщение относно забранения чат (html)',
'disabledtext' => 'Временно забранен',
'defaulttz' => 'Часова зона по подрзбиране',
'tz' => 'Часова зона',
'optional' => '(опционално)',
'userloggedin' => 'Потребителят с това потребителско име е вече логнат.',
'regednick' => 'Този ник е на регистриран член.',
'eninbox' => 'Позволи офлайн пощенска кутия',
'inboxmsgs' => 'Прочети %d съобщения в пощенската ти кутия',
'offline' => '(офлайн)',
'deleteacc' => 'Изтрий акаунт',
'eninnone' => 'За никого',
'eninall' => 'За всички',
'eninmem' => 'Само за членове',
'eninstaff' => 'Само за екипа',
'eninadmin' => 'Само за администратори',
'nickregex' => 'Регулярен израз за никове',
'passregex' => 'Регулярен израз за пароли',
'externalcss' => 'Линк към външен CSS файл',
'greetingmsg' => 'Добре дошъл, %s!',
'entryhelp' => 'Ако този фрейм не се презареди след %d секунди, ще е необходимо да позволите автоматичното презареждане (meta презареждане) в своя браузър. Също се уверете, че нямате уеб филтър, локален филтър или добавка за браузъра, която да блокира автоматичното презареждане! Такива са например "Polipo", "NoScript", и други.<br>Възможно решение е (също в случай на грешки при презареждане на ниво сървър/прокси) да използвате бутона за ръчно презареждане на вашия браузър.',
'enablegreeting' => 'Покажи приветствено съобщение преди да покажеш самото съобщение',
'unban' => 'Премахни бан',
'sortupdown' => 'Подреди съобщенията от горе надолу',
'sortframe' => 'Преподредба',
'cs' => 'Чувствително към малки и големи букви',
'hidechatters' => 'Скрий списъка с потребители',
'enfileupload' => 'Позволи качването на файлове',
'msgattache' => 'Прикачен файл',
'filenotfound' => 'Файлът не е намерен!',
'maxuploadsize' => 'Максимален размер на файл в KB',
'maxsize' => 'Макс %d KB',
'cssupdate' => 'Забележка: CSS-ът по подразбиране е вече вграден в кода и може да бъде премахнат от CSS настройките',
'manualrefresh' => 'Необходимо ръчно опресняване',
'personalnotes' => 'Лични бележки',
'filtermodkick' => 'Прилагай филтъра за изгонване и за модераторите',
];

View File

@ -2,7 +2,7 @@
/* /*
* LE CHAT-PHP - a PHP Chat based on LE CHAT - German translation * LE CHAT-PHP - a PHP Chat based on LE CHAT - German translation
* *
* Copyright (C) 2015-2016 Daniel Winzen <d@winzen4.de> * Copyright (C) 2015-2017 Daniel Winzen <d@winzen4.de>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -135,7 +135,7 @@ $T=[
'switchsingle' => 'Zu Einzel-Zeile wechseln', 'switchsingle' => 'Zu Einzel-Zeile wechseln',
'switchmulti' => 'Zu Mehrfach-Zeilen wechseln', 'switchmulti' => 'Zu Mehrfach-Zeilen wechseln',
'help' => 'Hilfe', 'help' => 'Hilfe',
'helpguest' => 'Alle Funktionen sollten recht selbsterklärend sein, benutze einfach die Knöpfe. In Ihrem Profil könnsen Sie die Aktualisierungsrate, Schriftfarbe und Ihre gewünschte Postboxgröße anpassen.<br><u>Hinweis:</u> Dies ist ein Chat, wenn Sie also nichts schreiben, werden Sie automatisch nach einiger Zeit abgemeldet.', 'helpguest' => 'Alle Funktionen sollten recht selbsterklärend sein, benutze einfach die Knöpfe. In Ihrem Profil könnsen Sie die Aktualisierungsrate und Schriftfarbe anpassen, sowie Nutzer ignorieren.<br><u>Hinweis:</u> Dies ist ein Chat, wenn Sie also nichts schreiben, werden Sie automatisch nach einiger Zeit abgemeldet.',
'helpembed' => 'Wenn Sie ein Bild einbetten möchten, fügen Sie einfach ein [img] vor die Adresse des Bildes. Beispiel: [img]http://example.com/images/file.jpg bettet das Bild in Ihrem Beitrag ein.', 'helpembed' => 'Wenn Sie ein Bild einbetten möchten, fügen Sie einfach ein [img] vor die Adresse des Bildes. Beispiel: [img]http://example.com/images/file.jpg bettet das Bild in Ihrem Beitrag ein.',
'helpmem' => 'Mitglieder: Sie werden einige zusätzliche Optionen in Ihrem Profil haben. Sie können Ihre Schriftart ändern, Ihr Passwort jederzeit ändern und natürlich können Sie auch Ihr Profil löschen.', 'helpmem' => 'Mitglieder: Sie werden einige zusätzliche Optionen in Ihrem Profil haben. Sie können Ihre Schriftart ändern, Ihr Passwort jederzeit ändern und natürlich können Sie auch Ihr Profil löschen.',
'helpmod' => 'Moderatoren: Achten Sie auf den Admin-Knof unten. Er ruft eine Seite auf, auf der Sie Nachrichten löschen können, Teilnehmer rausschmeißen können, alle aktive Sitzungen anzeigen lassen können und den Gastzugriff deaktivieren können, falls dies nötig sein sollte.', 'helpmod' => 'Moderatoren: Achten Sie auf den Admin-Knof unten. Er ruft eine Seite auf, auf der Sie Nachrichten löschen können, Teilnehmer rausschmeißen können, alle aktive Sitzungen anzeigen lassen können und den Gastzugriff deaktivieren können, falls dies nötig sein sollte.',
@ -366,4 +366,4 @@ $T=[
'personalnotes' => 'Persönliche Notizen', 'personalnotes' => 'Persönliche Notizen',
'filtermodkick' => 'Kickfilter auf Moderatoren anwenden', 'filtermodkick' => 'Kickfilter auf Moderatoren anwenden',
]; ];
?>

View File

@ -2,7 +2,7 @@
/* /*
* LE CHAT-PHP - a PHP Chat based on LE CHAT - English translation * LE CHAT-PHP - a PHP Chat based on LE CHAT - English translation
* *
* Copyright (C) 2015-2016 Daniel Winzen <d@winzen4.de> * Copyright (C) 2015-2017 Daniel Winzen <d@winzen4.de>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -135,7 +135,7 @@ $I=[
'switchsingle' => 'Switch to single-line', 'switchsingle' => 'Switch to single-line',
'switchmulti' => 'Switch to multi-line', 'switchmulti' => 'Switch to multi-line',
'help' => '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' => 'All functions should be pretty much self-explaining, just use the buttons. In your profile you can adjust the refresh rate and font colour, as well as ignore users.<br><u>Note:</u> This is a chat, so if you don\'t keep talking, you will be automatically logged out after a while.',
'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' => '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.',
'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' => '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.',
'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' => '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.',
@ -366,4 +366,4 @@ $I=[
'personalnotes' => 'Personal notes', 'personalnotes' => 'Personal notes',
'filtermodkick' => 'Apply kick filter on moderators', 'filtermodkick' => 'Apply kick filter on moderators',
]; ];
?>

View File

@ -1,8 +1,8 @@
<?php <?php
/* /*
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Spanish (ar) translation * LE CHAT-PHP - a PHP Chat based on LE CHAT - Spanish translation
* *
* Copyright (C) 2015-2016 Daniel Winzen <d@winzen4.de> * Copyright (C) 2015-2017 Daniel Winzen <d@winzen4.de>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -18,13 +18,15 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//Native language name: Español (Argentina) //Native language name: Español
$T=[ $T=[
'nodb' => '¡Sin conexión a la base de datos!', 'nodb' => '¡Sin conexión a la base de datos!',
'nodbsetup' => '¡No pudo conectarse a la base de datos! Por favor creá la base de datos y editá el script para usarla con el nombre de usuario y clave dados.', 'nodbsetup' => '¡No pudo conectarse a la base de datos! Por favor creá la base de datos y editá el script para usarla con el nombre de usuario y clave dados.',
'changelang' => 'Cambiar idioma:', 'changelang' => 'Cambiar idioma:',
'expire' => 'La sesión es inválida o expiró', 'expire' => 'La sesión es inválida o expiró',
'kicked' => '¡Te expulsaron!', 'kicked' => '¡Te expulsaron!',
'invalnick' => 'NickName inválido (%1$d characters maximum and has to match the regular expression "%2$s")',
'invalpass' => 'Contraseña erronea(At least %1$d characters and has to match the regular expression "%2$s")',
'noconfirm' => '¡La contraseña y su confirmación no coinciden!', 'noconfirm' => '¡La contraseña y su confirmación no coinciden!',
'incorregex' => '¡Expresión regular incorrecta!', 'incorregex' => '¡Expresión regular incorrecta!',
'bottom' => 'Inicio', 'bottom' => 'Inicio',
@ -49,7 +51,7 @@ $T=[
'moderate' => 'Moderado', 'moderate' => 'Moderado',
'extreme' => 'Extremo', 'extreme' => 'Extremo',
'nick' => 'Apodo:', 'nick' => 'Apodo:',
'pass' => 'Constraseña:', 'pass' => 'Contraseña:',
'globalloginpass' => 'Contraseña global:', 'globalloginpass' => 'Contraseña global:',
'login' => 'Identificarse', 'login' => 'Identificarse',
'dbupdate' => '¡La base de datos fue actualizada con éxito!', 'dbupdate' => '¡La base de datos fue actualizada con éxito!',
@ -68,8 +70,8 @@ $T=[
'cleanmsgs' => 'Limpiar mensajes', 'cleanmsgs' => 'Limpiar mensajes',
'room' => 'Sala entera', 'room' => 'Sala entera',
'selection' => 'Selección', 'selection' => 'Selección',
'cleannick' => 'Following nickname:', 'cleannick' => 'Siguiente Nick:',
'clean' => 'Clean', 'clean' => 'Limpiar',
'kickchat' => 'Expulsado (%d minutos)', 'kickchat' => 'Expulsado (%d minutos)',
'kickreason' => 'Motivo de expulsión:', 'kickreason' => 'Motivo de expulsión:',
'kickpurge' => 'Mensaje de purga', 'kickpurge' => 'Mensaje de purga',
@ -79,7 +81,7 @@ $T=[
'sessions' => 'Ver sesiones activas', 'sessions' => 'Ver sesiones activas',
'view' => 'Ver', 'view' => 'Ver',
'filter' => 'Filtro', 'filter' => 'Filtro',
'guestacc' => 'Change Guestaccess', 'guestacc' => 'Cambiar acceso de invitado',
'guestallow' => 'Permitir', 'guestallow' => 'Permitir',
'guestwait' => 'Permitir con sala de espera', 'guestwait' => 'Permitir con sala de espera',
'adminallow' => 'Requiere aprobación del moderator', 'adminallow' => 'Requiere aprobación del moderator',
@ -99,7 +101,7 @@ $T=[
'regmem' => 'Registrar miembro nuevo', 'regmem' => 'Registrar miembro nuevo',
'sessact' => 'Sesiones activas', 'sessact' => 'Sesiones activas',
'sessnick' => 'Apodo', 'sessnick' => 'Apodo',
'sesstimeout' => 'Vecnimiento', 'sesstimeout' => 'Vencimiento',
'sessua' => 'Navegador', 'sessua' => 'Navegador',
'fid' => 'ID del filtro:', 'fid' => 'ID del filtro:',
'match' => 'Coincidencia', 'match' => 'Coincidencia',
@ -133,7 +135,7 @@ $T=[
'switchsingle' => 'Cambiar a una sola línea', 'switchsingle' => 'Cambiar a una sola línea',
'switchmulti' => 'Cambiar a múltiples líneas', 'switchmulti' => 'Cambiar a múltiples líneas',
'help' => 'Ayuda', 'help' => 'Ayuda',
'helpguest' => 'Todas las funciones deberían ser auto-explicativas, sólo usa los botones. En tu perfil puedes ajustar el tiempo de actualización, el color del texto y el tamaño de caja que prefieras.<br><u>Nota:</u> Esto es una sala de chat, así que si no te mantenés hablando, vas a ser expulsado automáticamete después de un tiempo.', 'helpguest' => 'Todas las funciones deberían ser auto-explicativas, sólo usa los botones. En tu perfil puedes ajustar el tiempo de actualización, el color del texto y el tamaño de caja que prefieras.<br><u>Nota:</u> Esto es una sala de chat, así que si no te mantenés hablando, vas a ser expulsado automáticamente después de un tiempo.',
'helpembed' => 'Si querés incluir una imagen en tu publicación, simplemente poné [img] al comienzo de la dirección URL de la imagen. Por ejemplo: [img]http://example.com/images/file.jpg incluirá la imagen en tu publicación.', 'helpembed' => 'Si querés incluir una imagen en tu publicación, simplemente poné [img] al comienzo de la dirección URL de la imagen. Por ejemplo: [img]http://example.com/images/file.jpg incluirá la imagen en tu publicación.',
'helpmem' => 'Miembros: Vas a tener algunas opciones más en tu perfil. Vas a poder ajustar la tipografía del texto y cambiar la contraseña en cualquier momento.', 'helpmem' => 'Miembros: Vas a tener algunas opciones más en tu perfil. Vas a poder ajustar la tipografía del texto y cambiar la contraseña en cualquier momento.',
'helpmod' => 'Moderadores: Notá el botón de administración al final de la página. Te va a llevar a una página donde podés limpiar la sala, expulsar personas, ver todas las sesiones activas y deshabilitar el acceso a invitados totalmente si fuese necesario.', 'helpmod' => 'Moderadores: Notá el botón de administración al final de la página. Te va a llevar a una página donde podés limpiar la sala, expulsar personas, ver todas las sesiones activas y deshabilitar el acceso a invitados totalmente si fuese necesario.',
@ -149,10 +151,12 @@ $T=[
'roomdefault' => 'Sala por defecto', 'roomdefault' => 'Sala por defecto',
'bold' => 'Negrita', 'bold' => 'Negrita',
'italic' => 'Bastardilla', 'italic' => 'Bastardilla',
'small' => 'Pequeño',
'fontexample' => 'Ejemplo de la tipografía seleccionada', 'fontexample' => 'Ejemplo de la tipografía seleccionada',
'timestamps' => 'Mostrar fecha y hora', 'timestamps' => 'Mostrar fecha y hora',
'embed' => 'Habilitar imágenes', 'embed' => 'Habilitar imágenes',
'incognito' => 'Modo incógnito', 'incognito' => 'Modo incógnito',
'changenick' => 'Cambiar Nick',
'changepass' => 'Cambiar la contraseña', 'changepass' => 'Cambiar la contraseña',
'oldpass' => 'Contraseña anterior:', 'oldpass' => 'Contraseña anterior:',
'newpass' => 'Contraseña nueva:', 'newpass' => 'Contraseña nueva:',
@ -167,7 +171,7 @@ $T=[
'clone' => 'Clone', 'clone' => 'Clone',
'randh' => 'Reglas y ayuda', 'randh' => 'Reglas y ayuda',
'exit' => 'Salir de la sala', 'exit' => 'Salir de la sala',
'bye' => '¡Chau %s, visitanos pronto!', 'bye' => '¡Chau %s, visítanos pronto!',
'colourtable' => 'Colourtable', 'colourtable' => 'Colourtable',
'backtoprofile' => 'Volver a tu perfil', 'backtoprofile' => 'Volver a tu perfil',
'copy' => 'Copiar:', 'copy' => 'Copiar:',
@ -195,11 +199,11 @@ $T=[
'cantchgstat' => 'No pudo cambiarse el estado de %s', 'cantchgstat' => 'No pudo cambiarse el estado de %s',
'succdel' => '%s fue eliminado de la base de datos.', 'succdel' => '%s fue eliminado de la base de datos.',
'succchg' => 'Se cambió el estado de %s sin problemas.', 'succchg' => 'Se cambió el estado de %s sin problemas.',
'wrongpass' => '¡Constraseña incorrecta!', 'wrongpass' => '¡Contraseña incorrecta!',
'wrongglobalpass' => '¡Constraseña global incorrecta!', 'wrongglobalpass' => '¡Contraseña global incorrecta!',
'succprofile' => 'Tu perfil se guardó sin problemas.', 'succprofile' => 'Tu perfil se guardó sin problemas.',
'backtologin' => 'Volver a la página de identificación.', 'backtologin' => 'Volver a la página de identificación.',
'backtochat' => 'Vovler a la sala.', 'backtochat' => 'Volver a la sala.',
'Beige' => 'Beige', 'Beige' => 'Beige',
'Black' => 'Negro', 'Black' => 'Negro',
'Blue' => 'Azul', 'Blue' => 'Azul',
@ -267,7 +271,7 @@ $T=[
'redirect' => 'Script de redirección personalizado', 'redirect' => 'Script de redirección personalizado',
'backuprestore' => 'Copias de seguridad', 'backuprestore' => 'Copias de seguridad',
'backup' => 'Hacer copia', 'backup' => 'Hacer copia',
'restore' => 'Restablacer copia', 'restore' => 'Restablecer copia',
'settings' => 'Configuración', 'settings' => 'Configuración',
'linkfilter' => 'Filtro de enlaces', 'linkfilter' => 'Filtro de enlaces',
'chatname' => 'Nombre de la sala', 'chatname' => 'Nombre de la sala',
@ -275,8 +279,8 @@ $T=[
'destroyed' => 'Sala destruida satisfactoriamente', 'destroyed' => 'Sala destruida satisfactoriamente',
'topic' => 'Asunto', 'topic' => 'Asunto',
'passreset' => 'Reiniciar contraseña', 'passreset' => 'Reiniciar contraseña',
'cantresetpass' => 'Can\'t reset password', 'cantresetpass' => 'No se puede reiniciar contraseña',
'succpassreset' => 'Successfully reset password', 'succpassreset' => 'Contraseña reiniciada correctamente',
'entermsg' => '%s entró en la sala.', 'entermsg' => '%s entró en la sala.',
'exitmsg' => '%s se fue de la sala.', 'exitmsg' => '%s se fue de la sala.',
'memregmsg' => '%s ahora es un miembro registrado.', 'memregmsg' => '%s ahora es un miembro registrado.',
@ -295,14 +299,70 @@ $T=[
'msgsendmod' => 'Sólo mensajes a staff', 'msgsendmod' => 'Sólo mensajes a staff',
'msgsendadm' => 'Sólo mensajes a administradores', 'msgsendadm' => 'Sólo mensajes a administradores',
'msgsendprv' => 'Mensaje privado', 'msgsendprv' => 'Mensaje privado',
'numnotes' => 'Number of notes revisions to keep', 'numnotes' => 'Numero de notas para revisar',
'revisions' => 'Revisiones:', 'revisions' => 'Revisiones:',
'older' => 'Older', 'older' => 'Antiguo',
'newer' => 'Newer', 'newer' => 'Nuevo',
'accessdenied' => 'Acceso no permitido', 'accessdenied' => 'Acceso no permitido',
'loggedinas' => 'Estás identificado como %s y no tenés acceso a esta sección.', 'loggedinas' => 'Estás identificado como %s y no tenés acceso a esta sección.',
'newnickname' => 'Nuevo apodo:', 'newnickname' => 'Nuevo apodo:',
'nicknametaken' => 'Ese apodo ya fue tomado', 'nicknametaken' => 'Ese apodo ya fue tomado',
'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.',
'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.',
'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_sqliteextrequired' => ' La extensión pdo_sqlite de PHP es necesaria para la database driver seleccionada. Instálelo primero.',
'jsonextrequired' => 'La extensión json de PHP es necesaria para esta configuración. Instálela primero.',
'sendmail' => 'Enviar mail en nuevo mensaje público',
'mailsender' => 'Enviar mail usando esta dirección',
'mailreceiver' => 'Enviar mail a esta dirección',
'modfallback' => 'Volver a la sala de espera, si ningún moderador aprovo la visita',
'regpass' => 'Repetir contraseña<br>para registrarse',
'guestreg' => 'Dar permisos de invitado a si mismos',
'asmember' => 'Como miembro',
'assuguest' => 'Como aplicante',
'fatalerror' => 'Error fatal',
'prevmatch' => 'Your match was as follows',
'matchtoolong' => 'Your match was too long. You can use max. 255 characters. Try splitting it up.',
'nocache' => 'Autoscroll (para buscadores antiguos o tipo top to bottom).',
'disablepm' => 'Desactivar mensajes privados',
'disablechat' => 'Desactivar chat',
'disabletext' => 'Mensaje de chat desactivado (html)',
'disabledtext' => 'Desactivado temporalmente',
'defaulttz' => 'Zona horaria predeterminada',
'tz' => 'Zona horaria',
'optional' => '(opcional)',
'userloggedin' => 'Un usuario con ese nombre ya está registrado.',
'regednick' => 'Este nombre es un usuario registrado.',
'eninbox' => 'Activar inbox offline',
'inboxmsgs' => 'Leer %d mensajes en tu bandeja',
'offline' => '(offline)',
'deleteacc' => 'Borrar cuenta',
'eninnone' => 'Para nadie',
'eninall' => 'Para todos',
'eninmem' => 'Solo para miembros',
'eninstaff' => 'Solo para staff',
'eninadmin' => 'Solo para administradores',
'nickregex' => 'Nickname regex',
'passregex' => 'Password regex',
'externalcss' => 'Link para archivo CSS externo',
'greetingmsg' => 'Bienvenido %s!',
'entryhelp' => 'Si no se te redirige en %d segundos, asegurate de tener activado la redirección automática (meta refresh) en tu navegador. También asegurate de que ningún filtro web, local proxy tool o browser plugin evita tu redirección automática! Podría ser por ejemplo "Polipo", "NoScript", etc.<br>o puedes usar el botón de recargar de manera manual.',
'enablegreeting' => ' Mostrar un saludo antes de los mensajes',
'unban' => 'Desbanear',
'sortupdown' => 'Sort messages from top to bottom',
'sortframe' => 'Rearrange',
'cs' => 'Case sensitive',
'hidechatters' => 'Esconder lista de chatters',
'enfileupload' => 'Habilitar subida de archivos',
'msgattache' => 'Attachement',
'filenotfound' => 'Documento no encontrado!',
'maxuploadsize' => 'Máxima subida en KB',
'maxsize' => 'Max %d KB',
'cssupdate' => 'Note: Css predeterminado está ahora hardcoded y puede ser removido de la configuración CSS',
'manualrefresh' => 'Recarga manual requerida',
'personalnotes' => 'Notas personales',
'filtermodkick' => 'Aplicar Kick filter en moderadores o administradores',
]; ];
?>

View File

@ -1,308 +0,0 @@
<?php
/*
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Spanish (ES) translation
*
* Copyright (C) 2015-2016 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: Español (España)
$T=[
'nodb' => '¡Sin conexión a la base de datos!',
'nodbsetup' => '¡No pudo conectarse a la base de datos! Por favor crea la base de datos y edita el script para usarla con el nombre de usuario y clave dados.',
'changelang' => 'Cambiar idioma:',
'expire' => 'La sesión es inválida o expiró',
'kicked' => '¡Te expulsaron!',
'noconfirm' => '¡La contraseña y su confirmación no coinciden!',
'incorregex' => '¡Expresión regular incorrecta!',
'bottom' => 'Inicio',
'top' => 'Fin',
'choose' => '(elija)',
'setup' => 'Configuración del chat',
'init' => 'Configuración inicial',
'sulogin' => 'Registro de Superadministrador',
'sunick' => 'Apodo del superadmin:',
'supass' => 'Contraseña del superadmin:',
'suconfirm' => 'Confirmar contraseña:',
'susuccess' => '¡Registrado con éxito!',
'initbtn' => 'Inicializar chat',
'initdbexist' => '¡La base de datos ya existe! Para continuar, primero tienes que borrar esas tablas manualmente.',
'initsuexist' => '¡Ya existe un superadministrador!',
'initgosetup' => 'Ir a la página de configuración',
'captcha' => 'Captcha',
'enabled' => 'Habilitado',
'onlyguests' => 'Sólo para invitados',
'disabled' => 'Deshabilitado',
'simple' => 'Simple',
'moderate' => 'Moderado',
'extreme' => 'Extremo',
'nick' => 'Apodo:',
'pass' => 'Constraseña:',
'globalloginpass' => 'Contraseña global:',
'login' => 'Identificarse',
'dbupdate' => '¡La base de datos fue actualizada con éxito!',
'sysmessages' => 'Mensajes de sistema',
'msgenter' => 'Entrando',
'msgexit' => 'Saliendo',
'msgmemreg' => 'Miembro registrado',
'msgsureg' => 'Aplicante registrado',
'msgkick' => 'Expulsado',
'msgmultikick' => 'Expulsión múltiple',
'msgallkick' => 'Todos expulsados',
'msgclean' => 'Sala limpiada',
'dateformat' => '<a target="_blank" href="http://php.net/manual/en/function.date.php#refsect1-function.date-parameters">Date formating</a>',
'admfunc' => 'Funciones administrativas',
'allguests' => 'Todos invitados',
'cleanmsgs' => 'Limpiar mensajes',
'room' => 'Sala entera',
'selection' => 'Selección',
'cleannick' => 'Following nickname:',
'clean' => 'Clean',
'kickchat' => 'Expulsado (%d minutos)',
'kickreason' => 'Motivo de expulsión:',
'kickpurge' => 'Mensaje de purga',
'kick' => 'Expulsar',
'logoutinact' => 'Desconectar persona inactiva',
'logout' => 'Desconectar',
'sessions' => 'Ver sesiones activas',
'view' => 'Ver',
'filter' => 'Filtro',
'guestacc' => 'Change Guestaccess',
'guestallow' => 'Permitir',
'guestwait' => 'Permitir con sala de espera',
'adminallow' => 'Requiere aprobación del moderator',
'guestdisallow' => 'Sólo miembros',
'addsuguest' => 'Agregar aplicante',
'register' => 'Registrar',
'admmembers' => 'Miembros',
'memdel' => 'Borrar de la base de datos',
'memdeny' => 'Denegar acceso (!)',
'memsuguest' => 'Convertir en aplicante (G)',
'memreg' => 'Convertir en miembro regular',
'memmod' => 'Convertir en moderador (M)',
'memsumod' => 'Convertir en supermoderador (SM)',
'memadm' => 'Convertir administrador (A)',
'change' => 'Cambiar',
'regguest' => 'Registrar invitado',
'regmem' => 'Registrar miembro nuevo',
'sessact' => 'Sesiones activas',
'sessnick' => 'Apodo',
'sesstimeout' => 'Expiración',
'sessua' => 'Navegador',
'fid' => 'ID del filtro:',
'match' => 'Coincidencia',
'replace' => 'Reemplazar',
'allowpm' => 'Permitir en MP',
'regex' => 'Expresión regular',
'apply' => 'Aplicar',
'newfilter' => 'Filtro nuevo:',
'add' => 'Añadir',
'noframes' => 'Este chat usa <b>frames</b>. ¡Por favor, habilítalos en tu navegador o usa uno que los permita!',
'delselmes' => 'Borrar mensajes seleccionados',
'staffnotes' => 'Notas del equipo',
'adminnotes' => 'Notas de administrador',
'notessaved' => '¡Notas guardadas!',
'lastedited' => 'Editada por última vez por %1$s el %2$s',
'savenotes' => 'Guardar notas',
'waitingroom' => 'Sala de espera',
'waittext' => 'Bienvenido %1$s, tu identificación fue demorada, podrás acceder a la sala en %2$d segundos.',
'admwaittext' => 'Bienvenido %1$s, tu identificación fue demorada, podrás acceder a la sala en cuanto un administrador lo permita.',
'waitreload' => 'Si esta página no se actualiza cada %d segundos, usa el botón de abajo para hacerlo manualmente.',
'reload' => 'Recargar',
'rules' => 'Reglas',
'talkto' => 'Enviar a',
'toall' => 'Todos',
'tomem' => 'Sólo miembros',
'tostaff' => 'Sólo equipo',
'toadmin' => 'Sólo administradores',
'alsopurge' => 'Además purgar mensajes',
'dellast' => 'Eliminar el último mensaje',
'delall' => 'Eliminar todos los mensajes',
'switchsingle' => 'Cambiar a una sola línea',
'switchmulti' => 'Cambiar a múltiples líneas',
'help' => 'Ayuda',
'helpguest' => 'Todas las funciones deberían ser auto-explicativas, sólo usa los botones. En tu perfil puedes ajustar el tiempo de refresco, el color del texto y el tamaño de caja que prefieras.<br><u>Nota:</u> Esto es una sala de chat, así que si no te mantienes hablando, serás desconectado automáticamete luego de un tiempo.',
'helpembed' => 'Si quieres incluir una imagen en tu publicación, simplemente pon [img] al comienzo de la dirección URL de la imagen. Por ejemplo: [img]http://example.com/images/file.jpg incluirá la imagen en tu publicación.',
'helpmem' => 'Miembros: Tendrás algunas opciones adicionales en tu perfil. Podrás ajustar la tipografía del texto y cambiar la contraseña en cualquier momento.',
'helpmod' => 'Moderadores: Nota el botón de administración al final de la página. Te llevará a una página donde puedes limpiar la sala, expulsar personas, ver todas las sesiones activas y deshabilitar el acceso a invitados totalmente si fuese necesario.',
'helpadm' => 'Administradores: Además podrás registrar invitados, editar miembros y registrar nuevos apodos sin que estén en la sala.',
'profile' => 'Tu perfil',
'ignore' => 'Ignorar',
'unignore' => 'Dejar de ignorar',
'refreshrate' => 'Tiempo de actualización (5-150 segundos)',
'fontcolour' => 'Color de texto',
'viewexample' => 'Ver ejemplos',
'bgcolour' => 'Color de fondo',
'fontface' => 'Tipografía',
'roomdefault' => 'Sala por defecto',
'bold' => 'Negrita',
'italic' => 'Bastardilla',
'fontexample' => 'Ejemplo de la tipografía seleccionada',
'timestamps' => 'Mostrar fecha y hora',
'embed' => 'Habilitar imágenes',
'incognito' => 'Modo incógnito',
'changepass' => 'Cambiar la contraseña',
'oldpass' => 'Contraseña anterior:',
'newpass' => 'Contraseña nueva:',
'confirmpass' => 'Confirmar contraseña nueva:',
'savechanges' => 'Guardar cambios',
'reloadpb' => 'Recargar caja de publicación',
'reloadmsgs' => 'Recargar mensajes',
'chgprofile' => 'Perfil',
'adminbtn' => 'Admin',
'admnotes' => 'Notas de administrador',
'notes' => 'Notas',
'clone' => 'Clone',
'randh' => 'Reglas y ayuda',
'exit' => 'Salir de la sala',
'bye' => '¡Chau %s, visitanos pronto!',
'colourtable' => 'Colourtable',
'backtoprofile' => 'Volver a tu perfil',
'copy' => 'Copiar:',
'choosecol' => 'Invitado, elija un color:',
'randomcol' => 'Color al azar',
'enter' => 'Ingresar a la sala',
'error' => 'Error',
'members' => 'Miembros',
'guests' => 'Invitados',
'approveguests' => '%d nuevos invitados para aprobar',
'allowchecked' => 'Aceptar marcados',
'allowall' => 'Aceptar todos',
'denychecked' => 'Rechazar marcados',
'denyall' => 'Rechazar todos',
'denymessage' => 'Enviar mensaje a rechazados:',
'butallowdeny' => 'Enviar',
'waitempty' => 'No hay más peticiones para aprobar.',
'wrongcaptcha' => 'Captcha incorrecto',
'captchaexpire' => 'Captcha ya usado o expirado.',
'noguests' => '¡Perdón! Actualmente sólo se permiten miembros.',
'curchat' => 'Actualmente hay %d personas en la sala:',
'cantreg' => 'No pudo registrarse %s',
'alreadyreged' => '%s ya fue registrado.',
'successreg' => '%s se registro exitosamente.',
'cantchgstat' => 'No pudo cambiarse el estado de %s',
'succdel' => '%s fue eliminado de la base de datos.',
'succchg' => 'Se cambió el estado de %s exitosamente.',
'wrongpass' => '¡Constraseña incorrecta!',
'wrongglobalpass' => '¡Constraseña global incorrecta!',
'succprofile' => 'Tu perfil se guardó satisfactoriamente.',
'backtologin' => 'Volver a la página de identificación.',
'backtochat' => 'Vovler a la sala.',
'Beige' => 'Beis',
'Black' => 'Negro',
'Blue' => 'Azul',
'BlueViolet' => 'Azul violáceo',
'Brown' => 'Marrón',
'Cyan' => 'Cian',
'DarkBlue' => 'Azul oscuro',
'DarkGreen' => 'Verde oscuro',
'DarkRed' => 'Rojo oscuro',
'DarkViolet' => 'Violeta oscuro',
'DeepSkyBlue' => 'Azul celeste',
'Gold' => 'Dorado',
'Grey' => 'Gris',
'Green' => 'Verde',
'HotPink' => 'Rosa cálido',
'Indigo' => 'Índigo',
'LightBlue' => 'Azul claro',
'LightGreen' => 'Verde claro',
'LimeGreen' => 'Verde lima',
'Magenta' => 'Magenta',
'Olive' => 'Oliva',
'Orange' => 'Naranja',
'OrangeRed' => 'Rojo anaranjado',
'Purple' => 'Púrpura',
'Red' => 'Rojo',
'RoyalBlue' => 'Azul real',
'SeaGreen' => 'Verde marino',
'Sienna' => 'Siena',
'Silver' => 'Plateado',
'Tan' => 'Bronceado',
'Teal' => 'Cerceta',
'Violet' => 'Violeta',
'White' => 'Blanco',
'Yellow' => 'Amarillo',
'YellowGreen' => 'Verde amarillento',
'redirectto' => 'Redirigir hacia:',
'nonhttp' => 'Petición de enlace que no es http:',
'httpredir' => 'Si no funciona, prueba esto:',
'actions' => 'Acciones',
'sesip' => 'Dirección IP',
'css' => 'Estilo CSS',
'memberexpire' => 'Expiración para miembros (minutos)',
'guestexpire' => 'Expiración para invitados (minutos)',
'kickpenalty' => 'Penalidad al expulsar (minutos)',
'entrywait' => 'Tiempo en sala de espera (segundos)',
'captchatime' => 'Expiración de captcha (segundos)',
'messageexpire' => 'Expiracíon de mensajes (minutos)',
'messagelimit' => 'Límite de mensajes (público)',
'maxmessage' => 'Largo máximo de mensaje',
'confirm' => '¿Estás seguro?',
'yes' => 'Sí',
'no' => 'No',
'colbg' => 'Color de fondo',
'coltxt' => 'Color de texto',
'maxname' => 'Largo máximo para apodos',
'minpass' => 'Largo mínimo para contraseñas',
'defaultrefresh' => 'Tiempo de refresco de mensajes por defecto (segundos)',
'suguests' => 'Habilitar aplicantes',
'rulestxt' => 'Reglas (html)',
'imgembed' => 'Imágenes incrustadas',
'trackip' => 'Mostrar IP de la sesión',
'captchachars' => 'Caracteres usados en el Captcha',
'memkick' => 'Los miembros pueden expulsar, si no hay moderador presente',
'forceredirect' => 'Forzar redirección',
'redirect' => 'Script de redirección personalizado',
'backuprestore' => 'Respaldar y restaurar',
'backup' => 'Respaldar',
'restore' => 'Restaurar',
'settings' => 'Preferencias',
'linkfilter' => 'Filtro de enlaces',
'chatname' => 'Nombre de la sala',
'destroy' => 'Destruir sala',
'destroyed' => 'Sala destruida satisfactoriamente',
'topic' => 'Asunto',
'passreset' => 'Reiniciar contraseña',
'cantresetpass' => 'Can\'t reset password',
'succpassreset' => 'Successfully reset password',
'entermsg' => '%s entró en la sala.',
'exitmsg' => '%s se fue de la sala.',
'memregmsg' => '%s ahora es un miembro registrado.',
'suregmsg' => '%s ahora es un aplicante registrado.',
'kickmsg' => '%s fue expulsado.',
'multikickmsg' => '%s fueron expulsados.',
'allkickmsg' => 'Todas las personas fueron expulsadas.',
'cleanmsg' => '%s fue limpiada.',
'sendallmsg' => '%s - ',
'sendmemmsg' => '[M] %s - ',
'sendmodmsg' => '[Equipo] %s - ',
'sendadmmsg' => '[Admin] %s - ',
'sendprvmsg' => '[%1$s a %2$s] - ',
'msgsendall' => 'Mensajes a todos',
'msgsendmem' => 'Sólo mensajes a miembros',
'msgsendmod' => 'Sólo mensajes a equipo',
'msgsendadm' => 'Sólo mensajes a administradores',
'msgsendprv' => 'Mensaje privado',
'numnotes' => 'Number of notes revisions to keep',
'revisions' => 'Revisiones:',
'older' => 'Older',
'newer' => 'Newer',
'accessdenied' => 'Acceso denegado',
'loggedinas' => 'Estás identificado como %s y no tenés acceso a esta sección.',
'newnickname' => 'Nuevo apodo:',
'nicknametaken' => 'Ese apodo ya fue tomado',
'nopass' => 'Constraseña incorrecta (al menos %d caracteres), no se cambia apodo'
];
?>

View File

@ -2,7 +2,7 @@
/* /*
* LE CHAT-PHP - a PHP Chat based on LE CHAT - French translation * LE CHAT-PHP - a PHP Chat based on LE CHAT - French translation
* *
* Copyright (C) 2015-2016 Daniel Winzen <d@winzen4.de> * Copyright (C) 2015-2017 Daniel Winzen <d@winzen4.de>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -305,4 +305,4 @@ $T=[
'nicknametaken' => 'Pseudo déjà pris', 'nicknametaken' => 'Pseudo déjà pris',
'nopass' => 'Mot de passe invalide (au moins % caractères), ne pas changer le pseudo', 'nopass' => 'Mot de passe invalide (au moins % caractères), ne pas changer le pseudo',
]; ];
?>

View File

@ -2,7 +2,7 @@
/* /*
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Indonesian translation * LE CHAT-PHP - a PHP Chat based on LE CHAT - Indonesian translation
* *
* Copyright (C) 2015-2016 Daniel Winzen <d@winzen4.de> * Copyright (C) 2015-2017 Daniel Winzen <d@winzen4.de>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -305,4 +305,4 @@ $T=[
'nicknametaken' => 'Nama sudah ada', 'nicknametaken' => 'Nama sudah ada',
'nopass' => 'Kata sandi salah (Minimal %d karakter), tak merubah nama' 'nopass' => 'Kata sandi salah (Minimal %d karakter), tak merubah nama'
]; ];
?>

View File

@ -2,7 +2,7 @@
/* /*
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Russian translation * LE CHAT-PHP - a PHP Chat based on LE CHAT - Russian translation
* *
* Copyright (C) 2015-2016 Daniel Winzen <d@winzen4.de> * Copyright (C) 2015-2017 Daniel Winzen <d@winzen4.de>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -25,7 +25,9 @@ $T=[
'changelang' => 'Изменить язык:', 'changelang' => 'Изменить язык:',
'expire' => 'Недействительная/с истекшим сроком сессия', 'expire' => 'Недействительная/с истекшим сроком сессия',
'kicked' => 'Забанен!', 'kicked' => 'Забанен!',
'noconfirm' => 'Подтверждение пароля не совпадает!', 'invalnick' => 'Некорректное имя (%1$d символов максимум и оно должно совпадать с выражением "%2$s")',
'invalpass' => 'Некорректный пароль (Хотя бы %1$d символов и он должен совпадать с выражением "%2$s")',
'noconfirm' => 'Введенные пароли не совпадают!',
'incorregex' => 'Неправильное регулярное выражение!', 'incorregex' => 'Неправильное регулярное выражение!',
'bottom' => 'Вниз', 'bottom' => 'Вниз',
'top' => 'Вверх', 'top' => 'Вверх',
@ -117,9 +119,9 @@ $T=[
'lastedited' => 'Последний раз редактировал %1$s %2$s', 'lastedited' => 'Последний раз редактировал %1$s %2$s',
'savenotes' => 'Сохранить заметки', 'savenotes' => 'Сохранить заметки',
'waitingroom' => 'Гостевая', 'waitingroom' => 'Гостевая',
'waittext' => 'Добро пожаловать %1$s, Ваш логин задерживается, Вы можете получить доступ в чат через %2$d секунд.', 'waittext' => 'Добро пожаловать %1$s, наблюдается задержка входа, доступ к чату будет осуществлен через %2$d секунд.',
'admwaittext' => 'Добро пожаловать %1$s, Ваш логин задерживается, Вы можете получить доступ в чат в ближайшее время, когда разрешит модератор.', 'admwaittext' => 'Добро пожаловать %1$s, наблюдается задержка входа, доступ к чату будет доступен после подтверждения модератором.',
'waitreload' => 'Если эта страница не отвечает, обновления каждые %d секунд, используйте кнопку ниже, чтобы загрузить его вручную!', 'waitreload' => 'Если эта страница не отвечает, не обновляется каждые %d секунд, используйте кнопку ниже, чтобы перезагрузить ее вручную!',
'reload' => 'Перезагрузить', 'reload' => 'Перезагрузить',
'rules' => 'Правила', 'rules' => 'Правила',
'talkto' => 'Отправить', 'talkto' => 'Отправить',
@ -130,13 +132,13 @@ $T=[
'alsopurge' => 'Также очистить сообщения', 'alsopurge' => 'Также очистить сообщения',
'dellast' => 'Удалить последнее сообщение', 'dellast' => 'Удалить последнее сообщение',
'delall' => 'Удалить все сообщения', 'delall' => 'Удалить все сообщения',
'switchsingle' => 'Переключитесь на одну линию', 'switchsingle' => 'Включить однострочный режим',
'switchmulti' => 'Переключитесь на мульти-линию', 'switchmulti' => 'Включить многострочный режим',
'help' => 'Помощь', 'help' => 'Помощь',
'helpguest' => 'Все функции интуитивно понятны, просто используйте кнопки. В настройках вашего профиля вы можете настроить частоту обновления, цвет шрифта и желаемый размер окна входа.<br><u>Заметка:</u> Это чат, поэтому даже если вы ничего не пишете, то будете автоматически зарегистрированы через некоторое время..', 'helpguest' => 'Все функции интуитивно понятны, просто используйте кнопки. В настройках вашего профиля вы можете настроить частоту обновления, цвет шрифта и желаемый размер окна входа.<br><u>Заметка:</u> Это чат, поэтому даже если вы ничего не пишете, то будете автоматически зарегистрированы через некоторое время..',
'helpembed' => 'Если вы хотите встроить изображение в свой пост, просто положите [img] перед вашим URL-изображением. Пример: [img]http://example.com/images/file.jpg будет вставлять изображения в вашем посте.<br>', 'helpembed' => 'Если вы хотите встроить изображение в свой пост, прикрепите [img] перед вашим URL-изображением. Пример: [img]http://example.com/images/file.jpg будет прикреплять картинку к вашему сообщению.<br>',
'helpmem' => 'Участники: У вас есть несколько вариантов настроек в вашем профиле. Можно настроить шрифт и изменить свой пароль в любое время.', 'helpmem' => 'Участники: У вас есть несколько вариантов настроек в вашем профиле. Можно настроить шрифт и изменить свой пароль в любое время.',
'helpmod' => 'Модераторы: Обратите внимание кнопку администратора внизу. Это перенесет на страницу, где вы можете очистить комнату, забанить, просмотреть все активные сеансы и отключить гостевой доступ полностью, если необходимо.', 'helpmod' => 'Модераторы: Обратите внимание кнопку администратора внизу. Это перенесет вас на страницу, где вы можете очистить комнату, забанить, просмотреть все активные сеансы и отключить гостевой доступ полностью, если необходимо.',
'helpadm' => 'Администраторы: Вы способны регистрировать гостей, редактировать пользователей и регистрировать новые ники без их присутствия в комнате.', 'helpadm' => 'Администраторы: Вы способны регистрировать гостей, редактировать пользователей и регистрировать новые ники без их присутствия в комнате.',
'profile' => 'Ваш профиль', 'profile' => 'Ваш профиль',
'ignore' => 'Игнорировать', 'ignore' => 'Игнорировать',
@ -149,10 +151,12 @@ $T=[
'roomdefault' => 'По умолчанию', 'roomdefault' => 'По умолчанию',
'bold' => 'Жирный', 'bold' => 'Жирный',
'italic' => 'Курсив', 'italic' => 'Курсив',
'small' => 'Маленький',
'fontexample' => 'Пример выбранного вами шрифта', 'fontexample' => 'Пример выбранного вами шрифта',
'timestamps' => 'Показать отметки времени', 'timestamps' => 'Показать отметки времени',
'embed' => 'Вставить изображения', 'embed' => 'Вставить изображения',
'incognito' => 'Режим инкогнито', 'incognito' => 'Режим инкогнито',
'changenick' => 'Изменить имя',
'changepass' => 'Изменить пароль', 'changepass' => 'Изменить пароль',
'oldpass' => 'Старый пароль:', 'oldpass' => 'Старый пароль:',
'newpass' => 'Новый пароль:', 'newpass' => 'Новый пароль:',
@ -171,21 +175,21 @@ $T=[
'colourtable' => 'Примеры цветов', 'colourtable' => 'Примеры цветов',
'backtoprofile' => 'Вернуться к вашему профилю', 'backtoprofile' => 'Вернуться к вашему профилю',
'copy' => 'Копия:', 'copy' => 'Копия:',
'choosecol' => 'Гости выбирают цвет:', 'choosecol' => 'Выберите ваш цвет:',
'randomcol' => 'Случайный цвет', 'randomcol' => 'Случайный цвет',
'enter' => 'Войти в чат', 'enter' => 'Войти в чат',
'error' => 'Ошибка', 'error' => 'Ошибка',
'members' => 'Зарегистрированные', 'members' => 'Зарегистрированные',
'guests' => 'Гости', 'guests' => 'Гости',
'approveguests' => '%d новые гости для одобрения', 'approveguests' => '%d новые гости для одобрения',
'allowchecked' => 'Разрешить проверять', 'allowchecked' => 'Разрешить проверку',
'allowall' => 'Позволять всем', 'allowall' => 'Разрешить всем',
'denychecked' => 'Запретить проверять', 'denychecked' => 'Запретить проверку',
'denyall' => 'Запретить всем', 'denyall' => 'Запретить всем',
'denymessage' => 'Отправить сообщение с отказом:', 'denymessage' => 'Отправить сообщение с отказом:',
'butallowdeny' => 'Отправить', 'butallowdeny' => 'Отправить',
'waitempty' => 'Нет больше запросов для одобрения.', 'waitempty' => 'Больше запросов для одобрения нет.',
'wrongcaptcha' => 'Неправильный код', 'wrongcaptcha' => 'Неверная капча!',
'captchaexpire' => 'Защитный код уже используется или время истекло.', 'captchaexpire' => 'Защитный код уже используется или время истекло.',
'noguests' => 'Извините, входят только зарегистрированные!', 'noguests' => 'Извините, входят только зарегистрированные!',
'curchat' => 'Сейчас %d разговор (ов) в комнате:', 'curchat' => 'Сейчас %d разговор (ов) в комнате:',
@ -257,18 +261,109 @@ $T=[
'maxname' => 'Максимальная длина имени', 'maxname' => 'Максимальная длина имени',
'minpass' => 'Минимальная длина пароля', 'minpass' => 'Минимальная длина пароля',
'defaultrefresh' => 'По умолчанию время перезагрузки сообщения (секунды)', 'defaultrefresh' => 'По умолчанию время перезагрузки сообщения (секунды)',
'suguests' => 'Включить заявителей', 'suguests' => 'Разрешить гостей',
'rulestxt' => 'Правила (html)', 'rulestxt' => 'Правила (html)',
'imgembed' => 'Вставка изображений', 'imgembed' => 'Вставка изображений',
'trackip' => 'Показать IP-сессию', 'trackip' => 'Показать IP-сессию',
'captchachars' => 'Символы, используемые в Captcha', 'captchachars' => 'Символы, используемые в Captcha',
'memkick' => 'Пользователи могут банить, если не присутствует модератор', 'memkick' => 'Пользователи могут исключать, если не присутствует модератор',
'forceredirect' => 'Принудительное перенаправление', 'forceredirect' => 'Принудительное перенаправление',
'redirect' => 'Пользовательский скрипт перенаправления', 'redirect' => 'Пользовательский скрипт перенаправления',
'backuprestore' => 'Бэкап и восстановление', 'backuprestore' => 'Бэкап и восстановление',
'backup' => 'Бэкап', 'backup' => 'Бэкап',
'restore' => 'Восстановление', 'restore' => 'Восстановление',
'settings' => 'Настройки', 'settings' => 'Настройки',
'linkfilter' => 'Фильтрация ссылок' 'linkfilter' => 'Фильтрация ссылок',
'chatname' => 'Название чата',
'destroy' => 'Уничтожить чат',
'destroyed' => 'Чат успешно уничтожен',
'topic' => 'Тема',
'passreset' => 'Сброс пароля',
'cantresetpass' => 'Невозможно сбросить пароль',
'succpassreset' => 'Пароль успешно сброшен',
'entermsg' => '%s вошел в чат.',
'exitmsg' => '%s покинул чат.',
'memregmsg' => '%s теперь зарегистрированный член.',
'suregmsg' => '%s теперь зарегистрированный заявитель.',
'kickmsg' => '%s исключен из чата.',
'multikickmsg' => '%s исключены из чата.',
'allkickmsg' => 'Все гости исключены из чата.',
'cleanmsg' => '%s был очищен.',
'sendallmsg' => '%s - ',
'sendmemmsg' => '[M] %s - ',
'sendmodmsg' => '[Staff] %s - ',
'sendadmmsg' => '[Admin] %s - ',
'sendprvmsg' => '[%1$s to %2$s] - ',
'msgsendall' => 'Сообщение всем',
'msgsendmem' => 'Сообщение только членам',
'msgsendmod' => 'Сообщение только модераторам',
'msgsendadm' => 'Сообщение только администраторам',
'msgsendprv' => 'Личное сообщение',
'numnotes' => 'Число исправлений для сохранения',
'revisions' => 'Исправления:',
'older' => 'Старые',
'newer' => 'Новые',
'accessdenied' => 'В доступе отказано.',
'loggedinas' => 'Вы вошли как %s и не имеете доступа к этой секции.',
'newnickname' => 'Новое имя:',
'nicknametaken' => 'Имя уже занято',
'nopass' => 'Некорректный пароль (Хотя бы %d символов), не меняя имени',
'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.',
'opensslextrequired' => 'The openssl 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_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.',
'jsonextrequired' => 'The json extension of PHP is required for this feature. Please install it first.',
'sendmail' => 'Отправить сообщение как новое публичное сообщение',
'mailsender' => 'Отправить сообщение используя этот адрес',
'mailreceiver' => 'Отправить сообщение по этому адресу',
'modfallback' => 'Вернуться в комнату ожидания, если отстутсвует модератор для подтверждения гостей',
'regpass' => 'Повторите пароль<br>Зарегистрироваться',
'guestreg' => 'Разрешить гостям регистрироваться самостоятельно',
'asmember' => 'Как член',
'assuguest' => 'Как заявитель',
'fatalerror' => 'Фатальная ошибка',
'prevmatch' => 'Тексты в полях совпадают',
'matchtoolong' => 'Текст в поле слишком длинное. Можно использовать максимум 255 символов, попробуйте разбить поле на части.',
'nocache' => 'Автопрокрутка (для старых браузеров, для сортрировки сверху-вниз).',
'disablepm' => 'Отключить личные сообщения',
'disablechat' => 'Отключить чат',
'disabletext' => 'Чат отключил сообщение (html)',
'disabledtext' => 'Временно отключен',
'defaulttz' => 'Часовой пояс по умолчанию',
'tz' => 'Часовой пояс',
'optional' => '(опционально)',
'userloggedin' => 'Пользователь с этим именем уже в сети.',
'regednick' => 'Это имя принадлежит зарегистрированному пользователю.',
'eninbox' => 'Включить оффлайн-почту',
'inboxmsgs' => 'Прочитайте %d входящих сообщений',
'offline' => '(оффлайн)',
'deleteacc' => 'Удалить аккаунт',
'eninnone' => 'Ни для кого',
'eninall' => 'Для всех',
'eninmem' => 'Только для членов',
'eninstaff' => 'Только для модераторов',
'eninadmin' => 'Только для админов',
'nickregex' => 'Nickname regex',
'passregex' => 'Password regex',
'externalcss' => 'Ссылка на внешний CSS файл',
'greetingmsg' => 'Добро пожаловать %s!',
'entryhelp' => 'Если это окно не обновится в течение %d секунд, Вам нужно включить автоматическое обновление (meta refresh) в вашем браузере. Также убедитесь в отстутствии веб-фильтра, проверьте настройки прокси, либо плагины браузера на блокировку автоматического обновления! Примеры плагинов: "Polipo", "NoScript", и т.д.<br>Тем не менее, (в случае ошибок перезагрузки страниц из-за сервера/прокси) Вы всегда можете использовать кнопки внизу страницы для ручного обновления страницыы.',
'enablegreeting' => 'Показывать приветственное сообщение перед остальными сообщениями',
'unban' => 'Разблокировать',
'sortupdown' => 'Сортировать сообщения сверху вниз',
'sortframe' => 'Перестроить',
'cs' => 'Регистр-чувствительный',
'hidechatters' => 'Спрятать список людей в чате',
'enfileupload' => 'Разрешить файловые загрузки',
'msgattache' => 'Прикрепление',
'filenotfound' => 'Файл не обнаружен!',
'maxuploadsize' => 'Максимальный размер файла в КБ',
'maxsize' => 'Макс. %d КБ',
'cssupdate' => 'Note: Default CSS is now hardcoded and can be removed from the CSS setting',
'manualrefresh' => 'Требуется обновить страницу вручную',
'personalnotes' => 'Личные заметки',
'filtermodkick' => 'Применить фильтр исключения для модераторов',
]; ];
?>

View File

@ -1,14 +1,14 @@
<?php <?php
$native = 'Deutsch'; // Native lanugae name $native = 'Español (España)'; // Native lanugae name
$english = 'German'; // Enlish language name $english = 'Spanish (ES)'; // Enlish language name
$code = 'de'; // Language code $code = 'es_ES'; // Language code
ob_start(); ob_start();
echo "<?php $file = "<?php
/* /*
* LE CHAT-PHP - a PHP Chat based on LE CHAT - $english translation * LE CHAT-PHP - a PHP Chat based on LE CHAT - $english translation
* *
* Copyright (C) 2015-2016 Daniel Winzen <d@winzen4.de> * Copyright (C) 2015-2017 Daniel Winzen <d@winzen4.de>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -37,9 +37,7 @@ foreach($T as $id=>$value){
} }
} }
foreach($I as $id=>$value){ foreach($I as $id=>$value){
echo "\t'$id' => '".str_replace("'", "\'", $value)."',\n"; $file .= "\t'$id' => '".str_replace("'", "\'", $value)."',\n";
} }
echo "];\n?>\n"; $file .= "];\n";
$file=ob_get_clean();
file_put_contents("lang_$code.php", $file); file_put_contents("lang_$code.php", $file);
?>

View File

@ -2,7 +2,7 @@
/* /*
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Simplified Chinese translation * LE CHAT-PHP - a PHP Chat based on LE CHAT - Simplified Chinese translation
* *
* Copyright (C) 2015-2016 Daniel Winzen <d@winzen4.de> * Copyright (C) 2015-2017 Daniel Winzen <d@winzen4.de>
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -361,4 +361,4 @@ $T=[
'maxsize' => 'Max %d KB', 'maxsize' => 'Max %d KB',
'cssupdate' => 'Note: Default CSS is now hardcoded and can be removed from the CSS setting', 'cssupdate' => 'Note: Default CSS is now hardcoded and can be removed from the CSS setting',
]; ];
?>