Compare commits
71 Commits
Author | SHA1 | Date | |
---|---|---|---|
e90b9cc9c4
|
|||
ede3d7938d
|
|||
8df28af021
|
|||
c3e316d412
|
|||
919876480d | |||
4e6cc8d1ab | |||
3dd5de099e | |||
c71e17103f
|
|||
8d84e45c3c
|
|||
d37fc14483
|
|||
815d9f203e
|
|||
cca830d9db
|
|||
de04614155 | |||
025709508b
|
|||
34fce5f7ab | |||
b7ff7c9eb7 | |||
b1c7242752 | |||
51fb54e0aa | |||
e5e3b478dc | |||
463d66e11e
|
|||
ed4908b7c7 | |||
f8fa78f278 | |||
7109b5bd80 | |||
1abedd1f10 | |||
c9699362a0 | |||
cc6d36e7ce | |||
217bd9b08a | |||
972f1a62c1 | |||
9ab4622b67 | |||
62f335d220 | |||
43a6adfa1c
|
|||
e137eb81ac
|
|||
035cfa6aa4
|
|||
e9a1d61027
|
|||
a4d2484e24 | |||
ac46e658bd | |||
9c5e879d7d | |||
b7ff54f8d1 | |||
5aeca202ca | |||
6189120795 | |||
c2cd0258f1 | |||
0f97ddd573 | |||
81b8b78df0 | |||
0f3a04b4de | |||
581aede13f | |||
e149c9f97d
|
|||
1887d42a78 | |||
95fd504249 | |||
c728d6d447 | |||
95c1faf1d9
|
|||
c5e55e8bc0 | |||
1cdf6cbf55 | |||
7adf9732ef | |||
f0659466c1 | |||
0963acafcf | |||
d58fdeee8b
|
|||
e0d6fe5d91 | |||
f605137313 | |||
03f9a86515
|
|||
cfd54b09be | |||
16b81337b1 | |||
2cd5d18511 | |||
0ae827450a | |||
5589999b0f | |||
4d0b828879 | |||
268328f82c | |||
a63901fc76 | |||
36a8727d2f | |||
5cfe783649 | |||
d832cf64ec | |||
7002e3fbad |
5
.github/FUNDING.yml
vendored
Normal file
5
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
github: DanWin
|
||||||
|
liberapay: DanWin1210
|
||||||
|
custom: "https://www.paypal.me/danwin1210"
|
24
CHANGELOG
24
CHANGELOG
@ -1,4 +1,26 @@
|
|||||||
Version 1.23.6 - Sep. 1, 2017
|
Version 1.24.1 - Oct. 17, 2020
|
||||||
|
Add Turkish translation
|
||||||
|
Security hardening
|
||||||
|
Fixed chrome flashing frames white on reload
|
||||||
|
|
||||||
|
Version 1.24 - May. 2, 2020
|
||||||
|
Allow making file upload member-only
|
||||||
|
Added required tag to captcha input
|
||||||
|
Add Chinese translation
|
||||||
|
Security hardening
|
||||||
|
Fixed chrome flashing frames white on reload
|
||||||
|
|
||||||
|
Version 1.23.7 - Feb. 24, 2019
|
||||||
|
Support V3 hidden services
|
||||||
|
Fixed filtermodkick setting
|
||||||
|
fixed restore_backup not encrypting notes
|
||||||
|
|
||||||
|
Version 1.23.6 - Apr. 22, 2018
|
||||||
|
Added Czech, Italian and Ukrainian translation
|
||||||
|
Updated Russian translation
|
||||||
|
Bugfixes
|
||||||
|
|
||||||
|
Version 1.23.5 - Sep. 1, 2017
|
||||||
Added Russian and Bulgarian translation
|
Added Russian and Bulgarian translation
|
||||||
Updated Spanish translation
|
Updated Spanish translation
|
||||||
Bugfixes and optimizations
|
Bugfixes and optimizations
|
||||||
|
11
README
11
README
@ -1,7 +1,7 @@
|
|||||||
GENERAL INFORMATION:
|
GENERAL INFORMATION:
|
||||||
|
|
||||||
This is a PHP Chat based on LE CHAT v.1.14. An up-to-date copy of this script can be downloaded at https://github.com/DanWin/le-chat-php
|
This is a PHP Chat based on LE CHAT v.1.14. An up-to-date copy of this script can be downloaded at https://github.com/DanWin/le-chat-php
|
||||||
The original perl LE CHAT script by Lucky Eddie can be downloaded at http://4fvfamdpoulu2nms.onion/lechat/ or via a tor2web proxy like https://4fvfamdpoulu2nms.onion.to/lechat/ if you don't have TOR installed.
|
The original perl LE CHAT script by Lucky Eddie can be downloaded at http://4fvfamdpoulu2nms.onion/lechat/ or via a tor2web proxy like https://4fvfamdpoulu2nms.onion.to/lechat/ if you don't have Tor installed.
|
||||||
If you add your own cool features or have a feature request, please tell me and I will add them, if I like them.
|
If you add your own cool features or have a feature request, please tell me and I will add them, if I like them.
|
||||||
Please also let me know about any bugs you find in the code, so I can fix them.
|
Please also let me know about any bugs you find in the code, so I can fix them.
|
||||||
Now a piece of information about the origin of the name "LE CHAT" copied from the original script:
|
Now a piece of information about the origin of the name "LE CHAT" copied from the original script:
|
||||||
@ -10,7 +10,7 @@ It may even be the French word for "the" if you prefer. Translated from French t
|
|||||||
|
|
||||||
FEATURES:
|
FEATURES:
|
||||||
|
|
||||||
Optimized for TOR
|
Optimized for Tor
|
||||||
No JavaScript needed
|
No JavaScript needed
|
||||||
Cookies supported, but not needed
|
Cookies supported, but not needed
|
||||||
Captcha
|
Captcha
|
||||||
@ -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:
|
||||||
@ -77,6 +77,5 @@ If you never used regex before, check out this starting guide to begin with regu
|
|||||||
|
|
||||||
LIVE DEMO:
|
LIVE DEMO:
|
||||||
|
|
||||||
If you want to see the script in action, you can visit my TOR hidden service http://tt3j2x4k5ycaa5zt.onion/chat.php or via a tor2web proxy like https://danwin1210.me/chat.php if you don't have TOR installed.
|
If you want to see the script in action, you can visit my Tor hidden service http://danschat356lctri3zavzh6fbxg2a7lo6z3etgkctzzpspewu7zdsaqd.onion/chat.php or via a tor2web proxy like https://chat.danwin1210.me/chat.php if you don't have Tor installed.
|
||||||
Considering this is a hidden service, you should be prepared for the worst case, as people tend to do illegal activities in the TOR network. I'm not online 24/7 so it might not be possible to remove such content right away.
|
Considering this is a hidden service, you should be prepared for the worst case, as people tend to do illegal activities in the Tor network.
|
||||||
If you should see illegal content, don't panic. Use the contact form on my site to notify me and clean your browser cache afterwards.
|
|
||||||
|
23
README.md
23
README.md
@ -2,7 +2,7 @@ General Information:
|
|||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
This is a PHP Chat based on LE CHAT v.1.14. An up-to-date copy of this script can be downloaded at https://github.com/DanWin/le-chat-php
|
This is a PHP Chat based on LE CHAT v.1.14. An up-to-date copy of this script can be downloaded at https://github.com/DanWin/le-chat-php
|
||||||
The original perl LE CHAT script by Lucky Eddie can be downloaded at [his site](http://4fvfamdpoulu2nms.onion/lechat/) or via a tor2web proxy like [this one](https://4fvfamdpoulu2nms.onion.to/lechat/) if you don't have TOR installed.
|
The original perl LE CHAT script by Lucky Eddie can be downloaded at [his site](http://4fvfamdpoulu2nms.onion/lechat/) or via a tor2web proxy like [this one](https://4fvfamdpoulu2nms.onion.to/lechat/) if you don't have Tor installed.
|
||||||
If you add your own cool features or have a feature request, please tell me and I will add them, if I like them.
|
If you add your own cool features or have a feature request, please tell me and I will add them, if I like them.
|
||||||
Please also let me know about any bugs you find in the code, so I can fix them.
|
Please also let me know about any bugs you find in the code, so I can fix them.
|
||||||
Now a piece of information about the origin of the name "LE CHAT" copied from the original script:
|
Now a piece of information about the origin of the name "LE CHAT" copied from the original script:
|
||||||
@ -12,7 +12,7 @@ It may even be the French word for "the" if you prefer. Translated from French t
|
|||||||
Features:
|
Features:
|
||||||
---------
|
---------
|
||||||
|
|
||||||
* Optimized for TOR
|
* Optimized for Tor
|
||||||
* No JavaScript needed
|
* No JavaScript needed
|
||||||
* Cookies supported, but not needed
|
* Cookies supported, but not needed
|
||||||
* Captcha
|
* Captcha
|
||||||
@ -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:
|
||||||
@ -59,7 +59,7 @@ Translating:
|
|||||||
|
|
||||||
Copy lang_en.php and rename it to lang_YOUR_LANGCODE.php
|
Copy lang_en.php and rename it to lang_YOUR_LANGCODE.php
|
||||||
Then edit the file and translate the messages into your language and change $I to $T at the top.
|
Then edit the file and translate the messages into your language and change $I to $T at the top.
|
||||||
If you ever use a ' character, you have to escape it by using \' instead or the script will fail.
|
If you ever use a `'` character, you have to escape it by using `\'` instead or the script will fail.
|
||||||
When you are done, you have to edit the chat script, to include your translation. Simply add a line with
|
When you are done, you have to edit the chat script, to include your translation. Simply add a line with
|
||||||
'lang_code' =>'Language name',
|
'lang_code' =>'Language name',
|
||||||
to the $L array in the load_lang() function at the bottom, similar to what I did for the German translation.
|
to the $L array in the load_lang() function at the bottom, similar to what I did for the German translation.
|
||||||
@ -72,17 +72,16 @@ Regex:
|
|||||||
Yes, the chat supports regular expression filtering of messages. As regex tends to be difficult for most people, I decided to give it an extra section here.
|
Yes, the chat supports regular expression filtering of messages. As regex tends to be difficult for most people, I decided to give it an extra section here.
|
||||||
Regex is very powerful and can be used to filter messages that contain certain expressions and replace them with something else.
|
Regex is very powerful and can be used to filter messages that contain certain expressions and replace them with something else.
|
||||||
It can be used e.g. to turn BB Code into html, so it is possible to use BB Code in the chat to format messages.
|
It can be used e.g. to turn BB Code into html, so it is possible to use BB Code in the chat to format messages.
|
||||||
To do this, use this Regex-Match '\[(u|b)\](.*?)\[\/\1\]' and this Regex-Replace '<$1>$2</$1>' and your text will be '[b]bold[/b]' or '[u]underlined[/u]'.
|
To do this, use this Regex-Match `\[(u|b)\](.*?)\[\/\1\]` and this Regex-Replace `<$1>$2</$1>` and your text will be `[b]bold[/b]` or `[u]underlined[/u]`.
|
||||||
You can also use smilies by using this Regex-Match '(?-i::(cry|eek|lol|sad|smile|surprised|wink):)' and this Regex-Replace '<img src="/pictures/$1.gif" alt=":$1:">'
|
You can also use smilies by using this Regex-Match `(?-i::(cry|eek|lol|sad|smile|surprised|wink):)` and this Regex-Replace `<img src="/pictures/$1.gif" alt=":$1:">`
|
||||||
And now if you enter ':smile:' an image with the smiley will be loaded from your server at '/pictures/smile.gif'.
|
And now if you enter `:smile:` an image with the smiley will be loaded from your server at `/pictures/smile.gif`.
|
||||||
The following should be escaped by putting '\' in front of it, if you are trying to match one of these characters '/ \ ^ . $ | ( ) [ ] * + ? { } ,'.
|
The following should be escaped by putting `\` in front of it, if you are trying to match one of these characters `/ \ ^ . $ | ( ) [ ] * + ? { } ,`.
|
||||||
I used '/' as delimiter, so you will have to escape that, too. The only options I used is 'i' to make the regex case insensitive.
|
I used `/` as delimiter, so you will have to escape that, too. The only options I used is `i` to make the regex case insensitive.
|
||||||
If you want to test your regex, before applying you can use [this site](http://www.phpliveregex.com/) and enter your Regex and Replacement there and click on preg_replace.
|
If you want to test your regex, before applying you can use [this site](http://www.phpliveregex.com/) and enter your Regex and Replacement there and click on preg_replace.
|
||||||
If you never used regex before, check out [this starting guide](http://docs.activestate.com/komodo/4.4/regex-intro.html) to begin with regular expressions.
|
If you never used regex before, check out [this starting guide](http://docs.activestate.com/komodo/4.4/regex-intro.html) to begin with regular expressions.
|
||||||
|
|
||||||
Live demo:
|
Live demo:
|
||||||
----------
|
----------
|
||||||
|
|
||||||
If you want to see the script in action, you can visit my [TOR hidden service](http://tt3j2x4k5ycaa5zt.onion/chat.php) or via a tor2web proxy like [this one](https://danwin1210.me/chat.php) if you don't have TOR installed.
|
If you want to see the script in action, you can visit my [Tor hidden service](http://danschat356lctri3zavzh6fbxg2a7lo6z3etgkctzzpspewu7zdsaqd.onion/chat.php) or via a tor2web proxy like [this one](https://chat.danwin1210.me/chat.php) if you don't have Tor installed.
|
||||||
Considering this is a hidden service, you should be prepared for the worst case, as people tend to do illegal activities in the TOR network. I'm not online 24/7 so it might not be possible to remove such content right away.
|
Considering this is a hidden service, you should be prepared for the worst case, as people tend to do illegal activities in the Tor network.
|
||||||
If you should see illegal content, don't panic. Use the contact form on my site to notify me and clean your browser cache afterwards. I will remove the content as soon as possible.
|
|
||||||
|
339
chat.php
339
chat.php
@ -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-2017 Daniel Winzen <d@winzen4.de>
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -32,19 +32,20 @@
|
|||||||
* 9 - Private messages
|
* 9 - Private messages
|
||||||
*/
|
*/
|
||||||
|
|
||||||
send_headers();
|
|
||||||
// initialize and load variables/configuration
|
// initialize and load variables/configuration
|
||||||
|
load_config();
|
||||||
$I=[];// Translations
|
$I=[];// Translations
|
||||||
$L=[];// Languages
|
$L=[];// Languages
|
||||||
$U=[];// This user data
|
$U=[];// This user data
|
||||||
$db;// Database connection
|
$db = null;// Database connection
|
||||||
$memcached;// Memcached connection
|
$memcached = null;// Memcached connection
|
||||||
$language;// user selected language
|
$language = LANG;// user selected language
|
||||||
load_config();
|
$styles = []; //css styles
|
||||||
// set session variable to cookie if cookies are enabled
|
// set session variable to cookie if cookies are enabled
|
||||||
if(!isset($_REQUEST['session']) && isset($_COOKIE[COOKIENAME])){
|
if(!isset($_REQUEST['session']) && isset($_COOKIE[COOKIENAME])){
|
||||||
$_REQUEST['session']=$_COOKIE[COOKIENAME];
|
$_REQUEST['session']=$_COOKIE[COOKIENAME];
|
||||||
}
|
}
|
||||||
|
$_REQUEST['session'] = preg_replace('/[^0-9a-zA-Z]/', '', $_REQUEST['session'] ?? '');
|
||||||
load_lang();
|
load_lang();
|
||||||
check_db();
|
check_db();
|
||||||
cron();
|
cron();
|
||||||
@ -77,7 +78,7 @@ function route(){
|
|||||||
send_post(validate_input());
|
send_post(validate_input());
|
||||||
}
|
}
|
||||||
send_post();
|
send_post();
|
||||||
}elseif($_REQUEST['action']==='login'){
|
}elseif($_REQUEST['action']==='login' && isPOST()){
|
||||||
check_login();
|
check_login();
|
||||||
send_frameset();
|
send_frameset();
|
||||||
}elseif($_REQUEST['action']==='controls'){
|
}elseif($_REQUEST['action']==='controls'){
|
||||||
@ -86,7 +87,7 @@ function route(){
|
|||||||
}elseif($_REQUEST['action']==='greeting'){
|
}elseif($_REQUEST['action']==='greeting'){
|
||||||
check_session();
|
check_session();
|
||||||
send_greeting();
|
send_greeting();
|
||||||
}elseif($_REQUEST['action']==='delete'){
|
}elseif($_REQUEST['action']==='delete' && isPOST()){
|
||||||
check_session();
|
check_session();
|
||||||
if($_REQUEST['what']==='all'){
|
if($_REQUEST['what']==='all'){
|
||||||
if(isset($_REQUEST['confirm'])){
|
if(isset($_REQUEST['confirm'])){
|
||||||
@ -98,7 +99,7 @@ function route(){
|
|||||||
del_last_message();
|
del_last_message();
|
||||||
}
|
}
|
||||||
send_post();
|
send_post();
|
||||||
}elseif($_REQUEST['action']==='profile'){
|
}elseif($_REQUEST['action']==='profile' && isPOST()){
|
||||||
check_session();
|
check_session();
|
||||||
$arg='';
|
$arg='';
|
||||||
if(!isset($_REQUEST['do'])){
|
if(!isset($_REQUEST['do'])){
|
||||||
@ -112,13 +113,13 @@ function route(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
send_profile($arg);
|
send_profile($arg);
|
||||||
}elseif($_REQUEST['action']==='logout'){
|
}elseif($_REQUEST['action']==='logout' && isPOST()){
|
||||||
kill_session();
|
kill_session();
|
||||||
send_logout();
|
send_logout();
|
||||||
}elseif($_REQUEST['action']==='colours'){
|
}elseif($_REQUEST['action']==='colours'){
|
||||||
check_session();
|
check_session();
|
||||||
send_colours();
|
send_colours();
|
||||||
}elseif($_REQUEST['action']==='notes'){
|
}elseif($_REQUEST['action']==='notes' && isPOST()){
|
||||||
check_session();
|
check_session();
|
||||||
if(isset($_REQUEST['do']) && $_REQUEST['do']==='admin' && $U['status']>6){
|
if(isset($_REQUEST['do']) && $_REQUEST['do']==='admin' && $U['status']>6){
|
||||||
send_notes(0);
|
send_notes(0);
|
||||||
@ -132,7 +133,7 @@ function route(){
|
|||||||
}elseif($_REQUEST['action']==='help'){
|
}elseif($_REQUEST['action']==='help'){
|
||||||
check_session();
|
check_session();
|
||||||
send_help();
|
send_help();
|
||||||
}elseif($_REQUEST['action']==='inbox'){
|
}elseif($_REQUEST['action']==='inbox' && isPOST()){
|
||||||
check_session();
|
check_session();
|
||||||
if(isset($_REQUEST['do'])){
|
if(isset($_REQUEST['do'])){
|
||||||
clean_inbox_selected();
|
clean_inbox_selected();
|
||||||
@ -140,10 +141,10 @@ function route(){
|
|||||||
send_inbox();
|
send_inbox();
|
||||||
}elseif($_REQUEST['action']==='download'){
|
}elseif($_REQUEST['action']==='download'){
|
||||||
send_download();
|
send_download();
|
||||||
}elseif($_REQUEST['action']==='admin'){
|
}elseif($_REQUEST['action']==='admin' && isPOST()){
|
||||||
check_session();
|
check_session();
|
||||||
send_admin(route_admin());
|
send_admin(route_admin());
|
||||||
}elseif($_REQUEST['action']==='setup'){
|
}elseif($_REQUEST['action']==='setup' && isPOST()){
|
||||||
route_setup();
|
route_setup();
|
||||||
}else{
|
}else{
|
||||||
send_login();
|
send_login();
|
||||||
@ -186,7 +187,7 @@ function route_admin(){
|
|||||||
if(isset($_REQUEST['kick']) && isset($_REQUEST['nick'])){
|
if(isset($_REQUEST['kick']) && isset($_REQUEST['nick'])){
|
||||||
kick_chatter([$_REQUEST['nick']], '', false);
|
kick_chatter([$_REQUEST['nick']], '', false);
|
||||||
}elseif(isset($_REQUEST['logout']) && isset($_REQUEST['nick'])){
|
}elseif(isset($_REQUEST['logout']) && isset($_REQUEST['nick'])){
|
||||||
logout_chatter([$_REQUEST['nick']], '', false);
|
logout_chatter([$_REQUEST['nick']]);
|
||||||
}
|
}
|
||||||
send_sessions();
|
send_sessions();
|
||||||
}elseif($_REQUEST['do']==='register'){
|
}elseif($_REQUEST['do']==='register'){
|
||||||
@ -222,10 +223,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
|
||||||
@ -248,35 +249,33 @@ function route_setup(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
// html output subs
|
// html output subs
|
||||||
function print_stylesheet($init=false){
|
function prepare_stylesheets($init = false){
|
||||||
global $U;
|
global $U, $db, $styles;
|
||||||
//default css
|
$styles['fatal_error'] = 'body{background-color:#000000;color:#FF0033}';
|
||||||
echo '<style type="text/css">';
|
$styles['default'] = 'body,frame{background-color:#000000;color:#FFFFFF;font-size:14px;text-align:center} ';
|
||||||
echo 'body{background-color:#000000;color:#FFFFFF;font-size:14px;text-align:center;} ';
|
$styles['default'] .= 'a:visited{color:#B33CB4} a:active{color:#FF0033} a:link{color:#0000FF} #messages{word-wrap:break-word} ';
|
||||||
echo 'a:visited{color:#B33CB4;} a:active{color:#FF0033;} a:link{color:#0000FF;} #messages{word-wrap:break-word;} ';
|
$styles['default'] .= 'input,select,textarea{color:#FFFFFF;background-color:#000000} .messages a img{width:15%} .messages a:hover img{width:35%} ';
|
||||||
echo 'input,select,textarea{color:#FFFFFF;background-color:#000000;} .messages a img{width:15%} .messages a:hover img{width:35%} ';
|
$styles['default'] .= '.error{color:#FF0033;text-align:left} .delbutton{background-color:#660000} .backbutton{background-color:#004400} #exitbutton{background-color:#AA0000} ';
|
||||||
echo '.error{color:#FF0033;text-align:left;} .delbutton{background-color:#660000;} .backbutton{background-color:#004400;} #exitbutton{background-color:#AA0000;} ';
|
$styles['default'] .= '.setup table table,.admin table table,.profile table table{width:100%;text-align:left} ';
|
||||||
echo '.setup table table,.admin table table,.profile table table{width:100%;text-align:left} ';
|
$styles['default'] .= '.alogin table,.init table,.destroy_chat table,.delete_account table,.sessions table,.filter table,.linkfilter table,.notes table,.approve_waiting table,.del_confirm table,.profile table,.admin table,.backup table,.setup table{margin-left:auto;margin-right:auto} ';
|
||||||
echo '.alogin table,.init table,.destroy_chat table,.delete_account table,.sessions table,.filter table,.linkfilter table,.notes table,.approve_waiting table,.del_confirm table,.profile table,.admin table,.backup table,.setup table{margin-left:auto;margin-right:auto;} ';
|
$styles['default'] .= '.setup table table table,.admin table table table,.profile table table table{border-spacing:0px;margin-left:auto;margin-right:unset;width:unset} ';
|
||||||
echo '.setup table table table,.admin table table table,.profile table table table{border-spacing:0px;margin-left:auto;margin-right:unset;width:unset;} ';
|
$styles['default'] .= '.setup table table td,.backup #restoresubmit,.backup #backupsubmit,.admin table table td,.profile table table td,.login td+td,.alogin td+td{text-align:right} ';
|
||||||
echo '.setup table table td,.backup #restoresubmit,.backup #backupsubmit,.admin table table td,.profile table table td,.login td+td,.alogin td+td{text-align:right;} ';
|
$styles['default'] .= '.init td,.backup #restorecheck td,.admin #clean td,.admin #regnew td,.session td,.messages,.inbox,.approve_waiting td,.choose_messages,.greeting,.help,.login td,.alogin td{text-align:left} ';
|
||||||
echo '.init td,.backup #restorecheck td,.admin #clean td,.admin #regnew td,.session td,.messages,.inbox,.approve_waiting td,.choose_messages,.greeting,.help,.login td,.alogin td{text-align:left;} ';
|
$styles['default'] .= '.messages #chatters{max-height:100px;overflow-y:auto} .messages #chatters a{text-decoration-line:none} .messages #chatters table{border-spacing:0px} ';
|
||||||
echo '.messages #chatters{max-height:100px;overflow-y:auto;} .messages #chatters a{text-decoration-line:none;} .messages #chatters table{border-spacing:0px;} ';
|
$styles['default'] .= '.messages #chatters th,.messages #chatters td,.post #firstline{vertical-align:top} ';
|
||||||
echo '.messages #chatters th,.messages #chatters td,.post #firstline{vertical-align:top;} ';
|
$styles['default'] .= '.approve_waiting #action td:only-child,.help #backcredit,.login td:only-child,.alogin td:only-child,.init td:only-child{text-align:center} .sessions td,.sessions th,.approve_waiting td,.approve_waiting th{padding: 5px} ';
|
||||||
echo '.approve_waiting #action td:only-child,.help #backcredit,.login td:only-child,.alogin td:only-child,.init td:only-child{text-align:center;} .sessions td,.sessions th,.approve_waiting td,.approve_waiting th{padding: 5px;} ';
|
$styles['default'] .= '.sessions td td{padding: 1px} .messages #bottom_link{position:fixed;top:0.5em;right:0.5em} .messages #top_link{position:fixed;bottom:0.5em;right:0.5em} ';
|
||||||
echo '.sessions td td{padding: 1px;} .messages #bottom_link{position:fixed;top:0.5em;right:0.5em;} .messages #top_link{position:fixed;bottom:0.5em;right:0.5em;} ';
|
$styles['default'] .= '.post table,.controls table,.login table{border-spacing:0px;margin-left:auto;margin-right:auto} .login table{border:2px solid} .controls{overflow-y:none} ';
|
||||||
echo '.post table,.controls table,.login table{border-spacing:0px;margin-left:auto;margin-right:auto;} .login table{border:2px solid;} .controls{overflow-y:none;} ';
|
$styles['default'] .= '#manualrefresh{display:block;position:fixed;text-align:center;left:25%;width:50%;top:-200%;animation:timeout_messages ';
|
||||||
echo '#manualrefresh{display:block;position:fixed;text-align:center;left:25%;width:50%;top:-200%;animation:timeout_messages ';
|
|
||||||
if(isset($U['refresh'])){
|
if(isset($U['refresh'])){
|
||||||
echo $U['refresh']+20;
|
$styles['default'] .= $U['refresh']+20;
|
||||||
}else{
|
}else{
|
||||||
echo '160';
|
$styles['default'] .='160';
|
||||||
}
|
}
|
||||||
echo 's forwards;z-index:2;background-color:#500000;border:2px solid #ff0000;} ';
|
$styles['default'] .= 's forwards;z-index:2;background-color:#500000;border:2px solid #ff0000} ';
|
||||||
echo '@keyframes timeout_messages{0%{top:-200%;} 99%{top:-200%;} 100%{top:0%;}} ';
|
$styles['default'] .= '@keyframes timeout_messages{0%{top:-200%} 99%{top:-200%} 100%{top:0%}} ';
|
||||||
echo '.notes textarea{height:80vh;width:80%;}';
|
$styles['default'] .= '.notes textarea{height:80vh;width:80%}';
|
||||||
echo '</style>';
|
if($init || ! $db instanceof PDO){
|
||||||
if($init){
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$css=get_setting('css');
|
$css=get_setting('css');
|
||||||
@ -286,8 +285,18 @@ function print_stylesheet($init=false){
|
|||||||
}else{
|
}else{
|
||||||
$colbg=get_setting('colbg');
|
$colbg=get_setting('colbg');
|
||||||
}
|
}
|
||||||
|
$styles['custom'] = preg_replace("/(\r?\n|\r\n?)/u", '', "body,frame{background-color:#$colbg;color:#$coltxt} $css");
|
||||||
|
}
|
||||||
|
|
||||||
|
function print_stylesheet($init = false){
|
||||||
|
global $styles;
|
||||||
|
//default css
|
||||||
|
echo "<style type=\"text/css\">$styles[default]</style>";
|
||||||
|
if($init){
|
||||||
|
return;
|
||||||
|
}
|
||||||
//overwrite with custom css
|
//overwrite with custom css
|
||||||
echo "<style type=\"text/css\">body{background-color:#$colbg;color:#$coltxt;} $css</style>";
|
echo "<style type=\"text/css\">$styles[custom]</style>";
|
||||||
}
|
}
|
||||||
|
|
||||||
function print_end(){
|
function print_end(){
|
||||||
@ -296,11 +305,11 @@ function print_end(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function credit(){
|
function credit(){
|
||||||
return '<small><br><br><a target="_blank" href="https://github.com/DanWin/le-chat-php">LE CHAT-PHP - ' . VERSION . '</a></small>';
|
return '<small><br><br><a target="_blank" href="https://github.com/DanWin/le-chat-php" rel="noopener">LE CHAT-PHP - ' . VERSION . '</a></small>';
|
||||||
}
|
}
|
||||||
|
|
||||||
function meta_html(){
|
function meta_html(){
|
||||||
return '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate, max-age=0"><meta http-equiv="expires" content="0"><meta name="referrer" content="no-referrer">';
|
return '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="referrer" content="no-referrer">';
|
||||||
}
|
}
|
||||||
|
|
||||||
function form($action, $do=''){
|
function form($action, $do=''){
|
||||||
@ -340,17 +349,16 @@ function thr(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function print_start($class='', $ref=0, $url=''){
|
function print_start($class='', $ref=0, $url=''){
|
||||||
global $I;
|
global $I, $language;
|
||||||
|
prepare_stylesheets($class === 'init');
|
||||||
|
send_headers();
|
||||||
if(!empty($url)){
|
if(!empty($url)){
|
||||||
$url=str_replace('&', '&', $url);// Don't escape "&" in URLs here, it breaks some (older) browsers and js refresh!
|
$url=str_replace('&', '&', $url);// Don't escape "&" in URLs here, it breaks some (older) browsers and js refresh!
|
||||||
header("Refresh: $ref; URL=$url");
|
header("Refresh: $ref; URL=$url");
|
||||||
}
|
}
|
||||||
echo '<!DOCTYPE html><html><head>'.meta_html();
|
echo '<!DOCTYPE html><html lang="'.$language.'"><head>'.meta_html();
|
||||||
if(!empty($url)){
|
if(!empty($url)){
|
||||||
echo "<meta http-equiv=\"Refresh\" content=\"$ref; URL=$url\">";
|
echo "<meta http-equiv=\"Refresh\" content=\"$ref; URL=$url\">";
|
||||||
$ref+=5;//only use js if browser refresh stopped working
|
|
||||||
$ref*=1000;//js uses milliseconds
|
|
||||||
echo "<script type=\"text/javascript\">setTimeout(function(){window.location.replace(\"$url\");}, $ref);</script>";
|
|
||||||
}
|
}
|
||||||
if($class==='init'){
|
if($class==='init'){
|
||||||
echo "<title>$I[init]</title>";
|
echo "<title>$I[init]</title>";
|
||||||
@ -368,7 +376,7 @@ function print_start($class='', $ref=0, $url=''){
|
|||||||
|
|
||||||
function send_redirect($url){
|
function send_redirect($url){
|
||||||
global $I;
|
global $I;
|
||||||
$url=htmlspecialchars_decode(rawurldecode($url));
|
$url=trim(htmlspecialchars_decode(rawurldecode($url)));
|
||||||
preg_match('~^(.*)://~u', $url, $match);
|
preg_match('~^(.*)://~u', $url, $match);
|
||||||
$url=preg_replace('~^(.*)://~u', '', $url);
|
$url=preg_replace('~^(.*)://~u', '', $url);
|
||||||
$escaped=htmlspecialchars($url);
|
$escaped=htmlspecialchars($url);
|
||||||
@ -380,7 +388,11 @@ function send_redirect($url){
|
|||||||
if(!isset($match[0])){
|
if(!isset($match[0])){
|
||||||
$match[0]='';
|
$match[0]='';
|
||||||
}
|
}
|
||||||
echo "<p>$I[nonhttp] <a href=\"$match[0]$escaped\">$match[0]$escaped</a>.</p>";
|
if(preg_match('~^(javascript|blob|data):~', $url)){
|
||||||
|
echo "<p>$I[dangerousnonhttp] $match[0]$escaped</p>";
|
||||||
|
} else {
|
||||||
|
echo "<p>$I[nonhttp] <a href=\"$match[0]$escaped\">$match[0]$escaped</a>.</p>";
|
||||||
|
}
|
||||||
echo "<p>$I[httpredir] <a href=\"http://$escaped\">http://$escaped</a>.</p>";
|
echo "<p>$I[httpredir] <a href=\"http://$escaped\">http://$escaped</a>.</p>";
|
||||||
}
|
}
|
||||||
print_end();
|
print_end();
|
||||||
@ -388,7 +400,7 @@ function send_redirect($url){
|
|||||||
|
|
||||||
function send_access_denied(){
|
function send_access_denied(){
|
||||||
global $I, $U;
|
global $I, $U;
|
||||||
header('HTTP/1.1 403 Forbidden');
|
http_response_code(403);
|
||||||
print_start('access_denied');
|
print_start('access_denied');
|
||||||
echo "<h1>$I[accessdenied]</h1>".sprintf($I['loggedinas'], style_this(htmlspecialchars($U['nickname']), $U['style'])).'<br>';
|
echo "<h1>$I[accessdenied]</h1>".sprintf($I['loggedinas'], style_this(htmlspecialchars($U['nickname']), $U['style'])).'<br>';
|
||||||
echo form('logout');
|
echo form('logout');
|
||||||
@ -499,7 +511,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){
|
||||||
@ -767,6 +779,9 @@ function restore_backup($C){
|
|||||||
}elseif($note['type']==='staff'){
|
}elseif($note['type']==='staff'){
|
||||||
$note['type']=1;
|
$note['type']=1;
|
||||||
}
|
}
|
||||||
|
if(MSGENCRYPTED){
|
||||||
|
$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']]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -801,7 +816,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;
|
||||||
}
|
}
|
||||||
@ -1384,7 +1399,9 @@ function send_linkfilter($arg=''){
|
|||||||
|
|
||||||
function send_frameset(){
|
function send_frameset(){
|
||||||
global $I, $U, $db, $language;
|
global $I, $U, $db, $language;
|
||||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"><html><head>'.meta_html();
|
prepare_stylesheets();
|
||||||
|
send_headers();
|
||||||
|
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"><html lang="'.$language.'"><head>'.meta_html();
|
||||||
echo '<title>'.get_setting('chatname').'</title>';
|
echo '<title>'.get_setting('chatname').'</title>';
|
||||||
print_stylesheet();
|
print_stylesheet();
|
||||||
echo '</head>';
|
echo '</head>';
|
||||||
@ -1412,7 +1429,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;
|
||||||
@ -1536,7 +1553,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 (?, ?, ?, ?);');
|
||||||
@ -1570,7 +1587,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>';
|
||||||
@ -1763,7 +1780,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">';
|
||||||
}
|
}
|
||||||
@ -1852,7 +1869,7 @@ function send_profile($arg=''){
|
|||||||
}
|
}
|
||||||
echo "<tr><td><table id=\"ignore\"><tr><th>$I[ignore]</th><td>";
|
echo "<tr><td><table id=\"ignore\"><tr><th>$I[ignore]</th><td>";
|
||||||
echo "<select name=\"ignore\" size=\"1\"><option value=\"\">$I[choose]</option>";
|
echo "<select name=\"ignore\" size=\"1\"><option value=\"\">$I[choose]</option>";
|
||||||
$stmt=$db->prepare('SELECT poster, style FROM ' . PREFIX . 'messages INNER JOIN (SELECT nickname, style FROM ' . PREFIX . 'sessions UNION SELECT nickname, style FROM ' . PREFIX . 'members) AS t ON (' . PREFIX . 'messages.poster=t.nickname) WHERE poster!=? AND poster NOT IN (SELECT ign FROM ' . PREFIX . 'ignored WHERE ignby=?) GROUP BY poster ORDER BY LOWER(poster);');
|
$stmt=$db->prepare('SELECT poster, style FROM ' . PREFIX . 'messages INNER JOIN (SELECT nickname, style FROM ' . PREFIX . 'sessions UNION SELECT nickname, style FROM ' . PREFIX . 'members) AS t ON (' . PREFIX . 'messages.poster=t.nickname) WHERE poster!=? AND poster NOT IN (SELECT ign FROM ' . PREFIX . 'ignored WHERE ignby=?) GROUP BY poster ORDER BY LOWER(poster);');
|
||||||
$stmt->execute([$U['nickname'], $U['nickname']]);
|
$stmt->execute([$U['nickname'], $U['nickname']]);
|
||||||
while($nick=$stmt->fetch(PDO::FETCH_NUM)){
|
while($nick=$stmt->fetch(PDO::FETCH_NUM)){
|
||||||
echo '<option value="'.htmlspecialchars($nick[0])."\" style=\"$nick[1]\">".htmlspecialchars($nick[0]).'</option>';
|
echo '<option value="'.htmlspecialchars($nick[0])."\" style=\"$nick[1]\">".htmlspecialchars($nick[0]).'</option>';
|
||||||
@ -2014,16 +2031,17 @@ function send_download(){
|
|||||||
$stmt=$db->prepare('SELECT filename, type, data FROM ' . PREFIX . 'files WHERE hash=?;');
|
$stmt=$db->prepare('SELECT filename, type, data FROM ' . PREFIX . 'files WHERE hash=?;');
|
||||||
$stmt->execute([$_REQUEST['id']]);
|
$stmt->execute([$_REQUEST['id']]);
|
||||||
if($data=$stmt->fetch(PDO::FETCH_ASSOC)){
|
if($data=$stmt->fetch(PDO::FETCH_ASSOC)){
|
||||||
|
send_headers();
|
||||||
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("Content-Security-Policy: default-src 'none'");
|
||||||
header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0, private');
|
|
||||||
header('Expires: 0');
|
|
||||||
echo base64_decode($data['data']);
|
echo base64_decode($data['data']);
|
||||||
}else{
|
}else{
|
||||||
|
http_response_code(404);
|
||||||
send_error($I['filenotfound']);
|
send_error($I['filenotfound']);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
http_response_code(404);
|
||||||
send_error($I['filenotfound']);
|
send_error($I['filenotfound']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2122,10 +2140,12 @@ function send_error($err){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function send_fatal_error($err){
|
function send_fatal_error($err){
|
||||||
global $I;
|
global $I, $language, $styles;
|
||||||
echo '<!DOCTYPE html><html><head>'.meta_html();
|
prepare_stylesheets();
|
||||||
|
send_headers();
|
||||||
|
echo '<!DOCTYPE html><html lang="'.$language.'"><head>'.meta_html();
|
||||||
echo "<title>$I[fatalerror]</title>";
|
echo "<title>$I[fatalerror]</title>";
|
||||||
echo "<style type=\"text/css\">body{background-color:#000000;color:#FF0033;}</style>";
|
echo "<style type=\"text/css\">$styles[fatal_error]</style>";
|
||||||
echo '</head><body>';
|
echo '</head><body>';
|
||||||
echo "<h2>$I[fatalerror]: $err</h2>";
|
echo "<h2>$I[fatalerror]: $err</h2>";
|
||||||
print_end();
|
print_end();
|
||||||
@ -2194,7 +2214,7 @@ function create_session($setup, $nickname, $password){
|
|||||||
$U['entry']=$U['lastpost']=time();
|
$U['entry']=$U['lastpost']=time();
|
||||||
}else{
|
}else{
|
||||||
add_user_defaults($password);
|
add_user_defaults($password);
|
||||||
check_captcha($_REQUEST['challenge'], $_REQUEST['captcha']);
|
check_captcha(isset($_REQUEST['challenge']) ? $_REQUEST['challenge'] : '', isset($_REQUEST['captcha']) ? $_REQUEST['captcha'] : '');
|
||||||
$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')));
|
||||||
@ -2204,8 +2224,8 @@ function create_session($setup, $nickname, $password){
|
|||||||
}
|
}
|
||||||
if($ga===0){
|
if($ga===0){
|
||||||
send_error($I['noguests']);
|
send_error($I['noguests']);
|
||||||
}elseif($ga===3){
|
}elseif(in_array($ga, [2, 3], true)){
|
||||||
$U['entry']=0;
|
$U['entry'] = 0;
|
||||||
}
|
}
|
||||||
if(get_setting('englobalpass')!=0 && isset($_REQUEST['globalpass']) && $_REQUEST['globalpass']!=get_setting('globalpass')){
|
if(get_setting('englobalpass')!=0 && isset($_REQUEST['globalpass']) && $_REQUEST['globalpass']!=get_setting('globalpass')){
|
||||||
send_error($I['wrongglobalpass']);
|
send_error($I['wrongglobalpass']);
|
||||||
@ -2221,6 +2241,7 @@ function check_captcha($challenge, $captcha_code){
|
|||||||
if(empty($challenge)){
|
if(empty($challenge)){
|
||||||
send_error($I['wrongcaptcha']);
|
send_error($I['wrongcaptcha']);
|
||||||
}
|
}
|
||||||
|
$code = '';
|
||||||
if(MEMCACHED){
|
if(MEMCACHED){
|
||||||
if(!$code=$memcached->get(DBNAME . '-' . PREFIX . "captcha-$_REQUEST[challenge]")){
|
if(!$code=$memcached->get(DBNAME . '-' . PREFIX . "captcha-$_REQUEST[challenge]")){
|
||||||
send_error($I['captchaexpire']);
|
send_error($I['captchaexpire']);
|
||||||
@ -2245,6 +2266,27 @@ function check_captcha($challenge, $captcha_code){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function is_definitely_ssl() {
|
||||||
|
if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (isset($_SERVER['SERVER_PORT']) && ('443' == $_SERVER['SERVER_PORT'])) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && ('https' === $_SERVER['HTTP_X_FORWARDED_PROTO'])) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_secure_cookie($name, $value){
|
||||||
|
if (version_compare(PHP_VERSION, '7.3.0') >= 0) {
|
||||||
|
setcookie($name, $value, ['expires' => 0, 'path' => '/', 'domain' => '', 'secure' => is_definitely_ssl(), 'httponly' => true, 'samesite' => 'Strict']);
|
||||||
|
}else{
|
||||||
|
setcookie($name, $value, 0, '/', '', is_definitely_ssl(), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
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=?;');
|
||||||
@ -2254,7 +2296,7 @@ function write_new_session($password){
|
|||||||
if(password_verify($password, $temp['passhash'])){
|
if(password_verify($password, $temp['passhash'])){
|
||||||
$U=$temp;
|
$U=$temp;
|
||||||
check_kicked();
|
check_kicked();
|
||||||
setcookie(COOKIENAME, $U['session']);
|
set_secure_cookie(COOKIENAME, $U['session']);
|
||||||
}else{
|
}else{
|
||||||
send_error("$I[userloggedin]<br>$I[wrongpass]");
|
send_error("$I[userloggedin]<br>$I[wrongpass]");
|
||||||
}
|
}
|
||||||
@ -2281,7 +2323,7 @@ function write_new_session($password){
|
|||||||
}
|
}
|
||||||
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'sessions (session, nickname, status, refresh, style, lastpost, passhash, useragent, bgcolour, entry, timestamps, embed, incognito, ip, nocache, tz, eninbox, sortupdown, hidechatters, nocache_old) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);');
|
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'sessions (session, nickname, status, refresh, style, lastpost, passhash, useragent, bgcolour, entry, timestamps, embed, incognito, ip, nocache, tz, eninbox, sortupdown, hidechatters, nocache_old) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);');
|
||||||
$stmt->execute([$U['session'], $U['nickname'], $U['status'], $U['refresh'], $U['style'], $U['lastpost'], $U['passhash'], $useragent, $U['bgcolour'], $U['entry'], $U['timestamps'], $U['embed'], $U['incognito'], $ip, $U['nocache'], $U['tz'], $U['eninbox'], $U['sortupdown'], $U['hidechatters'], $U['nocache_old']]);
|
$stmt->execute([$U['session'], $U['nickname'], $U['status'], $U['refresh'], $U['style'], $U['lastpost'], $U['passhash'], $useragent, $U['bgcolour'], $U['entry'], $U['timestamps'], $U['embed'], $U['incognito'], $ip, $U['nocache'], $U['tz'], $U['eninbox'], $U['sortupdown'], $U['hidechatters'], $U['nocache_old']]);
|
||||||
setcookie(COOKIENAME, $U['session']);
|
set_secure_cookie(COOKIENAME, $U['session']);
|
||||||
if($U['status']>=3 && !$U['incognito']){
|
if($U['status']>=3 && !$U['incognito']){
|
||||||
add_system_message(sprintf(get_setting('msgenter'), style_this(htmlspecialchars($U['nickname']), $U['style'])));
|
add_system_message(sprintf(get_setting('msgenter'), style_this(htmlspecialchars($U['nickname']), $U['style'])));
|
||||||
}
|
}
|
||||||
@ -2318,7 +2360,7 @@ function approve_session(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function check_login(){
|
function check_login(){
|
||||||
global $I, $U, $db;
|
global $I, $U;
|
||||||
$ga=(int) get_setting('guestaccess');
|
$ga=(int) get_setting('guestaccess');
|
||||||
if(isset($_REQUEST['session'])){
|
if(isset($_REQUEST['session'])){
|
||||||
parse_sessions();
|
parse_sessions();
|
||||||
@ -2349,9 +2391,7 @@ function check_login(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if($U['status']==1){
|
if($U['status']==1){
|
||||||
if($ga===2 || $ga===3){
|
if(in_array($ga, [2, 3], true)){
|
||||||
$stmt=$db->prepare('UPDATE ' . PREFIX . 'sessions SET entry=0 WHERE session=?;');
|
|
||||||
$stmt->execute([$U['session']]);
|
|
||||||
send_waiting_room();
|
send_waiting_room();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2499,7 +2539,7 @@ function check_member($password){
|
|||||||
$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){
|
if(get_setting('dismemcaptcha')==0){
|
||||||
check_captcha($_REQUEST['challenge'], $_REQUEST['captcha']);
|
check_captcha(isset($_REQUEST['challenge']) ? $_REQUEST['challenge'] : '', isset($_REQUEST['captcha']) ? $_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
|
||||||
@ -2873,23 +2913,31 @@ function validate_input(){
|
|||||||
}elseif($_REQUEST['sendto']==='s &' && $U['status']>=6){
|
}elseif($_REQUEST['sendto']==='s &' && $U['status']>=6){
|
||||||
$poststatus=6;
|
$poststatus=6;
|
||||||
$displaysend=sprintf(get_setting('msgsendadm'), style_this(htmlspecialchars($U['nickname']), $U['style']));
|
$displaysend=sprintf(get_setting('msgsendadm'), style_this(htmlspecialchars($U['nickname']), $U['style']));
|
||||||
}else{// known nick in room?
|
}else{ // known nick in room?
|
||||||
if(get_setting('disablepm')){
|
if(get_setting('disablepm')){
|
||||||
|
//PMs disabled
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$stmt=$db->prepare('SELECT * FROM (SELECT nickname, style, 1 AS inbox FROM ' . PREFIX . 'members WHERE nickname=? AND eninbox!=0 AND eninbox<=? AND nickname NOT IN (SELECT nickname FROM ' . PREFIX . 'sessions) UNION SELECT nickname, style, 0 AS inbox FROM ' . PREFIX . 'sessions WHERE nickname=?) AS t WHERE nickname NOT IN (SELECT ign FROM ' . PREFIX . 'ignored WHERE ignby=? UNION SELECT ignby FROM ' . PREFIX . 'ignored WHERE ign=?);');
|
$stmt=$db->prepare('SELECT null FROM ' . PREFIX . 'ignored WHERE (ignby=? AND ign=?) OR (ign=? AND ignby=?);');
|
||||||
$stmt->execute([$_REQUEST['sendto'], $U['status'], $_REQUEST['sendto'], $U['nickname'], $U['nickname']]);
|
$stmt->execute([$_REQUEST['sendto'], $U['nickname'], $_REQUEST['sendto'], $U['nickname']]);
|
||||||
if($tmp=$stmt->fetch(PDO::FETCH_ASSOC)){
|
if($stmt->fetch(PDO::FETCH_NUM)){
|
||||||
$recipient=$_REQUEST['sendto'];
|
//ignored
|
||||||
$poststatus=9;
|
|
||||||
$displaysend=sprintf(get_setting('msgsendprv'), style_this(htmlspecialchars($U['nickname']), $U['style']), style_this(htmlspecialchars($recipient), $tmp['style']));
|
|
||||||
$inbox=$tmp['inbox'];
|
|
||||||
}
|
|
||||||
if(empty($recipient)){// nick left already or ignores us
|
|
||||||
$message='';
|
|
||||||
$rejected='';
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
$stmt=$db->prepare('SELECT s.style, 0 AS inbox FROM ' . PREFIX . 'sessions AS s LEFT JOIN ' . PREFIX . 'members AS m ON (m.nickname=s.nickname) WHERE s.nickname=? AND (s.incognito=0 OR (m.eninbox!=0 AND m.eninbox<=?));');
|
||||||
|
$stmt->execute([$_REQUEST['sendto'], $U['status']]);
|
||||||
|
if(!$tmp=$stmt->fetch(PDO::FETCH_ASSOC)){
|
||||||
|
$stmt=$db->prepare('SELECT style, 1 AS inbox FROM ' . PREFIX . 'members WHERE nickname=? AND eninbox!=0 AND eninbox<=?;');
|
||||||
|
$stmt->execute([$_REQUEST['sendto'], $U['status']]);
|
||||||
|
if(!$tmp=$stmt->fetch(PDO::FETCH_ASSOC)){
|
||||||
|
//nickname left or disabled offline inbox for us
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$recipient=$_REQUEST['sendto'];
|
||||||
|
$poststatus=9;
|
||||||
|
$displaysend=sprintf(get_setting('msgsendprv'), style_this(htmlspecialchars($U['nickname']), $U['style']), style_this(htmlspecialchars($recipient), $tmp['style']));
|
||||||
|
$inbox=$tmp['inbox'];
|
||||||
}
|
}
|
||||||
if($poststatus!==9 && preg_match('~^/me~iu', $message)){
|
if($poststatus!==9 && preg_match('~^/me~iu', $message)){
|
||||||
$displaysend=style_this(htmlspecialchars("$U[nickname] "), $U['style']);
|
$displaysend=style_this(htmlspecialchars("$U[nickname] "), $U['style']);
|
||||||
@ -2898,7 +2946,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']);
|
||||||
@ -2920,13 +2968,13 @@ 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']]);
|
||||||
}
|
}
|
||||||
if(isset($hash) && $id){
|
if(isset($hash) && $id){
|
||||||
if(!empty($_FILES['file']['type']) && preg_match('~^[a-z0-9/\-\.\+]*$~i', $_FILES['file']['type'])){
|
if(!empty($_FILES['file']['type']) && preg_match('~^[a-z0-9/\-.+]*$~i', $_FILES['file']['type'])){
|
||||||
$type=$_FILES['file']['type'];
|
$type=$_FILES['file']['type'];
|
||||||
}else{
|
}else{
|
||||||
$type='application/octet-stream';
|
$type='application/octet-stream';
|
||||||
@ -2966,17 +3014,17 @@ function apply_filter($message, $poststatus, $nickname){
|
|||||||
function apply_linkfilter($message){
|
function apply_linkfilter($message){
|
||||||
$filters=get_linkfilters();
|
$filters=get_linkfilters();
|
||||||
foreach($filters as $filter){
|
foreach($filters as $filter){
|
||||||
$message=preg_replace_callback("/<a href=\"([^\"]+)\" target=\"_blank\">(.*?(?=<\/a>))<\/a>/iu",
|
$message=preg_replace_callback("/<a href=\"([^\"]+)\" target=\"_blank\" rel=\"noreferrer noopener\">(.*?(?=<\/a>))<\/a>/iu",
|
||||||
function ($matched) use(&$filter){
|
function ($matched) use(&$filter){
|
||||||
return "<a href=\"$matched[1]\" target=\"_blank\">".preg_replace("/$filter[match]/iu", $filter['replace'], $matched[2]).'</a>';
|
return "<a href=\"$matched[1]\" target=\"_blank\" rel=\"noreferrer noopener\">".preg_replace("/$filter[match]/iu", $filter['replace'], $matched[2]).'</a>';
|
||||||
}
|
}
|
||||||
, $message);
|
, $message);
|
||||||
}
|
}
|
||||||
$redirect=get_setting('redirect');
|
$redirect=get_setting('redirect');
|
||||||
if(get_setting('imgembed')){
|
if(get_setting('imgembed')){
|
||||||
$message=preg_replace_callback('/\[img\]\s?<a href="([^"]+)" target="_blank">(.*?(?=<\/a>))<\/a>/iu',
|
$message=preg_replace_callback('/\[img]\s?<a href="([^"]+)" target="_blank" rel="noreferrer noopener">(.*?(?=<\/a>))<\/a>/iu',
|
||||||
function ($matched){
|
function ($matched){
|
||||||
return str_ireplace('[/img]', '', "<br><a href=\"$matched[1]\" target=\"_blank\"><img src=\"$matched[1]\"></a><br>");
|
return str_ireplace('[/img]', '', "<br><a href=\"$matched[1]\" target=\"_blank\" rel=\"noreferrer noopener\"><img src=\"$matched[1]\"></a><br>");
|
||||||
}
|
}
|
||||||
, $message);
|
, $message);
|
||||||
}
|
}
|
||||||
@ -2984,17 +3032,17 @@ function apply_linkfilter($message){
|
|||||||
$redirect="$_SERVER[SCRIPT_NAME]?action=redirect&url=";
|
$redirect="$_SERVER[SCRIPT_NAME]?action=redirect&url=";
|
||||||
}
|
}
|
||||||
if(get_setting('forceredirect')){
|
if(get_setting('forceredirect')){
|
||||||
$message=preg_replace_callback('/<a href="([^"]+)" target="_blank">(.*?(?=<\/a>))<\/a>/u',
|
$message=preg_replace_callback('/<a href="([^"]+)" target="_blank" rel="noreferrer noopener">(.*?(?=<\/a>))<\/a>/u',
|
||||||
function ($matched) use($redirect){
|
function ($matched) use($redirect){
|
||||||
return "<a href=\"$redirect".rawurlencode($matched[1])."\" target=\"_blank\">$matched[2]</a>";
|
return "<a href=\"$redirect".rawurlencode($matched[1])."\" target=\"_blank\" rel=\"noreferrer noopener\">$matched[2]</a>";
|
||||||
}
|
}
|
||||||
, $message);
|
, $message);
|
||||||
}elseif(preg_match_all('/<a href="([^"]+)" target="_blank">(.*?(?=<\/a>))<\/a>/u', $message, $matches)){
|
}elseif(preg_match_all('/<a href="([^"]+)" target="_blank" rel="noreferrer noopener">(.*?(?=<\/a>))<\/a>/u', $message, $matches)){
|
||||||
foreach($matches[1] as $match){
|
foreach($matches[1] as $match){
|
||||||
if(!preg_match('~^http(s)?://~u', $match)){
|
if(!preg_match('~^http(s)?://~u', $match)){
|
||||||
$message=preg_replace_callback('/<a href="('.preg_quote($match, '/').')\" target=\"_blank\">(.*?(?=<\/a>))<\/a>/u',
|
$message=preg_replace_callback('/<a href="('.preg_quote($match, '/').')\" target=\"_blank\" rel=\"noreferrer noopener\">(.*?(?=<\/a>))<\/a>/u',
|
||||||
function ($matched) use($redirect){
|
function ($matched) use($redirect){
|
||||||
return "<a href=\"$redirect".rawurlencode($matched[1])."\" target=\"_blank\">$matched[2]</a>";
|
return "<a href=\"$redirect".rawurlencode($matched[1])."\" target=\"_blank\" rel=\"noreferrer noopener\">$matched[2]</a>";
|
||||||
}
|
}
|
||||||
, $message);
|
, $message);
|
||||||
}
|
}
|
||||||
@ -3012,15 +3060,15 @@ function create_hotlinks($message){
|
|||||||
$message=preg_replace('~((?:[^\s<>]*:[^\s<>]*@)?[a-z0-9\-]+(?:\.[a-z0-9\-]+)+:\d+)(?![^<>]*>)~iu', "<<$1>>", $message); // server:port given
|
$message=preg_replace('~((?:[^\s<>]*:[^\s<>]*@)?[a-z0-9\-]+(?:\.[a-z0-9\-]+)+:\d+)(?![^<>]*>)~iu', "<<$1>>", $message); // server:port given
|
||||||
$message=preg_replace('~([^\s<>]*:[^\s<>]*@[a-z0-9\-]+(?:\.[a-z0-9\-]+)+(?::\d+)?)(?![^<>]*>)~iu', "<<$1>>", $message); // au:th@server given
|
$message=preg_replace('~([^\s<>]*:[^\s<>]*@[a-z0-9\-]+(?:\.[a-z0-9\-]+)+(?::\d+)?)(?![^<>]*>)~iu', "<<$1>>", $message); // au:th@server given
|
||||||
// 3. likely servers without any hints but not filenames like *.rar zip exe etc.
|
// 3. likely servers without any hints but not filenames like *.rar zip exe etc.
|
||||||
$message=preg_replace('~((?:[a-z0-9\-]+\.)*[a-z2-7]{16}\.onion)(?![^<>]*>)~iu', "<<$1>>", $message);// *.onion
|
$message=preg_replace('~((?:[a-z0-9\-]+\.)*(?:[a-z2-7]{55}d|[a-z2-7]{16})\.onion)(?![^<>]*>)~iu', "<<$1>>", $message);// *.onion
|
||||||
$message=preg_replace('~([a-z0-9\-]+(?:\.[a-z0-9\-]+)+(?:\.(?!rar|zip|exe|gz|7z|bat|doc)[a-z]{2,}))(?=[^a-z0-9\-\.]|$)(?![^<>]*>)~iu', "<<$1>>", $message);// xxx.yyy.zzz
|
$message=preg_replace('~([a-z0-9\-]+(?:\.[a-z0-9\-]+)+(?:\.(?!rar|zip|exe|gz|7z|bat|doc)[a-z]{2,}))(?=[^a-z0-9\-.]|$)(?![^<>]*>)~iu', "<<$1>>", $message);// xxx.yyy.zzz
|
||||||
// Convert every <<....>> into proper links:
|
// Convert every <<....>> into proper links:
|
||||||
$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);
|
||||||
@ -3028,7 +3076,7 @@ function create_hotlinks($message){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function apply_mention($message){
|
function apply_mention($message){
|
||||||
return preg_replace_callback('/\@([^\s]+)/iu', function ($matched){
|
return preg_replace_callback('/@([^\s]+)/iu', function ($matched){
|
||||||
global $db;
|
global $db;
|
||||||
$nick=htmlspecialchars_decode($matched[1]);
|
$nick=htmlspecialchars_decode($matched[1]);
|
||||||
$rest='';
|
$rest='';
|
||||||
@ -3108,7 +3156,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']]);
|
||||||
@ -3229,7 +3277,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',
|
||||||
@ -3243,13 +3291,22 @@ function prepare_message_print(&$message, $removeEmbed){
|
|||||||
// this and that
|
// this and that
|
||||||
|
|
||||||
function send_headers(){
|
function send_headers(){
|
||||||
|
global $styles;
|
||||||
header('Content-Type: text/html; charset=UTF-8');
|
header('Content-Type: text/html; charset=UTF-8');
|
||||||
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');
|
||||||
header('Referrer-Policy: no-referrer');
|
header('Referrer-Policy: no-referrer');
|
||||||
header('Content-Security-Policy: referrer never');
|
header("Permissions-Policy: accelerometer 'none'; ambient-light-sensor 'none'; autoplay 'none'; battery 'none'; camera 'none'; cross-origin-isolated 'none'; display-capture 'none'; document-domain 'none'; encrypted-media 'none'; geolocation 'none'; fullscreen 'none'; execution-while-not-rendered 'none'; execution-while-out-of-viewport 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; navigation-override 'none'; payment 'none'; picture-in-picture 'none'; publickey-credentials-get 'none'; screen-wake-lock 'none'; sync-xhr 'none'; usb 'none'; web-share 'none'; xr-spatial-tracking 'none'; clipboard-read 'none'; clipboard-write 'none'; gamepad 'none'; speaker-selection 'none'; conversion-measurement 'none'; focus-without-user-activation 'none'; hid 'none'; idle-detection 'none'; sync-script 'none'; vertical-scroll 'none'; serial 'none'; trust-token-redemption 'none';");
|
||||||
if($_SERVER['REQUEST_METHOD']==='HEAD'){
|
$style_hashes = '';
|
||||||
|
foreach($styles as $style) {
|
||||||
|
$style_hashes .= " 'sha256-".base64_encode(hash('sha256', $style, true))."'";
|
||||||
|
}
|
||||||
|
header("Content-Security-Policy: base-uri 'self'; default-src 'none'; font-src 'self'; form-action 'self'; frame-ancestors 'self'; frame-src 'self'; img-src * data:; media-src * data:; style-src 'self' 'unsafe-inline'"); // $style_hashes"); //we can add computed hashes as soon as all inline css is moved to default css
|
||||||
|
header('X-Content-Type-Options: nosniff');
|
||||||
|
header('X-Frame-Options: sameorigin');
|
||||||
|
header('X-XSS-Protection: 1; mode=block');
|
||||||
|
if($_SERVER['REQUEST_METHOD'] === 'HEAD'){
|
||||||
exit; // headers sent, no further processing needed
|
exit; // headers sent, no further processing needed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3482,7 +3539,7 @@ function destroy_chat($C){
|
|||||||
$db->exec('DROP TABLE ' . PREFIX . 'settings;');
|
$db->exec('DROP TABLE ' . PREFIX . 'settings;');
|
||||||
if(MEMCACHED){
|
if(MEMCACHED){
|
||||||
$memcached->delete(DBNAME . '-' . PREFIX . 'filter');
|
$memcached->delete(DBNAME . '-' . PREFIX . 'filter');
|
||||||
$memcached->delete(DBANEM . '-' . PREFIX . 'linkfilter');
|
$memcached->delete(DBNAME . '-' . PREFIX . 'linkfilter');
|
||||||
foreach($C['settings'] as $setting){
|
foreach($C['settings'] as $setting){
|
||||||
$memcached->delete(DBNAME . '-' . PREFIX . "settings-$setting");
|
$memcached->delete(DBNAME . '-' . PREFIX . "settings-$setting");
|
||||||
}
|
}
|
||||||
@ -3628,6 +3685,7 @@ function init_chat(){
|
|||||||
['maxuploadsize', '1024'],
|
['maxuploadsize', '1024'],
|
||||||
['nextcron', '0'],
|
['nextcron', '0'],
|
||||||
['personalnotes', '1'],
|
['personalnotes', '1'],
|
||||||
|
['filtermodkick', '0'],
|
||||||
];
|
];
|
||||||
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'settings (setting, value) VALUES (?, ?);');
|
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'settings (setting, value) VALUES (?, ?);');
|
||||||
foreach($settings as $pair){
|
foreach($settings as $pair){
|
||||||
@ -3649,7 +3707,6 @@ function init_chat(){
|
|||||||
'eninbox' =>0,
|
'eninbox' =>0,
|
||||||
'sortupdown' =>0,
|
'sortupdown' =>0,
|
||||||
'hidechatters' =>0,
|
'hidechatters' =>0,
|
||||||
'filtermodkick' =>1,
|
|
||||||
];
|
];
|
||||||
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'members (nickname, passhash, status, refresh, bgcolour, timestamps, style, embed, incognito, nocache, tz, eninbox, sortupdown, hidechatters, nocache_old) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);');
|
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'members (nickname, passhash, status, refresh, bgcolour, timestamps, style, embed, incognito, nocache, tz, eninbox, sortupdown, hidechatters, nocache_old) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);');
|
||||||
$stmt->execute([$reg['nickname'], $reg['passhash'], $reg['status'], $reg['refresh'], $reg['bgcolour'], $reg['timestamps'], $reg['style'], $reg['embed'], $reg['incognito'], $reg['nocache'], $reg['tz'], $reg['eninbox'], $reg['sortupdown'], $reg['hidechatters'], $reg['nocache_old']]);
|
$stmt->execute([$reg['nickname'], $reg['passhash'], $reg['status'], $reg['refresh'], $reg['bgcolour'], $reg['timestamps'], $reg['style'], $reg['embed'], $reg['incognito'], $reg['nocache'], $reg['tz'], $reg['eninbox'], $reg['sortupdown'], $reg['hidechatters'], $reg['nocache_old']]);
|
||||||
@ -3956,9 +4013,6 @@ function update_db(){
|
|||||||
$db->exec('CREATE INDEX ' . PREFIX . 'notes_type ON ' . PREFIX . 'notes(type);');
|
$db->exec('CREATE INDEX ' . PREFIX . 'notes_type ON ' . PREFIX . 'notes(type);');
|
||||||
$db->exec('CREATE INDEX ' . PREFIX . 'notes_editedby ON ' . PREFIX . 'notes(editedby);');
|
$db->exec('CREATE INDEX ' . PREFIX . 'notes_editedby ON ' . PREFIX . 'notes(editedby);');
|
||||||
}
|
}
|
||||||
if($dbversion<40){
|
|
||||||
$db->exec('INSERT INTO ' . PREFIX . "settings (setting, value) VALUES ('filtermodkick', '1');");
|
|
||||||
}
|
|
||||||
if($dbversion<41){
|
if($dbversion<41){
|
||||||
$db->exec('DROP TABLE ' . PREFIX . 'sessions;');
|
$db->exec('DROP TABLE ' . PREFIX . 'sessions;');
|
||||||
$db->exec('CREATE TABLE ' . PREFIX . "sessions (id $primary, session char(32) NOT NULL UNIQUE, nickname varchar(50) NOT NULL UNIQUE, status smallint NOT NULL, refresh smallint NOT NULL, style varchar(255) NOT NULL, lastpost integer NOT NULL, passhash varchar(255) NOT NULL, postid char(6) NOT NULL DEFAULT '000000', useragent varchar(255) NOT NULL, kickmessage varchar(255) DEFAULT '', bgcolour char(6) NOT NULL, entry integer NOT NULL, timestamps smallint NOT NULL, embed smallint NOT NULL, incognito smallint NOT NULL, ip varchar(45) NOT NULL, nocache smallint NOT NULL, tz varchar(255) NOT NULL, eninbox smallint NOT NULL, sortupdown smallint NOT NULL, hidechatters smallint NOT NULL, nocache_old smallint NOT NULL)$memengine$charset;");
|
$db->exec('CREATE TABLE ' . PREFIX . "sessions (id $primary, session char(32) NOT NULL UNIQUE, nickname varchar(50) NOT NULL UNIQUE, status smallint NOT NULL, refresh smallint NOT NULL, style varchar(255) NOT NULL, lastpost integer NOT NULL, passhash varchar(255) NOT NULL, postid char(6) NOT NULL DEFAULT '000000', useragent varchar(255) NOT NULL, kickmessage varchar(255) DEFAULT '', bgcolour char(6) NOT NULL, entry integer NOT NULL, timestamps smallint NOT NULL, embed smallint NOT NULL, incognito smallint NOT NULL, ip varchar(45) NOT NULL, nocache smallint NOT NULL, tz varchar(255) NOT NULL, eninbox smallint NOT NULL, sortupdown smallint NOT NULL, hidechatters smallint NOT NULL, nocache_old smallint NOT NULL)$memengine$charset;");
|
||||||
@ -3985,18 +4039,21 @@ function update_db(){
|
|||||||
$db->exec('CREATE INDEX ' . PREFIX . 'inbox_recipient ON ' . PREFIX . 'inbox(recipient);');
|
$db->exec('CREATE INDEX ' . PREFIX . 'inbox_recipient ON ' . PREFIX . 'inbox(recipient);');
|
||||||
$db->exec('ALTER TABLE ' . PREFIX . 'inbox ADD FOREIGN KEY (recipient) REFERENCES ' . PREFIX . 'members(nickname) ON DELETE CASCADE ON UPDATE CASCADE;');
|
$db->exec('ALTER TABLE ' . PREFIX . 'inbox ADD FOREIGN KEY (recipient) REFERENCES ' . PREFIX . 'members(nickname) ON DELETE CASCADE ON UPDATE CASCADE;');
|
||||||
}
|
}
|
||||||
|
if($dbversion<42){
|
||||||
|
$db->exec('INSERT IGNORE INTO ' . PREFIX . "settings (setting, value) VALUES ('filtermodkick', '1');");
|
||||||
|
}
|
||||||
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']]);
|
||||||
}
|
}
|
||||||
@ -4004,9 +4061,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']]);
|
||||||
}
|
}
|
||||||
@ -4131,24 +4188,28 @@ function load_lang(){
|
|||||||
global $I, $L, $language;
|
global $I, $L, $language;
|
||||||
$L=[
|
$L=[
|
||||||
'bg' =>'Български',
|
'bg' =>'Български',
|
||||||
|
'cz' =>'čeština',
|
||||||
'de' =>'Deutsch',
|
'de' =>'Deutsch',
|
||||||
'en' =>'English',
|
'en' =>'English',
|
||||||
'es' =>'Español',
|
'es' =>'Español',
|
||||||
'fr' =>'Français',
|
'fr' =>'Français',
|
||||||
'id' =>'Bahasa Indonesia',
|
'id' =>'Bahasa Indonesia',
|
||||||
|
'it' =>'Italiano',
|
||||||
'ru' =>'Русский',
|
'ru' =>'Русский',
|
||||||
|
'tr' =>'Türkçe',
|
||||||
|
'uk' =>'Українська',
|
||||||
'zh_CN' =>'简体中文',
|
'zh_CN' =>'简体中文',
|
||||||
];
|
];
|
||||||
if(isset($_REQUEST['lang']) && isset($L[$_REQUEST['lang']])){
|
if(isset($_REQUEST['lang']) && isset($L[$_REQUEST['lang']])){
|
||||||
$language=$_REQUEST['lang'];
|
$language=$_REQUEST['lang'];
|
||||||
if(!isset($_COOKIE['language']) || $_COOKIE['language']!==$language){
|
if(!isset($_COOKIE['language']) || $_COOKIE['language']!==$language){
|
||||||
setcookie('language', $language);
|
set_secure_cookie('language', $language);
|
||||||
}
|
}
|
||||||
}elseif(isset($_COOKIE['language']) && isset($L[$_COOKIE['language']])){
|
}elseif(isset($_COOKIE['language']) && isset($L[$_COOKIE['language']])){
|
||||||
$language=$_COOKIE['language'];
|
$language=$_COOKIE['language'];
|
||||||
}else{
|
}else{
|
||||||
$language=LANG;
|
$language=LANG;
|
||||||
setcookie('language', $language);
|
set_secure_cookie('language', $language);
|
||||||
}
|
}
|
||||||
include('lang_en.php'); //always include English
|
include('lang_en.php'); //always include English
|
||||||
if($language!=='en'){
|
if($language!=='en'){
|
||||||
@ -4160,12 +4221,17 @@ function load_lang(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isPOST(){
|
||||||
|
return $_SERVER['REQUEST_METHOD'] === 'POST';
|
||||||
|
}
|
||||||
|
|
||||||
function load_config(){
|
function load_config(){
|
||||||
mb_internal_encoding('UTF-8');
|
mb_internal_encoding('UTF-8');
|
||||||
define('VERSION', '1.23.5'); // Script version
|
define('VERSION', '1.24.1'); // Script version
|
||||||
define('DBVERSION', 41); // 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'); // Recommended length: 32. Encryption key for messages
|
||||||
|
define('AES_IV_PASS', '012345678912'); // Recommended length: 12. 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
|
||||||
@ -4183,5 +4249,20 @@ 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){
|
||||||
|
if (version_compare(PHP_VERSION, '7.2.0') < 0) {
|
||||||
|
die("You need at least PHP >= 7.2.x");
|
||||||
|
}
|
||||||
|
//Do not touch: Compute real keys needed by encryption functions
|
||||||
|
if (strlen(ENCRYPTKEY_PASS) !== SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES){
|
||||||
|
define('ENCRYPTKEY', substr(hash("sha512/256",ENCRYPTKEY_PASS),0, SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES));
|
||||||
|
}else{
|
||||||
|
define('ENCRYPTKEY', ENCRYPTKEY_PASS);
|
||||||
|
}
|
||||||
|
if (strlen(AES_IV_PASS) !== SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES){
|
||||||
|
define('AES_IV', substr(hash("sha512/256",AES_IV_PASS), 0, SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES));
|
||||||
|
}else{
|
||||||
|
define('AES_IV', AES_IV_PASS);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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:0; 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;}
|
736
lang_bg.php
736
lang_bg.php
@ -1,368 +1,368 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Bulgarian translation
|
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Bulgarian translation
|
||||||
*
|
*
|
||||||
* Copyright (C) 2015-2017 Daniel Winzen <d@winzen4.de>
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* 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: Български
|
//Native language name: Български
|
||||||
$T=[
|
$T=[
|
||||||
'nodb' => 'Няма връзка с базата данни!',
|
'nodb' => 'Няма връзка с базата данни!',
|
||||||
'nodbsetup' => 'Няма връзка с базата данни, моля създайте база данни и редактирайте скрипта да използва правилната база данни със съответния потребител и парола.',
|
'nodbsetup' => 'Няма връзка с базата данни, моля създайте база данни и редактирайте скрипта да използва правилната база данни със съответния потребител и парола.',
|
||||||
'changelang' => 'Смени езика:',
|
'changelang' => 'Смени езика:',
|
||||||
'expire' => 'Невалидна/изтекла сесия',
|
'expire' => 'Невалидна/изтекла сесия',
|
||||||
'kicked' => 'Ти беше изгонен от чата!',
|
'kicked' => 'Ти беше изгонен от чата!',
|
||||||
'invalnick' => 'Невалиден ник (Максимум %1$d символа и трябва да съвпада с регулярния израз "%2$s")',
|
'invalnick' => 'Невалиден ник (Максимум %1$d символа и трябва да съвпада с регулярния израз "%2$s")',
|
||||||
'invalpass' => 'Невалидна парола (Най-малко %1$d символа и трябва да съвпада с регулярния израз "%2$s")',
|
'invalpass' => 'Невалидна парола (Най-малко %1$d символа и трябва да съвпада с регулярния израз "%2$s")',
|
||||||
'noconfirm' => 'Полето за потвърждение на паролата не съвпада!',
|
'noconfirm' => 'Полето за потвърждение на паролата не съвпада!',
|
||||||
'incorregex' => 'Невалиден регулярен израз!',
|
'incorregex' => 'Невалиден регулярен израз!',
|
||||||
'bottom' => 'Най-долу',
|
'bottom' => 'Най-долу',
|
||||||
'top' => 'Горе',
|
'top' => 'Горе',
|
||||||
'choose' => '(избери)',
|
'choose' => '(избери)',
|
||||||
'setup' => 'Инсталация на чата',
|
'setup' => 'Инсталация на чата',
|
||||||
'init' => 'Първоначална инсталация',
|
'init' => 'Първоначална инсталация',
|
||||||
'sulogin' => 'Потребителско име на супер-администратора:',
|
'sulogin' => 'Потребителско име на супер-администратора:',
|
||||||
'sunick' => 'Ник на супер-администратора:',
|
'sunick' => 'Ник на супер-администратора:',
|
||||||
'supass' => 'Парола на супер-администратора:',
|
'supass' => 'Парола на супер-администратора:',
|
||||||
'suconfirm' => 'Потвърди паролата:',
|
'suconfirm' => 'Потвърди паролата:',
|
||||||
'susuccess' => 'Успешна регистрация!',
|
'susuccess' => 'Успешна регистрация!',
|
||||||
'initbtn' => 'Инициализация на чата',
|
'initbtn' => 'Инициализация на чата',
|
||||||
'initdbexist' => 'Таблиците в базата данни вече съществуват! За да продължите, моля първо изтрийте тези таблици ръчно.',
|
'initdbexist' => 'Таблиците в базата данни вече съществуват! За да продължите, моля първо изтрийте тези таблици ръчно.',
|
||||||
'initsuexist' => 'Вече съществува супер-администратор!',
|
'initsuexist' => 'Вече съществува супер-администратор!',
|
||||||
'initgosetup' => 'Отиди към страницата за инсталация',
|
'initgosetup' => 'Отиди към страницата за инсталация',
|
||||||
'captcha' => 'Captcha',
|
'captcha' => 'Captcha',
|
||||||
'enabled' => 'Разрешено',
|
'enabled' => 'Разрешено',
|
||||||
'onlyguests' => 'Само за гости',
|
'onlyguests' => 'Само за гости',
|
||||||
'disabled' => 'Забранено',
|
'disabled' => 'Забранено',
|
||||||
'simple' => 'Просто',
|
'simple' => 'Просто',
|
||||||
'moderate' => 'Умерено',
|
'moderate' => 'Умерено',
|
||||||
'extreme' => 'Екстремно',
|
'extreme' => 'Екстремно',
|
||||||
'nick' => 'Ник:',
|
'nick' => 'Ник:',
|
||||||
'pass' => 'Парола:',
|
'pass' => 'Парола:',
|
||||||
'globalloginpass' => 'Глобална парола:',
|
'globalloginpass' => 'Глобална парола:',
|
||||||
'login' => 'Вход',
|
'login' => 'Вход',
|
||||||
'dbupdate' => 'Базата данни бе успешно обновена!',
|
'dbupdate' => 'Базата данни бе успешно обновена!',
|
||||||
'sysmessages' => 'Системни съобщения',
|
'sysmessages' => 'Системни съобщения',
|
||||||
'msgenter' => 'Влизане',
|
'msgenter' => 'Влизане',
|
||||||
'msgexit' => 'Напускане',
|
'msgexit' => 'Напускане',
|
||||||
'msgmemreg' => 'Членът е регистриран',
|
'msgmemreg' => 'Членът е регистриран',
|
||||||
'msgsureg' => 'Кандидатът е регистриран',
|
'msgsureg' => 'Кандидатът е регистриран',
|
||||||
'msgkick' => 'Изгонен',
|
'msgkick' => 'Изгонен',
|
||||||
'msgmultikick' => 'Множество изгонени',
|
'msgmultikick' => 'Множество изгонени',
|
||||||
'msgallkick' => 'Всички са изгонени',
|
'msgallkick' => 'Всички са изгонени',
|
||||||
'msgclean' => 'Стаята беше почистена',
|
'msgclean' => 'Стаята беше почистена',
|
||||||
'dateformat' => '<a target="_blank" href="http://php.net/manual/en/function.date.php#refsect1-function.date-parameters">Формат на дата</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' => 'Изчисти съобщенията',
|
||||||
'room' => 'Цялата стая',
|
'room' => 'Цялата стая',
|
||||||
'selection' => 'Избор',
|
'selection' => 'Избор',
|
||||||
'cleannick' => 'Следния ник:',
|
'cleannick' => 'Следния ник:',
|
||||||
'clean' => 'Изчисти',
|
'clean' => 'Изчисти',
|
||||||
'kickchat' => 'Изгони потребител (%d минути)',
|
'kickchat' => 'Изгони потребител (%d минути)',
|
||||||
'kickreason' => 'Причина:',
|
'kickreason' => 'Причина:',
|
||||||
'kickpurge' => 'Заличи съобщенията',
|
'kickpurge' => 'Заличи съобщенията',
|
||||||
'kick' => 'Изгони',
|
'kick' => 'Изгони',
|
||||||
'logoutinact' => 'Изкарай неактивен потребител от чата',
|
'logoutinact' => 'Изкарай неактивен потребител от чата',
|
||||||
'logout' => 'Изкарай',
|
'logout' => 'Изкарай',
|
||||||
'sessions' => 'Виж активните сесии',
|
'sessions' => 'Виж активните сесии',
|
||||||
'view' => 'Виж',
|
'view' => 'Виж',
|
||||||
'filter' => 'Филтър',
|
'filter' => 'Филтър',
|
||||||
'guestacc' => 'Промени достъпа за гост',
|
'guestacc' => 'Промени достъпа за гост',
|
||||||
'guestallow' => 'Позволи',
|
'guestallow' => 'Позволи',
|
||||||
'guestwait' => 'Позволи с чакалня',
|
'guestwait' => 'Позволи с чакалня',
|
||||||
'adminallow' => 'Изисквай одобрение от модератор',
|
'adminallow' => 'Изисквай одобрение от модератор',
|
||||||
'guestdisallow' => 'Само членове',
|
'guestdisallow' => 'Само членове',
|
||||||
'addsuguest' => 'Регистрирай кандидат',
|
'addsuguest' => 'Регистрирай кандидат',
|
||||||
'register' => 'Регистрирай',
|
'register' => 'Регистрирай',
|
||||||
'admmembers' => 'Членове',
|
'admmembers' => 'Членове',
|
||||||
'memdel' => 'Изтрий от базата данни',
|
'memdel' => 'Изтрий от базата данни',
|
||||||
'memdeny' => 'Забрани достъп (!)',
|
'memdeny' => 'Забрани достъп (!)',
|
||||||
'memsuguest' => 'Направи кандидат (G)',
|
'memsuguest' => 'Направи кандидат (G)',
|
||||||
'memreg' => 'Направи обикновен член',
|
'memreg' => 'Направи обикновен член',
|
||||||
'memmod' => 'Направи модератор (M)',
|
'memmod' => 'Направи модератор (M)',
|
||||||
'memsumod' => 'Направи супер-модератор (SM)',
|
'memsumod' => 'Направи супер-модератор (SM)',
|
||||||
'memadm' => 'Направи администратор (A)',
|
'memadm' => 'Направи администратор (A)',
|
||||||
'change' => 'Промени',
|
'change' => 'Промени',
|
||||||
'regguest' => 'Регистрирай гост',
|
'regguest' => 'Регистрирай гост',
|
||||||
'regmem' => 'Регистрирай нов член',
|
'regmem' => 'Регистрирай нов член',
|
||||||
'sessact' => 'Активни сесии',
|
'sessact' => 'Активни сесии',
|
||||||
'sessnick' => 'Ник',
|
'sessnick' => 'Ник',
|
||||||
'sesstimeout' => 'Изтичане след',
|
'sesstimeout' => 'Изтичане след',
|
||||||
'sessua' => 'User-Agent',
|
'sessua' => 'User-Agent',
|
||||||
'fid' => 'Филтър ID:',
|
'fid' => 'Филтър ID:',
|
||||||
'match' => 'Съвпадение',
|
'match' => 'Съвпадение',
|
||||||
'replace' => 'Замени',
|
'replace' => 'Замени',
|
||||||
'allowpm' => 'Разреши в ЛС',
|
'allowpm' => 'Разреши в ЛС',
|
||||||
'regex' => 'Регулярен израз',
|
'regex' => 'Регулярен израз',
|
||||||
'apply' => 'Приложи',
|
'apply' => 'Приложи',
|
||||||
'newfilter' => 'Нов филтър:',
|
'newfilter' => 'Нов филтър:',
|
||||||
'add' => 'Добави',
|
'add' => 'Добави',
|
||||||
'noframes' => 'Този чат използва <b>фреймове</b>. Моля позволете фреймовете във вашия браузър или използвайте друг, подходящ.',
|
'noframes' => 'Този чат използва <b>фреймове</b>. Моля позволете фреймовете във вашия браузър или използвайте друг, подходящ.',
|
||||||
'delselmes' => 'Изтрий избраните съобщения',
|
'delselmes' => 'Изтрий избраните съобщения',
|
||||||
'staffnotes' => 'Бележки на екипа',
|
'staffnotes' => 'Бележки на екипа',
|
||||||
'adminnotes' => 'Администраторски бележки',
|
'adminnotes' => 'Администраторски бележки',
|
||||||
'notessaved' => 'Бележките са запазени!',
|
'notessaved' => 'Бележките са запазени!',
|
||||||
'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' => 'Изпрати до',
|
||||||
'toall' => 'Всички в чата',
|
'toall' => 'Всички в чата',
|
||||||
'tomem' => 'Само до членовете',
|
'tomem' => 'Само до членовете',
|
||||||
'tostaff' => 'Само до екипа',
|
'tostaff' => 'Само до екипа',
|
||||||
'toadmin' => 'Само до админ',
|
'toadmin' => 'Само до админ',
|
||||||
'alsopurge' => 'Също заличи съобщенията',
|
'alsopurge' => 'Също заличи съобщенията',
|
||||||
'dellast' => 'Изтрий последното съобщение',
|
'dellast' => 'Изтрий последното съобщение',
|
||||||
'delall' => 'Изтрий всички съобщения',
|
'delall' => 'Изтрий всички съобщения',
|
||||||
'switchsingle' => 'Превключи на многоредово поле',
|
'switchsingle' => 'Превключи на многоредово поле',
|
||||||
'switchmulti' => 'Превключи на едноредово поле',
|
'switchmulti' => 'Превключи на едноредово поле',
|
||||||
'help' => 'Помощ',
|
'help' => 'Помощ',
|
||||||
'helpguest' => 'Предназначението на всички функции трябва да е ясно, просто използвай бутоните. В профила си можеш да променяш интервала на опресняване на чата и цвета на шрифта, а също така и да игнорираш потребители.<br><u>Забележка:</u> Това е чат, така че ако спреш да чатиш, след известно време ще бъдеш амтоматично изкаран от чата.',
|
'helpguest' => 'Предназначението на всички функции трябва да е ясно, просто използвай бутоните. В профила си можеш да променяш интервала на опресняване на чата и цвета на шрифта, а също така и да игнорираш потребители.<br><u>Забележка:</u> Това е чат, така че ако спреш да чатиш, след известно време ще бъдеш амтоматично изкаран от чата.',
|
||||||
'helpembed' => 'Ако искаш да вградиш изображение в поста си, просто използвай тага [img] пред линка с изображението. Пример: [img]http://example.com/images/file.jpg ще вгради изображението в поста ти.',
|
'helpembed' => 'Ако искаш да вградиш изображение в поста си, просто използвай тага [img] пред линка с изображението. Пример: [img]http://example.com/images/file.jpg ще вгради изображението в поста ти.',
|
||||||
'helpmem' => 'Членове: Вие ще имате някои допълнителни опции. Може да променяте цвета на фона, да променяте паролата си по всяко време, и разбира се, да изтриете акаунта си.',
|
'helpmem' => 'Членове: Вие ще имате някои допълнителни опции. Може да променяте цвета на фона, да променяте паролата си по всяко време, и разбира се, да изтриете акаунта си.',
|
||||||
'helpmod' => 'Модератори: Забележете админ бутона най-долу. Натискането му ще изведе страница, през която ще можете да почистите стаята, да гоните потребители, да преглеждате всички активни сесии и да забраните напълно достъпа на гости, ако е необходимо.',
|
'helpmod' => 'Модератори: Забележете админ бутона най-долу. Натискането му ще изведе страница, през която ще можете да почистите стаята, да гоните потребители, да преглеждате всички активни сесии и да забраните напълно достъпа на гости, ако е необходимо.',
|
||||||
'helpadm' => 'Администратори: Вие ще можете допълнително да регистрирате гости, да редактирате профили на членове и да регистрирате нови никове.',
|
'helpadm' => 'Администратори: Вие ще можете допълнително да регистрирате гости, да редактирате профили на членове и да регистрирате нови никове.',
|
||||||
'profile' => 'Твоят профил',
|
'profile' => 'Твоят профил',
|
||||||
'ignore' => 'Игнорирай',
|
'ignore' => 'Игнорирай',
|
||||||
'unignore' => 'Спри да игнорираш',
|
'unignore' => 'Спри да игнорираш',
|
||||||
'refreshrate' => 'Честота на опресняване (5-150 секунди)',
|
'refreshrate' => 'Честота на опресняване (5-150 секунди)',
|
||||||
'fontcolour' => 'Цвят на шрифта',
|
'fontcolour' => 'Цвят на шрифта',
|
||||||
'viewexample' => 'Виж примери',
|
'viewexample' => 'Виж примери',
|
||||||
'bgcolour' => 'Цвят на фона',
|
'bgcolour' => 'Цвят на фона',
|
||||||
'fontface' => 'Облик на шрифта',
|
'fontface' => 'Облик на шрифта',
|
||||||
'roomdefault' => 'По подразбиране за стаята',
|
'roomdefault' => 'По подразбиране за стаята',
|
||||||
'bold' => 'Получер',
|
'bold' => 'Получер',
|
||||||
'italic' => 'Курсив',
|
'italic' => 'Курсив',
|
||||||
'small' => 'Малък',
|
'small' => 'Малък',
|
||||||
'fontexample' => 'Пример за избрания шрифт',
|
'fontexample' => 'Пример за избрания шрифт',
|
||||||
'timestamps' => 'Покажи времеви маркери',
|
'timestamps' => 'Покажи времеви маркери',
|
||||||
'embed' => 'Вграждане на изображения',
|
'embed' => 'Вграждане на изображения',
|
||||||
'incognito' => 'Режим Инкогнито',
|
'incognito' => 'Режим Инкогнито',
|
||||||
'changenick' => 'Промени ник',
|
'changenick' => 'Промени ник',
|
||||||
'changepass' => 'Промени парола',
|
'changepass' => 'Промени парола',
|
||||||
'oldpass' => 'Стара парола:',
|
'oldpass' => 'Стара парола:',
|
||||||
'newpass' => 'Нова парола:',
|
'newpass' => 'Нова парола:',
|
||||||
'confirmpass' => 'Потвърди новата парола:',
|
'confirmpass' => 'Потвърди новата парола:',
|
||||||
'savechanges' => 'Запази промените',
|
'savechanges' => 'Запази промените',
|
||||||
'reloadpb' => 'Презареди пощенската кутия',
|
'reloadpb' => 'Презареди пощенската кутия',
|
||||||
'reloadmsgs' => 'Презареди съобщенията',
|
'reloadmsgs' => 'Презареди съобщенията',
|
||||||
'chgprofile' => 'Профил',
|
'chgprofile' => 'Профил',
|
||||||
'adminbtn' => 'Администрация',
|
'adminbtn' => 'Администрация',
|
||||||
'admnotes' => 'Администраторски бележки',
|
'admnotes' => 'Администраторски бележки',
|
||||||
'notes' => 'Бележки',
|
'notes' => 'Бележки',
|
||||||
'clone' => 'Клонирай',
|
'clone' => 'Клонирай',
|
||||||
'randh' => 'Правила & Помощ',
|
'randh' => 'Правила & Помощ',
|
||||||
'exit' => 'Изход от чата',
|
'exit' => 'Изход от чата',
|
||||||
'bye' => 'Чао, драги %s, скоро те очакваме отново!',
|
'bye' => 'Чао, драги %s, скоро те очакваме отново!',
|
||||||
'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' => 'Грешна Captcha',
|
'wrongcaptcha' => 'Грешна Captcha',
|
||||||
'captchaexpire' => 'Captcha-та е вече използвана или е изтекла.',
|
'captchaexpire' => 'Captcha-та е вече използвана или е изтекла.',
|
||||||
'noguests' => 'Съжаляваме, но в момента се допускат само членове!',
|
'noguests' => 'Съжаляваме, но в момента се допускат само членове!',
|
||||||
'curchat' => 'В стаята има %d потребители:',
|
'curchat' => 'В стаята има %d потребители:',
|
||||||
'cantreg' => 'Не мога да регистрирам %s',
|
'cantreg' => 'Не мога да регистрирам %s',
|
||||||
'alreadyreged' => '%s е вече регистриран.',
|
'alreadyreged' => '%s е вече регистриран.',
|
||||||
'successreg' => '%s е успешно регистриран.',
|
'successreg' => '%s е успешно регистриран.',
|
||||||
'cantchgstat' => 'Не мога да променя статуса на %s',
|
'cantchgstat' => 'Не мога да променя статуса на %s',
|
||||||
'succdel' => '%s е успешно изтрит от базата данни.',
|
'succdel' => '%s е успешно изтрит от базата данни.',
|
||||||
'succchg' => 'Статусът за %s бе успешно променен.',
|
'succchg' => 'Статусът за %s бе успешно променен.',
|
||||||
'wrongpass' => 'Грешна парола!',
|
'wrongpass' => 'Грешна парола!',
|
||||||
'wrongglobalpass' => 'Грешна глобална парола!',
|
'wrongglobalpass' => 'Грешна глобална парола!',
|
||||||
'succprofile' => 'Профилът ти беше успешно съхранен.',
|
'succprofile' => 'Профилът ти беше успешно съхранен.',
|
||||||
'backtologin' => 'Обратно към страницата за вход.',
|
'backtologin' => 'Обратно към страницата за вход.',
|
||||||
'backtochat' => 'Обратно към чата.',
|
'backtochat' => 'Обратно към чата.',
|
||||||
'Beige' => 'Бежово',
|
'Beige' => 'Бежово',
|
||||||
'Black' => 'Черно',
|
'Black' => 'Черно',
|
||||||
'Blue' => 'Синьо',
|
'Blue' => 'Синьо',
|
||||||
'BlueViolet' => 'Виолетово-синьо',
|
'BlueViolet' => 'Виолетово-синьо',
|
||||||
'Brown' => 'Кафяво',
|
'Brown' => 'Кафяво',
|
||||||
'Cyan' => 'Зелено-синьо',
|
'Cyan' => 'Зелено-синьо',
|
||||||
'DarkBlue' => 'Тъмносиньо',
|
'DarkBlue' => 'Тъмносиньо',
|
||||||
'DarkGreen' => 'Тъмнозелено',
|
'DarkGreen' => 'Тъмнозелено',
|
||||||
'DarkRed' => 'Тъмночервено',
|
'DarkRed' => 'Тъмночервено',
|
||||||
'DarkViolet' => 'Тъмновиолетово',
|
'DarkViolet' => 'Тъмновиолетово',
|
||||||
'DeepSkyBlue' => 'Небесно синьо',
|
'DeepSkyBlue' => 'Небесно синьо',
|
||||||
'Gold' => 'Златно',
|
'Gold' => 'Златно',
|
||||||
'Grey' => 'Сиво',
|
'Grey' => 'Сиво',
|
||||||
'Green' => 'Зелено',
|
'Green' => 'Зелено',
|
||||||
'HotPink' => 'Топло розово',
|
'HotPink' => 'Топло розово',
|
||||||
'Indigo' => 'Индиго',
|
'Indigo' => 'Индиго',
|
||||||
'LightBlue' => 'Светлосиньо',
|
'LightBlue' => 'Светлосиньо',
|
||||||
'LightGreen' => 'Светлозелено',
|
'LightGreen' => 'Светлозелено',
|
||||||
'LimeGreen' => 'Липовозелено',
|
'LimeGreen' => 'Липовозелено',
|
||||||
'Magenta' => 'Лилаво-червено (Маджента)',
|
'Magenta' => 'Лилаво-червено (Маджента)',
|
||||||
'Olive' => 'Тъмно жълто-зелено',
|
'Olive' => 'Тъмно жълто-зелено',
|
||||||
'Orange' => 'Оранжево',
|
'Orange' => 'Оранжево',
|
||||||
'OrangeRed' => 'Оранжево-червено',
|
'OrangeRed' => 'Оранжево-червено',
|
||||||
'Purple' => 'Лилаво',
|
'Purple' => 'Лилаво',
|
||||||
'Red' => 'Червено',
|
'Red' => 'Червено',
|
||||||
'RoyalBlue' => 'Кралско синьо',
|
'RoyalBlue' => 'Кралско синьо',
|
||||||
'SeaGreen' => 'Морско зелено',
|
'SeaGreen' => 'Морско зелено',
|
||||||
'Sienna' => 'Златисто-жълто (Охра)',
|
'Sienna' => 'Златисто-жълто (Охра)',
|
||||||
'Silver' => 'Сребърно',
|
'Silver' => 'Сребърно',
|
||||||
'Tan' => 'Жълто-кафяво',
|
'Tan' => 'Жълто-кафяво',
|
||||||
'Teal' => 'Синьо-зелено',
|
'Teal' => 'Синьо-зелено',
|
||||||
'Violet' => 'Виолетово',
|
'Violet' => 'Виолетово',
|
||||||
'White' => 'Бяло',
|
'White' => 'Бяло',
|
||||||
'Yellow' => 'Жълто',
|
'Yellow' => 'Жълто',
|
||||||
'YellowGreen' => 'Жълто-зелено',
|
'YellowGreen' => 'Жълто-зелено',
|
||||||
'redirectto' => 'Пренасочване към:',
|
'redirectto' => 'Пренасочване към:',
|
||||||
'nonhttp' => 'Заявен е не-http линк:',
|
'nonhttp' => 'Заявен е не-http линк:',
|
||||||
'httpredir' => 'Ако не работи, опитай това:',
|
'httpredir' => 'Ако не работи, опитай това:',
|
||||||
'actions' => 'Действия',
|
'actions' => 'Действия',
|
||||||
'sesip' => 'IP-адрес',
|
'sesip' => 'IP-адрес',
|
||||||
'css' => 'CSS стил',
|
'css' => 'CSS стил',
|
||||||
'memberexpire' => 'Изтичане на сесията на членове (минути)',
|
'memberexpire' => 'Изтичане на сесията на членове (минути)',
|
||||||
'guestexpire' => 'Изтичане на сесията за гости (минути)',
|
'guestexpire' => 'Изтичане на сесията за гости (минути)',
|
||||||
'kickpenalty' => 'Наказание с изгонване (минути)',
|
'kickpenalty' => 'Наказание с изгонване (минути)',
|
||||||
'entrywait' => 'Време за изчакване в чакалнята (секунди)',
|
'entrywait' => 'Време за изчакване в чакалнята (секунди)',
|
||||||
'captchatime' => 'Валидност на Captcha-та (секунди)',
|
'captchatime' => 'Валидност на Captcha-та (секунди)',
|
||||||
'messageexpire' => 'Съобщенията изтичат след (минути)',
|
'messageexpire' => 'Съобщенията изтичат след (минути)',
|
||||||
'messagelimit' => 'Лимит на съобщенията (публичен)',
|
'messagelimit' => 'Лимит на съобщенията (публичен)',
|
||||||
'maxmessage' => 'Максимална дължина на съобщението',
|
'maxmessage' => 'Максимална дължина на съобщението',
|
||||||
'confirm' => 'Сигурен ли си?',
|
'confirm' => 'Сигурен ли си?',
|
||||||
'yes' => 'Да',
|
'yes' => 'Да',
|
||||||
'no' => 'Не',
|
'no' => 'Не',
|
||||||
'colbg' => 'Цвят на фона',
|
'colbg' => 'Цвят на фона',
|
||||||
'coltxt' => 'Цвят на текста',
|
'coltxt' => 'Цвят на текста',
|
||||||
'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' => 'Име на чата',
|
'chatname' => 'Име на чата',
|
||||||
'destroy' => 'Унищожи чата',
|
'destroy' => 'Унищожи чата',
|
||||||
'destroyed' => 'Успешно унищожи чата',
|
'destroyed' => 'Успешно унищожи чата',
|
||||||
'topic' => 'Тема',
|
'topic' => 'Тема',
|
||||||
'passreset' => 'Нулирай парола',
|
'passreset' => 'Нулирай парола',
|
||||||
'cantresetpass' => 'Не мога да нулирам паролата',
|
'cantresetpass' => 'Не мога да нулирам паролата',
|
||||||
'succpassreset' => 'Успешно нулира паролата',
|
'succpassreset' => 'Успешно нулира паролата',
|
||||||
'entermsg' => '%s влезе в чата.',
|
'entermsg' => '%s влезе в чата.',
|
||||||
'exitmsg' => '%s напусна чата.',
|
'exitmsg' => '%s напусна чата.',
|
||||||
'memregmsg' => '%s вече е регистриран член.',
|
'memregmsg' => '%s вече е регистриран член.',
|
||||||
'suregmsg' => '%s вече е регистриран кандидат.',
|
'suregmsg' => '%s вече е регистриран кандидат.',
|
||||||
'kickmsg' => '%s беше изгонен.',
|
'kickmsg' => '%s беше изгонен.',
|
||||||
'multikickmsg' => '%s бяха изгонени.',
|
'multikickmsg' => '%s бяха изгонени.',
|
||||||
'allkickmsg' => 'Всички гости бяха изгонени.',
|
'allkickmsg' => 'Всички гости бяха изгонени.',
|
||||||
'cleanmsg' => '%s беше почистена.',
|
'cleanmsg' => '%s беше почистена.',
|
||||||
'sendallmsg' => '%s - ',
|
'sendallmsg' => '%s - ',
|
||||||
'sendmemmsg' => '[М] %s - ',
|
'sendmemmsg' => '[М] %s - ',
|
||||||
'sendmodmsg' => '[Екип] %s - ',
|
'sendmodmsg' => '[Екип] %s - ',
|
||||||
'sendadmmsg' => '[Админ] %s - ',
|
'sendadmmsg' => '[Админ] %s - ',
|
||||||
'sendprvmsg' => '[%1$s до %2$s] - ',
|
'sendprvmsg' => '[%1$s до %2$s] - ',
|
||||||
'msgsendall' => 'Съобщение до всички',
|
'msgsendall' => 'Съобщение до всички',
|
||||||
'msgsendmem' => 'Съобщение само до членовете',
|
'msgsendmem' => 'Съобщение само до членовете',
|
||||||
'msgsendmod' => 'Съобщение само до екипа',
|
'msgsendmod' => 'Съобщение само до екипа',
|
||||||
'msgsendadm' => 'Съобщение само до администраторите',
|
'msgsendadm' => 'Съобщение само до администраторите',
|
||||||
'msgsendprv' => 'Лично съобщение',
|
'msgsendprv' => 'Лично съобщение',
|
||||||
'numnotes' => 'Брой версии на бележки, които да се пазят',
|
'numnotes' => 'Брой версии на бележки, които да се пазят',
|
||||||
'revisions' => 'Версии:',
|
'revisions' => 'Версии:',
|
||||||
'older' => 'По-стари',
|
'older' => 'По-стари',
|
||||||
'newer' => 'По-нови',
|
'newer' => 'По-нови',
|
||||||
'accessdenied' => 'Достъпът е забранен',
|
'accessdenied' => 'Достъпът е забранен',
|
||||||
'loggedinas' => 'В момента си логнат като %s и нямаш достъп до тази част.',
|
'loggedinas' => 'В момента си логнат като %s и нямаш достъп до тази част.',
|
||||||
'newnickname' => 'Нов ник:',
|
'newnickname' => 'Нов ник:',
|
||||||
'nicknametaken' => 'Този ник се използва от друг',
|
'nicknametaken' => 'Този ник се използва от друг',
|
||||||
'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 е необходима за избрния драйвер за базата данни. Моля, първо я инсталирайте.',
|
||||||
'jsonextrequired' => 'Добавката json за PHP е необходима за тази функционалност. Моля, първо я инсталирайте.',
|
'jsonextrequired' => 'Добавката json за PHP е необходима за тази функционалност. Моля, първо я инсталирайте.',
|
||||||
'sendmail' => 'Изпрати мейл при ново публично съобщение',
|
'sendmail' => 'Изпрати мейл при ново публично съобщение',
|
||||||
'mailsender' => 'Изпрати мейл, използвайки този адрес',
|
'mailsender' => 'Изпрати мейл, използвайки този адрес',
|
||||||
'mailreceiver' => 'Изпрати мейл до този адрес',
|
'mailreceiver' => 'Изпрати мейл до този адрес',
|
||||||
'modfallback' => 'Използвай чакалня, ако няма модератор да одобрява гостите',
|
'modfallback' => 'Използвай чакалня, ако няма модератор да одобрява гостите',
|
||||||
'regpass' => 'Повтори паролата <br>за да се регистрираш',
|
'regpass' => 'Повтори паролата <br>за да се регистрираш',
|
||||||
'guestreg' => 'Разреши на гостите да се регистрират сами',
|
'guestreg' => 'Разреши на гостите да се регистрират сами',
|
||||||
'asmember' => 'Като член',
|
'asmember' => 'Като член',
|
||||||
'assuguest' => 'Като кандидат',
|
'assuguest' => 'Като кандидат',
|
||||||
'fatalerror' => 'Фатална грешка',
|
'fatalerror' => 'Фатална грешка',
|
||||||
'prevmatch' => 'Съвпадението ти беше както следва',
|
'prevmatch' => 'Съвпадението ти беше както следва',
|
||||||
'matchtoolong' => 'Съвпадението ти беше прекалено дълго. Може да използваш най-много 255 символа. Опитай се да го разделиш.',
|
'matchtoolong' => 'Съвпадението ти беше прекалено дълго. Може да използваш най-много 255 символа. Опитай се да го разделиш.',
|
||||||
'nocache' => 'Автоматично скролиране (за старите браузъри или сортиране от горе надолу).',
|
'nocache' => 'Автоматично скролиране (за старите браузъри или сортиране от горе надолу).',
|
||||||
'disablepm' => 'Забрани личните съобщения',
|
'disablepm' => 'Забрани личните съобщения',
|
||||||
'disablechat' => 'Забрани чата',
|
'disablechat' => 'Забрани чата',
|
||||||
'disabletext' => 'Съобщение относно забранения чат (html)',
|
'disabletext' => 'Съобщение относно забранения чат (html)',
|
||||||
'disabledtext' => 'Временно забранен',
|
'disabledtext' => 'Временно забранен',
|
||||||
'defaulttz' => 'Часова зона по подрзбиране',
|
'defaulttz' => 'Часова зона по подрзбиране',
|
||||||
'tz' => 'Часова зона',
|
'tz' => 'Часова зона',
|
||||||
'optional' => '(опционално)',
|
'optional' => '(опционално)',
|
||||||
'userloggedin' => 'Потребителят с това потребителско име е вече логнат.',
|
'userloggedin' => 'Потребителят с това потребителско име е вече логнат.',
|
||||||
'regednick' => 'Този ник е на регистриран член.',
|
'regednick' => 'Този ник е на регистриран член.',
|
||||||
'eninbox' => 'Позволи офлайн пощенска кутия',
|
'eninbox' => 'Позволи офлайн пощенска кутия',
|
||||||
'inboxmsgs' => 'Прочети %d съобщения в пощенската ти кутия',
|
'inboxmsgs' => 'Прочети %d съобщения в пощенската ти кутия',
|
||||||
'offline' => '(офлайн)',
|
'offline' => '(офлайн)',
|
||||||
'deleteacc' => 'Изтрий акаунт',
|
'deleteacc' => 'Изтрий акаунт',
|
||||||
'eninnone' => 'За никого',
|
'eninnone' => 'За никого',
|
||||||
'eninall' => 'За всички',
|
'eninall' => 'За всички',
|
||||||
'eninmem' => 'Само за членове',
|
'eninmem' => 'Само за членове',
|
||||||
'eninstaff' => 'Само за екипа',
|
'eninstaff' => 'Само за екипа',
|
||||||
'eninadmin' => 'Само за администратори',
|
'eninadmin' => 'Само за администратори',
|
||||||
'nickregex' => 'Регулярен израз за никове',
|
'nickregex' => 'Регулярен израз за никове',
|
||||||
'passregex' => 'Регулярен израз за пароли',
|
'passregex' => 'Регулярен израз за пароли',
|
||||||
'externalcss' => 'Линк към външен CSS файл',
|
'externalcss' => 'Линк към външен CSS файл',
|
||||||
'greetingmsg' => 'Добре дошъл, %s!',
|
'greetingmsg' => 'Добре дошъл, %s!',
|
||||||
'entryhelp' => 'Ако този фрейм не се презареди след %d секунди, ще е необходимо да позволите автоматичното презареждане (meta презареждане) в своя браузър. Също се уверете, че нямате уеб филтър, локален филтър или добавка за браузъра, която да блокира автоматичното презареждане! Такива са например "Polipo", "NoScript", и други.<br>Възможно решение е (също в случай на грешки при презареждане на ниво сървър/прокси) да използвате бутона за ръчно презареждане на вашия браузър.',
|
'entryhelp' => 'Ако този фрейм не се презареди след %d секунди, ще е необходимо да позволите автоматичното презареждане (meta презареждане) в своя браузър. Също се уверете, че нямате уеб филтър, локален филтър или добавка за браузъра, която да блокира автоматичното презареждане! Такива са например "Polipo", "NoScript", и други.<br>Възможно решение е (също в случай на грешки при презареждане на ниво сървър/прокси) да използвате бутона за ръчно презареждане на вашия браузър.',
|
||||||
'enablegreeting' => 'Покажи приветствено съобщение преди да покажеш самото съобщение',
|
'enablegreeting' => 'Покажи приветствено съобщение преди да покажеш самото съобщение',
|
||||||
'unban' => 'Премахни бан',
|
'unban' => 'Премахни бан',
|
||||||
'sortupdown' => 'Подреди съобщенията от горе надолу',
|
'sortupdown' => 'Подреди съобщенията от горе надолу',
|
||||||
'sortframe' => 'Преподредба',
|
'sortframe' => 'Преподредба',
|
||||||
'cs' => 'Чувствително към малки и големи букви',
|
'cs' => 'Чувствително към малки и големи букви',
|
||||||
'hidechatters' => 'Скрий списъка с потребители',
|
'hidechatters' => 'Скрий списъка с потребители',
|
||||||
'enfileupload' => 'Позволи качването на файлове',
|
'enfileupload' => 'Позволи качването на файлове',
|
||||||
'msgattache' => 'Прикачен файл',
|
'msgattache' => 'Прикачен файл',
|
||||||
'filenotfound' => 'Файлът не е намерен!',
|
'filenotfound' => 'Файлът не е намерен!',
|
||||||
'maxuploadsize' => 'Максимален размер на файл в KB',
|
'maxuploadsize' => 'Максимален размер на файл в KB',
|
||||||
'maxsize' => 'Макс %d KB',
|
'maxsize' => 'Макс %d KB',
|
||||||
'cssupdate' => 'Забележка: CSS-ът по подразбиране е вече вграден в кода и може да бъде премахнат от CSS настройките',
|
'cssupdate' => 'Забележка: CSS-ът по подразбиране е вече вграден в кода и може да бъде премахнат от CSS настройките',
|
||||||
'manualrefresh' => 'Необходимо ръчно опресняване',
|
'manualrefresh' => 'Необходимо ръчно опресняване',
|
||||||
'personalnotes' => 'Лични бележки',
|
'personalnotes' => 'Лични бележки',
|
||||||
'filtermodkick' => 'Прилагай филтъра за изгонване и за модераторите',
|
'filtermodkick' => 'Прилагай филтъра за изгонване и за модераторите',
|
||||||
];
|
];
|
||||||
|
368
lang_cz.php
Normal file
368
lang_cz.php
Normal file
@ -0,0 +1,368 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Czech translation
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
|
*
|
||||||
|
* 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: čeština
|
||||||
|
$T=[
|
||||||
|
'nodb' => 'Chyba databáze!',
|
||||||
|
'nodbsetup' => 'Žádné připojení k databázi, prosím vytvořte databázi a upravte script pro použití správné databáze se zadaným uživatelským jménem a heslem!',
|
||||||
|
'changelang' => 'Změnit jazyk:',
|
||||||
|
'expire' => 'Neplatná/relace vypršela',
|
||||||
|
'kicked' => 'Byl jsi vyhozen!',
|
||||||
|
'invalnick' => 'Neplatná přezdívka (%1$d znaků maximální a musí odpovídat regulární výraz "%2$s")',
|
||||||
|
'invalpass' => 'Neplatné heslo (Alespoň %1$d znaků a musí odpovídat regulární výraz "%2$s")',
|
||||||
|
'noconfirm' => 'Hesla se neshodují!',
|
||||||
|
'incorregex' => 'Nesprávný regulární výraz!',
|
||||||
|
'bottom' => 'Dolní',
|
||||||
|
'top' => 'Horní',
|
||||||
|
'choose' => '(vybrat)',
|
||||||
|
'setup' => 'Nastavení Chatu',
|
||||||
|
'init' => 'Počáteční nastavení',
|
||||||
|
'sulogin' => 'Superadmin Přihlášení',
|
||||||
|
'sunick' => 'Superadmin Přezdívka:',
|
||||||
|
'supass' => 'Superadmin Heslo:',
|
||||||
|
'suconfirm' => 'Potvrzení hesla:',
|
||||||
|
'susuccess' => 'Byl jsi úspěšně zaregistrován!',
|
||||||
|
'initbtn' => 'Inicializace chatu',
|
||||||
|
'initdbexist' => 'Databázové tabulky již existují! Chcete-li pokračovat, musíte tyto tabulky nejprve ručně odstranit.',
|
||||||
|
'initsuexist' => 'Superadmin již existuje!',
|
||||||
|
'initgosetup' => 'Přejděte na stránku nastavení',
|
||||||
|
'captcha' => 'Captcha',
|
||||||
|
'enabled' => 'Povoleno',
|
||||||
|
'onlyguests' => 'Pouze pro hosty',
|
||||||
|
'disabled' => 'Zakázáno',
|
||||||
|
'simple' => 'Jednoduchý',
|
||||||
|
'moderate' => 'Moderate',
|
||||||
|
'extreme' => 'Extrémní',
|
||||||
|
'nick' => 'Přezdívka:',
|
||||||
|
'pass' => 'Heslo:',
|
||||||
|
'globalloginpass' => 'Globální heslo:',
|
||||||
|
'login' => 'Přihlásit se',
|
||||||
|
'dbupdate' => 'Databáze byla úspěšně aktualizována!',
|
||||||
|
'sysmessages' => 'Systémové zprávy',
|
||||||
|
'msgenter' => 'Vstup',
|
||||||
|
'msgexit' => 'Odchod',
|
||||||
|
'msgmemreg' => 'Registrovaný člen',
|
||||||
|
'msgsureg' => 'Žadatel se zaregistroval',
|
||||||
|
'msgkick' => 'Vyhozen',
|
||||||
|
'msgmultikick' => 'Vyhozeno více členů',
|
||||||
|
'msgallkick' => 'Všichni byli vyhozeni',
|
||||||
|
'msgclean' => 'Místnost byla vyčištěna',
|
||||||
|
'dateformat' => '<a target="_blank" href="http://php.net/manual/en/function.date.php#refsect1-function.date-parameters">Formát datumu</a>',
|
||||||
|
'admfunc' => 'Administrativní funkce',
|
||||||
|
'allguests' => 'Všichni hosté',
|
||||||
|
'cleanmsgs' => 'Vyčistit zprávy',
|
||||||
|
'room' => 'Celá místnost',
|
||||||
|
'selection' => 'Výběr',
|
||||||
|
'cleannick' => 'Následující přezdívka:',
|
||||||
|
'clean' => 'Vyčistit',
|
||||||
|
'kickchat' => 'Vyhodit chatujícího (%d minutes)',
|
||||||
|
'kickreason' => 'Důvod vyhození:',
|
||||||
|
'kickpurge' => 'Vyčistit zprávy',
|
||||||
|
'kick' => 'Vyhodit',
|
||||||
|
'logoutinact' => 'Odhlásit neaktivní chatující',
|
||||||
|
'logout' => 'Odhlásit',
|
||||||
|
'sessions' => 'Zobrazit aktivní relace',
|
||||||
|
'view' => 'Zobrazit',
|
||||||
|
'filter' => 'Filtr',
|
||||||
|
'guestacc' => 'Změnit přístup pro hosty',
|
||||||
|
'guestallow' => 'Povolit',
|
||||||
|
'guestwait' => 'Povolit s čekající možností',
|
||||||
|
'adminallow' => 'Požadovat schválení moderátorem',
|
||||||
|
'guestdisallow' => 'Jen členové',
|
||||||
|
'addsuguest' => 'Zaregistrovat žadatele',
|
||||||
|
'register' => 'Registrovat',
|
||||||
|
'admmembers' => 'Členové',
|
||||||
|
'memdel' => 'Odstranit z databáze',
|
||||||
|
'memdeny' => 'Zamítnout přístup (!)',
|
||||||
|
'memsuguest' => 'Nastavit na žadatele (G)',
|
||||||
|
'memreg' => 'Nastavte na řádného člena',
|
||||||
|
'memmod' => 'Nastavit na moderátory (M)',
|
||||||
|
'memsumod' => 'Nastavit na supermod (SM)',
|
||||||
|
'memadm' => 'Nastavit pro Administrátory (A)',
|
||||||
|
'change' => 'Změnit',
|
||||||
|
'regguest' => 'Registrovat hosta',
|
||||||
|
'regmem' => 'Registrovat nového Člena',
|
||||||
|
'sessact' => 'Aktivní relace',
|
||||||
|
'sessnick' => 'Přezdívka',
|
||||||
|
'sesstimeout' => 'Časový limit (Timeout) v',
|
||||||
|
'sessua' => 'User-Agent',
|
||||||
|
'fid' => 'ID filtru:',
|
||||||
|
'match' => 'Match',
|
||||||
|
'replace' => 'Nahradit',
|
||||||
|
'allowpm' => 'Povolit v PM',
|
||||||
|
'regex' => 'Regex',
|
||||||
|
'apply' => 'Použít',
|
||||||
|
'newfilter' => 'Nový filtr:',
|
||||||
|
'add' => 'Přidat',
|
||||||
|
'noframes' => 'Tento chat používá <b> rámeček </ b>. Povolte rámečky ve vašem prohlížeči nebo použijte jiný!',
|
||||||
|
'delselmes' => 'Odstranit vybrané zprávy',
|
||||||
|
'staffnotes' => 'Poznámky zaměstnanců',
|
||||||
|
'adminnotes' => 'Poznámky Administrátorů',
|
||||||
|
'notessaved' => 'Poznámky uloženy!',
|
||||||
|
'lastedited' => 'Naposledy upraveno %1$s at %2$s',
|
||||||
|
'savenotes' => 'Uložit poznámky',
|
||||||
|
'waitingroom' => 'Čekárna',
|
||||||
|
'waittext' => 'Vítejte %1$s, vaše přihlášení bylo odloženo, přístup k chatu je možný v %2$d sekundách.',
|
||||||
|
'admwaittext' => 'Vítejte %1$s, vaše přihlašovací údaje byly odloženy, můžete k chatu přistupovat až to moderátor dovolí.',
|
||||||
|
'waitreload' => 'Pokud se tato stránka neobnoví každých %d sekund, použijte tlačítko níže, abyste ji znovu načítali ručně!',
|
||||||
|
'reload' => 'Znovu načíst',
|
||||||
|
'rules' => 'Pravidla',
|
||||||
|
'talkto' => 'Mluvit s',
|
||||||
|
'toall' => 'Všem',
|
||||||
|
'tomem' => 'Jen členové',
|
||||||
|
'tostaff' => 'Jen zaměstnanci',
|
||||||
|
'toadmin' => 'Jen administrátoři',
|
||||||
|
'alsopurge' => 'Také vyčistit zprávy',
|
||||||
|
'dellast' => 'Vymazat poslední zprávu',
|
||||||
|
'delall' => 'Vymazat všechny zprávy',
|
||||||
|
'switchsingle' => 'Přepnout na jednorázovou linku',
|
||||||
|
'switchmulti' => 'Přepnout na víceřádkový',
|
||||||
|
'help' => 'Pomoc',
|
||||||
|
'helpguest' => 'Všechny funkce by měly být docela samo vysvětlující, stačí použít tlačítka. Ve vašem profilu můžete nastavit obnovovací frekvenci a barvu písma a ignorovat uživatele. <br> <u>Poznámka:</u> Jedná se o chat, takže pokud nebudete mluvit, budete automaticky po chvíli odhlášeni.',
|
||||||
|
'helpembed' => 'Pokud chcete vložit obrázek do příspěvku, jednoduše jej vložte [img] před vaší adresou URL obrázku. Například: [img]http://example.com/images/file.jpg vloží obrázek do příspěvku.',
|
||||||
|
'helpmem' => 'Členové: Ve svém profilu budete mít další možnosti. Můžete nastavit tvar písma, změnit heslo kdykoli a samozřejmě můžete svůj účet smazat.',
|
||||||
|
'helpmod' => 'Moderátoři: Uvidíte správce v dolní části. Zobrazí se stránka, ve které můžete čistit místnost, vyhodit cahtující, prohlížet všechny aktivní relace a v případě potřeby úplně zakázat přístup pro hosty.',
|
||||||
|
'helpadm' => 'Administrátoři: Budete dále moci registrovat hosty, editovat členy a registrovat nové přezdívky.',
|
||||||
|
'profile' => 'Váš profil',
|
||||||
|
'ignore' => 'Ignorovat',
|
||||||
|
'unignore' => 'Již neignorovat',
|
||||||
|
'refreshrate' => 'Obnovovací frekvence (5-150 sekund)',
|
||||||
|
'fontcolour' => 'Barva písma',
|
||||||
|
'viewexample' => 'Zobrazit příklady',
|
||||||
|
'bgcolour' => 'Barva pozadí',
|
||||||
|
'fontface' => 'Tvar písma',
|
||||||
|
'roomdefault' => 'Výchozí místnost',
|
||||||
|
'bold' => 'Tučně',
|
||||||
|
'italic' => 'Kurzíva',
|
||||||
|
'small' => 'Malý',
|
||||||
|
'fontexample' => 'Příklad vybraného písma',
|
||||||
|
'timestamps' => 'Zobrazit časové značky',
|
||||||
|
'embed' => 'Embed obzrázky',
|
||||||
|
'incognito' => 'Režim inkognito',
|
||||||
|
'changenick' => 'Změnit přezdívku',
|
||||||
|
'changepass' => 'Změnit heslo',
|
||||||
|
'oldpass' => 'Staré heslo:',
|
||||||
|
'newpass' => 'Nové heslo:',
|
||||||
|
'confirmpass' => 'Potvrdit nové heslo:',
|
||||||
|
'savechanges' => 'Uložit',
|
||||||
|
'reloadpb' => 'Znovu načíst poštovní schránku',
|
||||||
|
'reloadmsgs' => 'Znovu načíst zprávy',
|
||||||
|
'chgprofile' => 'Profil',
|
||||||
|
'adminbtn' => 'Admin',
|
||||||
|
'admnotes' => 'Admin poznámky',
|
||||||
|
'notes' => 'Poznámky',
|
||||||
|
'clone' => 'Klonovat',
|
||||||
|
'randh' => 'Pravidla & Pomoc',
|
||||||
|
'exit' => 'Opustit chat',
|
||||||
|
'bye' => 'Sbohem %s, navštivte nás brzy!',
|
||||||
|
'colourtable' => 'Barevný',
|
||||||
|
'backtoprofile' => 'Zpět do profilu',
|
||||||
|
'copy' => 'Kopírovat:',
|
||||||
|
'choosecol' => 'Hosté, vyberte barvu:',
|
||||||
|
'randomcol' => 'Náhodná barva',
|
||||||
|
'enter' => 'Vstoupit',
|
||||||
|
'error' => 'Chyba',
|
||||||
|
'members' => 'Členové',
|
||||||
|
'guests' => 'Hosté',
|
||||||
|
'approveguests' => '%d noví hsté ke schválení',
|
||||||
|
'allowchecked' => 'Povolit vybrané',
|
||||||
|
'allowall' => 'Povolit vše',
|
||||||
|
'denychecked' => 'Zakázat vybrané',
|
||||||
|
'denyall' => 'Zakázat vše',
|
||||||
|
'denymessage' => 'Poslat zprávu odepřeným:',
|
||||||
|
'butallowdeny' => 'Odeslat',
|
||||||
|
'waitempty' => 'Žádná další žádost o schválení',
|
||||||
|
'wrongcaptcha' => 'Špatná Captcha',
|
||||||
|
'captchaexpire' => 'Captcha byla již použitá nebo vypršel čas',
|
||||||
|
'noguests' => 'Omlouváme se, v současné době pouze členové!',
|
||||||
|
'curchat' => 'Právě teď %d chatujících v místnosti:',
|
||||||
|
'cantreg' => 'Nelze zaregistrovat %s',
|
||||||
|
'alreadyreged' => '%s je již zaregistrovaný.',
|
||||||
|
'successreg' => '%s byl úspěšně zaregistrován..',
|
||||||
|
'cantchgstat' => 'Nelze změnit status uživatele %s',
|
||||||
|
'succdel' => '%s byl úspěšně vymazán z databáze.',
|
||||||
|
'succchg' => 'Status %s byl úspěšně změněn.',
|
||||||
|
'wrongpass' => 'Špatné heslo!',
|
||||||
|
'wrongglobalpass' => 'Špatné globální heslo!',
|
||||||
|
'succprofile' => 'Váš profil byl úspěšně uložen.',
|
||||||
|
'backtologin' => 'Zpět na přihlašovací stránku.',
|
||||||
|
'backtochat' => 'Zpět do chatu.',
|
||||||
|
'Beige' => 'Béžový',
|
||||||
|
'Black' => 'Černý',
|
||||||
|
'Blue' => 'Modrý',
|
||||||
|
'BlueViolet' => 'Modro-fialová',
|
||||||
|
'Brown' => 'Hnědá',
|
||||||
|
'Cyan' => 'Tyrkysová',
|
||||||
|
'DarkBlue' => 'Tmavě modrá',
|
||||||
|
'DarkGreen' => 'Tmavě zelená',
|
||||||
|
'DarkRed' => 'Tmavě červená',
|
||||||
|
'DarkViolet' => 'Tmavě fialová',
|
||||||
|
'DeepSkyBlue' => 'Modré nebe',
|
||||||
|
'Gold' => 'Zlatá',
|
||||||
|
'Grey' => 'Šedá',
|
||||||
|
'Green' => 'Zelená',
|
||||||
|
'HotPink' => 'Hot růžová',
|
||||||
|
'Indigo' => 'Indigo',
|
||||||
|
'LightBlue' => 'Světle modrá',
|
||||||
|
'LightGreen' => 'Světle zelená',
|
||||||
|
'LimeGreen' => 'Limetkově zelená',
|
||||||
|
'Magenta' => 'Purpurová',
|
||||||
|
'Olive' => 'Olivová',
|
||||||
|
'Orange' => 'Oranžová',
|
||||||
|
'OrangeRed' => 'oranžově-červená',
|
||||||
|
'Purple' => 'Purpurová',
|
||||||
|
'Red' => 'Červená',
|
||||||
|
'RoyalBlue' => 'Královsky modrá',
|
||||||
|
'SeaGreen' => 'Zelené moře',
|
||||||
|
'Sienna' => 'Oranžově žlutá',
|
||||||
|
'Silver' => 'Stříbrný',
|
||||||
|
'Tan' => 'Bronz',
|
||||||
|
'Teal' => 'Teal',
|
||||||
|
'Violet' => 'Fialová',
|
||||||
|
'White' => 'Bílá',
|
||||||
|
'Yellow' => 'Žlutá',
|
||||||
|
'YellowGreen' => 'Žluto zelená',
|
||||||
|
'redirectto' => 'Přesměrování na:',
|
||||||
|
'nonhttp' => 'Požadovaný odkaz bez http:',
|
||||||
|
'httpredir' => 'Pokud to nefunguje, zkuste tohle:',
|
||||||
|
'actions' => 'Akce',
|
||||||
|
'sesip' => 'IP-Addresa',
|
||||||
|
'css' => 'CSS Styl',
|
||||||
|
'memberexpire' => 'Členský časový limit (minut)',
|
||||||
|
'guestexpire' => 'Host timeout (minut)',
|
||||||
|
'kickpenalty' => 'Kick penalty (minut)',
|
||||||
|
'entrywait' => 'Čas čekací místnosti (sekund)',
|
||||||
|
'captchatime' => 'Časový limit Captcha (sekund)',
|
||||||
|
'messageexpire' => 'Časový limit zprávy (minut)',
|
||||||
|
'messagelimit' => 'Limit zprávy (veřejnost)',
|
||||||
|
'maxmessage' => 'Maximální délka zprávy',
|
||||||
|
'confirm' => 'Jsi si jistý?',
|
||||||
|
'yes' => 'Ano',
|
||||||
|
'no' => 'Ne',
|
||||||
|
'colbg' => 'Barva pozadí',
|
||||||
|
'coltxt' => 'Barva textu',
|
||||||
|
'maxname' => 'Maximální délka přezdívky',
|
||||||
|
'minpass' => 'Minimální délka hesla',
|
||||||
|
'defaultrefresh' => 'Výchozí doba načtení zprávy (reload) (sekund)',
|
||||||
|
'suguests' => 'Povolit žadatele',
|
||||||
|
'rulestxt' => 'Pravidla (html)',
|
||||||
|
'imgembed' => 'Obrázky v rámečku (embed)',
|
||||||
|
'trackip' => 'Zobrazit IP relace',
|
||||||
|
'captchachars' => 'Znaky použité v Captcha',
|
||||||
|
'memkick' => 'Členové mohou vyhazovat, pokud není přítomen žádný moderátor',
|
||||||
|
'forceredirect' => 'Vynucené přesměrování',
|
||||||
|
'redirect' => 'Vlastní skript přesměrování',
|
||||||
|
'backuprestore' => 'Zálohování a obnovení',
|
||||||
|
'backup' => 'Zalohování',
|
||||||
|
'restore' => 'Obnovení',
|
||||||
|
'settings' => 'Nastavení',
|
||||||
|
'linkfilter' => 'Filtr odkazů',
|
||||||
|
'chatname' => 'Název chatu',
|
||||||
|
'destroy' => 'Zničit chat',
|
||||||
|
'destroyed' => 'Chat byl úspěšně zničen',
|
||||||
|
'topic' => 'Téma',
|
||||||
|
'passreset' => 'Reset hesla',
|
||||||
|
'cantresetpass' => 'Nelze resetovat heslo',
|
||||||
|
'succpassreset' => 'Heslo bylo úspěšně resetováno',
|
||||||
|
'entermsg' => '%s vstoupil do chatu.',
|
||||||
|
'exitmsg' => '%s opustil chat.',
|
||||||
|
'memregmsg' => '%s se stal registrovaným členem.',
|
||||||
|
'suregmsg' => '%s je nyní registrovaným žadatelem.',
|
||||||
|
'kickmsg' => '%s byl vyhozen.',
|
||||||
|
'multikickmsg' => '%s byli vyhozeni..',
|
||||||
|
'allkickmsg' => 'Všichni hosté byli vyhozeni.',
|
||||||
|
'cleanmsg' => '%s byl vyčištěn.',
|
||||||
|
'sendallmsg' => '%s - ',
|
||||||
|
'sendmemmsg' => '[M] %s - ',
|
||||||
|
'sendmodmsg' => '[Personál] %s - ',
|
||||||
|
'sendadmmsg' => '[Administrátor] %s - ',
|
||||||
|
'sendprvmsg' => '[%1$s do %2$s] - ',
|
||||||
|
'msgsendall' => 'Zpráva všem',
|
||||||
|
'msgsendmem' => 'Zpráva jen pro členy',
|
||||||
|
'msgsendmod' => 'Zpráva jen pro personál',
|
||||||
|
'msgsendadm' => 'Zpráva jen Administrátorům',
|
||||||
|
'msgsendprv' => 'Soukromá zpráva',
|
||||||
|
'numnotes' => 'Počet poznámek, které je nutné zachovat',
|
||||||
|
'revisions' => 'Revize:',
|
||||||
|
'older' => 'Starší',
|
||||||
|
'newer' => 'Novější',
|
||||||
|
'accessdenied' => 'Přístup zamítnut',
|
||||||
|
'loggedinas' => 'Jste přihlášeni jako %s a nemáte přístup k této části.',
|
||||||
|
'newnickname' => 'Nová přezdívka:',
|
||||||
|
'nicknametaken' => 'Přezdívku již někdo používá',
|
||||||
|
'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.',
|
||||||
|
'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.',
|
||||||
|
'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_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.',
|
||||||
|
'jsonextrequired' => 'Pro tuto funkci je vyžadováno rozšíření PHP json. Nejprve ho nainstalujte.',
|
||||||
|
'sendmail' => 'Odeslat mail na novou veřejnou zprávu',
|
||||||
|
'mailsender' => 'Odeslat mail pomocí této adresy',
|
||||||
|
'mailreceiver' => 'Odeslat mail do této adresy',
|
||||||
|
'modfallback' => 'Zpět do čekaí místnosti, pokud není přítomen žádný moderátor, který schvaluje hosty',
|
||||||
|
'regpass' => 'Zopakujte heslo<br>pro registraci',
|
||||||
|
'guestreg' => 'Nechte hosty zaregistrovat se',
|
||||||
|
'asmember' => 'Jako členové',
|
||||||
|
'assuguest' => 'Jako žadatel',
|
||||||
|
'fatalerror' => 'Fatal error',
|
||||||
|
'prevmatch' => 'Vaše hledání bylo následující',
|
||||||
|
'matchtoolong' => 'Vaše hledání bylo příliš dlouhé. Můžete použít max. 255 znaků. Zkuste to rozdělit.',
|
||||||
|
'nocache' => 'Automatické procházení (pro staré prohlížeče nebo třídění od nejvyššího dole).',
|
||||||
|
'disablepm' => 'Zakázat soukromé zprávy',
|
||||||
|
'disablechat' => 'Vypnout chat',
|
||||||
|
'disabletext' => 'Deaktivovat zprávu v chatu (html)',
|
||||||
|
'disabledtext' => 'Dočasně zakázáno',
|
||||||
|
'defaulttz' => 'Výchozí časové pásmo',
|
||||||
|
'tz' => 'Časové pásmo',
|
||||||
|
'optional' => '(volitelný)',
|
||||||
|
'userloggedin' => 'Uživatel s touto přezdívkou je již přihlášen.',
|
||||||
|
'regednick' => 'Tato přezdívka používá registrovaný člen.',
|
||||||
|
'eninbox' => 'Povolit offline doručenou poštu ',
|
||||||
|
'inboxmsgs' => 'Přečtěte si %d zprávy ve vaší doručené poště',
|
||||||
|
'offline' => '(offline)',
|
||||||
|
'deleteacc' => 'Odstranit účet',
|
||||||
|
'eninnone' => 'Pro nikoho',
|
||||||
|
'eninall' => 'Pro všechny',
|
||||||
|
'eninmem' => 'Jen pro členy',
|
||||||
|
'eninstaff' => 'Jen pro personál',
|
||||||
|
'eninadmin' => 'Jen pro Administrátory',
|
||||||
|
'nickregex' => 'Přezdívka regex',
|
||||||
|
'passregex' => 'Heslo regex',
|
||||||
|
'externalcss' => 'Link pro externí CSS soubor',
|
||||||
|
'greetingmsg' => 'Vítej %s!',
|
||||||
|
'entryhelp' => 'Pokud tento snímek není znovu načten v% d sekundách, bude muset v prohlížeči povolit automatické přesměrování (meta refresh). Také se ujistěte, že žádný webový filtr, místní proxy nástroj nebo plugin pro prohlížeč nebrání automatickému obnovení! Mohlo by to být například "Polipo", "NoScript" atd.<br>Jako řešení (nebo v případě chyby načtení serveru / serveru proxy) můžete ručně obnovit tlačítka v dolní části.',
|
||||||
|
'enablegreeting' => 'Před zobrazením zpráv zobrazte uvítací zprávu',
|
||||||
|
'unban' => 'Odbanovat',
|
||||||
|
'sortupdown' => 'Seřadit zprávy shora dolů',
|
||||||
|
'sortframe' => 'Změňit uspořádání',
|
||||||
|
'cs' => 'Velká a malá písmena',
|
||||||
|
'hidechatters' => 'Skrýt seznam chatujících',
|
||||||
|
'enfileupload' => 'Povolit nahrávání souborů',
|
||||||
|
'msgattache' => 'Příloha',
|
||||||
|
'filenotfound' => 'Soubor nebyl nalezen!',
|
||||||
|
'maxuploadsize' => 'Maximální velikost nahrávaných souborů v KB',
|
||||||
|
'maxsize' => 'Max. %d KB',
|
||||||
|
'cssupdate' => 'Poznámka: Výchozí CSS je nyní napevno a může být odstraněn z nastavení CSS',
|
||||||
|
'manualrefresh' => 'Nutná ruční aktualizace ',
|
||||||
|
'personalnotes' => 'Osobní poznámky',
|
||||||
|
'filtermodkick' => 'Použít vyhazovací filtr na moderátory',
|
||||||
|
];
|
@ -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-2017 Daniel Winzen <d@winzen4.de>
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -241,6 +241,7 @@ $T=[
|
|||||||
'YellowGreen' => 'Gelbgrün',
|
'YellowGreen' => 'Gelbgrün',
|
||||||
'redirectto' => 'Leite weiter zu:',
|
'redirectto' => 'Leite weiter zu:',
|
||||||
'nonhttp' => 'Nicht-http Adresse angefordert:',
|
'nonhttp' => 'Nicht-http Adresse angefordert:',
|
||||||
|
'dangerousnonhttp' => 'Nicht-http Adresse angefordert. Kopieren Sie diesen Link und fügen ihn ein, falls Sie wirklich sicher sind.:',
|
||||||
'httpredir' => 'Wenn sie nicht funktioniert, probiere diese:',
|
'httpredir' => 'Wenn sie nicht funktioniert, probiere diese:',
|
||||||
'actions' => 'Aktionen',
|
'actions' => 'Aktionen',
|
||||||
'sesip' => 'IP-Adresse',
|
'sesip' => 'IP-Adresse',
|
||||||
@ -310,7 +311,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.',
|
||||||
|
@ -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-2017 Daniel Winzen <d@winzen4.de>
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -241,6 +241,7 @@ $I=[
|
|||||||
'YellowGreen' => 'Yellow green',
|
'YellowGreen' => 'Yellow green',
|
||||||
'redirectto' => 'Redirecting to:',
|
'redirectto' => 'Redirecting to:',
|
||||||
'nonhttp' => 'Non-http link requested:',
|
'nonhttp' => 'Non-http link requested:',
|
||||||
|
'dangerousnonhttp' => 'Dangerous non-http link requested, copy paste this link if you are really sure:',
|
||||||
'httpredir' => 'If it\'s not working, try this one:',
|
'httpredir' => 'If it\'s not working, try this one:',
|
||||||
'actions' => 'Actions',
|
'actions' => 'Actions',
|
||||||
'sesip' => 'IP-Address',
|
'sesip' => 'IP-Address',
|
||||||
@ -310,7 +311,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.',
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/*
|
/*
|
||||||
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Spanish translation
|
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Spanish translation
|
||||||
*
|
*
|
||||||
* Copyright (C) 2015-2017 Daniel Winzen <d@winzen4.de>
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -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.',
|
||||||
|
@ -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-2017 Daniel Winzen <d@winzen4.de>
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
|
@ -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-2017 Daniel Winzen <d@winzen4.de>
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
|
368
lang_it.php
Normal file
368
lang_it.php
Normal file
@ -0,0 +1,368 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Italian translation
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
|
*
|
||||||
|
* 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: Italiano
|
||||||
|
$T=[
|
||||||
|
'nodb' => 'Non cè collegamento al database!',
|
||||||
|
'nodbsetup' => 'Non cè collegamento con database, perfavore crea il database ed edita lo scipt, per utilizzare database giusto con utente e password creati',
|
||||||
|
'changelang' => 'Cambia lingua:',
|
||||||
|
'expire' => 'Sessione invalida',
|
||||||
|
'kicked' => 'Bannato!',
|
||||||
|
'invalnick' => 'Nome sbagliato (%1$d simboli al massimo e deve coincidere con il testo"%2$s")',
|
||||||
|
'invalpass' => 'Password sbagliata (Almeno %1$d simboli e deve coincidere con il testo "%2$s")',
|
||||||
|
'noconfirm' => 'Password inserite non coincidono!',
|
||||||
|
'incorregex' => 'Testo non corretto',
|
||||||
|
'bottom' => 'Giù',
|
||||||
|
'top' => 'Su',
|
||||||
|
'choose' => '(sclegli)',
|
||||||
|
'setup' => 'Impostare chat',
|
||||||
|
'init' => 'Impostazioni iniziali',
|
||||||
|
'sulogin' => 'Entrata per super-amministratore',
|
||||||
|
'sunick' => 'Nome super-amministratore:',
|
||||||
|
'supass' => 'Password super-amministratore:',
|
||||||
|
'suconfirm' => 'Conferma password:',
|
||||||
|
'susuccess' => 'Registrato con successo!',
|
||||||
|
'initbtn' => 'Inizio della chat',
|
||||||
|
'initdbexist' => 'Tabelle nel database esistono! Per continuare, prima devi eliminare tabelle manualmente.',
|
||||||
|
'initsuexist' => 'Super-amministratore è già esistente!',
|
||||||
|
'initgosetup' => 'Impostazioni Chat',
|
||||||
|
'captcha' => 'Captcha',
|
||||||
|
'enabled' => 'Abilitato',
|
||||||
|
'onlyguests' => 'Solo per ospiti',
|
||||||
|
'disabled' => 'Disabilitato',
|
||||||
|
'simple' => 'Facile',
|
||||||
|
'moderate' => 'Medio',
|
||||||
|
'extreme' => 'Difficile',
|
||||||
|
'nick' => 'Login:',
|
||||||
|
'pass' => 'Password:',
|
||||||
|
'globalloginpass' => 'Password globale:',
|
||||||
|
'login' => 'Entrare',
|
||||||
|
'dbupdate' => 'Database aggiornato!',
|
||||||
|
'sysmessages' => 'Messaggi del sistema',
|
||||||
|
'msgenter' => 'Entrata',
|
||||||
|
'msgexit' => 'Uscita',
|
||||||
|
'msgmemreg' => 'Registarto',
|
||||||
|
'msgsureg' => 'Richiedente registrato',
|
||||||
|
'msgkick' => 'Bannato',
|
||||||
|
'msgmultikick' => 'Bannati più volte',
|
||||||
|
'msgallkick' => 'Tutti bannati',
|
||||||
|
'msgclean' => 'Pulizia chat',
|
||||||
|
'dateformat' => '<a target="_blank" href="http://php.net/manual/ru/function.date.php#refsect1-function.date-parameters">Fuso Orario</a>',
|
||||||
|
'admfunc' => 'Funzioni del amministratore',
|
||||||
|
'allguests' => 'Tutti ospiti',
|
||||||
|
'cleanmsgs' => 'Cancella messaggi',
|
||||||
|
'room' => 'Stanza pubblica',
|
||||||
|
'selection' => 'Scelta',
|
||||||
|
'cleannick' => 'Al Nome:',
|
||||||
|
'clean' => 'Cancella',
|
||||||
|
'kickchat' => 'Ban (%d minuti)',
|
||||||
|
'kickreason' => 'Messaggio al bannato',
|
||||||
|
'kickpurge' => 'Pulizia messaggi',
|
||||||
|
'kick' => 'Kick',
|
||||||
|
'logoutinact' => 'Espelli partecipante',
|
||||||
|
'logout' => 'Logout',
|
||||||
|
'sessions' => 'Sessioni attive',
|
||||||
|
'view' => 'Visualizza',
|
||||||
|
'filter' => 'Filtro',
|
||||||
|
'guestacc' => 'Cambia entrata nella chat',
|
||||||
|
'guestallow' => 'Accettare',
|
||||||
|
'guestwait' => 'Accettare ospiti',
|
||||||
|
'adminallow' => 'Richiedere il permesso al moderatore',
|
||||||
|
'guestdisallow' => 'Solo membri',
|
||||||
|
'addsuguest' => 'Aggiungere candidato',
|
||||||
|
'register' => 'Registrare',
|
||||||
|
'admmembers' => 'Membri',
|
||||||
|
'memdel' => 'Eliminare dal database',
|
||||||
|
'memdeny' => 'Aggiungere membro (!)',
|
||||||
|
'memsuguest' => 'Aggiunzione al candidato (G)',
|
||||||
|
'memreg' => 'Aggiornare stato',
|
||||||
|
'memmod' => 'Aggiunzione moderatore (M)',
|
||||||
|
'memsumod' => 'Aggiunzione super-moderatore (SM)',
|
||||||
|
'memadm' => 'Aggiunzione amministratore (A)',
|
||||||
|
'change' => 'Cambia',
|
||||||
|
'regguest' => 'Registra opspiti',
|
||||||
|
'regmem' => 'Registra nuovo utente',
|
||||||
|
'sessact' => 'Sessioni attive',
|
||||||
|
'sessnick' => 'Nome',
|
||||||
|
'sesstimeout' => 'Tempo di attesa in',
|
||||||
|
'sessua' => 'User-Agent',
|
||||||
|
'fid' => 'Filtro ID:',
|
||||||
|
'match' => 'Coincidenza',
|
||||||
|
'replace' => 'Sostituire',
|
||||||
|
'allowpm' => 'Accettare in privato',
|
||||||
|
'regex' => 'Testo regolare',
|
||||||
|
'apply' => 'Salvare',
|
||||||
|
'newfilter' => 'Nuovo filtro:',
|
||||||
|
'add' => 'Aggiungere',
|
||||||
|
'noframes' => 'Questa chat utilizza <b>frames</b>. Perfavore, avvia il supporto nel tuo Browser o utilizza quello adatto!',
|
||||||
|
'delselmes' => 'Eliminare messaggi selezionati',
|
||||||
|
'staffnotes' => 'Note del supporto',
|
||||||
|
'adminnotes' => 'Note del amministratore',
|
||||||
|
'notessaved' => 'Note salvate!',
|
||||||
|
'lastedited' => 'Ultima redazione %1$s %2$s',
|
||||||
|
'savenotes' => 'Salvare note',
|
||||||
|
'waitingroom' => 'Degli ospiti',
|
||||||
|
'waittext' => 'Benvenuto %1$s, rimani in attesa, chat sarà disponibile tra %2$d secondi.',
|
||||||
|
'admwaittext' => 'Benvenuto %1$s, rimani in attesa, chat sarà disponibile dopo che moderazione accetta entrata.',
|
||||||
|
'waitreload' => 'Se questa pagina non risponde, non si aggiorna ogni %d secondi, utilizzate il tasto in basso, per ricaricare manualmente',
|
||||||
|
'reload' => 'Ricaricare',
|
||||||
|
'rules' => 'Regole',
|
||||||
|
'talkto' => 'Invia',
|
||||||
|
'toall' => 'Tutti nella chat',
|
||||||
|
'tomem' => 'Membri',
|
||||||
|
'tostaff' => 'Staff',
|
||||||
|
'toadmin' => 'Amministratore',
|
||||||
|
'alsopurge' => 'Eliminare messaggi',
|
||||||
|
'dellast' => 'Eliminare utlimo messaggio',
|
||||||
|
'delall' => 'Eliminare tutti messaggi',
|
||||||
|
'switchsingle' => 'Abilitare modalità riga(e)',
|
||||||
|
'switchmulti' => 'Abilitare multiriga',
|
||||||
|
'help' => 'Aiuto',
|
||||||
|
'helpguest' => 'Tutte le funzioni sono chiare, solo utilizzate i tasti. Nelle impostazioni del vostro profilo potete impostare tempo di aggiornamento, colore del carattere e dimensione della finestra.<br><u>Nota:</u> é una chat, per questo anche se non scrivete niente, sarà in automatico salvato dopo un tot di tempo..',
|
||||||
|
'helpembed' => 'Se volete impostare immagine nel vostro post, attaccate [img] davanti al vostro URL-immagine. Esempio: [img]http://example.com/images/file.jpg sarà agganciato al vostro messaggio.<br> Anche disponibile carica file cliccando pulsante in alro "Browse..."<br>',
|
||||||
|
'helpmem' => 'Membri: Avete alcune scelte nelle impostazioni del profilo. Si può impostare carattere e cambiare la password in qualsiasi momento.',
|
||||||
|
'helpmod' => 'Staff: Visualizzate il tasto dell amministratore giù. Questo vi riendizzerà, dove potete ripulire la stanza, bannare, visualizzare sessioni attive e disabilitare accesso agli ospiti, se necessario.',
|
||||||
|
'helpadm' => 'Amministratori: Vi è disponibile registrare utenti, modificare e rigistrare nuovi nomi senza che ci siano nella stanza.',
|
||||||
|
'profile' => 'Mio profilo',
|
||||||
|
'ignore' => 'Ignorare',
|
||||||
|
'unignore' => 'Non ignorare più',
|
||||||
|
'refreshrate' => 'Ricarica Chat (5-150 secondi)',
|
||||||
|
'fontcolour' => 'Colore carattere',
|
||||||
|
'viewexample' => 'Visualizza esempi',
|
||||||
|
'bgcolour' => 'Colore sfondo',
|
||||||
|
'fontface' => 'Carattere',
|
||||||
|
'roomdefault' => 'Predefinito',
|
||||||
|
'bold' => 'Grassetto',
|
||||||
|
'italic' => 'Corsivo',
|
||||||
|
'small' => 'Diminuito',
|
||||||
|
'fontexample' => 'Esempio del carattere selezionato',
|
||||||
|
'timestamps' => 'Visualizzare il tempo',
|
||||||
|
'embed' => 'Incollare immagine',
|
||||||
|
'incognito' => 'Modalità incognito',
|
||||||
|
'changenick' => 'Cambia nome',
|
||||||
|
'changepass' => 'Cambia password',
|
||||||
|
'oldpass' => 'Vecchio profilo:',
|
||||||
|
'newpass' => 'Nuovo profilo:',
|
||||||
|
'confirmpass' => 'Conferma:',
|
||||||
|
'savechanges' => 'Salavre cambiamenti',
|
||||||
|
'reloadpb' => 'Ricarica Chat',
|
||||||
|
'reloadmsgs' => 'Aggiorna/Indietro',
|
||||||
|
'chgprofile' => 'Profilo',
|
||||||
|
'adminbtn' => 'Amministratore',
|
||||||
|
'admnotes' => 'Note del amministratore',
|
||||||
|
'notes' => 'Appunti',
|
||||||
|
'clone' => 'Clona',
|
||||||
|
'randh' => 'Regole/Aiuto',
|
||||||
|
'exit' => 'Abbandona',
|
||||||
|
'bye' => 'Ti salutiamo %s, entra ancora!',
|
||||||
|
'colourtable' => 'Esempio colori',
|
||||||
|
'backtoprofile' => 'Tornare nel mio profilo',
|
||||||
|
'copy' => 'Copia:',
|
||||||
|
'choosecol' => 'Selezionate colore:',
|
||||||
|
'randomcol' => 'Colore a caso',
|
||||||
|
'enter' => 'Entrare',
|
||||||
|
'error' => 'Errore',
|
||||||
|
'members' => 'Registrati',
|
||||||
|
'guests' => 'Ospiti',
|
||||||
|
'approveguests' => '%d nuovi ospiti da accettare',
|
||||||
|
'allowchecked' => 'Permettere verifica',
|
||||||
|
'allowall' => 'Permettere a tutti',
|
||||||
|
'denychecked' => 'Non permettere verifica',
|
||||||
|
'denyall' => 'Non permettere a nessuno',
|
||||||
|
'denymessage' => 'Mandare messaggio con rifiuto:',
|
||||||
|
'butallowdeny' => 'Inviare',
|
||||||
|
'waitempty' => 'Non ci sono più richieste disponibili.',
|
||||||
|
'wrongcaptcha' => 'Captcha errata!',
|
||||||
|
'captchaexpire' => 'Codice di protezione è già in utilizzo oppure tempo scaduto.',
|
||||||
|
'noguests' => 'Scusate, entrano solo registrati!',
|
||||||
|
'curchat' => 'Attualmente %d partecipante (i) in stanza:',
|
||||||
|
'cantreg' => 'Non puoi registrarti %s',
|
||||||
|
'alreadyreged' => '%s Già registrato.',
|
||||||
|
'successreg' => '%s Registrato con successo.',
|
||||||
|
'cantchgstat' => 'Impossibile cambiare stato %s',
|
||||||
|
'succdel' => '%s eliminato dal database.',
|
||||||
|
'succchg' => 'Stato %s cambaito con successo.',
|
||||||
|
'wrongpass' => 'Password errata!',
|
||||||
|
'wrongglobalpass' => 'Password globale sbagliata!',
|
||||||
|
'succprofile' => 'Tuo profilo è stato salvato.',
|
||||||
|
'backtologin' => 'Tornare nella pag. pincipale.',
|
||||||
|
'backtochat' => 'Tornare nella chat.',
|
||||||
|
'Beige' => 'Beige',
|
||||||
|
'Black' => 'Nero',
|
||||||
|
'Blue' => 'Blu',
|
||||||
|
'BlueViolet' => 'Viola-blu',
|
||||||
|
'Brown' => 'Marrone',
|
||||||
|
'Cyan' => 'Azzurro',
|
||||||
|
'DarkBlue' => 'Blu-scuro',
|
||||||
|
'DarkGreen' => 'Verde-scuro',
|
||||||
|
'DarkRed' => 'Rosso-scuro',
|
||||||
|
'DarkViolet' => 'Viola-scuro',
|
||||||
|
'DeepSkyBlue' => 'Azzurro chiaro',
|
||||||
|
'Gold' => 'Oro',
|
||||||
|
'Grey' => 'Griggio',
|
||||||
|
'Green' => 'Verde',
|
||||||
|
'HotPink' => 'Rosa-chiaro',
|
||||||
|
'Indigo' => 'Indigo',
|
||||||
|
'LightBlue' => 'Blu-chiaro',
|
||||||
|
'LightGreen' => 'Verde-charo',
|
||||||
|
'LimeGreen' => 'Verde lime',
|
||||||
|
'Magenta' => 'Magenta',
|
||||||
|
'Olive' => 'Oliva',
|
||||||
|
'Orange' => 'Arancione',
|
||||||
|
'OrangeRed' => 'Arancione-rosso',
|
||||||
|
'Purple' => 'Viola',
|
||||||
|
'Red' => 'Rosso',
|
||||||
|
'RoyalBlue' => 'Re blu',
|
||||||
|
'SeaGreen' => 'Verde mare',
|
||||||
|
'Sienna' => 'Siena',
|
||||||
|
'Silver' => 'Cromato',
|
||||||
|
'Tan' => 'Abbronzato',
|
||||||
|
'Teal' => 'Teal',
|
||||||
|
'Violet' => 'Viola',
|
||||||
|
'White' => 'Bianco',
|
||||||
|
'Yellow' => 'Giallo',
|
||||||
|
'YellowGreen' => 'Giallo-verde',
|
||||||
|
'redirectto' => 'Riendirizzamento su:',
|
||||||
|
'nonhttp' => 'Url richiesto non è http:',
|
||||||
|
'httpredir' => 'Se non funziona prova questo:',
|
||||||
|
'actions' => 'Azioni',
|
||||||
|
'sesip' => 'IP-indirizzo',
|
||||||
|
'css' => 'CSS stili',
|
||||||
|
'memberexpire' => 'Time-Out membri (minuti)',
|
||||||
|
'guestexpire' => 'Time-out ospiti (minuti)',
|
||||||
|
'kickpenalty' => 'Ban (minuti)',
|
||||||
|
'entrywait' => 'Tempo di attesa stanza ospiti (secondi)',
|
||||||
|
'captchatime' => 'Time-Out Captcha (secondi)',
|
||||||
|
'messageexpire' => 'Time-Out messaggi (minuti)',
|
||||||
|
'messagelimit' => 'Limite messaggi (pubblici)',
|
||||||
|
'maxmessage' => 'Lunghezza massimale dei messaggi',
|
||||||
|
'confirm' => 'Sei sicuro?',
|
||||||
|
'yes' => 'Si',
|
||||||
|
'no' => 'No',
|
||||||
|
'colbg' => 'Colore sfondo',
|
||||||
|
'coltxt' => 'Colore testo',
|
||||||
|
'maxname' => 'Lunghezza nome massimale',
|
||||||
|
'minpass' => 'Lunghezza minima password',
|
||||||
|
'defaultrefresh' => 'In predefinito tempo di ricarica (secondi)',
|
||||||
|
'suguests' => 'Accettare ospiti',
|
||||||
|
'rulestxt' => 'Regole (html)',
|
||||||
|
'imgembed' => 'Inserimento immagini',
|
||||||
|
'trackip' => 'Visualizzare IP-sessione',
|
||||||
|
'captchachars' => 'Simboli, utilizzati in Captcha',
|
||||||
|
'memkick' => 'Membri possono espellere, se non è presente moderatore',
|
||||||
|
'forceredirect' => 'Riendirizzamento forzato',
|
||||||
|
'redirect' => 'Riendirizzamento forzato membri',
|
||||||
|
'backuprestore' => 'Backup e ripristino',
|
||||||
|
'backup' => 'Backup',
|
||||||
|
'restore' => 'Ripristino',
|
||||||
|
'settings' => 'Impostazioni',
|
||||||
|
'linkfilter' => 'Filtaggio link',
|
||||||
|
'chatname' => 'Nome Chat',
|
||||||
|
'destroy' => 'Distruggere chat',
|
||||||
|
'destroyed' => 'Chat distrutto',
|
||||||
|
'topic' => 'Tema',
|
||||||
|
'passreset' => 'Cambia password',
|
||||||
|
'cantresetpass' => 'Impossibile cambiare password',
|
||||||
|
'succpassreset' => 'Password cambiata',
|
||||||
|
'entermsg' => '%s entrato in chat.',
|
||||||
|
'exitmsg' => '%s abbandonato chat.',
|
||||||
|
'memregmsg' => '%s ora registrato membro.',
|
||||||
|
'suregmsg' => '%s ora registrato candidato.',
|
||||||
|
'kickmsg' => '%s espcluso dalla chat.',
|
||||||
|
'multikickmsg' => '%s esclusi dalla chat.',
|
||||||
|
'allkickmsg' => 'tutti ospiti esplusi dalla chat.',
|
||||||
|
'cleanmsg' => '%s pulito prima.',
|
||||||
|
'sendallmsg' => '%s - ',
|
||||||
|
'sendmemmsg' => '[M] %s - ',
|
||||||
|
'sendmodmsg' => '[Staff] %s - ',
|
||||||
|
'sendadmmsg' => '[Admin] %s - ',
|
||||||
|
'sendprvmsg' => '[%1$s a %2$s] - ',
|
||||||
|
'msgsendall' => 'Messaggio a tutti',
|
||||||
|
'msgsendmem' => 'Messaggio ai membri',
|
||||||
|
'msgsendmod' => 'Messaggio solo ai moderatori',
|
||||||
|
'msgsendadm' => 'Messaggio solo al amministratore',
|
||||||
|
'msgsendprv' => 'Messaggio privato',
|
||||||
|
'numnotes' => 'Numero per salvare',
|
||||||
|
'revisions' => 'Ripristino:',
|
||||||
|
'older' => 'Vecchi',
|
||||||
|
'newer' => 'Nuovi',
|
||||||
|
'accessdenied' => 'Rifiutato.',
|
||||||
|
'loggedinas' => 'Sei entrato come %s e non hai accesso alla sessione.',
|
||||||
|
'newnickname' => 'Nuovo nome:',
|
||||||
|
'nicknametaken' => 'Nome occupato',
|
||||||
|
'nopass' => 'Password sbagliata (Almeno %d simboli), senza cambiare nome',
|
||||||
|
'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.',
|
||||||
|
'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_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' => 'Mandare messaggio come nuovo pubblico',
|
||||||
|
'mailsender' => 'Mandare messaggio utilizzando questo indirizzo',
|
||||||
|
'mailreceiver' => 'Mandare messaggio a questo indirizzo',
|
||||||
|
'modfallback' => 'Tornare nella stanza di attesa, se non è presente moderatore',
|
||||||
|
'regpass' => 'Ripetere password<br>Registrarsi',
|
||||||
|
'guestreg' => 'Permettere di registrarsi agli ospiti',
|
||||||
|
'asmember' => 'Come membro',
|
||||||
|
'assuguest' => 'Come candidato',
|
||||||
|
'fatalerror' => 'Errore fatale',
|
||||||
|
'prevmatch' => 'Testi nei campi coincidono',
|
||||||
|
'matchtoolong' => 'Testo troppo lungo. Si puà utilizzare solo 255 simboli, provare suddividere campo in parti',
|
||||||
|
'nocache' => 'Avtoricarica (per i Browser precedenti, per suddividere dal alto-basso)',
|
||||||
|
'disablepm' => 'Disabilitare mess. privati',
|
||||||
|
'disablechat' => 'Disabilitare chat',
|
||||||
|
'disabletext' => 'Messaggio di chat disabilitata (html)',
|
||||||
|
'disabledtext' => 'Attualmente disabilitato',
|
||||||
|
'defaulttz' => 'Fus orario predefinito',
|
||||||
|
'tz' => 'Fuso Orario',
|
||||||
|
'optional' => '(optional)',
|
||||||
|
'userloggedin' => 'Utilizzatore con questo nome è già in rete.',
|
||||||
|
'regednick' => 'Questo nome appartiene già ad un altro.',
|
||||||
|
'eninbox' => 'Abilitare offline-posta',
|
||||||
|
'inboxmsgs' => 'Leggete %d messaggi in entrata',
|
||||||
|
'offline' => '(offline)',
|
||||||
|
'deleteacc' => 'Eliminare account',
|
||||||
|
'eninnone' => 'Per nessuno',
|
||||||
|
'eninall' => 'Per tutti',
|
||||||
|
'eninmem' => 'Solo per membri',
|
||||||
|
'eninstaff' => 'Solo per moderatori',
|
||||||
|
'eninadmin' => 'Solo per amministratore',
|
||||||
|
'nickregex' => 'Nickname regex',
|
||||||
|
'passregex' => 'Password regex',
|
||||||
|
'externalcss' => 'Link per CSS esterno',
|
||||||
|
'greetingmsg' => 'Benvenuto %s!',
|
||||||
|
'entryhelp' => 'Se questa finestra non si aggiorna ogni %d secondi. Dovete abilitare aggiornamento automatico (meta refresh) nel vostro browser. Assicuratevi che non ci sia filtro-web, verificate impostazioni proxy, o plugin del browser per il blocco del aggiornamento! Esempi dei plugin: "Polipo", "NoScript", ecc...<br>Nota, (nel caso di errore di ricarica delle pagine a causa del server/proxy) Вы всегда можете использовать кнопки внизуpotete sempre utilizzare tasti in basso della pagina per ricaricare manualmente.',
|
||||||
|
'enablegreeting' => 'Visualizzare benvenuto prima del ultimo messaggio',
|
||||||
|
'unban' => 'Sbloccare',
|
||||||
|
'sortupdown' => 'Riordinare messaggi dal alto in basso',
|
||||||
|
'sortframe' => 'Ribaltare chat',
|
||||||
|
'cs' => 'Registrazione-sensibile',
|
||||||
|
'hidechatters' => 'Nascondere lista dei partecipanti',
|
||||||
|
'enfileupload' => 'Abilitare upload dei file',
|
||||||
|
'msgattache' => 'Annotazione',
|
||||||
|
'filenotfound' => 'File non trovato!',
|
||||||
|
'maxuploadsize' => 'Dimensione massima del file KB',
|
||||||
|
'maxsize' => 'Max. %d KB',
|
||||||
|
'cssupdate' => 'Note: Default CSS is now hardcoded and can be removed from the CSS setting',
|
||||||
|
'manualrefresh' => 'Bisogna aggiornare pagina manualmente',
|
||||||
|
'personalnotes' => 'Appunti personali',
|
||||||
|
'filtermodkick' => 'Utlizzare filtro di esclusione per moderatori',
|
||||||
|
];
|
38
lang_ru.php
38
lang_ru.php
@ -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-2017 Daniel Winzen <d@winzen4.de>
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
*
|
*
|
||||||
* 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,11 +135,11 @@ $T=[
|
|||||||
'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' => 'Игнорировать',
|
||||||
'unignore' => 'Больше не игнорировать',
|
'unignore' => 'Больше не игнорировать',
|
||||||
@ -308,15 +308,15 @@ $T=[
|
|||||||
'newnickname' => 'Новое имя:',
|
'newnickname' => 'Новое имя:',
|
||||||
'nicknametaken' => 'Имя уже занято',
|
'nicknametaken' => 'Имя уже занято',
|
||||||
'nopass' => 'Некорректный пароль (Хотя бы %d символов), не меняя имени',
|
'nopass' => 'Некорректный пароль (Хотя бы %d символов), не меняя имени',
|
||||||
'gdextrequired' => 'The gd extension of PHP is required for this feature. Please install it first.',
|
'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' => 'The pdo_mysql extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_mysqlextrequired' => 'Pdo_mysql расширение для PHP требуетса для драйверов базы данных. Пожалуйста установите его сначала..',
|
||||||
'pdo_pgsqlextrequired' => 'The pdo_pgsql extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_pgsqlextrequired' => 'Pdo_pgsql расширение для PHP требуетса для драйверов базы данных. Пожалуйста установите его сначала..',
|
||||||
'pdo_sqliteextrequired' => 'The pdo_sqlite extension of PHP is required for the selected database driver. Please install it first.',
|
'pdo_sqliteextrequired' => 'Pdo_sqlite расширение для PHP требуетса для драйверов базы данных. Пожалуйста установите его сначала.',
|
||||||
'jsonextrequired' => 'The json extension of PHP is required for this feature. Please install it first.',
|
'jsonextrequired' => 'Json расширение для PHP требуетса для етой функции. Пожалуйста установите его сначала.',
|
||||||
'sendmail' => 'Отправить сообщение как новое публичное сообщение',
|
'sendmail' => 'Отправить сообщение как новое публичное',
|
||||||
'mailsender' => 'Отправить сообщение используя этот адрес',
|
'mailsender' => 'Отправить сообщение на этот адрес',
|
||||||
'mailreceiver' => 'Отправить сообщение по этому адресу',
|
'mailreceiver' => 'Отправить сообщение по этому адресу',
|
||||||
'modfallback' => 'Вернуться в комнату ожидания, если отстутсвует модератор для подтверждения гостей',
|
'modfallback' => 'Вернуться в комнату ожидания, если отстутсвует модератор для подтверждения гостей',
|
||||||
'regpass' => 'Повторите пароль<br>Зарегистрироваться',
|
'regpass' => 'Повторите пароль<br>Зарегистрироваться',
|
||||||
@ -325,8 +325,8 @@ $T=[
|
|||||||
'assuguest' => 'Как заявитель',
|
'assuguest' => 'Как заявитель',
|
||||||
'fatalerror' => 'Фатальная ошибка',
|
'fatalerror' => 'Фатальная ошибка',
|
||||||
'prevmatch' => 'Тексты в полях совпадают',
|
'prevmatch' => 'Тексты в полях совпадают',
|
||||||
'matchtoolong' => 'Текст в поле слишком длинное. Можно использовать максимум 255 символов, попробуйте разбить поле на части.',
|
'matchtoolong' => 'Текст в поле слишком длинний. Можно использовать максимум 255 символов, попробуйте разбить поле на части.',
|
||||||
'nocache' => 'Автопрокрутка (для старых браузеров, для сортрировки сверху-вниз).',
|
'nocache' => 'Автозагрузка (для старых браузеров, для сортрировки сверху-вниз).',
|
||||||
'disablepm' => 'Отключить личные сообщения',
|
'disablepm' => 'Отключить личные сообщения',
|
||||||
'disablechat' => 'Отключить чат',
|
'disablechat' => 'Отключить чат',
|
||||||
'disabletext' => 'Чат отключил сообщение (html)',
|
'disabletext' => 'Чат отключил сообщение (html)',
|
||||||
@ -334,22 +334,22 @@ $T=[
|
|||||||
'defaulttz' => 'Часовой пояс по умолчанию',
|
'defaulttz' => 'Часовой пояс по умолчанию',
|
||||||
'tz' => 'Часовой пояс',
|
'tz' => 'Часовой пояс',
|
||||||
'optional' => '(опционально)',
|
'optional' => '(опционально)',
|
||||||
'userloggedin' => 'Пользователь с этим именем уже в сети.',
|
'userloggedin' => 'Пользователь с текущим именем уже в сети.',
|
||||||
'regednick' => 'Это имя принадлежит зарегистрированному пользователю.',
|
'regednick' => 'Это имя принадлежит зарегистрированному пользователю.',
|
||||||
'eninbox' => 'Включить оффлайн-почту',
|
'eninbox' => 'Включить оффлайн-почту',
|
||||||
'inboxmsgs' => 'Прочитайте %d входящих сообщений',
|
'inboxmsgs' => 'Прочитайте %d входящих сообщений',
|
||||||
'offline' => '(оффлайн)',
|
'offline' => '(оффлайн)',
|
||||||
'deleteacc' => 'Удалить аккаунт',
|
'deleteacc' => 'Удалить аккаунт',
|
||||||
'eninnone' => 'Ни для кого',
|
'eninnone' => 'Никаму',
|
||||||
'eninall' => 'Для всех',
|
'eninall' => 'Для всех',
|
||||||
'eninmem' => 'Только для членов',
|
'eninmem' => 'Только для членов',
|
||||||
'eninstaff' => 'Только для модераторов',
|
'eninstaff' => 'Только для модераторов',
|
||||||
'eninadmin' => 'Только для админов',
|
'eninadmin' => 'Только для админов',
|
||||||
'nickregex' => 'Nickname regex',
|
'nickregex' => 'Ник regex',
|
||||||
'passregex' => 'Password regex',
|
'passregex' => 'Пароль regex',
|
||||||
'externalcss' => 'Ссылка на внешний CSS файл',
|
'externalcss' => 'Ссылка на внешний CSS файл',
|
||||||
'greetingmsg' => 'Добро пожаловать %s!',
|
'greetingmsg' => 'Добро пожаловать %s!',
|
||||||
'entryhelp' => 'Если это окно не обновится в течение %d секунд, Вам нужно включить автоматическое обновление (meta refresh) в вашем браузере. Также убедитесь в отстутствии веб-фильтра, проверьте настройки прокси, либо плагины браузера на блокировку автоматического обновления! Примеры плагинов: "Polipo", "NoScript", и т.д.<br>Тем не менее, (в случае ошибок перезагрузки страниц из-за сервера/прокси) Вы всегда можете использовать кнопки внизу страницы для ручного обновления страницыы.',
|
'entryhelp' => 'Если это окно не обновится в течение %d секунд, Вам нужно включить автоматическое обновление (meta refresh) в вашем браузере. Также убедитесь в отстутствии веб-фильтра, проверьте настройки прокси, либо плагины браузера на блокировку автоматического обновления! Примеры плагинов: "Polipo", "NoScript", и т.д.<br>Тем не менее, (в случае ошибок перезагрузки страниц из-за сервера/прокси) вы всегда можете использовать кнопки внизу страницы для ручного обновления страницыы.',
|
||||||
'enablegreeting' => 'Показывать приветственное сообщение перед остальными сообщениями',
|
'enablegreeting' => 'Показывать приветственное сообщение перед остальными сообщениями',
|
||||||
'unban' => 'Разблокировать',
|
'unban' => 'Разблокировать',
|
||||||
'sortupdown' => 'Сортировать сообщения сверху вниз',
|
'sortupdown' => 'Сортировать сообщения сверху вниз',
|
||||||
@ -361,7 +361,7 @@ $T=[
|
|||||||
'filenotfound' => 'Файл не обнаружен!',
|
'filenotfound' => 'Файл не обнаружен!',
|
||||||
'maxuploadsize' => 'Максимальный размер файла в КБ',
|
'maxuploadsize' => 'Максимальный размер файла в КБ',
|
||||||
'maxsize' => 'Макс. %d КБ',
|
'maxsize' => 'Макс. %d КБ',
|
||||||
'cssupdate' => 'Note: Default CSS is now hardcoded and can be removed from the CSS setting',
|
'cssupdate' => 'Заметка: по установлению CSS он тяжелый и можна убрать его в CSS настройках',
|
||||||
'manualrefresh' => 'Требуется обновить страницу вручную',
|
'manualrefresh' => 'Требуется обновить страницу вручную',
|
||||||
'personalnotes' => 'Личные заметки',
|
'personalnotes' => 'Личные заметки',
|
||||||
'filtermodkick' => 'Применить фильтр исключения для модераторов',
|
'filtermodkick' => 'Применить фильтр исключения для модераторов',
|
||||||
|
371
lang_tr.php
Normal file
371
lang_tr.php
Normal file
@ -0,0 +1,371 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* LE CHAT-PHP - a PHP Chat based on LE CHAT - English translation
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
|
*
|
||||||
|
* 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ürkçe
|
||||||
|
$T=[
|
||||||
|
'nodb' => 'Veritabanına bağlantı yok!',
|
||||||
|
'nodbsetup' => 'Veritabanına bağlantı yok, lütfen bir veritabanı oluşturun ve doğru veritabanını kullanmak için script\'i verilen kullanıcı adı ve şifre ile düzenleyin!',
|
||||||
|
'changelang' => 'Dili değiştir:',
|
||||||
|
'expire' => 'Geçersiz/tarihi geçmiş oturum',
|
||||||
|
'kicked' => 'Atıldınız!',
|
||||||
|
'invalnick' => 'Geçersiz kullanıcı adı (En fazla %1$d harf ve normal ifade "%2$s" ile eşleşmeli)',
|
||||||
|
'invalpass' => 'Geçersiz şifre (En az %1$d harf ve normal ifade "%2$s" ile eşleşmeli)',
|
||||||
|
'noconfirm' => 'Şifreler birbirleriyle eşleşmiyor!',
|
||||||
|
'incorregex' => 'Yanlış normal ifade!',
|
||||||
|
'bottom' => 'Alt',
|
||||||
|
'top' => 'Üst',
|
||||||
|
'choose' => '(seç)',
|
||||||
|
'setup' => 'Sohbet kurulumu',
|
||||||
|
'init' => 'İlk kurulum',
|
||||||
|
'sulogin' => 'Superadmin Girişi',
|
||||||
|
'sunick' => 'Superadmin Kullanıcı adı:',
|
||||||
|
'supass' => 'Superadmin Şifre:',
|
||||||
|
'suconfirm' => 'Şifreyi doğrula:',
|
||||||
|
'susuccess' => 'Başarılı bir şekilde kayıt olundu!',
|
||||||
|
'initbtn' => 'Sohbeti Başlat',
|
||||||
|
'initdbexist' => 'Veritabanı tabloları zaten bulunuyor! Devam etmek için, tabloları manuel olarak silmeniz lazım.',
|
||||||
|
'initsuexist' => 'Bir Superadmin zaten bulunuyor!',
|
||||||
|
'initgosetup' => 'Kurulum sayfasına git',
|
||||||
|
'captcha' => 'Captcha',
|
||||||
|
'enabled' => 'Etkinleştirildi',
|
||||||
|
'onlyguests' => 'Sadece konuklar için',
|
||||||
|
'disabled' => 'Devre dışı',
|
||||||
|
'simple' => 'Basit',
|
||||||
|
'moderate' => 'Orta',
|
||||||
|
'extreme' => 'Aşırı',
|
||||||
|
'nick' => 'Kullanıcı adı:',
|
||||||
|
'pass' => 'Şifre:',
|
||||||
|
'globalloginpass' => 'Global şifre:',
|
||||||
|
'login' => 'Giriş',
|
||||||
|
'dbupdate' => 'Veritabanı başarıyla güncellendi!',
|
||||||
|
'sysmessages' => 'Sistem iletileri',
|
||||||
|
'msgenter' => 'Giriş',
|
||||||
|
'msgexit' => 'Ayrılınıyor',
|
||||||
|
'msgmemreg' => 'Üye kaydedildi',
|
||||||
|
'msgsureg' => 'Başvuru kaydedildi',
|
||||||
|
'msgkick' => 'Atıldı',
|
||||||
|
'msgmultikick' => 'Toplu atıldı',
|
||||||
|
'msgallkick' => 'Hepsi atıldı',
|
||||||
|
'msgclean' => 'Oda temizlendi',
|
||||||
|
'dateformat' => '<a target="_blank" href="http://php.net/manual/en/function.date.php#refsect1-function.date-parameters">Tarih biçimlendirme</a>',
|
||||||
|
'admfunc' => 'Yönetici işlemleri',
|
||||||
|
'allguests' => 'Tüm konuklar',
|
||||||
|
'cleanmsgs' => 'İletileri temizle',
|
||||||
|
'room' => 'Tüm oda',
|
||||||
|
'selection' => 'Seçim',
|
||||||
|
'cleannick' => 'Şu kullanıcı adını:',
|
||||||
|
'clean' => 'Temizle',
|
||||||
|
'kickchat' => 'Kullanıcıyı at (%d dakika)',
|
||||||
|
'kickreason' => 'Atılma nedeni:',
|
||||||
|
'kickpurge' => 'İletileri temizle',
|
||||||
|
'kick' => 'At',
|
||||||
|
'logoutinact' => 'İnaktif kişiyi oturumdan çıkar',
|
||||||
|
'logout' => 'Çıkış yap',
|
||||||
|
'sessions' => 'Aktif oturumlara bak',
|
||||||
|
'view' => 'Görüntüle',
|
||||||
|
'filter' => 'Filtrele',
|
||||||
|
'guestacc' => 'Konuk erişimini değiştir',
|
||||||
|
'guestallow' => 'İzin ver',
|
||||||
|
'guestwait' => 'Bekleme odasına izin ver',
|
||||||
|
'adminallow' => 'Moderatör onayı gerekiyor',
|
||||||
|
'guestdisallow' => 'Sadece üyeler',
|
||||||
|
'addsuguest' => 'Başvuru kayıt et',
|
||||||
|
'register' => 'Kayıt ol',
|
||||||
|
'admmembers' => 'Üyeler',
|
||||||
|
'memdel' => 'Veritabanından sil',
|
||||||
|
'memdeny' => 'Erişimi reddet (!)',
|
||||||
|
'memsuguest' => 'Set to applicant (G)',
|
||||||
|
'memreg' => 'Normal üye yap',
|
||||||
|
'memmod' => 'Moderatör yap (Ü)',
|
||||||
|
'memsumod' => 'Süpermod yap (SM)',
|
||||||
|
'memadm' => 'Yönetici yap (Y)',
|
||||||
|
'change' => 'Değiştir',
|
||||||
|
'regguest' => 'Misafir kaydet',
|
||||||
|
'regmem' => 'Yeni Üye kaydet',
|
||||||
|
'sessact' => 'Aktif Oturumlar',
|
||||||
|
'sessnick' => 'Kullanıcı adı',
|
||||||
|
'sesstimeout' => 'Zaman aşımı',
|
||||||
|
'sessua' => 'User-Agent',
|
||||||
|
'fid' => 'ID Filtrele:',
|
||||||
|
'match' => 'Eşleş',
|
||||||
|
'replace' => 'Değiştir',
|
||||||
|
'allowpm' => 'Allow in PM',
|
||||||
|
'regex' => 'Regex',
|
||||||
|
'apply' => 'Uygula',
|
||||||
|
'newfilter' => 'Yeni filtre:',
|
||||||
|
'add' => 'Ekle',
|
||||||
|
'noframes' => 'Bu sohbet <b>çerçeveleri</b> kullanıyor. Please enable frames in your browser or use a suitable one!',
|
||||||
|
'delselmes' => 'Seçili iletileri sil',
|
||||||
|
'staffnotes' => 'Yetkili notları',
|
||||||
|
'adminnotes' => 'Yönetici notları',
|
||||||
|
'notessaved' => 'Notlar kaydedildi!',
|
||||||
|
'lastedited' => 'Son düzenleme %1$s tarafından %2$s tarihinde',
|
||||||
|
'savenotes' => 'Notları kaydet',
|
||||||
|
'waitingroom' => 'Bekleme odası',
|
||||||
|
'waittext' => 'Hoş geldiniz %1$s, girişiniz geciktirildi, sohbete %2$d saniye içinde erişebilirsiniz.',
|
||||||
|
'admwaittext' => 'Hoş geldiniz %1$s, girişiniz geciktirildi, sohbete bir moderatör girmenize izin verirse erişebilirsiniz.',
|
||||||
|
'waitreload' => 'Eğer sayfa %d saniye içinde yenilenmiyorsa, elinizle yenilemek için alttaki düğmeyi kullanın!',
|
||||||
|
'reload' => 'Yenile',
|
||||||
|
'rules' => 'Kurallar',
|
||||||
|
'talkto' => 'Şuna gönder',
|
||||||
|
'toall' => 'Tüm kullanıcılar',
|
||||||
|
'tomem' => 'Sadece üyeler',
|
||||||
|
'tostaff' => 'Sadece yetkililer',
|
||||||
|
'toadmin' => 'Sadece yönetici',
|
||||||
|
'alsopurge' => 'Ayrıca iletileri temizle',
|
||||||
|
'dellast' => 'Son iletiyi sil',
|
||||||
|
'delall' => 'Tüm iletileri sil',
|
||||||
|
'switchsingle' => 'Tek-satıra geç',
|
||||||
|
'switchmulti' => 'Çoklu-satıra geç',
|
||||||
|
'help' => 'Yardım',
|
||||||
|
'helpguest' => 'Tüm işlemler anlaşılabilir olmalı, sadece düğmeleri kullanın. Profilinizde yenileme aralığını ve yazı rengini değiştirebilir, aynı zamanda üyeleri göz ardı edebilirsiniz.<br><u>Not:</u> Bu bir sohbet, eğer konuşmayı bırakırsanız, bir süre sonra otomatik olarak oturumdan atılırsınız.',
|
||||||
|
'helpembed' => 'Eğer iletinize bir görsel eklemek istiyorsanız, basit bir şekilde görsel URL\'sinin önüne [img] koyun. Örnek: [img]http://example.com/images/file.jpg yazmak iletinizdeki görseli ekler.',
|
||||||
|
'helpmem' => 'Üyeler: Profilinizde biraz daha seçenek var. Yazı tipini ayarlayabilir, şifrenizi istediğiniz zaman değiştirebilir ve tabii ki hesabınızı silebilirsiniz.',
|
||||||
|
'helpmod' => 'Moderatörler: En alttaki Yönetici düğmesine dikkat edin. Odayı temizleyebileceğiniz, kişileri atabileceğiniz, aktif oturumları görebileceğiniz ve konuk erişimini kapatabileceğiniz bir sayfa gelecektir.',
|
||||||
|
'helpadm' => 'Yöneticiler: Konukları kaydedebilir, üyeleri düzenleyebilir ve yeni kullanıcı adları kaydedebilirsiniz.',
|
||||||
|
'profile' => 'Profiliniz',
|
||||||
|
'ignore' => 'Görmezden gel',
|
||||||
|
'unignore' => 'Görmezden gelmeyi bırak',
|
||||||
|
'refreshrate' => 'Yenileme aralığı (5-150 saniye)',
|
||||||
|
'fontcolour' => 'Yazı tipi rengi',
|
||||||
|
'viewexample' => 'Örnekleri görüntüle',
|
||||||
|
'bgcolour' => 'Arkaplan rengi',
|
||||||
|
'fontface' => 'Yazıtipi yüzü',
|
||||||
|
'roomdefault' => 'Oda Varsayılanı',
|
||||||
|
'bold' => 'Kalın',
|
||||||
|
'italic' => 'İtalik',
|
||||||
|
'small' => 'Küçük',
|
||||||
|
'fontexample' => 'Seçtiğin yazı tipi için örnek',
|
||||||
|
'timestamps' => 'Zaman damgalarını göster',
|
||||||
|
'embed' => 'Gömülü görseller',
|
||||||
|
'incognito' => 'Incognito modu',
|
||||||
|
'changenick' => 'Kullanıcı adını değiştir',
|
||||||
|
'changepass' => 'Şifreyi değiştir',
|
||||||
|
'oldpass' => 'Eski şifre:',
|
||||||
|
'newpass' => 'Yeni şifre:',
|
||||||
|
'confirmpass' => 'Yeni şifreyi doğrula:',
|
||||||
|
'savechanges' => 'Değişiklikleri kaydet',
|
||||||
|
'reloadpb' => 'Posta Kutusunu Yenile',
|
||||||
|
'reloadmsgs' => 'İletileri yenile',
|
||||||
|
'chgprofile' => 'Profil',
|
||||||
|
'adminbtn' => 'Yönetici',
|
||||||
|
'admnotes' => 'Yönetici Notları',
|
||||||
|
'notes' => 'Notlar',
|
||||||
|
'clone' => 'Klonla',
|
||||||
|
'randh' => 'Kurallar & Yardım',
|
||||||
|
'exit' => 'Sohbetten çık',
|
||||||
|
'bye' => 'Görüşürüz %s, en yakın zamanda yine uğra!',
|
||||||
|
'colourtable' => 'Renk tablosu',
|
||||||
|
'backtoprofile' => 'Profiline geri dön',
|
||||||
|
'copy' => 'Kopyala:',
|
||||||
|
'choosecol' => 'Konuklar, bir renk seçin:',
|
||||||
|
'randomcol' => 'Rastgele renk',
|
||||||
|
'enter' => 'Sohbete gir',
|
||||||
|
'error' => 'Hata',
|
||||||
|
'members' => 'Üyeler',
|
||||||
|
'guests' => 'Konuklar',
|
||||||
|
'approveguests' => '%d tane onaylanacak konuk',
|
||||||
|
'allowchecked' => 'Kontrol edilenlere izin ver',
|
||||||
|
'allowall' => 'Hepsine izin ver',
|
||||||
|
'denychecked' => 'Kontrol edilenleri reddet',
|
||||||
|
'denyall' => 'Hepsini reddet',
|
||||||
|
'denymessage' => 'Reddedilene ileti gönder:',
|
||||||
|
'butallowdeny' => 'Gönder',
|
||||||
|
'waitempty' => 'Onaylanacak daha fazla giriş isteği yok.',
|
||||||
|
'wrongcaptcha' => 'Yanlış captcha',
|
||||||
|
'captchaexpire' => 'Captcha zaten kullanılmış veya zamanı aşılmış.',
|
||||||
|
'noguests' => 'Üzgünüm, şu anlık sadece üyeler!',
|
||||||
|
'curchat' => 'Şu anda odada %d kişi var:',
|
||||||
|
'cantreg' => '%s kayıt edilemiyor',
|
||||||
|
'alreadyreged' => '%s zaten kayıtlı.',
|
||||||
|
'successreg' => '%s kayıt oldu.',
|
||||||
|
'cantchgstat' => '%s\'ın statüsü değiştirilemiyor!',
|
||||||
|
'succdel' => '%s başarılı bir şekilde veritabanından silindi.',
|
||||||
|
'succchg' => '%s\'ın statüsü başarıyla değiştirildi.',
|
||||||
|
'wrongpass' => 'Yanlış şifre!',
|
||||||
|
'wrongglobalpass' => 'Yanlış global şifre!',
|
||||||
|
'succprofile' => 'Profiliniz başarıyla kaydedildi.',
|
||||||
|
'backtologin' => 'Giriş ekranına geri dön.',
|
||||||
|
'backtochat' => 'Sohbete geri dön.',
|
||||||
|
'Beige' => 'Bej',
|
||||||
|
'Black' => 'Kahverengi',
|
||||||
|
'Blue' => 'Mavi',
|
||||||
|
'BlueViolet' => 'Mavi mor',
|
||||||
|
'Brown' => 'Kahverengi',
|
||||||
|
'Cyan' => 'Camgöbeği',
|
||||||
|
'DarkBlue' => 'Koyu mavi',
|
||||||
|
'DarkGreen' => 'Koyu yeşil',
|
||||||
|
'DarkRed' => 'Koyu red',
|
||||||
|
'DarkViolet' => 'Koyu mor',
|
||||||
|
'DeepSkyBlue' => 'Gökyüzü mavisi',
|
||||||
|
'Gold' => 'Altın',
|
||||||
|
'Grey' => 'Gri',
|
||||||
|
'Green' => 'Yeşil',
|
||||||
|
'HotPink' => 'Sıcak pembe',
|
||||||
|
'Indigo' => 'Indigo',
|
||||||
|
'LightBlue' => 'Açık mavi',
|
||||||
|
'LightGreen' => 'Açık yeşil',
|
||||||
|
'LimeGreen' => 'Limon yeşili',
|
||||||
|
'Magenta' => 'Magenta',
|
||||||
|
'Olive' => 'Zeytin',
|
||||||
|
'Orange' => 'Turuncu',
|
||||||
|
'OrangeRed' => 'Turuncu kırmızı',
|
||||||
|
'Purple' => 'Mor',
|
||||||
|
'Red' => 'Kırmızı',
|
||||||
|
'RoyalBlue' => 'Kraliyet mavisi',
|
||||||
|
'SeaGreen' => 'Deniz yeşili',
|
||||||
|
'Sienna' => 'Sienna',
|
||||||
|
'Silver' => 'Gümüş',
|
||||||
|
'Tan' => 'Tan',
|
||||||
|
'Teal' => 'Teal',
|
||||||
|
'Violet' => 'Mor',
|
||||||
|
'White' => 'Beyaz',
|
||||||
|
'Yellow' => 'Sarı',
|
||||||
|
'YellowGreen' => 'Sarı yeşil',
|
||||||
|
'redirectto' => 'Şuna yönlendiriliyor:',
|
||||||
|
'nonhttp' => 'HTTP olmayan bağlantı istenildi:',
|
||||||
|
'dangerousnonhttp' => 'Tehlikeli HTTP olmayan bağlantı istenildi, eğer eminseniz bu bağlantıyı kopyalayıp yapıştırın:',
|
||||||
|
'httpredir' => 'Eğer çalışmıyorsa, bunu deneyin:',
|
||||||
|
'actions' => 'Eylemler',
|
||||||
|
'sesip' => 'IP Adresi',
|
||||||
|
'css' => 'CSS Stili',
|
||||||
|
'memberexpire' => 'Üye zaman aşımı (dakika)',
|
||||||
|
'guestexpire' => 'Konuk zaman aşımı (dakika)',
|
||||||
|
'kickpenalty' => 'Atım cezası (dakika)',
|
||||||
|
'entrywait' => 'Bekleme odası zamanı (saniye)',
|
||||||
|
'captchatime' => 'Captcha zaman aşımı (saniye)',
|
||||||
|
'messageexpire' => 'İleti zaman aşımı (dakika)',
|
||||||
|
'messagelimit' => 'İleti sınırı (herkese açık)',
|
||||||
|
'maxmessage' => 'Maksimum ileti uzunluğu',
|
||||||
|
'confirm' => 'Emin misiniz?',
|
||||||
|
'yes' => 'Evet',
|
||||||
|
'no' => 'Hayır',
|
||||||
|
'colbg' => 'Arkaplan rengi',
|
||||||
|
'coltxt' => 'Yazı rengi',
|
||||||
|
'maxname' => 'Maksimum şifre uzunluğu',
|
||||||
|
'minpass' => 'Minimum şifre uzunluğu',
|
||||||
|
'defaultrefresh' => 'Varsayılan mesaj yenileme süresi (saniye)',
|
||||||
|
'suguests' => 'Başvuru sahiplerini etkinleştir',
|
||||||
|
'rulestxt' => 'Kurallar (html)',
|
||||||
|
'imgembed' => 'Gömülü görseller',
|
||||||
|
'trackip' => 'Oturum IP\'sini göster',
|
||||||
|
'captchachars' => 'Captcha\'da kullanılan harfler',
|
||||||
|
'memkick' => 'Eğer herhangi bir moderatör yoksa, üyeler birini atabilir',
|
||||||
|
'forceredirect' => 'Yönlendirmeye zorla',
|
||||||
|
'redirect' => 'Özel yönlendirme script\'i',
|
||||||
|
'backuprestore' => 'Yedekle ve onar',
|
||||||
|
'backup' => 'Backup',
|
||||||
|
'restore' => 'Onar',
|
||||||
|
'settings' => 'Ayarlar',
|
||||||
|
'linkfilter' => 'Linkfilter',
|
||||||
|
'chatname' => 'Sohbet ismi',
|
||||||
|
'destroy' => 'Sohbeti yok et',
|
||||||
|
'destroyed' => 'Sohbet başarıyla yok edildi',
|
||||||
|
'topic' => 'Konu',
|
||||||
|
'passreset' => 'Şifreyi değiştir',
|
||||||
|
'cantresetpass' => 'Şifre değiştirilemiyor',
|
||||||
|
'succpassreset' => 'Şifre başarıyla değiştirildi',
|
||||||
|
'entermsg' => '%s sohbete katıldı.',
|
||||||
|
'exitmsg' => '%s sohbetten çıktı.',
|
||||||
|
'memregmsg' => '%s artık bir kayıtlı üye.',
|
||||||
|
'suregmsg' => '%s artık başvuru sahibi.',
|
||||||
|
'kickmsg' => '%s atıldı.',
|
||||||
|
'multikickmsg' => '%s atıldı.',
|
||||||
|
'allkickmsg' => 'Tüm konuklar atıldı.',
|
||||||
|
'cleanmsg' => '%s temizlendi.',
|
||||||
|
'sendallmsg' => '%s - ',
|
||||||
|
'sendmemmsg' => '[Ü] %s - ',
|
||||||
|
'sendmodmsg' => '[Yetkili] %s - ',
|
||||||
|
'sendadmmsg' => '[Yönetici] %s - ',
|
||||||
|
'sendprvmsg' => '[%1$s to %2$s] - ',
|
||||||
|
'msgsendall' => 'Herkese gönder',
|
||||||
|
'msgsendmem' => 'Sadece üyelere gönder',
|
||||||
|
'msgsendmod' => 'Sadece yetkililere gönder',
|
||||||
|
'msgsendadm' => 'Sadece yöneticilere gönder',
|
||||||
|
'msgsendprv' => 'Özel ileti',
|
||||||
|
'numnotes' => 'Number of notes revisions to keep',
|
||||||
|
'revisions' => 'Revisions:',
|
||||||
|
'older' => 'Daha eski',
|
||||||
|
'newer' => 'Daha yeni',
|
||||||
|
'accessdenied' => 'Erişin reddedildi',
|
||||||
|
'loggedinas' => '%s olarak giriş yaptınız ve bu bölüme erişiminiz yok.',
|
||||||
|
'newnickname' => 'Yeni kullanıcı adı:',
|
||||||
|
'nicknametaken' => 'Kullanıcı adı zaten alınmış',
|
||||||
|
'nopass' => 'Geçersiz şifre (En az %d harf), kullanıcı adı değiştirilmiyor',
|
||||||
|
'gdextrequired' => 'Bu özellik için PHP\'nin gd uzantısı gerekiyor. Lütfen önce onu kurun.',
|
||||||
|
'memcachedextrequired' => 'Önbelleğe alma özelliği için PHP\'nin memcached uzantısı gerekiyor. Lütfen ilk önce onu kurun veya memcached özelliğini devre dışı bırakın.',
|
||||||
|
'sodiumextrequired' => 'Şifreleme için PHP\'nin libsodium uzantısı gerekiyor. Lütfen ilk önce onu kurun veya şifreleme özelliğini devre dışı bırakın.',
|
||||||
|
'pdo_mysqlextrequired' => 'Seçili veritabanı sürücüsü için PHP\'nin pdo_mysql uzantısı gerekiyor. Lütfen ilk önce onu kurun.',
|
||||||
|
'pdo_pgsqlextrequired' => 'Seçili veritabanı sürücüsü için PHP\'nin pdo_mysql uzantısı gerekiyor. Lütfen ilk önce onu kurun.',
|
||||||
|
'pdo_sqliteextrequired' => 'Seçili veritabanı sürücüsü için PHP\'nin pdo_sqlite uzantısı gerekiyor. Lütfen ilk önce onu kurun.',
|
||||||
|
'jsonextrequired' => 'Bu özellik için PHP\'nin json uzantısı gerekiyor. Lütfen ilk önce onu kurun.',
|
||||||
|
'sendmail' => 'Yeni herkese açık mesajla posta gönder',
|
||||||
|
'mailsender' => 'Bu adresi kullanarak posta gönder',
|
||||||
|
'mailreceiver' => 'Bu adrese posta gönder',
|
||||||
|
'modfallback' => 'Eğer konukları onaylayacak moderatör yoksa, bekleme odasına düş',
|
||||||
|
'regpass' => 'Kayıt olmak için<br>şifreyi tekrarla',
|
||||||
|
'guestreg' => 'Konukların kendilerini kayıt etmelerine izin ver',
|
||||||
|
'asmember' => 'Üye olarak',
|
||||||
|
'assuguest' => 'Başvuru sahibi olarak',
|
||||||
|
'fatalerror' => 'Kritik hata',
|
||||||
|
'prevmatch' => 'Eşleşmeniz aşağıdaki gibiydi',
|
||||||
|
'matchtoolong' => 'Eşleşmeniz çok uzundu. En fazla 255 harf kullanabilirsiniz. Bölmeyi deneyin.',
|
||||||
|
'nocache' => 'Otomatik kaydırma (eski tarayıclar veya yukarıdan-aşağıya görüntüleme için).',
|
||||||
|
'disablepm' => 'Özel mesajları devre dışı bırak',
|
||||||
|
'disablechat' => 'Sohbeti devre dışı bırak',
|
||||||
|
'disabletext' => 'Sohbet mesajı devre dışı bıraktı (html)',
|
||||||
|
'disabledtext' => 'Geçici olarak devre dışı',
|
||||||
|
'defaulttz' => 'Varsayılan zaman dilimi',
|
||||||
|
'tz' => 'Zaman dilimi',
|
||||||
|
'optional' => '(isteğe bağlı)',
|
||||||
|
'userloggedin' => 'Bu kullanıcı ismine sahip birisi zaten giriş yapmış.',
|
||||||
|
'regednick' => 'Bu kullanıcı adı kayıtlı bir üyeye ait.',
|
||||||
|
'eninbox' => 'Çevrimdışı gelen kutusunu etkinleştir',
|
||||||
|
'inboxmsgs' => 'Gelen kutunuzdaki %d mesajı okuyun',
|
||||||
|
'offline' => '(çevrimdışı)',
|
||||||
|
'deleteacc' => 'Hesabı sil',
|
||||||
|
'eninnone' => 'Hiç kimse için',
|
||||||
|
'eninall' => 'Herkes için',
|
||||||
|
'eninmem' => 'Sadece üyeler için',
|
||||||
|
'eninstaff' => 'Sadece yetkililer için',
|
||||||
|
'eninadmin' => 'Sadece yöneticiler için',
|
||||||
|
'nickregex' => 'Kullanıcı adı regex',
|
||||||
|
'passregex' => 'Şifre regex',
|
||||||
|
'externalcss' => 'Dış CSS dosyasının bağlantısı',
|
||||||
|
'greetingmsg' => 'Hoş geldin %s!',
|
||||||
|
'entryhelp' => 'Eğer çerçeve %d saniye içinde yenilenmiyorsa, tarayıcınızda otomatik yönlendirmeyi (meta refresh) açmanız lazım. Ayrıca web filtresi, yerel proxy aracı veya tarayıcı uzantılarının otomatik yönlendirmeyi engellemediğinden emin olun! Buna örnek olarak "Polipo", "NoScript", vb. verilebilir<br>Geçici bir çözüm olarak (veya sunucu/proxy yenileme hataları olursa) her zaman aşağıdaki düğmeler ile manuel olarak yenileyebilirsiniz.',
|
||||||
|
'enablegreeting' => 'İletileri göstermeden önce selamlama mesajı göster',
|
||||||
|
'unban' => 'Yasaklamayı kaldır',
|
||||||
|
'sortupdown' => 'İletileri yukarıdan aşağıya doğru sırala',
|
||||||
|
'sortframe' => 'Yeniden düzenle',
|
||||||
|
'cs' => 'Büyük harf/küçük harf duyarlı',
|
||||||
|
'hidechatters' => 'Sohbet edenlerin listesini gizle',
|
||||||
|
'enfileupload' => 'Dosya yüklemelerine izin ver',
|
||||||
|
'msgattache' => 'Ek',
|
||||||
|
'filenotfound' => 'Dosya bulunamadı!',
|
||||||
|
'maxuploadsize' => 'KB olarak en fazla yükleme boyutu',
|
||||||
|
'maxsize' => 'En fazla %d KB',
|
||||||
|
'cssupdate' => 'Not: Default CSS is now hardcoded and can be removed from the CSS setting',
|
||||||
|
'manualrefresh' => 'Manuel yenileme gerekli',
|
||||||
|
'personalnotes' => 'Kişisel notlar',
|
||||||
|
'filtermodkick' => 'Moderatörler için atma filtresini etkinleştir',
|
||||||
|
];
|
||||||
|
|
||||||
|
|
369
lang_uk.php
Normal file
369
lang_uk.php
Normal file
@ -0,0 +1,369 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* LE CHAT-PHP - a PHP Chat based on LE CHAT - Ukrainian translation
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
|
*
|
||||||
|
* 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/ru/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>frames</b>. Будь ласка, включить піддержку у вашому браузері або використовуйте підхідящий!',
|
||||||
|
'delselmes' => 'Удалити вибранне повідомлення',
|
||||||
|
'staffnotes' => 'Служебні замітки',
|
||||||
|
'adminnotes' => 'Замітки администратора',
|
||||||
|
'notessaved' => 'Замітки збереженні!',
|
||||||
|
'lastedited' => 'Послідній раз редактироний %1$s %2$s',
|
||||||
|
'savenotes' => 'Зберігти замітки',
|
||||||
|
'waitingroom' => 'Гістева',
|
||||||
|
'waittext' => 'Ласково просимо %1$s, наблюдаєтся задержка вхіда, доступ до чату буде через %2$d секунд.',
|
||||||
|
'admwaittext' => 'Ласково просимо %1$s, наблюдаєтся задержка вхіда, доступ до чату буде доступний після підтверждення модератора.',
|
||||||
|
'waitreload' => 'Якщо ця сторінка не відповідае, не обновляється кожних %d секунд, використовуйте кнопку внизу, щоб перезагрузити її вручну!',
|
||||||
|
'reload' => 'Перезагрузити',
|
||||||
|
'rules' => 'Правила',
|
||||||
|
'talkto' => 'Відіслати',
|
||||||
|
'toall' => 'Всі в чаті',
|
||||||
|
'tomem' => 'Участникі',
|
||||||
|
'tostaff' => 'Служебні',
|
||||||
|
'toadmin' => 'Администратор',
|
||||||
|
'alsopurge' => 'Також очистити повідомлення',
|
||||||
|
'dellast' => 'Удалити послідні повідомлення',
|
||||||
|
'delall' => 'Удалити всі повідомлення',
|
||||||
|
'switchsingle' => 'Включить однорядковий режим',
|
||||||
|
'switchmulti' => 'Включить багаторядковий режим',
|
||||||
|
'help' => 'Допомога',
|
||||||
|
'helpguest' => 'Всі функції добре зрозумілі, просто використовуйте кнопки. В настройках вашого профіля ви можете настроїти частоту обновлення, кольор шрифта і бажаємий позмір вікна для вхіда.<br><u>Замітка:</u> Це чат, тому даже якщо ви нічого не пишете, то буде автоматично зарегістріровано через деякий час...',
|
||||||
|
'helpembed' => 'Якщо ви хочете встроїти картинку в свій пост, прикріпіть [img] перед вашим URL-картинкою. Приклад: [img]http://example.com/images/file.jpg буде прикріпленна картинка до вашого повідомлення.<br>',
|
||||||
|
'helpmem' => 'Участники: У вас є декілька варіантів настройок у вашому профілі. Можете настроїти шрифт або изменити свій пароль в любий час.',
|
||||||
|
'helpmod' => 'Модератори: Зверніть увагу на кнопку администратора внизу. Це перенесе вас на сторінку, де ви зможете очистити кімнату, забанити, передивитись всі активні сессії і відключити гістевий доступ повністю, якщо обязанно.',
|
||||||
|
'helpadm' => 'Администратори: Ви згiдні регiстріровати гістей, редактирувати участників і регістріровати нові нікі без їх присутності в кімнаті.',
|
||||||
|
'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' => 'Не правильна капча!',
|
||||||
|
'captchaexpire' => 'Захисний код вже использується або стік час.',
|
||||||
|
'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' => '[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.',
|
||||||
|
'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_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' => 'Примінити фільтр исключення для модераторів',
|
||||||
|
];
|
||||||
|
|
@ -8,7 +8,7 @@ $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-2017 Daniel Winzen <d@winzen4.de>
|
* Copyright (C) 2015-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
|
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-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: 简体中文
|
//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