diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..a515b12e9 --- /dev/null +++ b/ISSUE_TEMPLATE.md @@ -0,0 +1,23 @@ +### Operating System (OS/VERSION): + +Type here, e.g. CentOS 6 + +### VestaCP Version: + +Type here, e.g. 3.14159 + +### Installed Software (what you got with the installer): + +Type here, e.g. php-fpm, apache, nginx, mysql + +### Steps to Reproduce: + +Type here, e.g. install vesta and type rm -rf / --no-preserve-root + +### Related Issues/Forum Threads: + +Found anything that might be related to this? It might help us find the cause. + +### Other Notes: + +Anything else? diff --git a/README.md b/README.md index 456e89ae9..3433533cc 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,7 @@ * Vesta has a clean and focused interface without the clutter. * Vesta has the latest of very innovative technologies. - -How to install +How to install (2 step) ---------------------------- Connect to your server as root via SSH ```bash @@ -18,7 +17,13 @@ Download the installation script, and run it: curl http://vestacp.com/pub/vst-install.sh | bash ``` -If the above example does not work, try this 2 step method: +How to install (3 step) +---------------------------- +If the above example does not work, try this 3 step method: +Connect to your server as root via SSH +```bash +ssh root@your.server +``` Download the installation script: ```bash diff --git a/bin/v-add-dns-record b/bin/v-add-dns-record index 113874d39..b785973c5 100755 --- a/bin/v-add-dns-record +++ b/bin/v-add-dns-record @@ -49,6 +49,12 @@ if [[ $rtype =~ NS|CNAME|MX|PTR|SRV ]]; then fi fi +dvalue=${dvalue//\"/} + +if [[ "$dvalue" =~ [\;[:space:]] ]]; then + dvalue='"'"$dvalue"'"' +fi + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-add-fs-archive b/bin/v-add-fs-archive index fa4b7aa3d..20052b0f8 100755 --- a/bin/v-add-fs-archive +++ b/bin/v-add-fs-archive @@ -6,11 +6,11 @@ user=$1 archive=$2 -src=$3 +src0=$3 # Checking arguments -if [ -z "$src" ]; then - echo "Usage: USER ARCHIVE SOURCE" +if [ -z "$src0" ]; then + echo "Usage: USER ARCHIVE FILE [FILE_2] [FILE_3] [FILE ...]" exit 1 fi @@ -21,36 +21,56 @@ if [ ! -e "$VESTA/data/users/$user" ]; then fi # Checking user homedir -homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :) +homedir=$(grep "^$user:" /etc/passwd |cut -f 6 -d :) if [ -z $homedir ]; then echo "Error: user home directory doesn't exist" exit 12 fi # Checking archive -if [ -e "$archive.tar.gz" ]; then - echo "Error: archive already exist $archive.tar.gz" +if [ -e "$archive" ]; then + echo "Error: archive already exist $archive" exit 1 fi # Checking source path -rpath=$(readlink -f "$src") -if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then - echo "Error: invalid source path $src" - exit 1 -fi +IFS=$'\n' +i=1 +for src in $*; do + if [ "$i" -gt 2 ]; then + rpath=$(readlink -f "$src") + if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then + echo "Error: invalid source path $src" + exit 1 + fi + fi + ((i++)) +done -# Parsing current directory -d=$(dirname "$src") +i=1 +for src in $*; do + if [ "$i" -gt 2 ]; then + # Deleting leading home path + src=$(echo "$src"| sed -e "s|/home/$user/||") -# Removing leading file path -f=$(echo "$src" |sed -e "s|$d/||") + # Creating tar.gz archive + sudo -u $user tar -rf "${archive/.gz/}" -C /home/$user $src >\ + /dev/null 2>&1 + if [ "$?" -ne 0 ]; then + echo "Error: archive $archive was not created" + exit 3 + fi + fi + ((i++)) +done -# Creating tar.gz archive -sudo -u $user tar -czf "$archive.tar.gz" -C $d $f >/dev/null 2>&1 -if [ "$?" -ne 0 ]; then - echo "Error: archive $archive.tar.gz was not created" - exit 3 +# Checking gzip +if [[ "$archive" =~ \.gz$ ]]; then + sudo -u $user gzip "${archive/.gz/}" >/dev/null 2>&1 + if [ "$?" -ne 0 ]; then + echo "Error: archive $archive was not gziped" + exit 3 + fi fi exit diff --git a/bin/v-add-letsencrypt-user b/bin/v-add-letsencrypt-user index 52ada0dec..fd10fe06f 100755 --- a/bin/v-add-letsencrypt-user +++ b/bin/v-add-letsencrypt-user @@ -12,7 +12,7 @@ # Argument definition user=$1 email=$2 -key_size=2048 +key_size=4096 # Includes source $VESTA/func/main.sh diff --git a/bin/v-add-mail-domain-dkim b/bin/v-add-mail-domain-dkim index fe709a590..4a71870ce 100755 --- a/bin/v-add-mail-domain-dkim +++ b/bin/v-add-mail-domain-dkim @@ -63,11 +63,11 @@ fi # Adding dns records if [ ! -z "$DNS_SYSTEM" ] && [ -e "$USER_DATA/dns/$domain.conf" ]; then p=$(cat $USER_DATA/mail/$domain.pub |grep -v ' KEY---' |tr -d '\n') - record='_domainkey' + record="_domainkey.$domain_idn" policy="\"t=y; o=~;\"" $BIN/v-add-dns-record $user $domain $record TXT "$policy" - record='mail._domainkey' + record="mail._domainkey.$domain_idn" selector="\"k=rsa\; p=$p\"" $BIN/v-add-dns-record $user $domain $record TXT "$selector" fi diff --git a/bin/v-add-remote-dns-domain b/bin/v-add-remote-dns-domain index b82ea4fdc..2240bafde 100755 --- a/bin/v-add-remote-dns-domain +++ b/bin/v-add-remote-dns-domain @@ -14,6 +14,7 @@ user=$1 domain=$2 flush=$3 + # Includes source $VESTA/func/main.sh source $VESTA/func/remote.sh @@ -27,12 +28,7 @@ source $VESTA/conf/vesta.conf check_args '2' "$#" 'USER DOMAIN [FLUSH]' is_format_valid 'user' 'domain' is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER' -if [ ! -e "$VESTA/conf/dns-cluster.conf" ]; then - check_result $E_NOTEXIST "dns-cluster.conf doesn't exist" -fi -if [ "$(ps auxf |grep -v grep |grep $BIN/$SCRIPT |wc -l)" -gt 2 ]; then - check_result $E_EXISTS "another sync process already running" -fi +is_procces_running remote_dns_health_check diff --git a/bin/v-add-remote-dns-record b/bin/v-add-remote-dns-record index 000f29486..91f4b727f 100755 --- a/bin/v-add-remote-dns-record +++ b/bin/v-add-remote-dns-record @@ -29,12 +29,7 @@ is_format_valid 'user' 'domain' 'id' is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER' is_object_valid 'user' 'USER' "$user" is_object_valid 'dns' 'DOMAIN' "$domain" -if [ ! -e "$VESTA/conf/dns-cluster.conf" ]; then - check_result $E_NOTEXIST "dns-cluster.conf doesn't exist" -fi -if [ "$(ps auxf |grep -v grep |grep $BIN/$SCRIPT |wc -l)" -gt 2 ]; then - check_result $E_EXISTS "another sync process already running" -fi +is_procces_running remote_dns_health_check diff --git a/bin/v-add-user b/bin/v-add-user index 630ae4720..da50f674c 100755 --- a/bin/v-add-user +++ b/bin/v-add-user @@ -66,8 +66,9 @@ mkdir $HOMEDIR/$user/conf if [ ! -z "$WEB_SYSTEM" ]; then mkdir $HOMEDIR/$user/conf/web $HOMEDIR/$user/web $HOMEDIR/$user/tmp - chmod 751 $HOMEDIR/$user/conf/web $HOMEDIR/$user/web - chmod 771 $HOMEDIR/$user/tmp + chmod 751 $HOMEDIR/$user/conf/web + chmod 710 $HOMEDIR/$user/web + chmod 700 $HOMEDIR/$user/tmp chown $user:$user $HOMEDIR/$user/web $HOMEDIR/$user/tmp fi diff --git a/bin/v-add-web-domain b/bin/v-add-web-domain index 04fa9afc5..0f5ee8c9a 100755 --- a/bin/v-add-web-domain +++ b/bin/v-add-web-domain @@ -1,6 +1,6 @@ #!/bin/bash # info: add web domain -# options: USER DOMAIN [IP] [ALIASES] [PROXY_EXTENTIONS] [RESTART] +# options: USER DOMAIN [IP] [ALIASES] [PROXY_EXTENSIONS] [RESTART] # # The function adds virtual host to a server. In cases when ip is # undefined in the script, "default" template will be used. The alias of @@ -55,7 +55,7 @@ source $VESTA/conf/vesta.conf #----------------------------------------------------------# is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM' -check_args '2' "$#" 'USER DOMAIN [IP] [RESTART] [ALIASES] [PROXY_EXTENTIONS]' +check_args '2' "$#" 'USER DOMAIN [IP] [RESTART] [ALIASES] [PROXY_EXTENSIONS]' is_format_valid 'user' 'domain' 'aliases' 'ip' 'proxy_ext' is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" @@ -120,12 +120,21 @@ if [ ! -z "$WEB_BACKEND" ]; then check_result $? "Backend error" >/dev/null fi -# Preparing domain variables -if [ "$aliases" != 'none' ]; then - ALIAS="www.$domain,$aliases,$(get_ip_alias $domain)" -else +# Preparing domain aliases +if [ "$aliases" = 'none' ]; then ALIAS='' +else + ALIAS="www.$domain" + if [ ! -z "$aliases" ]; then + ALIAS="$ALIAS,$aliases" + fi + ip_alias=$(get_ip_alias $domain) + if [ ! -z "$ip_alias" ]; then + ALIAS="$ALIAS,$ip_alias" + fi fi + +# Preparing domain variables prepare_web_domain_values # Adding web server config diff --git a/bin/v-add-web-domain-proxy b/bin/v-add-web-domain-proxy index 373263523..ff6a12fab 100755 --- a/bin/v-add-web-domain-proxy +++ b/bin/v-add-web-domain-proxy @@ -12,8 +12,7 @@ # Argument definition user=$1 -domain=$(idn -t --quiet -u "$2" ) -domain_idn=$(idn -t --quiet -a "$domain") +domain=$2 template=$3 default_extentions="jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls,\ exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp,rtf,js,mp3,avi,mpeg,flv,html,htm" @@ -51,6 +50,7 @@ is_proxy_template_valid $template # Defining domain parameters get_domain_values 'web' +prepare_web_domain_values local_ip=$(get_real_ip $IP) # Preparing domain values for the template substitution diff --git a/bin/v-backup-user b/bin/v-backup-user index 68682e428..1cd1f4118 100755 --- a/bin/v-backup-user +++ b/bin/v-backup-user @@ -485,7 +485,7 @@ local_backup(){ # Removing old backup for backup in $(echo "$backup_list" |head -n $backups_rm_number); do backup_date=$(echo $backup |sed -e "s/$user.//" -e "s/.tar$//") - echo -e "$(date "+%F %T") Roated: $backup_date" |\ + echo -e "$(date "+%F %T") Rotated: $backup_date" |\ tee -a $BACKUP/$user.log rm -f $BACKUP/$backup done @@ -509,8 +509,6 @@ local_backup(){ localbackup='yes' echo -e "$(date "+%F %T") Local: $BACKUP/$user.$date.tar" |\ tee -a $BACKUP/$user.log - U_BACKUPS=$(ls $BACKUP/ |grep "^$user." |wc -l) - update_user_value "$user" '$U_BACKUPS' "$U_BACKUPS" } @@ -594,7 +592,7 @@ ftp_backup() { backups_rm_number=$((backups_count - BACKUPS + 1)) for backup in $(echo "$backup_list" |head -n $backups_rm_number); do backup_date=$(echo $backup |sed -e "s/$user.//" -e "s/.tar$//") - echo -e "$(date "+%F %T") Roated ftp backup: $backup_date" |\ + echo -e "$(date "+%F %T") Rotated ftp backup: $backup_date" |\ tee -a $BACKUP/$user.log ftpc "cd $BPATH" "delete $backup" done @@ -729,7 +727,7 @@ sftp_backup() { backups_rm_number=$((backups_count - BACKUPS + 1)) for backup in $(echo "$backup_list" |head -n $backups_rm_number); do backup_date=$(echo $backup |sed -e "s/$user.//" -e "s/.tar.*$//") - echo -e "$(date "+%F %T") Roated sftp backup: $backup_date" |\ + echo -e "$(date "+%F %T") Rotated sftp backup: $backup_date" |\ tee -a $BACKUP/$user.log sftpc "cd $BPATH" "rm $backup" > /dev/null 2>&1 done @@ -807,11 +805,14 @@ chmod 660 $USER_DATA/backup.conf # Deleting task from queue sed -i "/v-backup-user $user /d" $VESTA/data/queue/backup.pipe +U_BACKUPS=$(grep BACKUP $USER_DATA/backup.conf |wc -l) +update_user_value "$user" '$U_BACKUPS' "$U_BACKUPS" + # Send notification if [ -e "$BACKUP/$user.log" ]; then subj="$user → backup has been completed" email=$(get_user_value '$CONTACT') - cat $BACKUP/$user.log #|$SENDMAIL -s "$subj" $email $notify + cat $BACKUP/$user.log |$SENDMAIL -s "$subj" $email $notify rm $BACKUP/$user.log fi diff --git a/bin/v-change-remote-dns-domain-exp b/bin/v-change-remote-dns-domain-exp index 421e1408b..0bb4685dd 100755 --- a/bin/v-change-remote-dns-domain-exp +++ b/bin/v-change-remote-dns-domain-exp @@ -28,12 +28,7 @@ is_format_valid 'user' 'domain' is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER' is_object_valid 'user' 'USER' "$user" is_object_valid 'dns' 'DOMAIN' "$domain" -if [ ! -e "$VESTA/conf/dns-cluster.conf" ]; then - check_result $E_NOTEXIST "dns-cluster.conf doesn't exist" -fi -if [ "$(ps auxf |grep -v grep |grep $BIN/$SCRIPT |wc -l)" -gt 2 ]; then - check_result $E_EXISTS "another sync process already running" -fi +is_procces_running remote_dns_health_check diff --git a/bin/v-change-remote-dns-domain-soa b/bin/v-change-remote-dns-domain-soa index 0974e1aa2..c522b4312 100755 --- a/bin/v-change-remote-dns-domain-soa +++ b/bin/v-change-remote-dns-domain-soa @@ -28,12 +28,7 @@ is_format_valid 'user' 'domain' is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER' is_object_valid 'user' 'USER' "$user" is_object_valid 'dns' 'DOMAIN' "$domain" -if [ ! -e "$VESTA/conf/dns-cluster.conf" ]; then - check_result 1 $E_NOTEXIST "dns-cluster.conf doesn't exist" -fi -if [ "$(ps auxf |grep -v grep |grep $VESTA/bin/$SCRIPT |wc -l)" -gt 2 ]; then - check_result 1 $E_EXISTS "another sync process already running" -fi +is_procces_running remote_dns_health_check diff --git a/bin/v-change-remote-dns-domain-ttl b/bin/v-change-remote-dns-domain-ttl index 6bdc90e88..77bc235fe 100755 --- a/bin/v-change-remote-dns-domain-ttl +++ b/bin/v-change-remote-dns-domain-ttl @@ -28,12 +28,7 @@ is_format_valid 'user' 'domain' is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER' is_object_valid 'user' 'USER' "$user" is_object_valid 'dns' 'DOMAIN' "$domain" -if [ ! -e "$VESTA/conf/dns-cluster.conf" ]; then - check_result $E_NOTEXIST "dns-cluster.conf doesn't exist" -fi -if [ "$(ps auxf |grep -v grep |grep $BIN/$SCRIPT |wc -l)" -gt 2 ]; then - check_result $E_EXISTS "another sync process already running" -fi +is_procces_running remote_dns_health_check diff --git a/bin/v-change-sys-config-value b/bin/v-change-sys-config-value index 31b626342..106576563 100755 --- a/bin/v-change-sys-config-value +++ b/bin/v-change-sys-config-value @@ -18,6 +18,8 @@ value=$2 source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +PATH="$PATH:/usr/local/sbin:/sbin:/usr/sbin:/root/bin" + #----------------------------------------------------------# # Verifications # diff --git a/bin/v-change-sys-service-config b/bin/v-change-sys-service-config new file mode 100755 index 000000000..77b45d885 --- /dev/null +++ b/bin/v-change-sys-service-config @@ -0,0 +1,119 @@ +#!/bin/bash +# info: change service config +# options: CONFIG SERVICE [RESTART] +# +# The function for changing service confguration. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +src=$1 +service=$2 +restart=$3 +echo "$0 $*" >/tmp/t.log + +# Includes +source $VESTA/func/main.sh +source $VESTA/conf/vesta.conf + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +check_args '2' "$#" 'CONFIG SERVICE [RESTART]' +if [ ! -e "$src" ]; then + check_result "$E_NOTEXIST" "$src config doesn't exist" +fi + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Defining dst config path +case $service in + nginx) dst='/etc/nginx/nginx.conf';; + httpd) dst='/etc/httpd/conf/httpd.conf';; + apache2) dst='/etc/apache2/apache2.conf';; + exim) dst='/etc/exim/exim.conf';; + exim4) dst='/etc/exim4/exim4.conf.template';; + vsftpd) dst=$(find /etc/vsftpd* -name 'vsftpd.conf');; + proftpd) dst=$(find /etc/proftpd* -name 'proftpd.conf');; + php) dst=$(find /etc/php* -name php.ini);; + mysql) dst=$(find /etc/my* -name my.cnf);; + mariadb) dst=$(find /etc/my* -name my.cnf);; + postgresql) dst=$($BIN/v-list-sys-pgsql-config plain |cut -f 1);; + postgresql-hba) dst=$($BIN/v-list-sys-pgsql-config plain |cut -f 2);; + dovecot) dst=$(find /etc/dovecot* -name dovecot.conf);; + dovecot-1) dst='/etc/dovecot/conf.d/10-auth.conf';; + dovecot-2) dst='/etc/dovecot/conf.d/10-logging.conf';; + dovecot-3) dst='/etc/dovecot/conf.d/10-mail.conf';; + dovecot-4) dst='/etc/dovecot/conf.d/10-master.conf';; + dovecot-5) dst='/etc/dovecot/conf.d/10-ssl.conf';; + dovecot-6) dst='/etc/dovecot/conf.d/20-imap.conf';; + dovecot-7) dst='/etc/dovecot/conf.d/20-pop3.conf';; + dovecot-8) dst='/etc/dovecot/conf.d/auth-passwdfile.conf.ext';; + named) dst='/etc/named.conf';; + bind9) dst='/etc/bind/named.conf';; + bind9-opt) dst='/etc/bind/named.conf.options';; + spamd) dst=$($BIN/v-list-sys-spamd-config plain);; + spamassassin) dst=$($BIN/v-list-sys-spamd-config plain);; + clamd) dst=$($BIN/v-list-sys-clamd-config plain);; + cron) dst='/etc/crontab';; + crond) dst='/etc/crontab';; + fail2ban) dst='/etc/fail2ban/jail.local';; + *) check_result $E_NOTEXIST "service $service doesn't exist" +esac + +# Checking config path +for config in $dst; do + if [ ! -e "$config" ]; then + check_result $E_NOTEXIST "$service config doesn't exist" + fi +done + +# Checking diff between src and dst configs +for config in $dst; do + diff -q $src $config >/dev/null + + if [ $? -ne 0 ]; then + cp $config $config.vst.back + cp $src $config + update="yes" + fi +done + +# Restarting service +if [ "$update" = 'yes' ] && [ "$restart" != 'no' ]; then + if [ "$service" = 'php' ]; then + if [ "$WEB_SYSTEM" = "nginx" ]; then + service=$WEB_BACKEND + else + service=$WEB_SYSTEM + fi + fi + if [[ "$service" =~ - ]]; then + service=$(echo ${service%-*}) + fi + + service $service restart >/dev/null 2>&1 + if [ $? -ne 0 ]; then + for config in $dst; do + mv -f $config.vst.back $config + done + check_result $E_RESTART "$service failed to start with new config" + fi +fi + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Logging +log_event "$OK" "$ARGUMENTS" + +exit diff --git a/bin/v-change-web-domain-backend-tpl b/bin/v-change-web-domain-backend-tpl index 40b11df1f..67044d6db 100755 --- a/bin/v-change-web-domain-backend-tpl +++ b/bin/v-change-web-domain-backend-tpl @@ -45,7 +45,7 @@ is_backend_template_valid $template prepare_web_backend # Deleting backend -rm -f $pool/$backend.conf +rm -f $pool/$backend_type.conf # Allocating backend port backend_port=9000 @@ -63,10 +63,10 @@ cat $WEBTPL/$WEB_BACKEND/$template.tpl |\ -e "s|%user%|$user|"\ -e "s|%domain%|$domain|"\ -e "s|%domain_idn%|$domain_idn|"\ - -e "s|%backend%|$backend|g" > $pool/$backend.conf + -e "s|%backend%|$backend_type|g" > $pool/$backend_type.conf # Checking backend pool configuration -if [ "$backend" = "$user" ]; then +if [ "$backend_type" = "$user" ]; then conf=$USER_DATA/web.conf fields='$DOMAIN' nohead=1 diff --git a/bin/v-change-web-domain-name b/bin/v-change-web-domain-name new file mode 100755 index 000000000..316c6a126 --- /dev/null +++ b/bin/v-change-web-domain-name @@ -0,0 +1,97 @@ +#!/bin/bash +# info: change web domain name +# options: USER DOMAIN NEW_DOMAIN [RESTART] +# +# The call is used for changing the domain name. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument defenition +user=$1 +domain=$2 +new_domain=$3 +restart=$4 + +domain_idn="$domain" +if [[ "$domain" = *[![:ascii:]]* ]]; then + domain_idn=$(idn -t --quiet -a $domain) +fi + +# Includes +source $VESTA/func/main.sh +source $VESTA/func/domain.sh +source $VESTA/func/ip.sh +source $VESTA/conf/vesta.conf + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +check_args '3' "$#" 'USER DOMAIN NEW_DOMAIN [RESTART]' +is_format_valid 'user' 'domain' +is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM' +is_object_valid 'user' 'USER' "$user" +is_object_unsuspended 'user' 'USER' "$user" +is_object_valid 'web' 'DOMAIN' "$domain" +is_object_unsuspended 'web' 'DOMAIN' "$domain" +check_new_domain=$(grep "DOMAIN='$new_domain'" $VESTA/data/users/*/web.conf) +if [ ! -z "$check_new_domain" ]; then + check_result $E_EXISTS "$new_domain already exists" +fi + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Fetching domain variables +get_domain_values 'web' + +# Changing domain in web.conf +sed -i "s/DOMAIN='$domain'/DOMAIN='$new_domain'/" $USER_DATA/web.conf +new_alias=$(echo "$ALIAS,$domain" |\ + sed -e "s/,/\n/g"|\ + sed -e "s/^$new_domain$//g"|\ + sed -e "/^$/d"|\ + sed -e ':a;N;$!ba;s/\n/,/g') + +# Updating domain alias +if [ "$ALIAS" != "$new_alias" ]; then + sed -i "s/ALIAS='$ALIAS'/ALIAS='$new_alias'/" $USER_DATA/web.conf +fi + +# Moving document root and domain logs +mv $HOMEDIR/$user/web/$domain $HOMEDIR/$user/web/$new_domain/ +cd /var/log/$WEB_SYSTEM/domains +mv $domain.log $new_domain.log +mv $domain.error.log $new_domain.error.log +mv $domain.bytes $new_domain.bytes +rm -f $HOMEDIR/$user/web/$new_domain/logs/$domain.* + +# Updating domain certificates +if [ -e "$USER_DATA/ssl/$domain.crt" ]; then + cd $USER_DATA/ssl + mv $domain.crt $new_domain.crt + mv $domain.ca $new_domain.ca + mv $domain.pem $new_domain.pem + mv $domain.key $new_domain.key + rm -f $HOMEDIR/$user/conf/web/ssl.$domain.* +fi + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Rebuilding vhosts +$BIN/v-rebuild-web-domains $user $restart + +# Logging +log_history "changed web domain name $old_domain to $new_domain" +log_event "$OK" "$EVENT" + +exit diff --git a/bin/v-change-web-domain-tpl b/bin/v-change-web-domain-tpl index 3366c313d..936352301 100755 --- a/bin/v-change-web-domain-tpl +++ b/bin/v-change-web-domain-tpl @@ -54,9 +54,9 @@ fi # Defining variables for new vhost config prepare_web_domain_values -add_web_config "$WEB_SYSTEM" "$TPL.tpl" +add_web_config "$WEB_SYSTEM" "$template.tpl" if [ "$SSL" = 'yes' ]; then - add_web_config "$WEB_SYSTEM" "$TPL.stpl" + add_web_config "$WEB_SYSTEM" "$template.stpl" fi diff --git a/bin/v-delete-remote-dns-domain b/bin/v-delete-remote-dns-domain index 5200030e3..bd8f46dd5 100755 --- a/bin/v-delete-remote-dns-domain +++ b/bin/v-delete-remote-dns-domain @@ -26,12 +26,7 @@ source $VESTA/conf/vesta.conf check_args '2' "$#" 'USER DOMAIN' is_format_valid 'user' 'domain' is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER' -if [ ! -e "$VESTA/conf/dns-cluster.conf" ]; then - check_result $E_NOTEXIST "dns-cluster.conf doesn't exist" -fi -if [ "$(ps auxf |grep -v grep |grep $BIN/$SCRIPT |wc -l)" -gt 2 ]; then - check_result $E_EXISTS "another sync process already running" -fi +is_procces_running remote_dns_health_check diff --git a/bin/v-delete-remote-dns-domains b/bin/v-delete-remote-dns-domains index 1902e576e..3c3b8fd3d 100755 --- a/bin/v-delete-remote-dns-domains +++ b/bin/v-delete-remote-dns-domains @@ -22,12 +22,7 @@ source $VESTA/conf/vesta.conf #----------------------------------------------------------# is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER' -if [ ! -e "$VESTA/conf/dns-cluster.conf" ]; then - check_result $E_NOTEXIST "dns-cluster.conf doesn't exist" -fi -if [ "$(ps auxf |grep -v grep |grep $BIN/$SCRIPT |wc -l)" -gt 2 ]; then - check_result $E_EXISTS "another sync process already running" -fi +is_procces_running remote_dns_health_check diff --git a/bin/v-delete-remote-dns-record b/bin/v-delete-remote-dns-record index cbc1d4c87..a4732a2d4 100755 --- a/bin/v-delete-remote-dns-record +++ b/bin/v-delete-remote-dns-record @@ -27,12 +27,7 @@ source $VESTA/conf/vesta.conf check_args '3' "$#" 'USER DOMAIN ID' is_format_valid 'user' 'domain' 'id' is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER' -if [ ! -e "$VESTA/conf/dns-cluster.conf" ]; then - check_result $E_NOTEXIST "dns-cluster.conf doesn't exist" -fi -if [ "$(ps auxf |grep -v grep |grep $BIN/$SCRIPT |wc -l)" -gt 2 ]; then - check_result $E_EXISTS "another sync process already running" -fi +is_procces_running remote_dns_health_check diff --git a/bin/v-generate-ssl-cert b/bin/v-generate-ssl-cert index 80912d789..b87a2d650 100755 --- a/bin/v-generate-ssl-cert +++ b/bin/v-generate-ssl-cert @@ -21,7 +21,7 @@ org=$6 org_unit=$7 aliases=$8 format=${9-shell} -KEY_SIZE=2048 +KEY_SIZE=4096 DAYS=365 # Includes diff --git a/bin/v-list-cron-job b/bin/v-list-cron-job index 8aa17685d..18592a52e 100755 --- a/bin/v-list-cron-job +++ b/bin/v-list-cron-job @@ -23,7 +23,7 @@ json_list() { echo -n ' "'$job'": { "MIN": "'$MIN'", "HOUR": "'$HOUR'", - "DAY": "'$HOUR'", + "DAY": "'$DAY'", "MONTH": "'$MONTH'", "WDAY": "'$WDAY'", "CMD": "'$CMD'", diff --git a/bin/v-list-sys-clamd-config b/bin/v-list-sys-clamd-config new file mode 100755 index 000000000..1bb614b96 --- /dev/null +++ b/bin/v-list-sys-clamd-config @@ -0,0 +1,73 @@ +#!/bin/bash +# info: list clamd config parameters +# options: [FORMAT] +# +# The function for obtaining the list of clamd config parameters. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +format=${1-shell} + +# Includes +source $VESTA/func/main.sh + +# JSON list function +json_list() { + echo '{ + "CONFIG": { + "config_path": "'$config_path'" + } +}' +} + +# SHELL list function +shell_list() { + echo "config_path: $config_path" +} + +# PLAIN list function +plain_list() { + echo "$config_path" +} + +# CSV list function +csv_list() { + echo "config_path" + echo "$config_path" +} + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Defining config path +if [ -e '/etc/clamav/clamd.conf' ]; then + config_path='/etc/clamav/clamd.conf' +else + if [ -e '/etc/clamd.conf' ]; then + config_path='/etc/clamd.conf' + fi + if [ -e '/etc/clamd.d/clamd.conf' ]; then + config_path='/etc/clamav/clamd.conf' + fi +fi + +# Listing data +case $format in + json) json_list ;; + plain) plain_list ;; + csv) csv_list ;; + shell) shell_list;; +esac + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit diff --git a/bin/v-list-sys-dovecot-config b/bin/v-list-sys-dovecot-config new file mode 100755 index 000000000..873755866 --- /dev/null +++ b/bin/v-list-sys-dovecot-config @@ -0,0 +1,103 @@ +#!/bin/bash +# info: list dovecot config parameters +# options: [FORMAT] +# +# The function for obtaining the list of dovecot config parameters. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +format=${1-shell} + +# Includes +source $VESTA/func/main.sh + +# JSON list function +json_list() { + echo '{ + "CONFIG": { + "config_path": "'$config_path'", + "config_path1": "'$config_path1'", + "config_path2": "'$config_path2'", + "config_path3": "'$config_path3'", + "config_path4": "'$config_path4'", + "config_path5": "'$config_path5'", + "config_path6": "'$config_path6'", + "config_path7": "'$config_path7'", + "config_path8": "'$config_path8'" + } +}' +} + +# SHELL list function +shell_list() { + echo "config_path: $config_path" + echo "config_path1: $config_path1" + echo "config_path2: $config_path2" + echo "config_path3: $config_path3" + echo "config_path4: $config_path4" + echo "config_path5: $config_path5" + echo "config_path6: $config_path6" + echo "config_path7: $config_path7" + echo "config_path8: $config_path8" +} + +# PLAIN list function +plain_list() { + echo -en "$config_path\t" + echo -en "$config_path1\t" + echo -en "$config_path2\t" + echo -en "$config_path3\t" + echo -en "$config_path4\t" + echo -en "$config_path5\t" + echo -en "$config_path6\t" + echo -en "$config_path7\t" + echo -e "$config_path8\t" +} + +# CSV list function +csv_list() { + echo -n "config_path,config_path1,config_path2,config_path3," + echo "config_path4,config_path5,config_path6,config_path7,config_path8" + echo -n "$config_path,$config_path1,$config_path2,$config_path3," + echo -n "$config_path4,$config_path5,$config_path6,$config_path7," + echo "$config_path8" +} + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Defining config path +if [ -e '/etc/dovecot.conf' ]; then + config_path='/etc/dovecot.conf' +else + config_path='/etc/dovecot/dovecot.conf' + config_path1='/etc/dovecot/conf.d/10-auth.conf' + config_path2='/etc/dovecot/conf.d/10-logging.conf' + config_path3='/etc/dovecot/conf.d/10-mail.conf' + config_path4='/etc/dovecot/conf.d/10-master.conf' + config_path5='/etc/dovecot/conf.d/10-ssl.conf' + config_path6='/etc/dovecot/conf.d/20-imap.conf' + config_path7='/etc/dovecot/conf.d/20-pop3.conf' + config_path8='/etc/dovecot/conf.d/auth-passwdfile.conf.ext' +fi + +# Listing data +case $format in + json) json_list ;; + plain) plain_list ;; + csv) csv_list ;; + shell) shell_list;; +esac + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit diff --git a/bin/v-list-sys-mysql-config b/bin/v-list-sys-mysql-config new file mode 100755 index 000000000..bf297aab0 --- /dev/null +++ b/bin/v-list-sys-mysql-config @@ -0,0 +1,82 @@ +#!/bin/bash +# info: list mysql config parameters +# options: [FORMAT] +# +# The function for obtaining the list of mysql config parameters. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +format=${1-shell} + +# Includes +source $VESTA/func/main.sh +source $VESTA/conf/vesta.conf + +# JSON list function +json_list() { + eval $(echo "$config"|egrep "$keys"|\ + sed -e "s/[ ]*=/=/" -e "s/=[ ]*/=\'/" -e "s/$/'/") + echo '{ + "CONFIG": { + "max_user_connections": "'$max_user_connections'", + "max_connections": "'$max_connections'", + "wait_timeout": "'$wait_timeout'", + "interactive_timeout": "'$interactive_timeout'", + "max_allowed_packet": "'$max_allowed_packet'", + "config_path": "'$config_path'" + } +}' +} + +# SHELL list function +shell_list() { + echo "$config" |egrep "$keys" |tr '=' ' ' + echo "config_path $config_path" +} + +# PLAIN list function +plain_list() { + echo "$config" |egrep "$keys" |tr '=' ' ' + echo "config_path $config_path" +} + +# CSV list function +csv_list() { + echo "$keys" |sed "s/|/,/g" + echo "$config" |egrep "$keys" |tr '=' ' ' |awk '{print $2}' |tr '\n' ',' + echo +} + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Defining config path +config_path=$(find /etc/my* -name my.cnf) + +# Defining keys +keys="max_user_connections|max_connections|wait_timeout|interactive_timeout" +keys="${keys}|max_allowed_packet" + +# Reading config +config=$(cat $config_path|grep -v "^;") + +# Listing data +case $format in + json) json_list ;; + plain) plain_list ;; + csv) csv_list ;; + shell) shell_list |column -t;; +esac + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit diff --git a/bin/v-list-sys-nginx-config b/bin/v-list-sys-nginx-config new file mode 100755 index 000000000..c365caa78 --- /dev/null +++ b/bin/v-list-sys-nginx-config @@ -0,0 +1,88 @@ +#!/bin/bash +# info: list nginx config parameters +# options: [FORMAT] +# +# The function for obtaining the list of nginx config parameters. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +format=${1-shell} + +# Includes +source $VESTA/func/main.sh + +# JSON list function +json_list() { + eval $(echo "$config" |egrep "$keys" |tr -d ';'| awk '{print $1"="$2}') + echo '{ + "CONFIG": { + "worker_processes": "'$worker_processes'", + "worker_connections": "'$worker_connections'", + "send_timeout": "'$send_timeout'", + "proxy_connect_timeout": "'$proxy_connect_timeout'", + "proxy_send_timeout": "'$proxy_send_timeout'", + "proxy_read_timeout": "'$proxy_read_timeout'", + "client_max_body_size": "'$client_max_body_size'", + "gzip": "'$gzip'", + "gzip_comp_level": "'$gzip_comp_level'", + "charset": "'$charset'", + "config_path": "'$config_path'" + } +}' +} + +# SHELL list function +shell_list() { + echo "$config" |egrep "$keys" |tr -d ';' + echo "config_path $config_path" +} + +# PLAIN list function +plain_list() { + echo "$config" |egrep "$keys" |tr -d ';' + echo "config_path $config_path" +} + +# CSV list function +csv_list() { + echo "$keys" |sed "s/ |/,/g" + echo "$config" |egrep "$keys" |awk '{print $2}' |tr -d ';' |tr '\n' ',' + echo +} + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Defining config path +config_path='/etc/nginx/nginx.conf' + +# Defining keys +keys="worker_processes |worker_connections |send_timeout" +keys="$keys |proxy_connect_timeout |proxy_send_timeout" +keys="$keys |proxy_read_timeout |client_max_body_size" +keys="$keys |gzip |gzip_comp_level |charset " + + +# Reading nginx config +config=$(cat $config_path) + +# Listing data +case $format in + json) json_list ;; + plain) plain_list ;; + csv) csv_list ;; + shell) shell_list |column -t;; +esac + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit diff --git a/bin/v-list-sys-pgsql-config b/bin/v-list-sys-pgsql-config new file mode 100755 index 000000000..f568f1079 --- /dev/null +++ b/bin/v-list-sys-pgsql-config @@ -0,0 +1,70 @@ +#!/bin/bash +# info: list postgresql config parameters +# options: [FORMAT] +# +# The function for obtaining the list of postgresql config parameters. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +format=${1-shell} + +# Includes +source $VESTA/func/main.sh + +# JSON list function +json_list() { + echo '{ + "CONFIG": { + "pg_hba_path": "'$pg_hba_path'", + "config_path": "'$config_path'" + } +}' +} + +# SHELL list function +shell_list() { + echo "config_path: $config_path" + echo "pg_hba_path: $pg_hba_path" +} + +# PLAIN list function +plain_list() { + echo -e "$config_path\t$pg_hba_path" +} + +# CSV list function +csv_list() { + echo "config_path,pg_hba_path" + echo "$config_path,$pg_hba_path" +} + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Defining config path +config_path=$(find /etc/postgresql /var/lib/pgsql/data -name \ + postgresql.conf 2>/dev/null) +pg_hba_path=$(find /etc/postgresql /var/lib/pgsql/data -name \ + pg_hba.conf 2>/dev/null) + + +# Listing data +case $format in + json) json_list ;; + plain) plain_list ;; + csv) csv_list ;; + shell) shell_list;; +esac + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit diff --git a/bin/v-list-sys-php-config b/bin/v-list-sys-php-config new file mode 100755 index 000000000..b00902719 --- /dev/null +++ b/bin/v-list-sys-php-config @@ -0,0 +1,94 @@ +#!/bin/bash +# info: list php config parameters +# options: [FORMAT] +# +# The function for obtaining the list of php config parameters. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +format=${1-shell} + +# Includes +source $VESTA/func/main.sh +source $VESTA/conf/vesta.conf + +# JSON list function +json_list() { + eval $(echo "$config"|egrep "$keys"|\ + sed -e "s/[ ]*=/=/" -e "s/=[ ]*/=\'/" -e "s/$/'/") + echo '{ + "CONFIG": { + "memory_limit": "'$memory_limit'", + "max_execution_time": "'$max_execution_time'", + "max_input_time": "'$max_input_time'", + "upload_max_filesize": "'$upload_max_filesize'", + "post_max_size": "'$post_max_size'", + "display_errors": "'$display_errors'", + "error_reporting": "'$error_reporting'", + "config_path": "'$config_path'" + } +}' +} + +# SHELL list function +shell_list() { + echo "$config" |egrep "$keys" |tr -d '=' + echo "config_path $config_path" +} + +# PLAIN list function +plain_list() { + echo "$config" |egrep "$keys" |tr -d '=' + echo "config_path $config_path" +} + +# CSV list function +csv_list() { + echo "$keys" |sed "s/ |/,/g" + echo "$config" |egrep "$keys" |tr -d '=' |awk '{print $2}' |tr '\n' ',' + echo +} + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Defining config path +config_path=$(find /etc/php* -name php.ini) +config_count=$(echo "$config_path" |wc -l) +if [ "$config_count" -gt 1 ]; then + if [ "$WEB_SYSTEM" = "nginx" ]; then + config_path=$(echo "$config_path"| grep fpm) + else + config_path=$(echo "$config_path"| grep apache) + fi +fi + + +# Defining keys +keys="memory_limit |max_execution_time |max_input_time" +keys="$keys |upload_max_filesize |post_max_size" +keys="$keys |display_errors |error_reporting " + +# Reading config +config=$(cat $config_path|grep -v "^;") + +# Listing data +case $format in + json) json_list ;; + plain) plain_list ;; + csv) csv_list ;; + shell) shell_list |column -t;; +esac + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit diff --git a/bin/v-list-sys-proftpd-config b/bin/v-list-sys-proftpd-config new file mode 100755 index 000000000..f0b35502f --- /dev/null +++ b/bin/v-list-sys-proftpd-config @@ -0,0 +1,64 @@ +#!/bin/bash +# info: list proftpd config parameters +# options: [FORMAT] +# +# The function for obtaining the list of proftpd config parameters. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +format=${1-shell} + +# Includes +source $VESTA/func/main.sh + +# JSON list function +json_list() { + echo '{ + "CONFIG": { + "config_path": "'$config_path'" + } +}' +} + +# SHELL list function +shell_list() { + echo "config_path: $config_path" +} + +# PLAIN list function +plain_list() { + echo "$config_path" +} + +# CSV list function +csv_list() { + echo "config_path" + echo "$config_path" +} + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Defining config path +config_path=$(find /etc/proftpd* -name proftpd.conf 2>/dev/null) + +# Listing data +case $format in + json) json_list ;; + plain) plain_list ;; + csv) csv_list ;; + shell) shell_list;; +esac + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit diff --git a/bin/v-list-sys-spamd-config b/bin/v-list-sys-spamd-config new file mode 100755 index 000000000..04d82c731 --- /dev/null +++ b/bin/v-list-sys-spamd-config @@ -0,0 +1,64 @@ +#!/bin/bash +# info: list spamassassin config parameters +# options: [FORMAT] +# +# The function for obtaining the list of spamassassin config parameters. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +format=${1-shell} + +# Includes +source $VESTA/func/main.sh + +# JSON list function +json_list() { + echo '{ + "CONFIG": { + "config_path": "'$config_path'" + } +}' +} + +# SHELL list function +shell_list() { + echo "config_path: $config_path" +} + +# PLAIN list function +plain_list() { + echo "$config_path" +} + +# CSV list function +csv_list() { + echo "config_path" + echo "$config_path" +} + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Defining config path +config_path=$(find /etc/spamassassin /etc/mail -name local.cf 2>/dev/null) + +# Listing data +case $format in + json) json_list ;; + plain) plain_list ;; + csv) csv_list ;; + shell) shell_list;; +esac + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit diff --git a/bin/v-list-sys-vesta-updates b/bin/v-list-sys-vesta-updates index dee911dc7..3fea45718 100755 --- a/bin/v-list-sys-vesta-updates +++ b/bin/v-list-sys-vesta-updates @@ -81,7 +81,7 @@ else TIME=$(date -d @$pkg_date +"%T") fi UPDATED='yes' -if [ ! -z "$latest" ] && [ "$latest" != "vesta-$VERSION-$RELEASE" ]; then +if [ ! -z "$latest" ] && [ "$latest" \> "vesta-$VERSION-$RELEASE" ]; then UPDATED='no' fi data="NAME='vesta' VERSION='$VERSION' RELEASE='$RELEASE' ARCH='$ARCH'" diff --git a/bin/v-list-sys-vsftpd-config b/bin/v-list-sys-vsftpd-config new file mode 100755 index 000000000..060d88422 --- /dev/null +++ b/bin/v-list-sys-vsftpd-config @@ -0,0 +1,64 @@ +#!/bin/bash +# info: list vsftpd config parameters +# options: [FORMAT] +# +# The function for obtaining the list of vsftpd config parameters. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +format=${1-shell} + +# Includes +source $VESTA/func/main.sh + +# JSON list function +json_list() { + echo '{ + "CONFIG": { + "config_path": "'$config_path'" + } +}' +} + +# SHELL list function +shell_list() { + echo "config_path: $config_path" +} + +# PLAIN list function +plain_list() { + echo "$config_path" +} + +# CSV list function +csv_list() { + echo "config_path" + echo "$config_path" +} + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Defining config path +config_path=$(find /etc/vsftpd* -name vsftpd.conf 2>/dev/null) + +# Listing data +case $format in + json) json_list ;; + plain) plain_list ;; + csv) csv_list ;; + shell) shell_list;; +esac + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit diff --git a/bin/v-list-user-backup-exclusions b/bin/v-list-user-backup-exclusions index d0f428e8e..4ef75bf77 100755 --- a/bin/v-list-user-backup-exclusions +++ b/bin/v-list-user-backup-exclusions @@ -18,6 +18,7 @@ source $VESTA/func/main.sh # JSON list function json_list() { + set -f i=1 echo '{' echo ' "WEB": {' @@ -27,7 +28,7 @@ json_list() { object_keys=$(echo ${object//:/ } |wc -w) for key in $(echo "${object/:/ }"); do if [ "$j" -eq 1 ]; then - echo -n " \"$key\": " + echo -n " \"${key}\": " if [ "$object_keys" -eq 1 ]; then echo -n '""' fi diff --git a/bin/v-list-user-log b/bin/v-list-user-log index 2b4557f41..5f0b9004b 100755 --- a/bin/v-list-user-log +++ b/bin/v-list-user-log @@ -27,7 +27,7 @@ json_list() { echo -n ' "'$ID'": { "CMD": "'$CMD'", "UNDO": "'$UNDO'", - "DATE": "'$DATE'", + "TIME": "'$TIME'", "DATE": "'$DATE'" }' if [ "$i" -lt "$objects" ]; then diff --git a/bin/v-open-fs-config b/bin/v-open-fs-config new file mode 100755 index 000000000..807bbec97 --- /dev/null +++ b/bin/v-open-fs-config @@ -0,0 +1,47 @@ +#!/bin/bash +# info: open config +# options: CONFIG +# +# The function opens/reads config files on the file system + +src_file=$1 + +# Checking arguments +if [ -z "$src_file" ]; then + echo "Usage: CONFIG" + exit 1 +fi + +# Checking vesta user +if [ ! -e "$VESTA/data/users/$user" ]; then + echo "Error: vesta user $user doesn't exist" + exit 3 +fi + +# Checking file on fs +if [ ! -e "$src_file" ]; then + echo "Error: $src_file file doesn't exist" + exit 3 +fi + +# Checking path +if [ ! -z "$src_file" ]; then + rpath=$(readlink -f "$src_file") + services="nginx|apache|httpd|php|ftp|bind|named|exim|dovecot|spamassassin" + services="$services|clam|mysql|postgresql|pgsql|cron|fail2ban|iptables" + spath=$(echo "$rpath" |egrep "$services") + if [ -z "$spath" ]; then + echo "Error: invalid source path $src_file" + exit 2 + fi +fi + +# Reading conf +cat "$src_file" 2>/dev/null +if [ $? -ne 0 ]; then + echo "Error: file $src_file was not opened" + exit 3 +fi + +# Exiting +exit diff --git a/bin/v-open-fs-file b/bin/v-open-fs-file index b04ad4933..c51cd0b9f 100755 --- a/bin/v-open-fs-file +++ b/bin/v-open-fs-file @@ -33,6 +33,11 @@ if [ ! -z "$src_file" ]; then echo "Error: invalid source path $src_file" exit 2 fi + + if [ ! -f "$src_file" ]; then + echo "Error: file not found $src_file" + exit 2 + fi fi # Reading file diff --git a/bin/v-restart-cron b/bin/v-restart-cron index 8fcaf2bec..305f2db21 100755 --- a/bin/v-restart-cron +++ b/bin/v-restart-cron @@ -12,6 +12,7 @@ # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +PATH="$PATH:/usr/local/sbin:/sbin:/usr/sbin:/root/bin" send_email_report() { email=$(grep CONTACT $VESTA/data/users/admin/user.conf) diff --git a/bin/v-restart-dns b/bin/v-restart-dns index 8e84d66ef..fad2f7049 100755 --- a/bin/v-restart-dns +++ b/bin/v-restart-dns @@ -12,6 +12,7 @@ # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +PATH="$PATH:/usr/local/sbin:/sbin:/usr/sbin:/root/bin" send_email_report() { if [ -e '/etc/named.conf' ]; then diff --git a/bin/v-restart-ftp b/bin/v-restart-ftp index 9ab2d7714..f554011c4 100755 --- a/bin/v-restart-ftp +++ b/bin/v-restart-ftp @@ -12,6 +12,7 @@ # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +PATH="$PATH:/usr/local/sbin:/sbin:/usr/sbin:/root/bin" send_email_report() { email=$(grep CONTACT $VESTA/data/users/admin/user.conf) diff --git a/bin/v-restart-mail b/bin/v-restart-mail index 2784cd3d1..7080260ee 100755 --- a/bin/v-restart-mail +++ b/bin/v-restart-mail @@ -12,6 +12,7 @@ # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +PATH="$PATH:/usr/local/sbin:/sbin:/usr/sbin:/root/bin" send_email_report() { email=$(grep CONTACT $VESTA/data/users/admin/user.conf) diff --git a/bin/v-restart-proxy b/bin/v-restart-proxy index 79776ce71..e050eb1cf 100755 --- a/bin/v-restart-proxy +++ b/bin/v-restart-proxy @@ -12,6 +12,7 @@ # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +PATH="$PATH:/usr/local/sbin:/sbin:/usr/sbin:/root/bin" send_email_report() { email=$(grep CONTACT $VESTA/data/users/admin/user.conf) diff --git a/bin/v-restart-service b/bin/v-restart-service index 5df3e2559..e46339f92 100755 --- a/bin/v-restart-service +++ b/bin/v-restart-service @@ -14,6 +14,7 @@ service=$1 # Includes source $VESTA/func/main.sh +PATH="$PATH:/usr/local/sbin:/sbin:/usr/sbin:/root/bin" #----------------------------------------------------------# diff --git a/bin/v-restart-web b/bin/v-restart-web index 4b62a8a0b..a7ecf6445 100755 --- a/bin/v-restart-web +++ b/bin/v-restart-web @@ -12,6 +12,7 @@ # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +PATH="$PATH:/usr/local/sbin:/sbin:/usr/sbin:/root/bin" send_email_report() { email=$(grep CONTACT $VESTA/data/users/admin/user.conf) diff --git a/bin/v-restart-web-backend b/bin/v-restart-web-backend index 54ba8daa5..50cd940ff 100755 --- a/bin/v-restart-web-backend +++ b/bin/v-restart-web-backend @@ -12,6 +12,7 @@ # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf +PATH="$PATH:/usr/local/sbin:/sbin:/usr/sbin:/root/bin" send_email_report() { email=$(grep CONTACT $VESTA/data/users/admin/user.conf) diff --git a/bin/v-restore-user b/bin/v-restore-user index 4ea77af91..addff2d83 100755 --- a/bin/v-restore-user +++ b/bin/v-restore-user @@ -488,7 +488,7 @@ if [ "$db" != 'no' ] && [ ! -z "$DB_SYSTEM" ]; then echo -e "$(date "+%F %T") $database" |tee -a $tmpdir/restore.log # Checking database existance - check_config=$(grep "DB='$db'" $USER_DATA/db.conf) + check_config=$(grep "DB='$database'" $USER_DATA/db.conf) # Unpacking database container tar xf $BACKUP/$backup -C $tmpdir ./db/$database diff --git a/bin/v-sync-dns-cluster b/bin/v-sync-dns-cluster index 811f1bbe0..45be34825 100755 --- a/bin/v-sync-dns-cluster +++ b/bin/v-sync-dns-cluster @@ -22,12 +22,7 @@ source $VESTA/conf/vesta.conf #----------------------------------------------------------# is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER' -if [ ! -e "$VESTA/conf/dns-cluster.conf" ]; then - check_result $E_NOTEXIST "dns-cluster.conf doesn't exist" -fi -if [ "$(ps auxf |grep -v grep |grep $BIN/$SCRIPT |wc -l)" -gt 2 ]; then - check_result $E_EXISTS "another sync process already running" -fi +is_procces_running remote_dns_health_check 'no_email' diff --git a/bin/v-update-sys-rrd-mem b/bin/v-update-sys-rrd-mem index e0de66a9a..65e2937c7 100755 --- a/bin/v-update-sys-rrd-mem +++ b/bin/v-update-sys-rrd-mem @@ -61,9 +61,9 @@ fi # Parsing data if [ "$period" = 'daily' ]; then mem=$(free -m) - used=$(echo "$mem" |awk '{print $3}'|head -n3 |tail -n1) - free=$(echo "$mem" |awk '{print $4}'|head -n3 |tail -n1) - swap=$(echo "$mem" |awk '{print $3}'|tail -n1) + used=$(echo "$mem" |grep Mem |awk '{print $3}') + free=$(echo "$mem" |grep Mem |awk '{print $4}') + swap=$(echo "$mem" |grep Swap |awk '{print $3}') # Updating rrd rrdtool update $RRD/mem/mem.rrd N:$used:$swap:$free diff --git a/bin/v-update-sys-rrd-mysql b/bin/v-update-sys-rrd-mysql index 0d870e44c..aa6734e96 100755 --- a/bin/v-update-sys-rrd-mysql +++ b/bin/v-update-sys-rrd-mysql @@ -37,9 +37,7 @@ fi # Parsing db hosts conf="$VESTA/conf/mysql.conf" -fields='$HOST' -nohead=1 -hosts=$(shell_list) +hosts=$(grep HOST $conf |awk '{print $1}' |cut -f 2 -d \') check_row=$(echo "$hosts" |wc -l) if [ 0 -eq "$check_row" ]; then exit diff --git a/bin/v-update-sys-rrd-pgsql b/bin/v-update-sys-rrd-pgsql index 9c8e3cb7d..6e15c9e8c 100755 --- a/bin/v-update-sys-rrd-pgsql +++ b/bin/v-update-sys-rrd-pgsql @@ -37,9 +37,7 @@ fi # Parsing db hosts conf="$VESTA/conf/pgsql.conf" -fields='$HOST' -nohead=1 -hosts=$(shell_list) +hosts=$(grep HOST $conf |awk '{print $1}' |cut -f 2 -d \') check_row=$(echo "$hosts" |wc -l) if [ 0 -eq "$check_row" ]; then exit diff --git a/bin/v-update-web-domain-ssl b/bin/v-update-web-domain-ssl new file mode 100644 index 000000000..6dffc281b --- /dev/null +++ b/bin/v-update-web-domain-ssl @@ -0,0 +1,91 @@ +#!/bin/bash +# info: updating ssl certificate for domain +# options: USER DOMAIN SSL_DIR [RESTART] +# +# The function updates the SSL certificate for a domain. Parameter ssl_dir is a path +# to directory where 2 or 3 ssl files can be found. Certificate file +# domain.tld.crt and its key domain.tld.key are mandatory. Certificate +# authority domain.tld.ca file is optional. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +user=$1 +domain=$(idn -t --quiet -u "$2" ) +domain_idn=$(idn -t --quiet -a "$domain") +ssl_dir=$3 +restart="$4" + +# Includes +source $VESTA/func/main.sh +source $VESTA/func/domain.sh +source $VESTA/func/ip.sh +source $VESTA/conf/vesta.conf + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +check_args '3' "$#" 'USER DOMAIN SSL_DIR [RESTART]' +validate_format 'user' 'domain' 'ssl_dir' +is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM' +is_system_enabled "$WEB_SSL" 'SSL_SUPPORT' +is_object_valid 'user' 'USER' "$user" +is_object_unsuspended 'user' 'USER' "$user" +is_object_valid 'web' 'DOMAIN' "$domain" +is_object_unsuspended 'web' 'DOMAIN' "$domain" +is_object_value_exist 'web' 'DOMAIN' "$domain" '$SSL' +is_web_domain_cert_valid + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Adding certificate to user data directory +cp -f $ssl_dir/$domain.crt $USER_DATA/ssl/$domain.crt +cp -f $ssl_dir/$domain.key $USER_DATA/ssl/$domain.key +cp -f $ssl_dir/$domain.crt $USER_DATA/ssl/$domain.pem +if [ -e "$ssl_dir/$domain.ca" ]; then + cp -f $ssl_dir/$domain.ca $USER_DATA/ssl/$domain.ca + echo >> $USER_DATA/ssl/$domain.pem + cat $USER_DATA/ssl/$domain.ca >> $USER_DATA/ssl/$domain.pem +fi +chmod 660 $USER_DATA/ssl/$domain.* + + + +# Adding certificate to user dir +cp -f $USER_DATA/ssl/$domain.crt $HOMEDIR/$user/conf/web/ssl.$domain.crt +cp -f $USER_DATA/ssl/$domain.key $HOMEDIR/$user/conf/web/ssl.$domain.key +cp -f $USER_DATA/ssl/$domain.pem $HOMEDIR/$user/conf/web/ssl.$domain.pem +if [ -e "$USER_DATA/ssl/$domain.ca" ]; then + cp -f $USER_DATA/ssl/$domain.ca $HOMEDIR/$user/conf/web/ssl.$domain.ca +fi + + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Restarting web server +if [ "$restart" != 'no' ]; then + $BIN/v-restart-web + check_result $? "Web restart failed" >/dev/null + + if [ ! -z "$PROXY_SYSTEM" ]; then + $BIN/v-restart-proxy + check_result $? "Proxy restart failed" >/dev/null + fi +fi + +# Logging +log_history "update ssl certificate for $domain" +log_event "$OK" "$EVENT" + +exit diff --git a/func/db.sh b/func/db.sh index c7514eeaf..59a307462 100644 --- a/func/db.sh +++ b/func/db.sh @@ -387,7 +387,7 @@ get_mysql_disk_usage() { query="SELECT SUM( data_length + index_length ) / 1024 / 1024 \"Size\" FROM information_schema.TABLES WHERE table_schema='$database'" usage=$(mysql_query "$query" |tail -n1) - if [ "$usage" == 'NULL' ] || [ "${usage:0:1}" -eq '0' ]; then + if [ "$usage" == '' ] || [ "$usage" == 'NULL' ] || [ "${usage:0:1}" -eq '0' ]; then usage=1 fi export LC_ALL=C diff --git a/func/domain.sh b/func/domain.sh index a163d2599..d5f0de355 100644 --- a/func/domain.sh +++ b/func/domain.sh @@ -223,7 +223,7 @@ add_web_config() { trigger="${2/.*pl/.sh}" if [ -x "$WEBTPL/$1/$WEB_BACKEND/$trigger" ]; then $WEBTPL/$1/$WEB_BACKEND/$trigger \ - $user $domain $ip $HOMEDIR $HOMEDIR/$user/web/$domain/public_html + $user $domain $local_ip $HOMEDIR $HOMEDIR/$user/web/$domain/public_html fi } @@ -237,7 +237,7 @@ get_web_config_lines() { fi vhost_lines=$(grep -niF "name $domain_idn" $2) - vhost_lines=$(echo "$vhost_lines" |egrep "$domain_idn$|$domain_idn ") + vhost_lines=$(echo "$vhost_lines" |egrep "$domain_idn($| |;)") #" vhost_lines=$(echo "$vhost_lines" |cut -f 1 -d :) if [ -z "$vhost_lines" ]; then check_result $E_PARSING "can't parse config $2" @@ -271,8 +271,8 @@ del_web_config() { get_web_config_lines $WEBTPL/$1/$WEB_BACKEND/$2 $conf sed -i "$top_line,$bottom_line d" $conf - web_domains=$(grep DOMAIN $USER_DATA/web.conf |wc -l) - if [ "$web_domains" -eq '0' ]; then + web_domain=$(grep $domain $USER_DATA/web.conf |wc -l) + if [ "$web_domain" -eq '0' ]; then sed -i "/.*\/$user\/.*$1.conf/d" /etc/$1/conf.d/vesta.conf rm -f $conf fi @@ -281,29 +281,21 @@ del_web_config() { # SSL certificate verification is_web_domain_cert_valid() { if [ ! -e "$ssl_dir/$domain.crt" ]; then - echo "Error: $ssl_dir/$domain.crt not found" - log_event "$E_NOTEXIST" "$ARGUMENTS" - exit $E_NOTEXIST + check_result $E_NOTEXIST "$ssl_dir/$domain.crt not found" fi if [ ! -e "$ssl_dir/$domain.key" ]; then - echo "Error: $ssl_dir/$domain.key not found" - log_event "$E_NOTEXIST" "$ARGUMENTS" - exit $E_NOTEXIST + check_result $E_NOTEXIST "$ssl_dir/$domain.key not found" fi crt_vrf=$(openssl verify $ssl_dir/$domain.crt 2>&1) - if [ ! -z "$(echo $crt_vrf | grep 'unable to load')" ]; then - echo "Error: SSL Certificate is not valid" - log_event "$E_INVALID" "$ARGUMENTS" - exit $E_INVALID + if [ ! -z "$(echo $crt_vrf |grep 'unable to load')" ]; then + check_result $E_INVALID "SSL Certificate is not valid" fi - if [ ! -z "$(echo $crt_vrf | grep 'unable to get local issuer')" ]; then + if [ ! -z "$(echo $crt_vrf |grep 'unable to get local issuer')" ]; then if [ ! -e "$ssl_dir/$domain.ca" ]; then - echo "Error: Certificate Authority not found" - log_event "$E_NOTEXIST" "$ARGUMENTS" - exit $E_NOTEXIST + check_result $E_NOTEXIST "Certificate Authority not found" fi fi @@ -313,17 +305,16 @@ is_web_domain_cert_valid() { s2=$(openssl x509 -text -in $ssl_dir/$domain.ca 2>/dev/null) s2=$(echo "$s2" |grep Subject |awk -F = '{print $6}' |head -n1) if [ "$s1" != "$s2" ]; then - echo "Error: SSL intermediate chain is not valid" - log_event "$E_NOTEXIST" "$ARGUMENTS" - exit $E_NOTEXIST + check_result $E_NOTEXIST "SSL intermediate chain is not valid" fi fi - key_vrf=$(grep 'PRIVATE KEY' $ssl_dir/$domain.key | wc -l) + key_vrf=$(grep 'PRIVATE KEY' $ssl_dir/$domain.key |wc -l) if [ "$key_vrf" -ne 2 ]; then - echo "Error: SSL Key is not valid" - log_event "$E_INVALID" "$ARGUMENTS" - exit $E_INVALID + check_result $E_INVALID "SSL Key is not valid" + fi + if [ ! -z "$(grep 'ENCRYPTED' $ssl_dir/$domain.key)" ]; then + check_result $E_FORBIDEN "SSL Key is protected (remove pass_phrase)" fi openssl s_server -quiet -cert $ssl_dir/$domain.crt \ @@ -332,11 +323,7 @@ is_web_domain_cert_valid() { sleep 0.5 disown &> /dev/null kill $pid &> /dev/null - if [ "$?" -ne '0' ]; then - echo "Error: ssl certificate key pair is not valid" - log_event "$E_INVALID" "$ARGUMENTS" - exit $E_INVALID - fi + check_result $? "ssl certificate key pair is not valid" $E_INVALID } diff --git a/func/ip.sh b/func/ip.sh index 978906826..f323cf8d7 100644 --- a/func/ip.sh +++ b/func/ip.sh @@ -87,9 +87,9 @@ increase_ip_value() { fi sed -i "s/$web_key='$current_web'/$web_key='$new_web'/g" \ - $VESTA/data/ips/$ip + $VESTA/data/ips/$sip sed -i "s/$usr_key='$current_usr'/$usr_key='$new_usr'/g" \ - $VESTA/data/ips/$ip + $VESTA/data/ips/$sip } # Decrease ip value diff --git a/func/main.sh b/func/main.sh index 617637b88..b6eb57e48 100644 --- a/func/main.sh +++ b/func/main.sh @@ -1,3 +1,4 @@ +#!/usr/bin/env bash # Internal variables HOMEDIR='/home' BACKUP='/backup' @@ -97,7 +98,7 @@ check_result() { # Argument list checker check_args() { if [ "$1" -gt "$2" ]; then - echo "Usage: $SCRIPT $3" + echo "Usage: $(basename $0) $3" check_result $E_ARGS "not enought arguments" >/dev/null fi } @@ -448,6 +449,7 @@ sync_cron_jobs() { rm -f $crontab if [ "$CRON_REPORTS" = 'yes' ]; then echo "MAILTO=$CONTACT" > $crontab + echo 'CONTENT_TYPE="text/plain; charset=utf-8"' >> $crontab fi while read line; do eval $line @@ -465,12 +467,12 @@ sync_cron_jobs() { is_user_format_valid() { if [ ${#1} -eq 1 ]; then if ! [[ "$1" =~ ^^[[:alnum:]]$ ]]; then - echo "invalid $2 format :: $1" + check_result $E_INVALID "invalid $2 format :: $1" fi else if ! [[ "$1" =~ ^[[:alnum:]][-|\.|_[:alnum:]]{0,28}[[:alnum:]]$ ]] then - echo "invalid $2 format :: $1" + check_result $E_INVALID "invalid $2 format :: $1" fi fi } @@ -479,7 +481,7 @@ is_user_format_valid() { is_domain_format_valid() { object_name=${2-domain} exclude="[!|@|#|$|^|&|*|(|)|+|=|{|}|:|,|<|>|?|_|/|\|\"|'|;|%|\`| ]" - if [[ $1 =~ $exclude ]] || [[ $1 =~ ^[0-9]+$ ]] || [[ $1 =~ \.\. ]]; then + if [[ $1 =~ $exclude ]] || [[ $1 =~ ^[0-9]+$ ]] || [[ $1 =~ "\.\." ]]; then check_result $E_INVALID "invalid $object_name format :: $1" fi } @@ -501,15 +503,14 @@ is_alias_format_valid() { is_ip_format_valid() { object_name=${2-ip} ip_regex='([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])' - ip_clean=$(echo "${1%/[0-9][0-9]}") - ip_clean=$(echo "${1%/[0-9]}") + ip_clean=$(echo "${1%/*}") if ! [[ $ip_clean =~ ^$ip_regex\.$ip_regex\.$ip_regex\.$ip_regex$ ]]; then check_result $E_INVALID "invalid $object_name format :: $1" fi if [ $1 != "$ip_clean" ]; then ip_cidr="$ip_clean/" ip_cidr=$(echo "${1#$ip_cidr}") - if [[ "$ip_cidr" -gt 32 ]]; then + if [[ "$ip_cidr" -gt 32 ]] || [[ "$ip_cidr" =~ [:alnum:] ]]; then check_result $E_INVALID "invalid $object_name format :: $1" fi fi @@ -589,7 +590,7 @@ is_dbuser_format_valid() { # DNS record type validator is_dns_type_format_valid() { - known_dnstype='A,AAAA,NS,CNAME,MX,TXT,SRV,DNSKEY,KEY,IPSECKEY,PTR,SPF' + known_dnstype='A,AAAA,NS,CNAME,MX,TXT,SRV,DNSKEY,KEY,IPSECKEY,PTR,SPF,TLSA' if [ -z "$(echo $known_dnstype |grep -w $1)" ]; then check_result $E_INVALID "invalid dns record type format :: $1" fi @@ -601,10 +602,10 @@ is_dns_record_format_valid() { is_ip_format_valid "$1" fi if [ "$rtype" = 'NS' ]; then - is_domain_format_valid "$1" 'ns_record' + is_domain_format_valid "${1::-1}" 'ns_record' fi if [ "$rtype" = 'MX' ]; then - is_domain_format_valid "$1" 'mx_record' + is_domain_format_valid "${1::-1}" 'mx_record' is_int_format_valid "$priority" 'priority_record' fi @@ -612,7 +613,7 @@ is_dns_record_format_valid() { # Email format validator is_email_format_valid() { - if [[ ! "$1" =~ "@" ]] ; then + if [[ ! "$1" =~ ^[A-Za-z0-9._%+-]+@[[:alnum:].-]+\.[A-Za-z]{2,63}$ ]] ; then check_result $E_INVALID "invalid email format :: $1" fi } diff --git a/func/remote.sh b/func/remote.sh index 1f2d49d35..895e7b451 100644 --- a/func/remote.sh +++ b/func/remote.sh @@ -1,3 +1,13 @@ +# Check if script already running or not +is_procces_running() { + SCRIPT=$(basename $0) + for pid in $(pidof -x $SCRIPT); do + if [ $pid != $$ ]; then + check_result $E_INUSE "$SCRIPT is already running" + fi + done +} + send_api_cmd() { answer=$(curl -s -k \ --data-urlencode "user=$USER" \ diff --git a/install/debian/7/nginx/phpmyadmin.inc b/install/debian/7/nginx/phpmyadmin.inc index d70ca3e3c..1feb85468 100644 --- a/install/debian/7/nginx/phpmyadmin.inc +++ b/install/debian/7/nginx/phpmyadmin.inc @@ -12,4 +12,7 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } } diff --git a/install/debian/7/php5-fpm/www.conf b/install/debian/7/php5-fpm/www.conf new file mode 100644 index 000000000..d046bceef --- /dev/null +++ b/install/debian/7/php5-fpm/www.conf @@ -0,0 +1,10 @@ +[www] +listen = 127.0.0.1:9000 +listen.allowed_clients = 127.0.0.1 +user = www-data +group = www-data +pm = dynamic +pm.max_children = 50 +pm.start_servers = 5 +pm.min_spare_servers = 3 +pm.max_spare_servers = 35 diff --git a/install/debian/7/templates/web/php5-fpm/socket.tpl b/install/debian/7/templates/web/php5-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/debian/7/templates/web/php5-fpm/socket.tpl +++ b/install/debian/7/templates/web/php5-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/debian/8/clamav/clamd.conf b/install/debian/8/clamav/clamd.conf index ea982697a..4e04356ea 100644 --- a/install/debian/8/clamav/clamd.conf +++ b/install/debian/8/clamav/clamd.conf @@ -8,7 +8,7 @@ LocalSocketMode 666 # TemporaryDirectory is not set to its default /tmp here to make overriding # the default with environment variables TMPDIR/TMP/TEMP possible User clamav -AllowSupplementaryGroups true +# AllowSupplementaryGroups true ScanMail true ScanArchive true ArchiveBlockEncrypted false diff --git a/install/debian/8/exim/exim4.conf.template b/install/debian/8/exim/exim4.conf.template index f515fb18f..a85dda5e6 100644 --- a/install/debian/8/exim/exim4.conf.template +++ b/install/debian/8/exim/exim4.conf.template @@ -8,6 +8,9 @@ #SPAM_SCORE = 50 #CLAMD = yes +add_environment=<; PATH=/bin:/usr/bin +keep_environment= + domainlist local_domains = dsearch;/etc/exim4/domains/ domainlist relay_to_domains = dsearch;/etc/exim4/domains/ hostlist relay_from_hosts = 127.0.0.1 diff --git a/install/debian/8/nginx/phpmyadmin.inc b/install/debian/8/nginx/phpmyadmin.inc index d70ca3e3c..1feb85468 100644 --- a/install/debian/8/nginx/phpmyadmin.inc +++ b/install/debian/8/nginx/phpmyadmin.inc @@ -12,4 +12,7 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } } diff --git a/install/debian/8/templates/web/php5-fpm/socket.tpl b/install/debian/8/templates/web/php5-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/debian/8/templates/web/php5-fpm/socket.tpl +++ b/install/debian/8/templates/web/php5-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/rhel/5/fail2ban/fail2ban.action.conf b/install/rhel/5/fail2ban/action.d/vesta.conf similarity index 100% rename from install/rhel/5/fail2ban/fail2ban.action.conf rename to install/rhel/5/fail2ban/action.d/vesta.conf diff --git a/install/rhel/5/fail2ban/fail2ban.filter.conf b/install/rhel/5/fail2ban/filter.d/vesta.conf similarity index 61% rename from install/rhel/5/fail2ban/fail2ban.filter.conf rename to install/rhel/5/fail2ban/filter.d/vesta.conf index 36ec10019..69670a56e 100644 --- a/install/rhel/5/fail2ban/fail2ban.filter.conf +++ b/install/rhel/5/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccesfull Vesta authentication attempts # [INCLUDES] diff --git a/install/rhel/5/fail2ban/fail2ban.jail.conf b/install/rhel/5/fail2ban/jail.local similarity index 100% rename from install/rhel/5/fail2ban/fail2ban.jail.conf rename to install/rhel/5/fail2ban/jail.local diff --git a/install/rhel/5/nginx/phpmyadmin.inc b/install/rhel/5/nginx/phpmyadmin.inc index 09da52076..efd6f4c41 100644 --- a/install/rhel/5/nginx/phpmyadmin.inc +++ b/install/rhel/5/nginx/phpmyadmin.inc @@ -12,4 +12,8 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } + } diff --git a/install/rhel/5/templates/web/php-fpm/socket.tpl b/install/rhel/5/templates/web/php-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/rhel/5/templates/web/php-fpm/socket.tpl +++ b/install/rhel/5/templates/web/php-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/rhel/6/fail2ban/fail2ban.action.conf b/install/rhel/6/fail2ban/action.d/vesta.conf similarity index 100% rename from install/rhel/6/fail2ban/fail2ban.action.conf rename to install/rhel/6/fail2ban/action.d/vesta.conf diff --git a/install/rhel/6/fail2ban/fail2ban.filter.conf b/install/rhel/6/fail2ban/filter.d/vesta.conf similarity index 61% rename from install/rhel/6/fail2ban/fail2ban.filter.conf rename to install/rhel/6/fail2ban/filter.d/vesta.conf index 36ec10019..69670a56e 100644 --- a/install/rhel/6/fail2ban/fail2ban.filter.conf +++ b/install/rhel/6/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccesfull Vesta authentication attempts # [INCLUDES] diff --git a/install/rhel/6/fail2ban/fail2ban.jail.conf b/install/rhel/6/fail2ban/jail.local similarity index 100% rename from install/rhel/6/fail2ban/fail2ban.jail.conf rename to install/rhel/6/fail2ban/jail.local diff --git a/install/rhel/6/nginx/phpmyadmin.inc b/install/rhel/6/nginx/phpmyadmin.inc index 09da52076..9c5a68825 100644 --- a/install/rhel/6/nginx/phpmyadmin.inc +++ b/install/rhel/6/nginx/phpmyadmin.inc @@ -12,4 +12,7 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } } diff --git a/install/rhel/6/templates/web/php-fpm/socket.tpl b/install/rhel/6/templates/web/php-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/rhel/6/templates/web/php-fpm/socket.tpl +++ b/install/rhel/6/templates/web/php-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/rhel/7/clamav/clamd.conf b/install/rhel/7/clamav/clamd.conf index c215bcb98..52ff68210 100644 --- a/install/rhel/7/clamav/clamd.conf +++ b/install/rhel/7/clamav/clamd.conf @@ -197,7 +197,7 @@ AllowSupplementaryGroups yes # Don't fork into background. # Default: no -#Foreground yes +Foreground yes # Enable debug messages in libclamav. # Default: no diff --git a/install/rhel/7/clamav/clamd.service b/install/rhel/7/clamav/clamd.service index fdb3af7fd..798fef4e0 100644 --- a/install/rhel/7/clamav/clamd.service +++ b/install/rhel/7/clamav/clamd.service @@ -4,7 +4,7 @@ After = syslog.target nss-lookup.target network.target [Service] Type = simple -ExecStart = /usr/sbin/clamd -c /etc/clamd.conf --nofork=yes +ExecStart = /usr/sbin/clamd -c /etc/clamd.conf Restart = on-failure PrivateTmp = true diff --git a/install/rhel/7/exim/exim.conf b/install/rhel/7/exim/exim.conf index 6f9a73881..0d65a4054 100644 --- a/install/rhel/7/exim/exim.conf +++ b/install/rhel/7/exim/exim.conf @@ -143,7 +143,7 @@ acl_check_data: hosts = !+relay_from_hosts condition = ${if < {$message_size}{100K}} condition = ${if eq{$acl_m1}{yes}{yes}{no}} - spam = nobody:true/defer_ok + spam = spamd:true/defer_ok add_header = X-Spam-Score: $spam_score_int add_header = X-Spam-Bar: $spam_bar add_header = X-Spam-Report: $spam_report diff --git a/install/rhel/7/fail2ban/fail2ban.action.conf b/install/rhel/7/fail2ban/action.d/vesta.conf similarity index 100% rename from install/rhel/7/fail2ban/fail2ban.action.conf rename to install/rhel/7/fail2ban/action.d/vesta.conf diff --git a/install/rhel/7/fail2ban/fail2ban.filter.conf b/install/rhel/7/fail2ban/filter.d/vesta.conf similarity index 61% rename from install/rhel/7/fail2ban/fail2ban.filter.conf rename to install/rhel/7/fail2ban/filter.d/vesta.conf index 36ec10019..69670a56e 100644 --- a/install/rhel/7/fail2ban/fail2ban.filter.conf +++ b/install/rhel/7/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccesfull Vesta authentication attempts # [INCLUDES] diff --git a/install/rhel/7/fail2ban/fail2ban.jail.conf b/install/rhel/7/fail2ban/jail.local similarity index 100% rename from install/rhel/7/fail2ban/fail2ban.jail.conf rename to install/rhel/7/fail2ban/jail.local diff --git a/install/rhel/7/nginx/phpmyadmin.inc b/install/rhel/7/nginx/phpmyadmin.inc index 09da52076..9c5a68825 100644 --- a/install/rhel/7/nginx/phpmyadmin.inc +++ b/install/rhel/7/nginx/phpmyadmin.inc @@ -12,4 +12,7 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } } diff --git a/install/rhel/7/templates/web/php-fpm/socket.tpl b/install/rhel/7/templates/web/php-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/rhel/7/templates/web/php-fpm/socket.tpl +++ b/install/rhel/7/templates/web/php-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/ubuntu/12.04/nginx/phpmyadmin.inc b/install/ubuntu/12.04/nginx/phpmyadmin.inc index d70ca3e3c..1feb85468 100644 --- a/install/ubuntu/12.04/nginx/phpmyadmin.inc +++ b/install/ubuntu/12.04/nginx/phpmyadmin.inc @@ -12,4 +12,7 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } } diff --git a/install/ubuntu/12.04/templates/web/php5-fpm/socket.tpl b/install/ubuntu/12.04/templates/web/php5-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/ubuntu/12.04/templates/web/php5-fpm/socket.tpl +++ b/install/ubuntu/12.04/templates/web/php5-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/ubuntu/12.10/nginx/phpmyadmin.inc b/install/ubuntu/12.10/nginx/phpmyadmin.inc index d70ca3e3c..1feb85468 100644 --- a/install/ubuntu/12.10/nginx/phpmyadmin.inc +++ b/install/ubuntu/12.10/nginx/phpmyadmin.inc @@ -12,4 +12,7 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } } diff --git a/install/ubuntu/12.10/templates/web/php5-fpm/socket.tpl b/install/ubuntu/12.10/templates/web/php5-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/ubuntu/12.10/templates/web/php5-fpm/socket.tpl +++ b/install/ubuntu/12.10/templates/web/php5-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/ubuntu/13.04/nginx/phpmyadmin.inc b/install/ubuntu/13.04/nginx/phpmyadmin.inc index d70ca3e3c..1feb85468 100644 --- a/install/ubuntu/13.04/nginx/phpmyadmin.inc +++ b/install/ubuntu/13.04/nginx/phpmyadmin.inc @@ -12,4 +12,7 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } } diff --git a/install/ubuntu/13.04/templates/web/php5-fpm/socket.tpl b/install/ubuntu/13.04/templates/web/php5-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/ubuntu/13.04/templates/web/php5-fpm/socket.tpl +++ b/install/ubuntu/13.04/templates/web/php5-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/ubuntu/13.10/nginx/phpmyadmin.inc b/install/ubuntu/13.10/nginx/phpmyadmin.inc index d70ca3e3c..1feb85468 100644 --- a/install/ubuntu/13.10/nginx/phpmyadmin.inc +++ b/install/ubuntu/13.10/nginx/phpmyadmin.inc @@ -12,4 +12,7 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } } diff --git a/install/ubuntu/13.10/templates/web/php5-fpm/socket.tpl b/install/ubuntu/13.10/templates/web/php5-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/ubuntu/13.10/templates/web/php5-fpm/socket.tpl +++ b/install/ubuntu/13.10/templates/web/php5-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/ubuntu/14.04/nginx/phpmyadmin.inc b/install/ubuntu/14.04/nginx/phpmyadmin.inc index d70ca3e3c..1feb85468 100644 --- a/install/ubuntu/14.04/nginx/phpmyadmin.inc +++ b/install/ubuntu/14.04/nginx/phpmyadmin.inc @@ -12,4 +12,7 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } } diff --git a/install/ubuntu/14.04/templates/web/nginx/php5-fpm/opencart.tpl b/install/ubuntu/14.04/templates/web/nginx/php5-fpm/opencart.tpl new file mode 100644 index 000000000..e3669a191 --- /dev/null +++ b/install/ubuntu/14.04/templates/web/nginx/php5-fpm/opencart.tpl @@ -0,0 +1,52 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + + try_files $uri $uri/ @opencart; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + location @opencart { + rewrite ^/(.+)$ /index.php?_route_=$1 last; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/ubuntu/14.04/templates/web/php5-fpm/socket.tpl b/install/ubuntu/14.04/templates/web/php5-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/ubuntu/14.04/templates/web/php5-fpm/socket.tpl +++ b/install/ubuntu/14.04/templates/web/php5-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/ubuntu/14.10/nginx/phpmyadmin.inc b/install/ubuntu/14.10/nginx/phpmyadmin.inc index d70ca3e3c..1feb85468 100644 --- a/install/ubuntu/14.10/nginx/phpmyadmin.inc +++ b/install/ubuntu/14.10/nginx/phpmyadmin.inc @@ -12,4 +12,7 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } } diff --git a/install/ubuntu/14.10/templates/web/php5-fpm/socket.tpl b/install/ubuntu/14.10/templates/web/php5-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/ubuntu/14.10/templates/web/php5-fpm/socket.tpl +++ b/install/ubuntu/14.10/templates/web/php5-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/ubuntu/15.04/nginx/phpmyadmin.inc b/install/ubuntu/15.04/nginx/phpmyadmin.inc index d70ca3e3c..1feb85468 100644 --- a/install/ubuntu/15.04/nginx/phpmyadmin.inc +++ b/install/ubuntu/15.04/nginx/phpmyadmin.inc @@ -12,4 +12,7 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } } diff --git a/install/ubuntu/15.04/templates/web/php5-fpm/socket.tpl b/install/ubuntu/15.04/templates/web/php5-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/ubuntu/15.04/templates/web/php5-fpm/socket.tpl +++ b/install/ubuntu/15.04/templates/web/php5-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/ubuntu/15.10/nginx/phpmyadmin.inc b/install/ubuntu/15.10/nginx/phpmyadmin.inc index d70ca3e3c..1feb85468 100644 --- a/install/ubuntu/15.10/nginx/phpmyadmin.inc +++ b/install/ubuntu/15.10/nginx/phpmyadmin.inc @@ -12,4 +12,7 @@ location /phpmyadmin { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } } diff --git a/install/ubuntu/15.10/templates/web/php5-fpm/socket.tpl b/install/ubuntu/15.10/templates/web/php5-fpm/socket.tpl index f0513da3e..22cf6d8ec 100644 --- a/install/ubuntu/15.10/templates/web/php5-fpm/socket.tpl +++ b/install/ubuntu/15.10/templates/web/php5-fpm/socket.tpl @@ -5,8 +5,8 @@ listen.allowed_clients = 127.0.0.1 user = %user% group = %user% -listen.owner = %user% -listen.group = nginx +listen.owner = www-data +listen.group = www-data pm = dynamic pm.max_children = 50 diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 5dfb084f6..4aaf11af4 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -10,6 +10,7 @@ export DEBIAN_FRONTEND=noninteractive RHOST='apt.vestacp.com' CHOST='c.vestacp.com' VERSION='debian' +VESTA='/usr/local/vesta' memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9]) arch=$(uname -i) os='debian' @@ -28,7 +29,7 @@ if [ "$release" -eq 8 ]; then mysql-client postgresql postgresql-contrib phppgadmin phpMyAdmin mc flex whois rssh git idn zip sudo bc ftp lsof ntpdate rrdtool quota e2fslibs bsdutils e2fsprogs curl imagemagick fail2ban dnsutils - bsdmainutils cron vesta vesta-nginx vesta-php" + bsdmainutils cron vesta vesta-nginx vesta-php expect" else software="nginx apache2 apache2-utils apache2.2-common apache2-suexec-custom libapache2-mod-ruid2 libapache2-mod-rpaf @@ -40,7 +41,7 @@ else mysql-client postgresql postgresql-contrib phppgadmin phpMyAdmin mc flex whois rssh git idn zip sudo bc ftp lsof ntpdate rrdtool quota e2fslibs bsdutils e2fsprogs curl imagemagick fail2ban dnsutils - bsdmainutils cron vesta vesta-nginx vesta-php" + bsdmainutils cron vesta vesta-nginx vesta-php expect" fi # Defining help function @@ -506,10 +507,10 @@ mv -f /root/.my.cnf $vst_backups/mysql > /dev/null 2>&1 # Backup vesta service vesta stop > /dev/null 2>&1 -cp -r /usr/local/vesta/* $vst_backups/vesta > /dev/null 2>&1 +cp -r $VESTA/* $vst_backups/vesta > /dev/null 2>&1 apt-get -y remove vesta vesta-nginx vesta-php > /dev/null 2>&1 apt-get -y purge vesta vesta-nginx vesta-php > /dev/null 2>&1 -rm -rf /usr/local/vesta > /dev/null 2>&1 +rm -rf $VESTA > /dev/null 2>&1 #----------------------------------------------------------# @@ -606,9 +607,6 @@ rm -f /usr/sbin/policy-rc.d sed -i "s/rdAuthentication no/rdAuthentication yes/g" /etc/ssh/sshd_config service ssh restart -# AppArmor -#aa-complain /usr/sbin/named - # Disable awstats cron rm -f /etc/cron.d/awstats @@ -644,10 +642,10 @@ wget $vestacp/sudo/admin -O /etc/sudoers.d/admin chmod 440 /etc/sudoers.d/admin # Configuring system env -echo "export VESTA='/usr/local/vesta'" > /etc/profile.d/vesta.sh +echo "export VESTA='$VESTA'" > /etc/profile.d/vesta.sh chmod 755 /etc/profile.d/vesta.sh source /etc/profile.d/vesta.sh -echo 'PATH=$PATH:/usr/local/vesta/bin' >> /root/.bash_profile +echo 'PATH=$PATH:'$VESTA'/bin' >> /root/.bash_profile echo 'export PATH' >> /root/.bash_profile source /root/.bash_profile @@ -666,7 +664,7 @@ chmod 750 $VESTA/conf $VESTA/data/users $VESTA/data/ips $VESTA/log chmod -R 750 $VESTA/data/queue chmod 660 $VESTA/log/* rm -f /var/log/vesta -ln -s /usr/local/vesta/log /var/log/vesta +ln -s $VESTA/log /var/log/vesta chown admin:admin $VESTA/data/sessions chmod 770 $VESTA/data/sessions @@ -965,6 +963,12 @@ if [ "$named" = 'yes' ]; then sed -i "s%listen-on%//listen%" /etc/bind/named.conf.options chown root:bind /etc/bind/named.conf chmod 640 /etc/bind/named.conf + aa-complain /usr/sbin/named 2>/dev/null + echo "/home/** rwm," >> /etc/apparmor.d/local/usr.sbin.named 2>/dev/null + service apparmor status >/dev/null 2>&1 + if [ $? -ne 0 ]; then + service apparmor restart + fi update-rc.d bind9 defaults service bind9 start check_result $? "bind9 start failed" @@ -1033,6 +1037,10 @@ if [ "$clamd" = 'yes' ]; then wget $vestacp/clamav/clamd.conf -O /etc/clamav/clamd.conf /usr/bin/freshclam update-rc.d clamav-daemon defaults + if [ ! -d "/var/run/clamav" ]; then + mkdir /var/run/clamav + fi + chown -R clamav:clamav /var/run/clamav service clamav-daemon start check_result $? "clamav-daeom start failed" fi @@ -1047,6 +1055,9 @@ if [ "$spamd" = 'yes' ]; then sed -i "s/ENABLED=0/ENABLED=1/" /etc/default/spamassassin service spamassassin start check_result $? "spamassassin start failed" + if [[ $(systemctl list-unit-files | grep spamassassin) =~ "disabled" ]]; then + systemctl enable spamassassin + fi fi @@ -1069,6 +1080,7 @@ if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then mysql -e "CREATE DATABASE roundcube" mysql -e "GRANT ALL ON roundcube.* TO roundcube@localhost IDENTIFIED BY '$r'" sed -i "s/%password%/$r/g" /etc/roundcube/db.inc.php + sed -i "s/localhost/$servername/g" /etc/roundcube/plugins/password/config.inc.php mysql roundcube < /usr/share/dbconfig-common/data/roundcube/install/mysql chmod a+r /etc/roundcube/main.inc.php if [ "$release" -eq 8 ]; then @@ -1125,6 +1137,14 @@ check_result $? "can't create admin user" $VESTA/bin/v-change-user-shell admin bash $VESTA/bin/v-change-user-language admin $lang +# RoundCube permissions fix +if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then + if [ ! -d "/var/log/roundcube" ]; then + mkdir /var/log/roundcube + fi + chown admin:admin /var/log/roundcube +fi + # Configuring system ips $VESTA/bin/v-update-sys-ip @@ -1160,19 +1180,19 @@ $VESTA/bin/v-add-domain admin $servername check_result $? "can't create $servername domain" # Adding cron jobs -command='sudo /usr/local/vesta/bin/v-update-sys-queue disk' +command="sudo $VESTA/bin/v-update-sys-queue disk" $VESTA/bin/v-add-cron-job 'admin' '15' '02' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-sys-queue traffic' +command="sudo $VESTA/bin/v-update-sys-queue traffic" $VESTA/bin/v-add-cron-job 'admin' '10' '00' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-sys-queue webstats' +command="sudo $VESTA/bin/v-update-sys-queue webstats" $VESTA/bin/v-add-cron-job 'admin' '30' '03' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-sys-queue backup' +command="sudo $VESTA/bin/v-update-sys-queue backup" $VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-backup-users' +command="sudo $VESTA/bin/v-backup-users" $VESTA/bin/v-add-cron-job 'admin' '10' '05' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-user-stats' +command="sudo $VESTA/bin/v-update-user-stats" $VESTA/bin/v-add-cron-job 'admin' '20' '00' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-sys-rrd' +command="sudo $VESTA/bin/v-update-sys-rrd" $VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command" service cron restart diff --git a/install/vst-install-rhel.sh b/install/vst-install-rhel.sh index 37616e60a..68cc72a18 100755 --- a/install/vst-install-rhel.sh +++ b/install/vst-install-rhel.sh @@ -10,6 +10,7 @@ RHOST='r.vestacp.com' CHOST='c.vestacp.com' REPO='cmmnt' VERSION='rhel' +VESTA='/usr/local/vesta' memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9]) arch=$(uname -i) os=$(cut -f 1 -d ' ' /etc/redhat-release) @@ -26,7 +27,7 @@ if [ "$release" -eq 7 ]; then postgresql postgresql-server postgresql-contrib phpPgAdmin e2fsprogs openssh-clients ImageMagick curl mc screen ftp zip unzip flex sqlite pcre sudo bc jwhois mailx lsof tar telnet rrdtool net-tools ntp GeoIP freetype - fail2ban rsyslog iptables-services which vesta vesta-nginx vesta-php" + fail2ban rsyslog iptables-services which vesta vesta-nginx vesta-php expect" else software="nginx httpd mod_ssl mod_ruid2 mod_fcgid mod_extract_forwarded php php-common php-cli php-bcmath php-gd php-imap php-mbstring php-mcrypt @@ -36,7 +37,7 @@ else postgresql-server postgresql-contrib phpPgAdmin e2fsprogs openssh-clients ImageMagick curl mc screen ftp zip unzip flex sqlite pcre sudo bc jwhois mailx lsof tar telnet rrdtool net-tools ntp GeoIP freetype fail2ban - which vesta vesta-nginx vesta-php" + which vesta vesta-nginx vesta-php expect" fi # Defining help function @@ -436,6 +437,7 @@ check_result $? "Can't install EPEL repository" if [ "$remi" = 'yes' ]; then rpm -Uvh --force $vestacp/remi-release.rpm check_result $? "Can't install REMI repository" + sed -i "s/enabled=0/enabled=1/g" /etc/yum.repos.d/remi.repo fi # Installing Nginx repository @@ -527,8 +529,8 @@ mv /var/lib/pgsql/data $vst_backups/postgresql/ >/dev/null 2>&1 # Backing up Vesta configuration and data service vesta stop > /dev/null 2>&1 -mv /usr/local/vesta/data/* $vst_backups/vesta > /dev/null 2>&1 -mv /usr/local/vesta/conf/* $vst_backups/vesta > /dev/null 2>&1 +mv $VESTA/data/* $vst_backups/vesta > /dev/null 2>&1 +mv $VESTA/conf/* $vst_backups/vesta > /dev/null 2>&1 #----------------------------------------------------------# @@ -605,7 +607,7 @@ fi # Installing rpm packages if [ -z "$disable_remi" ]; then - yum -y --disablerepo=* --enablerepo="base,updates,nginx,epel,vesta,remi" \ + yum -y --disablerepo=* --enablerepo="base,updates,nginx,epel,vesta,remi*"\ install $software else yum -y --disablerepo=* --enablerepo="base,updates,nginx,epel,vesta" \ @@ -677,10 +679,10 @@ wget $vestacp/sudo/admin -O /etc/sudoers.d/admin chmod 440 /etc/sudoers.d/admin # Configuring system env -echo "export VESTA='/usr/local/vesta'" > /etc/profile.d/vesta.sh +echo "export VESTA='$VESTA'" > /etc/profile.d/vesta.sh chmod 755 /etc/profile.d/vesta.sh source /etc/profile.d/vesta.sh -echo 'PATH=$PATH:/usr/local/vesta/bin' >> /root/.bash_profile +echo 'PATH=$PATH:'$VESTA'/bin' >> /root/.bash_profile echo 'export PATH' >> /root/.bash_profile source /root/.bash_profile @@ -699,7 +701,7 @@ chmod 750 $VESTA/conf $VESTA/data/users $VESTA/data/ips $VESTA/log chmod -R 750 $VESTA/data/queue chmod 660 $VESTA/log/* rm -f /var/log/vesta -ln -s /usr/local/vesta/log /var/log/vesta +ln -s $VESTA/log /var/log/vesta chown admin:admin $VESTA/data/sessions chmod 770 $VESTA/data/sessions @@ -1096,7 +1098,7 @@ if [ "$clamd" = 'yes' ]; then wget $vestacp/clamav/freshclam.conf -O /etc/freshclam.conf mkdir -p /var/log/clamav mkdir -p /var/run/clamav - chown clam:clam /var/log/clamav + chown clam:clam /var/log/clamav /var/run/clamav chown -R clam:clam /var/lib/clamav if [ "$release" -eq '7' ]; then wget $vestacp/clamav/clamd.service -O \ @@ -1104,6 +1106,10 @@ if [ "$clamd" = 'yes' ]; then systemctl --system daemon-reload fi /usr/bin/freshclam + if [ "$release" -eq '7' ]; then + sed -i "s/nofork/foreground/" /usr/lib/systemd/system/clamd.service + systemctl daemon-reload + fi chkconfig clamd on service clamd start #check_result $? "clamd start failed" @@ -1118,6 +1124,13 @@ if [ "$spamd" = 'yes' ]; then chkconfig spamassassin on service spamassassin start check_result $? "spamassassin start failed" + if [ "$release" -eq '7' ]; then + groupadd -g 1001 spamd + useradd -u 1001 -g spamd -s /sbin/nologin -d \ + /var/lib/spamassassin spamd + mkdir /var/lib/spamassassin + chown spamd:spamd /var/lib/spamassassin + fi fi @@ -1229,20 +1242,19 @@ fi $VESTA/bin/v-add-domain admin $servername check_result $? "can't create $servername domain" -# Adding cron jobs -command='sudo /usr/local/vesta/bin/v-update-sys-queue disk' +command="sudo $VESTA/bin/v-update-sys-queue disk" $VESTA/bin/v-add-cron-job 'admin' '15' '02' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-sys-queue traffic' +command="sudo $VESTA/bin/v-update-sys-queue traffic" $VESTA/bin/v-add-cron-job 'admin' '10' '00' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-sys-queue webstats' +command="sudo $VESTA/bin/v-update-sys-queue webstats" $VESTA/bin/v-add-cron-job 'admin' '30' '03' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-sys-queue backup' +command="sudo $VESTA/bin/v-update-sys-queue backup" $VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-backup-users' +command="sudo $VESTA/bin/v-backup-users" $VESTA/bin/v-add-cron-job 'admin' '10' '05' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-user-stats' +command="sudo $VESTA/bin/v-update-user-stats" $VESTA/bin/v-add-cron-job 'admin' '20' '00' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-sys-rrd' +command="sudo $VESTA/bin/v-update-sys-rrd" $VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command" service crond restart diff --git a/install/vst-install-ubuntu.sh b/install/vst-install-ubuntu.sh index d71a4edcd..ca3c186a5 100755 --- a/install/vst-install-ubuntu.sh +++ b/install/vst-install-ubuntu.sh @@ -10,6 +10,7 @@ export DEBIAN_FRONTEND=noninteractive RHOST='apt.vestacp.com' CHOST='c.vestacp.com' VERSION='ubuntu' +VESTA='/usr/local/vesta' memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9]) arch=$(uname -i) os='ubuntu' @@ -26,7 +27,7 @@ software="nginx apache2 apache2-utils apache2.2-common mysql-client postgresql postgresql-contrib phppgadmin phpMyAdmin mc flex whois rssh git idn zip sudo bc ftp lsof ntpdate rrdtool quota e2fslibs bsdutils e2fsprogs curl imagemagick fail2ban dnsutils - bsdmainutils cron vesta vesta-nginx vesta-php" + bsdmainutils cron vesta vesta-nginx vesta-php expect" # Defining help function help() { @@ -491,10 +492,10 @@ mv -f /root/.my.cnf $vst_backups/mysql > /dev/null 2>&1 # Backup vesta service vesta stop > /dev/null 2>&1 -cp -r /usr/local/vesta/* $vst_backups/vesta > /dev/null 2>&1 +cp -r $VESTA/* $vst_backups/vesta > /dev/null 2>&1 apt-get -y remove vesta vesta-nginx vesta-php > /dev/null 2>&1 apt-get -y purge vesta vesta-nginx vesta-php > /dev/null 2>&1 -rm -rf /usr/local/vesta > /dev/null 2>&1 +rm -rf $VESTA > /dev/null 2>&1 #----------------------------------------------------------# @@ -595,9 +596,6 @@ rm -f /usr/sbin/policy-rc.d sed -i "s/rdAuthentication no/rdAuthentication yes/g" /etc/ssh/sshd_config service ssh restart -# AppArmor -#aa-complain /usr/sbin/named - # Disable awstats cron rm -f /etc/cron.d/awstats @@ -627,8 +625,6 @@ chmod 755 /usr/bin/rssh # Configure VESTA # #----------------------------------------------------------# -# AppArmor -aa-complain /usr/sbin/named 2>/dev/null # Downlading sudo configuration mkdir -p /etc/sudoers.d @@ -636,10 +632,10 @@ wget $vestacp/sudo/admin -O /etc/sudoers.d/admin chmod 440 /etc/sudoers.d/admin # Configuring system env -echo "export VESTA='/usr/local/vesta'" > /etc/profile.d/vesta.sh +echo "export VESTA='$VESTA'" > /etc/profile.d/vesta.sh chmod 755 /etc/profile.d/vesta.sh source /etc/profile.d/vesta.sh -echo 'PATH=$PATH:/usr/local/vesta/bin' >> /root/.bash_profile +echo 'PATH=$PATH:'$VESTA'/bin' >> /root/.bash_profile echo 'export PATH' >> /root/.bash_profile source /root/.bash_profile @@ -658,7 +654,7 @@ chmod 750 $VESTA/conf $VESTA/data/users $VESTA/data/ips $VESTA/log chmod -R 750 $VESTA/data/queue chmod 660 $VESTA/log/* rm -f /var/log/vesta -ln -s /usr/local/vesta/log /var/log/vesta +ln -s $VESTA/log /var/log/vesta chown admin:admin $VESTA/data/sessions chmod 770 $VESTA/data/sessions @@ -957,6 +953,12 @@ if [ "$named" = 'yes' ]; then sed -i "s%listen-on%//listen%" /etc/bind/named.conf.options chown root:bind /etc/bind/named.conf chmod 640 /etc/bind/named.conf + aa-complain /usr/sbin/named 2>/dev/null + echo "/home/** rwm," >> /etc/apparmor.d/local/usr.sbin.named 2>/dev/null + service apparmor status >/dev/null 2>&1 + if [ $? -ne 0 ]; then + service apparmor restart + fi update-rc.d bind9 defaults service bind9 start check_result $? "bind9 start failed" @@ -1149,19 +1151,19 @@ $VESTA/bin/v-add-domain admin $servername check_result $? "can't create $servername domain" # Adding cron jobs -command='sudo /usr/local/vesta/bin/v-update-sys-queue disk' +command="sudo $VESTA/bin/v-update-sys-queue disk" $VESTA/bin/v-add-cron-job 'admin' '15' '02' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-sys-queue traffic' +command="sudo $VESTA/bin/v-update-sys-queue traffic" $VESTA/bin/v-add-cron-job 'admin' '10' '00' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-sys-queue webstats' +command="sudo $VESTA/bin/v-update-sys-queue webstats" $VESTA/bin/v-add-cron-job 'admin' '30' '03' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-sys-queue backup' +command="sudo $VESTA/bin/v-update-sys-queue backup" $VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-backup-users' +command="sudo $VESTA/bin/v-backup-users" $VESTA/bin/v-add-cron-job 'admin' '10' '05' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-user-stats' +command="sudo $VESTA/bin/v-update-user-stats" $VESTA/bin/v-add-cron-job 'admin' '20' '00' '*' '*' '*' "$command" -command='sudo /usr/local/vesta/bin/v-update-sys-rrd' +command="sudo $VESTA/bin/v-update-sys-rrd" $VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command" service cron restart diff --git a/test/test_actions.sh b/test/test_actions.sh index da4ad9f41..aeb4d204e 100755 --- a/test/test_actions.sh +++ b/test/test_actions.sh @@ -111,7 +111,7 @@ if [ "$?" -eq 4 ]; then else retval=1 fi -echo_result "CRON: Dublicate cron job check" "$retval" "$tmpfile" "$cmd" +echo_result "CRON: Duplicate cron job check" "$retval" "$tmpfile" "$cmd" # Add second cron job cmd="v_add_cron_job $user 2 2 2 2 2 echo 2" @@ -142,14 +142,14 @@ cmd="v_add_sys_ip 198.18.0.123 255.255.255.255 $interface $user" $cmd > $tmpfile 2>> $tmpfile echo_result "IP: Adding ip 198.18.0.123" "$?" "$tmpfile" "$cmd" -# Add dublicate ip +# Add duplicate ip $cmd > $tmpfile 2>> $tmpfile if [ "$?" -eq 4 ]; then retval=0 else retval=1 fi -echo_result "IP: Dublicate ip address check" "$retval" "$tmpfile" "$cmd" +echo_result "IP: Duplicate ip address check" "$retval" "$tmpfile" "$cmd" # Delete ip address cmd="v_delete_sys_ip 198.18.0.123" @@ -172,28 +172,28 @@ cmd="v_add_web_domain $user $domain 198.18.0.125" $cmd > $tmpfile 2>> $tmpfile echo_result "WEB: Adding domain $domain on 198.18.0.125" "$?" "$tmpfile" "$cmd" -# Add dublicate +# Add duplicate $cmd > $tmpfile 2>> $tmpfile if [ "$?" -eq 4 ]; then retval=0 else retval=1 fi -echo_result "WEB: Dublicate web domain check" "$retval" "$tmpfile" "$cmd" +echo_result "WEB: Duplicate web domain check" "$retval" "$tmpfile" "$cmd" # Add web domain alias cmd="v_add_web_domain_alias $user $domain v3.$domain" $cmd > $tmpfile 2>> $tmpfile echo_result "WEB: Adding alias v3.$domain" "$?" "$tmpfile" "$cmd" -# Alias dublicate +# Alias duplicate $cmd > $tmpfile 2>> $tmpfile if [ "$?" -eq 4 ]; then retval=0 else retval=1 fi -echo_result "WEB: Dublicate web alias check" "$retval" "$tmpfile" "$cmd" +echo_result "WEB: Duplicate web alias check" "$retval" "$tmpfile" "$cmd" # Add web domain elog cmd="v_add_web_domain_elog $user $domain" @@ -252,28 +252,28 @@ cmd="v_add_dns_domain $user $domain 198.18.0.125" $cmd > $tmpfile 2>> $tmpfile echo_result "DNS: Adding dns domain $domain" "$?" "$tmpfile" "$cmd" -# Add dublicate +# Add duplicate $cmd > $tmpfile 2>> $tmpfile if [ "$?" -eq 4 ]; then retval=0 else retval=1 fi -echo_result "DNS: Dublicate domain check" "$retval" "$tmpfile" "$cmd" +echo_result "DNS: Duplicate domain check" "$retval" "$tmpfile" "$cmd" # Add dns domain record cmd="v_add_dns_domain_record $user $domain test A 198.18.0.125 20" $cmd > $tmpfile 2>> $tmpfile echo_result "DNS: Adding dns domain record" "$?" "$tmpfile" "$cmd" -# Add dublicate +# Add duplicate $cmd > $tmpfile 2>> $tmpfile if [ "$?" -eq 4 ]; then retval=0 else retval=1 fi -echo_result "DNS: Dublicate record check" "$retval" "$tmpfile" "$cmd" +echo_result "DNS: Duplicate record check" "$retval" "$tmpfile" "$cmd" # Delete dns domain record cmd="v_delete_dns_domain_record $user $domain 20" diff --git a/web/css/file_manager.css b/web/css/file_manager.css index bc9723c03..d8e5a26ec 100644 --- a/web/css/file_manager.css +++ b/web/css/file_manager.css @@ -1,25 +1,12 @@ body { margin: 0; padding: 0; } .hidden { display: none; } -.l-logo { - background-color: #7B7B7B; - background-image: url("/images/sprite.png?1446554103"); - background-position: -117px -57px; - background-repeat: no-repeat; - border: 9px solid #7B7B7B; - display: inline-block; - float: left; - height: 22px; - margin-left: 0; - margin-top: 0; - width: 59px; -} +.l-logo { background-color: #7B7B7B; background-image: url("/images/sprite.png?1446554103"); background-position: -117px -57px; background-repeat: no-repeat; border: 9px solid #7B7B7B; display: inline-block; float: left; height: 22px; margin-left: 0; margin-top: 0; width: 59px; } #main{ display: inline-block; font-family: Arial; font-size: 15px; color: #777; width: 100%; } -.window { display: inline-block; float: left; /*border: 1px solid #eee;*/ width: 50%; height: 100%; background-color: #ececec; /*background: url(/images/background-dots.png) #ececec;*/ } +.window { display: inline-block; float: left; width: 50%; height: 100%; background-color: #ececec; } .window.active { background: #fff; } - .window.active .l-logo { background-color: #333; border-color: #333; } @@ -31,7 +18,7 @@ body { margin: 0; padding: 0; } .active .menu { box-shadow: 0 1px 11px -5px rgba(0, 0, 0, 0.5); } -.menu { /*background-color: #EEE;*/ display: inline-block; color: #999999; width: 100%; padding: 8px 0 7px 0; border-bottom: 1px solid #CFCFCD; border-left: 1px solid #CFCFCD; margin-left: -1px; } +.menu { display: inline-block; color: #999999; width: 100%; padding: 8px 0 7px 0; border-bottom: 1px solid #CFCFCD; border-left: 1px solid #CFCFCD; margin-left: -1px; } .menu div { display: inline-block; float: left; padding: 6px 5px 5px; font-size: 11px; margin: 0 3px; line-height: 14px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; } @@ -44,6 +31,7 @@ body { margin: 0; padding: 0; } .menu div.button.small.rename { background: url("/images/flat_icons.png") no-repeat scroll -180px -180px; width: 12px; } .menu div.button.small.rights { background: url("/images/flat_icons.png") no-repeat scroll -237px -97px; } .menu div.button.small.copy { background: url("/images/flat_icons.png") no-repeat scroll -177px -210px; } +.menu div.button.small.move { background: url("/images/flat_icons.png") no-repeat scroll -231px -210px; } .menu div.button.small.download { background: url("/images/flat_icons.png") no-repeat scroll -176px -243px; } .menu div.button.small.extract { background: url("/images/flat_icons.png") no-repeat scroll -232px -35px; } .menu div.button.small.archive { background: url("/images/flat_icons.png") no-repeat scroll -175px -58px; } @@ -55,6 +43,7 @@ body { margin: 0; padding: 0; } .menu div.button.small.rename:hover { background-position: -207px -180px; } .menu div.button.small.rights:hover { background-position: -237px -122px; } .menu div.button.small.copy:hover { background-position: -204px -210px; } +.menu div.button.small.move:hover { background-position: -231px -243px; } .menu div.button.small.download:hover { background-position: -204px -243px; } .menu div.button.small.extract:hover { background: url("/images/flat_icons.png") no-repeat scroll -255px -35px; } .menu div.button.small.archive:hover { background: url("/images/flat_icons.png") no-repeat scroll -201px -35px; } @@ -69,21 +58,15 @@ body { margin: 0; padding: 0; } .menu div.button.del:hover { color: #FF5A5A; } - .menu div.button.disabled:hover, .menu div.button.disabled { opacity: 0.5; cursor: default; text-decoration: none; } - .menu .upload.button { color: #777; border: 1px solid #B7B7B7; background-color: #EAEAE8; text-transform: uppercase; font-size: 12px; text-decoration: none; margin-left: 8px; padding: 5px 12px; margin-right: 10px; border-radius: 3px; float: left; transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; font-size: 11px; line-height: 14px; } .window.active .menu .upload { border: 1px solid #AACC0D; background-color: #AACC0D; color: #FFF; } -.menu .upload.button.progress { background: url(/images/progress.gif) no-repeat /*-98px*/ -60px 0px #EBEBEB; border-color: #8A9079; color: transparent; padding: 3px 12px; height: 0; margin-top: 9px; transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; - -webkit-transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -} - +.menu .upload.button.progress { background: url(/images/progress.gif) no-repeat /*-98px*/ -60px 0px #EBEBEB; border-color: #8A9079; color: transparent; padding: 3px 12px; height: 0; margin-top: 9px; transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; } .menu .upload.button.progress.done { background-color: #d1ff66; border-color: #8a9079; box-shadow: 0 0 9px 0 #d1ff38; color: transparent; height: 0; margin-top: 9px; padding: 3px 12px; transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; transition: height 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: height 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; } - .menu .upload.button:hover, .window.active .menu .upload:hover { border: 1px solid #C0E60F; background-color: #C0E60F; color: #fff; } .menu .upload.button:active, .window.active .menu .upload:active { border: 1px solid #FFCC00; background-color: #FFCC00; color: #FFF; } @@ -107,7 +90,6 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .listing li.file { } -/* .listing li .icon { background: url("/images/document.png") no-repeat scroll -2px 6px; float: left; margin-left: -17px; width: 13px; height: 24px; }*/ .listing li .icon { background: url("/images/flat_icons.png") no-repeat scroll -97px -100px; float: left; margin-left: -17px; width: 31px; height: 31px; margin-top: 1px; } .listing li .icon.filetype-dir { background: url("/images/flat_icons.png") no-repeat scroll -24px -98px; } .listing li .icon.filetype-link { background: url("/images/flat_icons.png") no-repeat scroll -97px -121px; } @@ -203,15 +185,7 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .listing li .filename-holder { max-width: 40%; overflow: hidden; float: left; height: 35px; } .listing li .filename { color: #555; cursor: pointer; height: 32px; float: left; padding: 2px 7px 0 7px; border-radius: 3px; transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1) 0s; -webkit-transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1) 0s; } -/* .listing li .filename { background: url("/images/folder_.png") no-repeat scroll -2px 6px; color: #555; cursor: pointer; float: left; margin-left: -27px; padding-left: 19px; }*/ - .listing li .filename:hover { color: #333; background-color: #D1D0CF; } -/* -.listing li .filename:hover { color: #FFF; background-color: #6CB6B9; } -.listing li.selected .filename:hover { color: #FFF; } -.listing li.active .filename:hover { color: #FFF; background-color: #CAA335; } -.listing li.active.selected .filename:hover { color: #FFF; background-color: #60A885; } -*/ .listing li .filename a { color: #7D7D7D; text-decoration: none; } .listing li .mode { width: 51px; font-size: 11px; padding-top: 2px; } .listing li .owner { width: 11%; font-style: italic; color: #81A64F; font-size: 12px; padding-top: 2px; } @@ -221,58 +195,30 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .listing li .time { width: 50px; font-size: 11px; padding-top: 2px; } .window.active .listing li.selected .mode { color: #7F7550; } -.window.active .listing li.selected .owner { /* color: #7F7550; */ } +.window.active .listing li.selected .owner { } .window.active .listing li.selected .size-value { color: #7F7550; } .window.active .listing li.selected .size-unit { color: #7F7550; } .window.active .listing li.selected .date { color: #7F7550; } .window.active .listing li.selected .time { color: #7F7550; } - -/* -.listing li.selected-inactive.selected { background-color: #e9e9e9; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; } -.listing li.selected-inactive .mode, -.listing li.selected-inactive .time, -.listing li.selected-inactive .date { color: #999 !important; } -*/ - .listing li.selected { background-color: #DEDEDE; } -.listing.active li.selected { background-color: #ffd437 /*#7FD5D9*/; } +.listing.active li.selected { background-color: #ffd437; } .listing li.selected .filename:hover { color: #333; background-color: #F0B607; } - - - -/* ///.listing li.selected-inactive.selected.active { background-color: #dfc891; border-top: 1px solid #cdb885; border-bottom: 1px solid #cdb885; }*/ - -/* -.listing li.selected .filename { color: #333; } -.listing li.selected .date, -.listing li.selected .mode, -.listing li.selected .time { color: #777; } -.listing li.selected .owner { color: #31775A; } -.listing li.selected .size { color: #31775A; } -*/ .window.active .listing li.active { background-color: #FFDC5A; } .window.active .listing li.active .marker { background-color: #C2A84B; } .listing li.active { background-color: #DEDEDE; } .listing li.active .marker { background-color: #C2C2C2; } -/* ///.listing li.selected.active .filename { color: #fff29c; } */ .listing li.selected.active .marker { background-color: #3a8a96; } .listing li.selected-inactive { background-color: #DEDEDE; } -/*///.listing li.selected-inactive .marker { background-color: #7FD5D9; } -.listing li.selected-inactive .filename { color: #54A9A9; } */ - .listing li .filename a:hover { color: #3399FF; } .listing li:hover { background-color: #E5E5E5; cursor: pointer; } .window.active .listing li.active:hover { background-color: #FFE570; } -.listing li.selected:hover { background-color: /*#89E6EA*/#FFE570; } +.listing li.selected:hover { background-color: #FFE570; } .listing li.selected.active:hover { background-color: #FFE570; } - - - .context-menu { background-color: #333333; width: 200px; list-style-type: none; font-family: arial; padding-left: 0; } .context-menu li { border-bottom: 1px solid #555; padding: 12px 12px 12px 12px; color: #D6CEC1; font-size: 14px; cursor: pointer; } @@ -294,22 +240,16 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .context-menu.sort-order span.name, .context-menu.sort-order span.date, .context-menu.sort-order span.size, -.context-menu.sort-order span.type - { background: url("/images/flat_icons.png") repeat scroll -308px -105px; display: inline-block; padding: 12px 28px 12px 12px; width: 64px; } - - - +.context-menu.sort-order span.type { background: url("/images/flat_icons.png") repeat scroll -308px -105px; display: inline-block; padding: 12px 28px 12px 12px; width: 64px; } .context-menu.sort-order span.active { background-color: #FFCC00; color: #FFF; } - .context-menu.sort-order span:hover { background-color: #4B4B4B; color: #FFF; } .context-menu.sort-order span:active { background-color: #FFCC00; color: #FFF; } .confirm-box { background-color: #333; width: 480px; font-family: arial; margin-left: 50px; border-radius: 3px; box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.5); } -/*.confirm-box.replace { height: 230px; }*/ .confirm-box .message { color: #EBE697; font-size: 16px; padding: 25px; margin-bottom: 60px; display: inline-block; } .confirm-box .results, -.confirm-box .warning { color: #FF9500; font-size: 16px; padding: 25px; } +.confirm-box .warning { color: #ffc800; font-size: 16px; padding: 25px; } .confirm-box .warning .title, .confirm-box .message .title { color: #48B1B7; } .confirm-box .action-name { color: #B9CAD4; display: inline-block; float: left; margin-bottom: 28px; margin-left: 25px; } @@ -317,27 +257,22 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .confirm-box .action-nam .checkbox { border: 1px solid #777; height: 10px; margin-right: 10px; margin-top: 3px; padding-top: 0; width: 10px; } .confirm-box .controls { border-top: 1px solid #555; display: inline-block; width: 100%; margin-bottom :9px; } -.confirm-box .controls .cancel { /*background-color: #e8e8e6;*/ border: 1px solid transparent; border-radius: 3px; color: #CCC; display: inline-block; float: left; font-size: 12px; margin: 12px 0 0 12px; padding: 7px 18px; text-transform: uppercase; cursor: pointer; } +.confirm-box .controls .cancel { border: 1px solid transparent; border-radius: 3px; color: #CCC; display: inline-block; float: left; font-size: 12px; margin: 12px 0 0 12px; padding: 7px 18px; text-transform: uppercase; cursor: pointer; } .confirm-box .controls .keep-original { color: #ccc; cursor: pointer; display: inline-block; float: left; margin: 11px 0 0 15px; padding: 7px; text-decoration: underline; } .confirm-box .controls .ok { margin: 12px 12px 0 0; border-radius: 3px; cursor: pointer; border: 1px solid #CACE33; background-color: #CACE33; color: #FFF; float: right; display: inline-block; font-size: 12px; padding: 7px 18px; text-transform: uppercase; width: 100px; text-align: center; height: 14px; } .confirm-box .controls .cancel:hover, -.confirm-box .controls .ok:hover { border: 1px solid #54BDAA; background-color: #54BDAA; /*border: 1px solid #6DB8D3; background-color: #6DB8D3;*/ color: #FFF; box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.5); } +.confirm-box .controls .ok:hover { border: 1px solid #54BDAA; background-color: #54BDAA; color: #FFF; box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.5); } .confirm-box .controls .cancel:active, .confirm-box .controls .ok:active { border: 1px solid #ccc; background-color: #ccc; } .confirm-box.delete .controls .ok { background-color: #ff9f89; border-color: #ff9f89; } .confirm-box.delete .controls .ok:hover { background-color: #FF6C6E; border-color: #FF6C6E; } - - .confirm-box .controls .keep-original:hover { color: #FFCC00; } .confirm-box .controls .keep-original:active { color: #6DB8D3; } -/*.confirm-box.delete { height: 183px; }*/ - .confirm-box .new-title { background-color: #292929; border: 1px solid #111; color: #eee; font-family: Arial; font-size: 16px; margin-bottom: 73px; margin-left: 27px; padding: 10px 14px; width: 396px; } .confirm-box .new-title:focus { border: 1px solid #FFCC00; box-shadow: 0 0 5px 0 rgba(255, 204, 0 , 0.3); } -/*.confirm-box.rename { height: 209px; } */ .confirm-box.rename .message { margin-bottom: 36px; } .confirm-box.rename .controls.replace { display: none; } .confirm-box.rename.warning .controls { display: none; } @@ -352,8 +287,6 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .confirm-box.chmod ul:last-of-type { margin-bottom: 38px; } .confirm-box.chmod li { list-style-type: none; } - -/*.confirm-box.archive { height: 468px; }*/ .confirm-box.archive .message { margin-bottom: 38px; } .confirm-box.archive.warning .controls, .confirm-box.archive .controls.replace, @@ -367,15 +300,12 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .confirm-box.unpack .message { margin-bottom: 0; } .confirm-box.pack .message { margin-bottom: 0; } - .confirm-box .actions select { background-color: #333333; border: 1px solid #ccc; color: #fff; font-family: Arial; font-size: 16px; margin-bottom: 27px; margin-left: 27px; padding: 10px 14px; } .confirm-box .actions .title { color: #ccc; font-family: Arial; line-height: 33px; padding-left: 27px; text-transform: capitalize; } .confirm-box .actions label { cursor: pointer; padding-left: 27px; color: #ebe697; } .confirm-box.unpack .actions { padding-bottom: 30px; } .confirm-box.unpack .actions input { margin-right: 5px; } - -/*.confirm-box.owner-mode { height: 484px; }*/ .confirm-box.owner-mode .warning { display: none; } .confirm-box.owner-mode.warning .warning { display: inline-block; } .confirm-box.owner-mode.warning .message { margin-bottom: -39px; } @@ -387,8 +317,6 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .confirm-box.owner-mode .recursive { margin-top: 30px; margin-bottom: 25px; } - - .warning-box { width: 60%; background-color: #ff9f89; border-bottom: 5px solid #ff6c6e; color: #FFF; font-family: arial; margin-left: auto; margin-right: auto; padding-bottom: 30px; margin-bottom: 50px; left: 20%; position: absolute; top: 0; box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.5); } .warning-box.inform { background-color: #72c5b2; border-color: #019174; } .warning-box.reload { width: 100px; background-color: #333; border-color: #222; z-index: 5000; left: 45%; opacity: 0.9; padding: 17px 27px; border-radius: 0 0 6px 6px; border: none; opacity: 0.9; } @@ -402,150 +330,53 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b .warning-box.inform .close:hover { background-color: #019174; } - .fotorama--fullscreen .fotorama__fullscreen-icon { background-position: -64px 0 !important; } +.fileinput-button input { font-size: 14px !important; width: 90px; } -/* - transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; - -webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; +.progress-container { width: 100%; position: fixed; bottom: 1px; } +.progress-container .progress-elm { background-color: rgba(0, 0, 0, 0.5); border-radius: 3px; display: block; height: 12px; margin-left: auto; margin-right: auto; padding: 7px; width: 212px; } +.progress-container .progress-elm .title { color: #fff; display: inline-block; float: left; font-family: arial; font-size: 11px; margin-left: 4px; padding-right: 14px; padding-top: 0; text-transform: uppercase; } +.progress-container .progress-elm .progress { background: #ebebeb url("/images/progress.gif") no-repeat scroll 0px 0; border-color: #8a9079; border-radius: 3px; color: transparent; display: inline-block; height: 0; margin-top: 3px; padding: 3px 12px; transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; width: 60px; float: left; } +.progress-container .progress-elm .close { background: rgba(0, 0, 0, 0) url("/images/sprite.png?1446554103") repeat scroll -428px -487px; cursor: pointer; display: inline-block; float: right; height: 7px; margin-right: 3px; margin-top: 3px; width: 7px; } +.progress-container .progress-elm .close:hover { border: 7px solid #333; margin-top: -4px; margin-right: -4px; background-color: #333; } +.progress-container .progress-elm .close:active { border: 7px solid #FFCC00; margin-top: -4px; margin-right: -4px; background-color: #FFCC00; } - box-shadow: 0 6px 15px rgba( 0, 0, 0, 0.23), 0 10px 18px rgba( 0, 0, 0, 0.16); - box-shadow: 0 3px 10px rgba(0, 0, 0, 0.23), 0 3px 10px rgba(0, 0, 0, 0.16); - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.64); +.checkbox-toolbar { float: left !important; } -*/ +.subcontext-control.hidden { display: none !important; } +.subcontext-control { color: red; } +.subcontext-menu-hidden { display: none; } +.subcontext-menu { position: absolute; background-color: yellow; padding: 10px; border: 1px solid red; } -/* +.shortcuts { background: rgba(50, 50, 50, 0.9); display: inline-block; position: fixed; right: 20%; bottom: 0; color: #eee; width: 810px; border: 1px solid #333; font-family: arial; font-size: 13px; } +.shortcuts .header { border-bottom: 1px solid #333; height: 43px; } +.shortcuts .title { text-transform: uppercase; color: #ffcc00; padding: 7px 0 7px 14px; display: inline-block; float: left; font-size: 11px; letter-spacing: 3px; font-weight: bold; line-height: 30px; } +.shortcuts .close { background: url("/images/sprite.png?1446554103") repeat scroll -408px -469px; cursor: pointer; display: inline-block; float: right; height: 32px; padding-top: 11px; width: 46px; } +.shortcuts .close:hover { background-color: #000; } +.shortcuts .close:active { background-color: #55c9c0; } +.shortcuts ul { list-style-type: none; padding: 30px 20px; display: inline-block; float: left; width: 360px; } +.shortcuts ul li { padding: 5px 20px; } +.shortcuts ul li.step-top { padding-top: 30px; } +.shortcuts ul li span { color: #48F4EF; display: inline-block; font-weight: bold; padding: 0 20px 0 0; text-align: right; } +.shortcuts ul li span.bigger { font-size: 18px; } +.shortcuts ul.note { font-style: italic; color: #9CA484; width: 700px; padding-left: 50px; } +.shortcuts ul.note a { color: #9CA484; } - Прочёл. Похоже проблема уже решена, не понял, что нужно сделать, проверить правильность решения? - Вроде всё в порядке, инпут уже максимльно близко вкладывается в спан. +.to-shortcuts { display: inline-block; position: fixed; top: 95%; right: 1%; } +.l-icon-shortcuts { display: inline-block; vertical-align: middle; background-image: url("/images/sprite.png?1446554103"); width: 35px; height: 35px; background-position: -122px -283px; border-radius: 18px; } +.l-icon-shortcuts:hover { background-position: -160px -283px; } +.l-icon-shortcuts:active { background-position: -198px -283px; } - -- Для Дмитрия (удалить после прочтения): - - -- Аплоад прячет инпут, делая его прозрачным, и помещая поверх кнопку html (сделано для кроссбраузерности) - -- При стилизации кнопки для аплоада, важно задать такие же размеры для инпута с типом файла, - -- иначе он может быть больше или меньше стилизованной кнопки, что приведёт к вызову аплоад диалогового окна - -- при клике на неправильную область - - - -- вот файл инпут ----> .fileinput-button input -*/ -.fileinput-button input { - font-size: 14px !important; - width: 90px; -} - -.progress-container { - width: 100%; - position: fixed; - bottom: 1px; -} -.progress-container .progress-elm { - background-color: rgba(0, 0, 0, 0.5); - border-radius: 3px; - display: block; - height: 12px; - margin-left: auto; - margin-right: auto; - padding: 7px; - width: 212px; -} - -.progress-container .progress-elm .title { - color: #fff; - display: inline-block; - float: left; - font-family: arial; - font-size: 11px; - margin-left: 4px; - padding-right: 14px; - padding-top: 0; - text-transform: uppercase; -} - -.progress-container .progress-elm .progress { - background: #ebebeb url("/images/progress.gif") no-repeat scroll 0px 0; - border-color: #8a9079; - border-radius: 3px; - color: transparent; - display: inline-block; - height: 0; - margin-top: 3px; - padding: 3px 12px; - transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0s; - width: 60px; - float: left; -} - -.progress-container .progress-elm .close { - background: rgba(0, 0, 0, 0) url("/images/sprite.png?1446554103") repeat scroll -428px -487px; - cursor: pointer; - display: inline-block; - float: right; - height: 7px; - margin-right: 3px; - margin-top: 3px; - width: 7px; -} -.progress-container .progress-elm .close:hover { - border: 7px solid #333; - margin-top: -4px; - margin-right: -4px; - background-color: #333; -} -.progress-container .progress-elm .close:active { - border: 7px solid #FFCC00; - margin-top: -4px; - margin-right: -4px; - background-color: #FFCC00; -} - - - - - -.checkbox-toolbar { - float: left !important; -} -/*W -.check-label::before { - background-image: url("/images/sprite.png?1446554103"); - background-position: -232px -9px; - background-repeat: no-repeat; - background-size: 450px auto; - content: ""; - display: inline-block; - height: 16px; - width: 16px; - margin-top: -25px; - - border: 1px solid red; -} -input[type="checkbox"] { - display: none; -} - -.clicked-on.check-label::before, .checkbox-selected .check-label { - background-position: -225px -42px; - content: ""; - display: inline-block; - height: 27px; - left: -6px; - top: -6px; - width: 27px; -} -*/ @media (max-width: 1400px) { .listing li .filename-holder { width: 35%; } } - -@media (max-width: 1450px) { +@media (max-width: 1550px) { .menu div.button.mkfile, .menu div.button.mkdir { display: none; } .menu div.button.mkfile.small, @@ -553,14 +384,13 @@ input[type="checkbox"] { .listing li .filename-holder { max-width: 30%; } } -@media (max-width: 1320px) { +@media (max-width: 1500px) { .menu div.button.del { display: none; } .menu div.button.del.small { display: inline-block; } .listing li .filename-holder { max-width: 25%; } } - -@media (max-width: 1290px) { +@media (max-width: 1450px) { .menu div.button { display: none; } .menu div.button.medium, .menu div.button.small { display: inline-block; } @@ -572,7 +402,7 @@ input[type="checkbox"] { .listing li .mode { display: none; } } -@media (max-width: 890px) { +@media (max-width: 990px) { .window { width: 100%; } .window:nth-of-type(2){ display: none; } .listing li .owner { display: inline-block; } @@ -587,7 +417,7 @@ input[type="checkbox"] { .listing li .filename-holder { max-width: 30%; } } -@media (max-width: 600px) { +@media (max-width: 670px) { .menu div.button { display: none; } .menu div.button.medium, .menu div.button.small { display: inline-block; } @@ -615,123 +445,3 @@ input[type="checkbox"] { } -.subcontext-control.hidden { - display: none !important; -} - -.subcontext-control { - color: red; -} -.subcontext-menu-hidden { - display: none; -} - -.subcontext-menu { - position: absolute; - background-color: yellow; - padding: 10px; - border: 1px solid red; -} - -.subcontext-menu li { - /*float: left;*/ -} - - -.shortcuts { - background: rgba(50, 50, 50, 0.9); - display: inline-block; - position: fixed; - right: 20%; - bottom: 0; - color: #eee; - width: 810px; - border: 1px solid #333; - font-family: arial; - font-size: 13px; -} -.shortcuts .header { - border-bottom: 1px solid #333; - height: 43px; -} -.shortcuts .title { - text-transform: uppercase; - color: #ffcc00; - padding: 7px 0 7px 14px; - display: inline-block; - float: left; - font-size: 11px; - letter-spacing: 3px; - font-weight: bold; - line-height: 30px; -} -.shortcuts .close { - background: url("/images/sprite.png?1446554103") repeat scroll -408px -469px; - cursor: pointer; - display: inline-block; - float: right; - height: 32px; - padding-top: 11px; - width: 46px; -} -.shortcuts .close:hover { - background-color: #000; -.. -} -.shortcuts .close:active { - background-color: #55c9c0; -} -.shortcuts ul { - list-style-type: none; - padding: 30px 20px; - display: inline-block; - float: left; - width: 360px; -} -.shortcuts ul li { - padding: 5px 20px; -} -.shortcuts ul li.step-top { - padding-top: 30px; -} -.shortcuts ul li span { - color: #48F4EF; - display: inline-block; - font-weight: bold; - padding: 0 20px 0 0; - text-align: right; -} -.shortcuts ul li span.bigger { - font-size: 18px; -} -.shortcuts ul.note { - font-style: italic; - color: #9CA484; - width: 700px; - padding-left: 50px; -} -.shortcuts ul.note a { - color: #9CA484; -} - -.to-shortcuts { - display: inline-block; - position: fixed; - top: 95%; - right: 1%; -} -.l-icon-shortcuts { - display: inline-block; - vertical-align: middle; - background-image: url("/images/sprite.png?1446554103"); - width: 35px; - height: 35px; - background-position: -122px -283px; - border-radius: 18px; -} -.l-icon-shortcuts:hover { - background-position: -160px -283px; -} -.l-icon-shortcuts:active { - background-position: -198px -283px; -} diff --git a/web/css/styles.min.css b/web/css/styles.min.css index e0a3e1127..b106f3145 100644 --- a/web/css/styles.min.css +++ b/web/css/styles.min.css @@ -1169,10 +1169,16 @@ div.l-content > div.l-separator:nth-of-type(4) { vertical-align: middle; } +.l-sort-toolbar.subtitle { + padding-left: 96px; +} + + .l-sort-toolbar td:first-of-type { padding-left: 40px; } + .l-sort-toolbar td.step-right:first-of-type { padding-right: 20px; } @@ -1963,18 +1969,18 @@ body.mobile .l-unit-toolbar__col--right { background-position: -1px -442px; } .actions-panel__configure:hover a { - background-color: #afafac; - color: #fff; -} -.actions-panel__configure:active a { background-color: #55c9c0; color: #fff; } +.actions-panel__configure:active a { + background-color: #afafac; + color: #fff; +} .actions-panel__configure:hover a i { - background-position: -41px -442px; + background-position: -81px -442px; } .actions-panel__configure:active a i { - background-position: -81px -442px; + background-position: -41px -442px; } .actions-panel__configure--active a { background-color: #55c9c0; @@ -2524,6 +2530,17 @@ a.vst-text:active b{ .vst-textinput:disabled { background-color: #f1f1f1; } +.vst-textinput.console{ + font-size: 13px; + width: 630px; + height: 300px; + font-family:"Lucida Console", Monaco, monospace; + white-space: pre; +} +#advanced-options .console{ + width: 833px; + height: 600px; +} .generate { color: #2C9491; text-decoration: underline; @@ -2929,6 +2946,7 @@ form#vstobjects.suspended { padding: 3px 14px 3px 27px; position: absolute; text-transform: uppercase; + white-space: nowrap; word-break: keep-all; z-index: -1; } diff --git a/web/download/file/index.php b/web/download/file/index.php index 5322185b1..0cc5b5c10 100644 --- a/web/download/file/index.php +++ b/web/download/file/index.php @@ -8,20 +8,16 @@ if ((!isset($_SESSION['FILEMANAGER_KEY'])) || (empty($_SESSION['FILEMANAGER_KEY' $user = $_SESSION['user']; if (($_SESSION['user'] == 'admin') && (!empty($_SESSION['look']))) { - $user=$_SESSION['look']; + $user = $_SESSION['look']; } -if (!empty($_REQUEST['path'])) { - $path = $_REQUEST['path']; +$path = $_REQUEST['path']; +if (!empty($path)) { header("Content-type: application/octet-stream"); header("Content-Transfer-Encoding: binary"); header("Content-disposition: attachment;filename=".basename($path)); - passthru (VESTA_CMD . "v-open-fs-file " . $user . " " . escapeshellarg($path)); + passthru(VESTA_CMD . "v-open-fs-file " . $user . " " . escapeshellarg($path)); exit; -} -else { +} else { die('File not found'); } - - -?> diff --git a/web/edit/server/apache2/index.php b/web/edit/server/apache2/index.php new file mode 100644 index 000000000..d3c79bcb9 --- /dev/null +++ b/web/edit/server/apache2/index.php @@ -0,0 +1,58 @@ +renameFile($dir, $item, $target_name)); + $item = $dir . '/' . $_REQUEST['item']; + $target_name = $dir . '/' . $_REQUEST['target_name']; + print json_encode($fm->renameFile($item, $target_name)); break; case 'rename_directory': $dir = $_REQUEST['dir']; + $item = $dir.$_REQUEST['item']; + $target_name = $dir.$_REQUEST['target_name']; + + print json_encode($fm->renameDirectory($item, $target_name)); + break; + + case 'move_file': $item = $_REQUEST['item']; $target_name = $_REQUEST['target_name']; + print json_encode($fm->renameFile($item, $target_name)); + break; - print json_encode($fm->renameDirectory($dir, $item, $target_name)); + case 'move_directory': + $item = $_REQUEST['item']; + $target_name = $_REQUEST['target_name']; + print json_encode($fm->renameDirectory($item, $target_name)); break; case 'delete_files': @@ -98,11 +110,9 @@ switch ($_REQUEST['action']) { break; case 'pack_item': - $dir = $_REQUEST['dir']; - $target_dir = $_REQUEST['dir_target']; - $filename = $_REQUEST['filename']; - $item = $_REQUEST['item']; - print json_encode($fm->packItem($item, $dir, $target_dir, $filename)); + $items = $_REQUEST['items']; + $dst_item = $_REQUEST['dst_item']; + print json_encode($fm->packItem($items, $dst_item)); break; case 'backup': diff --git a/web/file_manager/fm_core.php b/web/file_manager/fm_core.php index 62cb304b1..4c552b0c3 100644 --- a/web/file_manager/fm_core.php +++ b/web/file_manager/fm_core.php @@ -150,13 +150,16 @@ class FileManager { } } - function packItem($item, $dir, $target_dir, $filename) { - $item = $this->formatFullPath($item); - $dst_item = $this->formatFullPath($target_dir); + function packItem($items, $dst_item) { + $items_arr = explode(',', $items); + foreach($items_arr as $key => $item){ + $items_arr[$key] = $this->formatFullPath($item); + } + $items = implode(' ', $items_arr); - $dst_item = str_replace('.tar.gz', '', $dst_item); + $dst_item = $this->formatFullPath($dst_item); - exec (VESTA_CMD . "v-add-fs-archive {$this->user} {$dst_item} {$item}", $output, $return_var); + exec (VESTA_CMD . "v-add-fs-archive {$this->user} {$dst_item} {$items}", $output, $return_var); $error = self::check_return_code($return_var, $output); @@ -233,9 +236,9 @@ class FileManager { } } - function renameFile($dir, $item, $target_name) { - $item = $this->formatFullPath($dir . '/' . $item); - $dst_item = $this->formatFullPath($dir . '/' . $target_name); + function renameFile($item, $target_name) { + $item = $this->formatFullPath($item); + $dst_item = $this->formatFullPath($target_name); exec (VESTA_CMD . "v-move-fs-file {$this->user} {$item} {$dst_item}", $output, $return_var); @@ -254,9 +257,9 @@ class FileManager { } } - function renameDirectory($dir, $item, $target_name) { - $item = $this->formatFullPath($dir . $item); - $dst_item = $this->formatFullPath($dir . $target_name); + function renameDirectory($item, $target_name) { + $item = $this->formatFullPath($item); + $dst_item = $this->formatFullPath($target_name); if ($item == $dst_item) { return array( @@ -360,7 +363,7 @@ class FileManager { 'owner' => $info[$this->info_positions['OWNER']], 'group' => $info[$this->info_positions['GROUP']], 'size' => $info[$this->info_positions['SIZE']], - 'name' => $info[$this->info_positions['NAME']] + 'name' => htmlspecialchars($info[$this->info_positions['NAME']], ENT_QUOTES) ); } diff --git a/web/images/arrow.png b/web/images/arrow.png index 81098cf23..d9d96abb4 100644 Binary files a/web/images/arrow.png and b/web/images/arrow.png differ diff --git a/web/images/background-dots.png b/web/images/background-dots.png index 9720be3b0..738a1eb94 100644 Binary files a/web/images/background-dots.png and b/web/images/background-dots.png differ diff --git a/web/images/document.png b/web/images/document.png index 0847f096d..45179bcef 100644 Binary files a/web/images/document.png and b/web/images/document.png differ diff --git a/web/images/edit_bg.png b/web/images/edit_bg.png index 17656107d..e83272b27 100644 Binary files a/web/images/edit_bg.png and b/web/images/edit_bg.png differ diff --git a/web/images/favicon.ico b/web/images/favicon.ico index 7d65e5fcf..fad74c2a4 100644 Binary files a/web/images/favicon.ico and b/web/images/favicon.ico differ diff --git a/web/images/filemanager_favicon_3.png b/web/images/filemanager_favicon_3.png index 35068d91e..000578a25 100644 Binary files a/web/images/filemanager_favicon_3.png and b/web/images/filemanager_favicon_3.png differ diff --git a/web/images/flat_icons.png b/web/images/flat_icons.png index c645adf15..16a3c80d8 100644 Binary files a/web/images/flat_icons.png and b/web/images/flat_icons.png differ diff --git a/web/images/logo.png b/web/images/logo.png index 9a902492d..011b03a5f 100644 Binary files a/web/images/logo.png and b/web/images/logo.png differ diff --git a/web/images/pause.png b/web/images/pause.png index 4120a61cb..52e41a883 100644 Binary files a/web/images/pause.png and b/web/images/pause.png differ diff --git a/web/images/sprite.png b/web/images/sprite.png index 4a3aeffcb..cc9fa741a 100644 Binary files a/web/images/sprite.png and b/web/images/sprite.png differ diff --git a/web/images/start.png b/web/images/start.png index 0f0016cba..d4a565d2a 100644 Binary files a/web/images/start.png and b/web/images/start.png differ diff --git a/web/images/toggle_password.png b/web/images/toggle_password.png index 090b0427f..92c60c11b 100644 Binary files a/web/images/toggle_password.png and b/web/images/toggle_password.png differ diff --git a/web/images/ui-bg_flat_0_aaaaaa_40x100.png b/web/images/ui-bg_flat_0_aaaaaa_40x100.png index 5b5dab2ab..a2e6bfc08 100644 Binary files a/web/images/ui-bg_flat_0_aaaaaa_40x100.png and b/web/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/web/images/ui-bg_glass_55_fbf9ee_1x400.png b/web/images/ui-bg_glass_55_fbf9ee_1x400.png index ad3d6346e..48a485e46 100644 Binary files a/web/images/ui-bg_glass_55_fbf9ee_1x400.png and b/web/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/web/images/ui-bg_glass_95_fef1ec_1x400.png b/web/images/ui-bg_glass_95_fef1ec_1x400.png index 4443fdc1a..b35df9df3 100644 Binary files a/web/images/ui-bg_glass_95_fef1ec_1x400.png and b/web/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/web/images/ui-icons_2e83ff_256x240.png b/web/images/ui-icons_2e83ff_256x240.png index 09d1cdc85..c98b09f22 100644 Binary files a/web/images/ui-icons_2e83ff_256x240.png and b/web/images/ui-icons_2e83ff_256x240.png differ diff --git a/web/images/ui-icons_454545_256x240.png b/web/images/ui-icons_454545_256x240.png index 59bd45b90..1cba359a9 100644 Binary files a/web/images/ui-icons_454545_256x240.png and b/web/images/ui-icons_454545_256x240.png differ diff --git a/web/images/ui-icons_888888_256x240.png b/web/images/ui-icons_888888_256x240.png index 6d02426c1..6764e55cb 100644 Binary files a/web/images/ui-icons_888888_256x240.png and b/web/images/ui-icons_888888_256x240.png differ diff --git a/web/images/ui-icons_cd0a0a_256x240.png b/web/images/ui-icons_cd0a0a_256x240.png index 2ab019b73..68d79ca0d 100644 Binary files a/web/images/ui-icons_cd0a0a_256x240.png and b/web/images/ui-icons_cd0a0a_256x240.png differ diff --git a/web/images/unlim.png b/web/images/unlim.png index 924cca16f..5b70b560e 100644 Binary files a/web/images/unlim.png and b/web/images/unlim.png differ diff --git a/web/images/vesta_logo.png b/web/images/vesta_logo.png index 35eeea85f..d3ca5e9f7 100644 Binary files a/web/images/vesta_logo.png and b/web/images/vesta_logo.png differ diff --git a/web/inc/i18n/ar.php b/web/inc/i18n/ar.php index c04b7f3fd..30c8fc5cd 100644 --- a/web/inc/i18n/ar.php +++ b/web/inc/i18n/ar.php @@ -285,6 +285,7 @@ $LANG['ar'] = array( 'DNS Support' => 'إضافةإلى بيانات DNS (افتراضي)', 'Mail Support' => 'إضافة إلى نطاقات البريد (افتراضي)', 'Advanced options' => 'المزيد من الخيارات المتقدمة', + 'Basic options' => 'Basic options', 'Aliases' => 'الأسماء البديلة (تعمل عمل الاسم الرئيسي)', 'SSL Certificate' => 'شهادة أمان SSL', 'SSL Key' => 'مفتاح شهادة أمان SSL', @@ -591,6 +592,7 @@ $LANG['ar'] = array( 'NEW DIR' => 'مجلد جديد', 'DELETE' => 'حذف', 'RENAME' => 'إعادة تسمية', + 'MOVE' => 'MOVE', 'RIGHTS' => 'الحقوق', 'COPY' => 'نسخ', 'ARCHIVE' => 'ضغط', @@ -611,6 +613,7 @@ $LANG['ar'] = array( 'Copy' => 'نسخ', 'Cancel' => 'إلغاء', 'Rename' => 'إعادة تسمية', + 'Move' => 'Move', 'Change Rights' => 'تغيير الحقوق', 'Delete' => 'حذف', 'Extract' => 'فك ضغط', @@ -621,7 +624,9 @@ $LANG['ar'] = array( 'YOU ARE REMOVING' => 'تقوم بالحذف', 'Delete items' => 'حذف العناصر', 'Copy files' => 'نسخ الملفات', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'هل أنت متأكد أنك تريد نسخ', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'هل انت متأكد أنك تريد حذف', 'into' => 'إلى', 'existing files will be replaced' => 'الملفات الموجودة مسبقاً سوف تستبدل', @@ -674,6 +679,7 @@ $LANG['ar'] = array( 'Go to the Top of the File List' => 'إذهب إلى أعلى قائمة الملفات', 'Go to the Last File' => 'إذهب إلى آخر ملف', 'Open File / Enter Directory' => 'فتح ملف / مجلد', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'الذهاب للمجلد الأب', 'Select Current File' => 'حدد الملف الحالي', 'Select Bunch of Files' => 'حدد مجموعة ملفات', @@ -695,6 +701,9 @@ $LANG['ar'] = array( 'Minutes' => 'دقائق', 'Hourly' => 'ساعي', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'أمر التنفيذ', 'every month' => 'كل شهر', 'every odd month' => 'كل شهر فردي', diff --git a/web/inc/i18n/bs.php b/web/inc/i18n/bs.php index ce9d30082..a9f4cc035 100644 --- a/web/inc/i18n/bs.php +++ b/web/inc/i18n/bs.php @@ -26,18 +26,18 @@ $LANG['bs'] = array( 'BACKUP' => 'BACKUP', 'LOGIN' => 'LOGIN', - 'RESET PASSWORD' => 'RESET PASSWORD', - 'SEARCH' => 'SEARCH', - 'PACKAGE' => 'PACKAGE', + 'RESET PASSWORD' => 'PROMJENA ŠIFRE', + 'SEARCH' => 'PRETRAGA', + 'PACKAGE' => 'PAKET', 'RRD' => 'RRD', - 'STATS' => 'STATS', + 'STATS' => 'STATISTIKA', 'LOG' => 'LOG', - 'UPDATES' => 'UPDATES', + 'UPDATES' => 'AŽURIRANJA', 'FIREWALL' => 'FIREWALL', 'SERVER' => 'SERVER', - 'MEMORY' => 'MEMORY', + 'MEMORY' => 'MEMORIJA', 'DISK' => 'DISK', - 'NETWORK' => 'NETWORK', + 'NETWORK' => 'MREŠA', 'Web Log Manager' => 'Web Log Manager', 'Add User' => 'Dodaj korisnika', @@ -54,8 +54,8 @@ $LANG['bs'] = array( 'Restore All' => 'Vrati sve', 'Add Package' => 'Dodaj paket', 'Add IP' => 'Dodaj IP', - 'Add Rule' => 'Add Rule', - 'Ban IP Address' => 'Ban IP Address', + 'Add Rule' => 'Dodati pravilo', + 'Ban IP Address' => 'Zabrani IP adresu', 'Search' => 'Traži', 'Add one more FTP Account' => 'Dodaj još jednu FTP račun', 'Overall Statistics' => 'Globalna statistika', @@ -240,13 +240,13 @@ $LANG['bs'] = array( 'Users' => 'Korisnici', 'Load Average' => 'Prosječno opterećenje', 'Memory Usage' => 'Upotreba memorije', - 'APACHE2 Usage' => 'APACHE2 Usage', + 'APACHE2 Usage' => 'APACHE2 upotreba', 'HTTPD Usage' => 'HTTPD upotreba', 'NGINX Usage' => 'NGINX upotreba', 'MySQL Usage on localhost' => 'MySQL na localhostu', 'PostgreSQL Usage on localhost' => 'PostgreSQL na localhostu', 'Bandwidth Usage eth0' => 'Bandwidth na eth0', - 'Exim Usage' => 'Exim Usage', + 'Exim Usage' => 'Exim upotreba', 'FTP Usage' => 'FTP upotreba', 'SSH Usage' => 'SSH upotreba', 'reverse proxy' => 'preokrenut proxy', @@ -285,6 +285,7 @@ $LANG['bs'] = array( 'DNS Support' => 'DNS podrška', 'Mail Support' => 'Mail podrška', 'Advanced options' => 'Dodatne opcije', + 'Basic options' => 'Basic options', 'Aliases' => 'Aliasi', 'SSL Certificate' => 'SSL certifikat', 'SSL Key' => 'SSL Key', @@ -380,7 +381,7 @@ $LANG['bs'] = array( 'Banlist' => 'Lista banovanih', 'ranges are acceptable' => 'rasponi su prihvatljivi', 'CIDR format is supported' => 'CIDR format je podržan', - 'ACCEPT' => 'ACCEPT', + 'ACCEPT' => 'PRIHVATITI', 'DROP' => 'DROP', 'TCP' => 'TCP', 'UDP' => 'UDP', @@ -388,19 +389,19 @@ $LANG['bs'] = array( 'SSH' => 'SSH', 'FTP' => 'FTP', 'VESTA' => 'VESTA', - 'Add one more Name Server' => 'Add one more Name Server', + 'Add one more Name Server' => 'Dodati još jedan Name server', - 'web domain' => 'web domain', - 'dns domain' => 'dns domain', - 'dns record' => 'dns record', - 'mail domain' => 'mail domain', - 'mail account' => 'mail account', + 'web domain' => 'web domena', + 'dns domain' => 'dns domena', + 'dns record' => 'dns zapis', + 'mail domain' => 'mail domena', + 'mail account' => 'mail račun', 'cron job' => 'cron job', 'cron' => 'cron', - 'user dir' => 'user dir', + 'user dir' => 'korisnički dir', - 'unlimited' => 'unlimited', + 'unlimited' => 'neograničeno', '1 account' => '1 račun', '%s accounts' => '%s računa', '1 domain' => '1 domena', @@ -444,7 +445,7 @@ $LANG['bs'] = array( 'PACKAGE_CREATED_OK' => 'Paket %s je uspješno napravljen.', 'SSL_GENERATED_OK' => 'Certifikat je uspješno generisan.', 'RULE_CREATED_OK' => 'Pravilo je uspješno kreiran.', - 'BANLIST_CREATED_OK' => 'IP address has been banned successfully', // I'm not sure about this text + 'BANLIST_CREATED_OK' => 'IP adresa je uspješno zabranjena', // I'm not sure about this text 'Autoupdate has been successfully enabled' => 'Automatsko ažuriranje uspješno omogućeno', 'Autoupdate has been successfully disabled' => 'Automatsko ažuriranje je onemogućeno', 'Cronjob email reporting has been successfully enabled' => 'Cronjob izvještavanje je uspješno omogućen', @@ -476,7 +477,7 @@ $LANG['bs'] = array( 'DELETE_RULE_CONFIRMATION' => 'Da li ste sigurni da želite obrisati pravilo #%s?', 'SUSPEND_RULE_CONFIRMATION' => 'Da li ste sigurni da želite obustaviti pravilo #%s?', 'UNSUSPEND_RULE_CONFIRMATION' => 'Da li ste sigurni da želite ponovo vratiti pravilo #%s?', - 'LEAVE_PAGE_CONFIRMATION' => 'Leave Page?', + 'LEAVE_PAGE_CONFIRMATION' => 'Napusti stranicu?', 'RESTART_CONFIRMATION' => 'Da li ste sigurni da želite ponovno pokretanje %s?', 'Welcome' => 'Dobrodošli', 'LOGGED_IN_AS' => 'Ušli ste kao %s', @@ -556,47 +557,48 @@ $LANG['bs'] = array( 'phpMyAdmin URL' => 'phpMyAdmin URL', 'PostgreSQL Support' => 'PostgreSQL Support', 'phpPgAdmin URL' => 'phpPgAdmin URL', - 'Maximum Number Of Databases' => 'Maximum Number Of Databases', - 'Current Number Of Databases' => 'Current Number Of Databases', - 'Local backup' => 'Local backup', - 'Compression level' => 'Compression level', - 'Directory' => 'Directory', + 'Maximum Number Of Databases' => 'Maksimalan broj baza', + 'Current Number Of Databases' => 'Trenutačan broj baza', + 'Local backup' => 'Lokalni backup', + 'Compression level' => 'Nivo sažimanja', + 'Directory' => 'Direktorij', 'Remote backup' => 'Remote backup', 'ftp' => 'FTP', 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'Vesta Control Panel Plugins' => 'Vesta kontrolni panel Plugini', 'preview' => 'pregled', - 'Reseller Role' => 'Reseller Role', + 'Reseller Role' => 'Reseller uloga', 'Web Config Editor' => 'Web Config Editor', 'Template Manager' => 'Template Manager', 'Backup Migration Manager' => 'Backup Migration Manager', 'FileManager' => 'FileManager', - 'show: CPU / MEM / NET / DISK' => 'show: CPU / MEM / NET / DISK', + 'show: CPU / MEM / NET / DISK' => 'prikaz: CPU / MEM / NET / DISK', - 'sort by' => 'sort by', + 'sort by' => 'sortiranje po', 'Date' => 'Datum', - 'Starred' => 'Starred', - 'Name' => 'Name', + 'Starred' => 'Označen zvjezdicom', + 'Name' => 'Ime', 'File Manager' => 'File Manager', - 'size' => 'size', - 'date' => 'date', - 'name' => 'name', - 'Initializing' => 'Initializing', + 'size' => 'veličina', + 'date' => 'datum', + 'name' => 'ime', + 'Initializing' => 'Inicijalizacija', 'UPLOAD' => 'UPLOAD', - 'NEW FILE' => 'NEW FILE', - 'NEW DIR' => 'NEW DIR', - 'DELETE' => 'DELETE', - 'RENAME' => 'RENAME', - 'RIGHTS' => 'RIGHTS', - 'COPY' => 'COPY', - 'ARCHIVE' => 'ARCHIVE', - 'EXTRACT' => 'EXTRACT', - 'DOWNLOAD' => 'DOWNLOAD', - 'Are you sure?' => 'Are you sure?', // unused? + 'NEW FILE' => 'NOVI FAJL', + 'NEW DIR' => 'NOVI DIREKTORIJ', + 'DELETE' => 'IZBRISATI', + 'RENAME' => 'PREIMENOVATI', + 'MOVE' => 'MOVE', + 'RIGHTS' => 'PRAVA', + 'COPY' => 'KOPIRATI', + 'ARCHIVE' => 'ARHIVIRATI', + 'EXTRACT' => 'EKSTRAKTOVATI', + 'DOWNLOAD' => 'PREUZETI', + 'Are you sure?' => 'Da li ste sigurni?', // unused? 'Hit' => 'Hit', 'to reload the page' => 'to reload the page', 'Directory name cannot be empty' => 'Directory name cannot be empty', @@ -611,27 +613,29 @@ $LANG['bs'] = array( 'Copy' => 'Kopirati', 'Cancel' => 'Odustati', 'Rename' => 'Izmijeniti', - 'Change Rights' => 'Change Rights', + 'Move' => 'Move', + 'Change Rights' => 'Promjena pravila', 'Delete' => 'Izbrisati', 'Extract' => 'Ekstraktovati', 'Create' => 'Napraviti', 'Compress' => 'Kompresovati', 'OK' => 'OK', - 'YOU ARE COPYING' => 'YOU ARE COPYING', // unused? - 'YOU ARE REMOVING' => 'YOU ARE REMOVING', - 'Delete items' => 'Delete items', - 'Copy files' => 'Copy files', - 'Are you sure you want to copy' => 'Are you sure you want to copy', - 'Are you sure you want to delete' => 'Are you sure you want to delete', - 'into' => 'into', - 'existing files will be replaced' => 'existing files will be replaced', - 'Original name' => 'Original name', - 'File' => 'File', - 'already exists' => 'already exists', - 'Create file' => 'Create file', - 'Create directory' => 'Create directory', - 'read by owner' => 'read by owner', - 'write by owner' => 'write by owner', + 'YOU ARE COPYING' => 'VRŠI SE KOPIRANJE', // unused? + 'YOU ARE REMOVING' => 'VRŠI SE PREBACIVANJE', + 'Delete items' => 'Brisanje svih stavki', + 'Copy files' => 'Kopiranje fajlova', + 'Move files' => 'Move files', + 'Are you sure you want to copy' => 'Da li ste sigurni da želite kopirati', + 'Are you sure you want to delete' => 'Da li ste sigurni da želite izbrisati', + 'into' => 'u', + 'existing files will be replaced' => 'postojeći fajlovi će biti zamijenjeni', + 'Original name' => 'Orginalno ime', + 'File' => 'Fajl', + 'already exists' => 'Već postoji', + 'Create file' => 'Napraviti fajl', + 'Create directory' => 'Napraviti direktorij', + 'read by owner' => 'mogućnost čitanja od strane vlasnika', + 'write by owner' => 'mogućnost zapisa od strane vlasnika', 'execute/search by owner' => 'execute/search by owner', 'read by group' => 'read by group', 'write by group' => 'write by group', @@ -640,10 +644,10 @@ $LANG['bs'] = array( 'write by others' => 'write by others', 'execute/search by others' => 'execute/search by others', - 'Shortcuts' => 'Shortcuts', - 'Add New object' => 'Add New object', - 'Save Form' => 'Save Form', - 'Cancel saving form' => 'Cancel saving form', + 'Shortcuts' => 'Prečice', + 'Add New object' => 'Dodati novi objekat', + 'Save Form' => 'Sačuvati', + 'Cancel saving form' => 'Odustani', 'Go to USER list' => 'Go to USER list', 'Go to WEB list' => 'Go to WEB list', 'Go to DNS list' => 'Go to DNS list', @@ -674,6 +678,7 @@ $LANG['bs'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -682,43 +687,45 @@ $LANG['bs'] = array( 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', - 'Licence Key' => 'Licence Key', - 'Enter License Key' => 'Enter License Key', - 'Buy Licence' => 'Buy Licence', + 'Licence Key' => 'Licencni ključ', + 'Enter License Key' => 'Unesi ključ licence', + 'Buy Licence' => 'Kupi licencu', 'Buy Lifetime License' => 'Buy Lifetime License', 'Disable and Cancel Licence' => 'Disable and Cancel Licence', - 'Licence Activated' => 'Licence Activated', + 'Licence Activated' => 'Licenca je aktivirana', 'Licence Deactivated' => 'Licence Deactivated', 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.', - 'Minutes' => 'Minutes', - 'Hourly' => 'Hourly', - 'Run Command' => 'Run Command', + 'Minutes' => 'Minuta', + 'Hourly' => 'Sahati', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', + 'Run Command' => 'Pokreni komandu', 'every month' => 'every month', 'every odd month' => 'every odd month', 'every even month' => 'every even month', - 'every day' => 'every day', - 'every odd day' => 'every odd day', + 'every day' => 'svaki dan', + 'every odd day' => 'svaki neparan dan', 'every even day' => 'every even day', 'weekdays (5 days)' => 'weekdays (5 days)', 'weekend (2 days)' => 'weekend (2 days)', - 'Monday' => 'Monday', - 'Tuesday' => 'Tuesday', - 'Wednesday' => 'Wednesday', - 'Thursday' => 'Thursday', - 'Friday' => 'Friday', - 'Saturday' => 'Saturday', - 'Sunday' => 'Sunday', - 'every hour' => 'every hour', - 'every two hours' => 'every two hours', - 'every minute' => 'every minute', - 'every two minutes' => 'every two minutes', - 'every' => 'every', - 'Generate' => 'Generate', + 'Monday' => 'Ponedjeljak', + 'Tuesday' => 'Utorak', + 'Wednesday' => 'Srijeda', + 'Thursday' => 'Četvrtak', + 'Friday' => 'Petak', + 'Saturday' => 'Subota', + 'Sunday' => 'Nedjelja', + 'every hour' => 'svaki sahat', + 'every two hours' => 'svako dva sahata', + 'every minute' => 'svake minute', + 'every two minutes' => 'svake dvije minute', + 'every' => 'svakih', + 'Generate' => 'Generiši', 'webalizer' => 'webalizer', 'awstats' => 'awstats', - -); +); \ No newline at end of file diff --git a/web/inc/i18n/cn.php b/web/inc/i18n/cn.php index 1234ada8f..d4e4faf1e 100644 --- a/web/inc/i18n/cn.php +++ b/web/inc/i18n/cn.php @@ -1,44 +1,45 @@ '预设方案', - 'IP' => 'IP管理', - 'Graphs' => '流量统计', - 'Statistics' => '统计分析', - 'Log' => '日志', + 'IP' => 'IP 地址', + 'Graphs' => '资源图表', + 'Statistics' => '统计信息', + 'Log' => '系统日志', 'Server' => '服务器', 'Services' => '系统服务', - 'Firewall' => '防火牆', - 'Updates' => '更新升级', + 'Firewall' => '防火墙', + 'Updates' => '系统更新', 'Log in' => '登录', - 'Log out' => '退出', + 'Log out' => '登出', - 'USER' => '用户管理', - 'WEB' => '网站管理 ', - 'DNS' => 'DNS管理', - 'MAIL' => '邮箱管理', + 'USER' => '用户账户', + 'WEB' => 'Web 服务', + 'DNS' => 'DNS 服务', + 'MAIL' => '邮箱服务', 'DB' => '数据库', - 'CRON' => '计划任务', - 'BACKUP' => '备份管理', + 'CRON' => '定时任务', + 'BACKUP' => '数据备份', - 'LOGIN' => 'LOGIN', - 'RESET PASSWORD' => 'RESET PASSWORD', - 'SEARCH' => 'SEARCH', - 'PACKAGE' => 'PACKAGE', - 'RRD' => 'RRD', - 'STATS' => 'STATS', - 'LOG' => 'LOG', - 'UPDATES' => 'UPDATES', - 'FIREWALL' => 'FIREWALL', - 'SERVER' => 'SERVER', - 'MEMORY' => 'MEMORY', - 'DISK' => 'DISK', - 'NETWORK' => 'NETWORK', - 'Web Log Manager' => 'Web Log Manager', + 'LOGIN' => '登录', + 'RESET PASSWORD' => '重置密码', + 'SEARCH' => '搜索', + 'PACKAGE' => '预设方案', + 'RRD' => '资源图表', + 'STATS' => '统计信息', + 'LOG' => '系统日志', + 'UPDATES' => '系统更新', + 'FIREWALL' => '防火墙', + 'SERVER' => '服务器', + 'MEMORY' => '内存', + 'DISK' => '磁盘', + 'NETWORK' => '网络', + 'Web Log Manager' => 'Web 日志管理', 'Add User' => '添加用户', 'Add Domain' => '添加域名', @@ -50,26 +51,26 @@ $LANG['cn'] = array( 'Add Database' => '添加数据库', 'Add Cron Job' => '添加定时任务', 'Create Backup' => '创建备份', - 'Configure' => '要配置', - 'Restore All' => '恢复所有', - 'Add Package' => '增加预设方案', - 'Add IP' => '添加IP', - 'Add Rule' => '添加規則', - 'Ban IP Address' => '潘基文的IP地址', + 'Configure' => '配置', + 'Restore All' => '全部恢复', + 'Add Package' => '添加方案', + 'Add IP' => '添加IP地址', + 'Add Rule' => '添加规则', + 'Ban IP Address' => '封锁IP地址', 'Search' => '搜索', - 'Add one more FTP Account' => '增加一個FTP賬號', - 'Overall Statistics' => '总体统计', - 'Daily' => '日', - 'Weekly' => '周', - 'Monthly' => '月', - 'Yearly' => '年', - 'Add' => '增加', + 'Add one more FTP Account' => '增加一个FTP账户', + 'Overall Statistics' => '整体统计信息', + 'Daily' => '按天', + 'Weekly' => '按周', + 'Monthly' => '按月', + 'Yearly' => '按年', + 'Add' => '添加', 'Back' => '返回', 'Save' => '保存', 'Submit' => '提交', - 'toggle all' => '批量执行', - 'apply to selected' => '应用到已选择', + 'toggle all' => '批量操作', + 'apply to selected' => '应用于选中项的操作', 'rebuild' => '重建', 'rebuild web' => '重建网站', 'rebuild dns' => '重建DNS', @@ -80,69 +81,69 @@ $LANG['cn'] = array( 'suspend' => '暂停', 'unsuspend' => '解除暂停', 'delete' => '删除', - 'show per user' => '显示每个用户', - 'login as' => '登录为', - 'logout' => '退出', - 'edit' => '修改', - 'open webstats' => '打开webstats', + 'show per user' => '按用户显示', + 'login as' => '登录至账户', + 'logout' => '登出', + 'edit' => '编辑', + 'open webstats' => '打开网站统计', 'view logs' => '查看日志', - 'list records' => '列表 %s 记录', - 'add record' => '增加记录', - 'list accounts' => '列表 %s 账户', + 'list records' => '列出 %s 条记录', + 'add record' => '添加记录', + 'list accounts' => '列出 %s 个账户', 'add account' => '添加账户', 'open webmail' => '打开网页邮箱', - 'list fail2ban' => 'fail2ban的名單', + 'list fail2ban' => 'fail2ban 封锁名单', 'open %s' => '打开 %s', 'download' => '下载', 'restore' => '恢复', - 'configure restore settings' => '配置欢迎设置', + 'configure restore settings' => '配置恢复选项', 'stop' => '停止', - 'start' => '开始', - 'restart' => '重启', + 'start' => '启动', + 'restart' => '重新启动', 'update' => '更新', 'generate' => '生成', 'Generate CSR' => '生成CSR', 'reread IP' => '重新读取IP', 'enable autoupdate' => '启用自动更新', - 'disable autoupdate' => '禁用自动更新', - 'turn on notifications' => '開啟通知', - 'turn off notifications' => '關閉通知', + 'disable autoupdate' => '停用自动更新', + 'turn on notifications' => '启用通知', + 'turn off notifications' => '停用通知', 'Adding User' => '添加用户', - 'Editing User' => '修改用过', + 'Editing User' => '编辑用户', 'Adding Domain' => '添加域名', - 'Editing Domain' => '修改域名', + 'Editing Domain' => '编辑域名', 'Adding DNS Domain' => '添加DNS域名', - 'Editing DNS Domain' => '修改DNS域名', + 'Editing DNS Domain' => '编辑DNS域名', 'Adding DNS Record' => '添加DNS记录', - 'Editing DNS Record' => '修改DNS记录', - 'Adding Mail Domain' => '添加邮局域名', - 'Editing Mail Domain' => '修改邮局域名', + 'Editing DNS Record' => '编辑DNS记录', + 'Adding Mail Domain' => '添加邮箱域名', + 'Editing Mail Domain' => '编辑邮箱域名', 'Adding Mail Account' => '添加邮箱账户', - 'Editing Mail Account' => '修改邮箱账户', - 'Adding database' => '添加数据', - 'Editing Cron Job' => '修改定时任务', + 'Editing Mail Account' => '编辑邮箱账户', + 'Adding database' => '添加数据库', + 'Editing Cron Job' => '编辑定时任务', 'Adding Cron Job' => '添加定时任务', - 'Editing Database' => '修改数据库', - 'Adding Package' => '添加预设方案', - 'Editing Package' => '修改预设方案', + 'Editing Database' => '编辑数据库', + 'Adding Package' => '添加方案', + 'Editing Package' => '编辑方案', 'Adding IP address' => '添加IP地址', - 'Editing IP Address' => '修改IP地址', - 'Editing Backup Exclusions' => '编辑排除', - 'Generating CSR' => '生成的CSR', - 'Listing' => '列表', + 'Editing IP Address' => '编辑IP地址', + 'Editing Backup Exclusions' => '配置备份排除项目', + 'Generating CSR' => '生成CSR', + 'Listing' => '列出', 'Search Results' => '搜索结果', - 'Adding Firewall Rule' => '添加防火牆規則', - 'Editing Firewall Rule' => '編輯防火牆規則', - 'Adding IP Address to Banlist' => '添加IP地址黑名單', + 'Adding Firewall Rule' => '添加防火墙规则', + 'Editing Firewall Rule' => '编辑防火墙规则', + 'Adding IP Address to Banlist' => '添加IP至封锁名单', - 'active' => '活跃', + 'active' => '正常', 'spnd' => '暂停', - 'suspended' => '暂停', - 'running' => '运行', - 'stopped' => '停止', - 'outdated' => '过期', - 'updated' => '更新', + 'suspended' => '已暂停', + 'running' => '运行中', + 'stopped' => '已停止', + 'outdated' => '可升级新版本', + 'updated' => '已是最新版本', 'yes' => '是', 'no' => '否', @@ -167,7 +168,7 @@ $LANG['cn'] = array( 'User Directories' => '用户目录', 'Template' => '模板', 'Web Template' => 'Web模板', - 'Backend Template' => '后台模板', + 'Backend Template' => 'Backend模板', 'Proxy Template' => '代理模板', 'DNS Template' => 'DNS模板', 'Web Domains' => '网站域名', @@ -182,7 +183,7 @@ $LANG['cn'] = array( 'Mail Accounts' => '邮箱账户', 'Cron Jobs' => '定时任务', 'SSH Access' => 'SSH权限', - 'IP Address' => 'IP Address', + 'IP Address' => 'IP地址', 'IP Addresses' => 'IP地址', 'Backups' => '备份', 'Backup System' => '备份系统', @@ -194,13 +195,13 @@ $LANG['cn'] = array( 'Proxy Extensions' => '代理扩展名', 'Web Statistics' => '网站统计', 'Additional FTP Account' => '额外的FTP账户', - 'Path' => 'Path', + 'Path' => '路径', 'SOA' => 'SOA', 'TTL' => 'TTL', 'Expire' => '过期', 'Records' => '记录', 'Serial' => 'Serial', - 'Catchall email' => '收取未知邮件的邮箱', + 'Catchall email' => '未知收件人聚合邮箱', 'AntiVirus Support' => '防病毒支持', 'AntiSpam Support' => '防垃圾邮件支持', 'DKIM Support' => 'DKIM支持', @@ -209,16 +210,16 @@ $LANG['cn'] = array( 'Autoreply' => '自动回复', 'Forward to' => '转发到', 'Do not store forwarded mail' => '不保留已转发的邮件', - 'IMAP hostname' => 'IMAP hostname', - 'IMAP port' => 'IMAP port', - 'IMAP security' => 'IMAP security', - 'IMAP auth method' => 'IMAP auth method', - 'SMTP hostname' => 'SMTP hostname', - 'SMTP port' => 'SMTP port', - 'SMTP security' => 'SMTP security', - 'SMTP auth method' => 'SMTP auth method', + 'IMAP hostname' => 'IMAP 服务器', + 'IMAP port' => 'IMAP 端口', + 'IMAP security' => 'IMAP 安全性', + 'IMAP auth method' => 'IMAP 身份验证', + 'SMTP hostname' => 'SMTP 服务器', + 'SMTP port' => 'SMTP 端口', + 'SMTP security' => 'SMTP 安全性', + 'SMTP auth method' => 'SMTP 身份验证', 'STARTTLS' => 'STARTTLS', - 'Normal password' => 'Normal password', + 'Normal password' => '普通密码', 'database' => '数据库', 'User' => '用户', 'Host' => '主机', @@ -239,67 +240,68 @@ $LANG['cn'] = array( 'Owner' => '归属', 'Users' => '用户', 'Load Average' => '平均负载', - 'Memory Usage' => '内存使用', - 'APACHE2 Usage' => 'APACHE2 Usage', - 'HTTPD Usage' => 'apache使用', - 'NGINX Usage' => 'nginx使用', - 'MySQL Usage on localhost' => '本地Mysql使用', - 'PostgreSQL Usage on localhost' => '本地PostgreSQL使用', - 'Bandwidth Usage eth0' => 'eth0流量使用', - 'Exim Usage' => 'Exim Usage', - 'FTP Usage' => 'FTP使用', - 'SSH Usage' => 'SSH使用', + 'Memory Usage' => '内存用量', + 'APACHE2 Usage' => 'Apache2 用量', + 'HTTPD Usage' => 'HTTPD 用量', + 'NGINX Usage' => 'NGINX 用量', + 'MySQL Usage on localhost' => 'MySQL用量 (localhost)', + 'PostgreSQL Usage on localhost' => 'PostgreSQL用量 (localhost)', + 'Bandwidth Usage eth0' => '网络流量 (eth0)', + 'Exim Usage' => 'Exim 用量', + 'FTP Usage' => 'FTP 用量', + 'SSH Usage' => 'SSH 用量', 'reverse proxy' => '反向代理', - 'web server' => '网页服务器', - 'dns server' => 'dns服务器', - 'mail server' => '邮件服务器', - 'pop/imap server' => 'pop/imap服务器', - 'email antivirus' => '邮件杀毒', - 'email antispam' => '反垃圾邮件', - 'database server' => '数据库服务器', - 'ftp server' => 'FTP服务器', - 'job scheduler' => '定时调度', - 'firewall' => 'firewall', - 'brute-force monitor' => 'brute-force monitor', - 'CPU' => '处理器', + 'web server' => 'Web服务', + 'dns server' => 'DNS服务', + 'mail server' => '邮箱服务', + 'pop/imap server' => 'POP/IMAP服务', + 'email antivirus' => '邮箱防病毒', + 'email antispam' => '防垃圾邮件', + 'database server' => '数据库服务', + 'ftp server' => 'FTP服务', + 'job scheduler' => '执行定时任务', + 'firewall' => '防火墙服务', + 'brute-force monitor' => '监控暴力破解', + 'CPU' => 'CPU', 'Memory' => '内存', - 'Uptime' => '在线时间', - 'core package' => '核心方案', - 'php interpreter' => 'php 解释器', - 'internal web server' => '内网网页服务器', + 'Uptime' => '已运行时间', + 'core package' => '核心系统', + 'php interpreter' => 'PHP解释器', + 'internal web server' => '内部Web服务', 'Version' => '版本', - 'Release' => '发布', - 'Architecture' => 'Architecture', - 'Object' => '兑现', - 'Username' => '用户名', + 'Release' => '发布号', + 'Architecture' => '架构', + 'Object' => '对象', + 'Username' => '用户名称', 'Password' => '密码', - 'Email' => '邮箱', - 'Package' => '预设方案', + 'Email' => '电子邮箱', + 'Package' => '方案', 'Language' => '语言', - 'First Name' => '姓', - 'Last Name' => '名', - 'Send login credentials to email address' => '发送登录凭据到电子邮件地址', + 'First Name' => '名字', + 'Last Name' => '姓氏', + 'Send login credentials to email address' => '将登录信息发送到邮箱', 'Default Template' => '默认模板', - 'Default Name Servers' => '默认NS服务器', + 'Default Name Servers' => '默认DNS服务器', 'Domain' => '域名', 'DNS Support' => 'DNS支持', - 'Mail Support' => 'Mail支持', + 'Mail Support' => '邮箱支持', 'Advanced options' => '高级选项', + 'Basic options' => '基本选项', 'Aliases' => '别名', 'SSL Certificate' => 'SSL证书', - 'SSL Key' => 'SSL Key', - 'SSL Certificate Authority / Intermediate' => 'SSL证书颁发机构 / 中级', + 'SSL Key' => 'SSL密匙', + 'SSL Certificate Authority / Intermediate' => 'SSL签发机构 / 中级', 'SSL CSR' => 'SSL CSR', 'optional' => '可选', 'internal' => '内部', 'Statistics Authorization' => '统计授权', 'Statistics Auth' => '统计验证', 'Account' => '账户', - 'Prefix will be automaticaly added to username' => '前缀 %s 会自动添加到用户名', - 'Send FTP credentials to email' => '发送FTP凭证到邮箱', + 'Prefix will be automaticaly added to username' => '用户名称将会自动添加 %s 前缀', + 'Send FTP credentials to email' => '将FTP登录信息发送到邮箱', 'Expiration Date' => '到期日期', 'YYYY-MM-DD' => 'YYYY-MM-DD', - 'Name servers' => 'NS服务器', + 'Name servers' => 'DNS服务器', 'Record' => '记录', 'IP or Value' => 'IP或值', 'Priority' => '优先级', @@ -307,24 +309,24 @@ $LANG['cn'] = array( 'in megabytes' => '以MB为单位', 'Message' => '信息', 'use local-part' => '使用本地部分', - 'one or more email addresses' => '一个或者更多邮箱地址', - 'Prefix will be automaticaly added to database name and database user' => '前缀 %s 会自动增加到数据库用户名', + 'one or more email addresses' => '一个或更多邮箱地址', + 'Prefix will be automaticaly added to database name and database user' => '数据库名称及用户名称将会自动添加 %s 前缀', 'Database' => '数据库', 'Type' => '类型', 'Minute' => '分钟', - 'Command' => '命令', + 'Command' => '指令', 'Package Name' => '方案名称', 'Netmask' => '子网掩码', - 'Interface' => '接口', + 'Interface' => '网络接口', 'Shared' => '共享', - 'Assigned user' => '分配用户', - 'Assigned domain' => '分配域名', - 'NAT IP association' => 'NAT IP association', - 'shell' => '脚本', + 'Assigned user' => '指定用户', + 'Assigned domain' => '指定域名', + 'NAT IP association' => 'NAT IP 关联', + 'shell' => 'shell', 'web domains' => '网站域名', 'web aliases' => '网站别名', - 'dns records' => 'dns记录', - 'mail domains' => '邮局域名', + 'dns records' => 'DNS记录', + 'mail domains' => '邮箱域名', 'mail accounts' => '邮箱账户', 'accounts' => '账户', 'databases' => '数据库', @@ -332,53 +334,53 @@ $LANG['cn'] = array( 'backups' => '备份', 'quota' => '配额', 'day of week' => '星期几', - 'cmd' => 'cmd', + 'cmd' => '指令', 'users' => '用户', 'domains' => '域名', 'aliases' => '别名', 'records' => '记录', - 'jobs' => '定时任务', - 'username' => '用户名', + 'jobs' => '任务', + 'username' => '用户名称', 'password' => '密码', 'type' => '类型', - 'charset' => '字符集编码', + 'charset' => '编码', 'domain' => '域名', - 'ip' => 'ip', + 'ip' => 'IP', 'ip address' => 'IP地址', - 'IP address' => 'IP 地址', + 'IP address' => 'IP地址', 'netmask' => '子网掩码', 'interface' => '网络接口', - 'assigned user' => '分配用户', + 'assigned user' => '指定用户', 'ns1' => 'ns1', 'ns2' => 'ns2', 'user' => '用户', 'email' => '邮箱', - 'first name' => '姓', - 'last name' => '名', + 'first name' => '名字', + 'last name' => '姓氏', 'account' => '账户', - 'ssl certificate' => 'ssl证书', - 'ssl key' => 'ssl密匙', - 'stats user password' => '统计用户密码', - 'stats username' => '统计用户名', + 'ssl certificate' => 'SSL证书', + 'ssl key' => 'SSL密匙', + 'stats user password' => '统计用户账户密码', + 'stats username' => '统计用户名称', 'stats password' => '统计密码', - 'ftp user password' => 'ftp用户密码', - 'ftp user' => 'ftp用户', + 'ftp user password' => 'FTP用户账户密码', + 'ftp user' => 'FTP用户', 'Last 70 lines of %s.%s.log' => '最后70行 %s.%s.日志', - 'AccessLog' => 'AccessLog', - 'ErrorLog' => 'ErrorLog', + 'AccessLog' => '访问日志', + 'ErrorLog' => '错误日志', 'Download AccessLog' => '下载访问日志', 'Download ErrorLog' => '下载错误日志', - 'Country' => '国家‘', - '2 letter code' => '2位短码:例如中国是CN/美国是US', - 'State / Province' => '州/省', - 'City / Locality' => '市/地区', + 'Country' => '国家', + '2 letter code' => '2位国家简码 如: 中国CN / 美国US', + 'State / Province' => '州 / 省', + 'City / Locality' => '市 / 地区', 'Organization' => '组织名称', - 'Action' => '動作', - 'Protocol' => '協議', - 'Port' => '港口', - 'Comment' => '評論', - 'Banlist' => '黑名單', - 'ranges are acceptable' => '範圍是可以接受的', + 'Action' => '操作', + 'Protocol' => '协议', + 'Port' => '端口', + 'Comment' => '备注', + 'Banlist' => '需封锁', + 'ranges are acceptable' => '可使用范围 如: 21-22', 'CIDR format is supported' => '支持CIDR格式', 'ACCEPT' => 'ACCEPT', 'DROP' => 'DROP', @@ -388,7 +390,7 @@ $LANG['cn'] = array( 'SSH' => 'SSH', 'FTP' => 'FTP', 'VESTA' => 'VESTA', - 'Add one more Name Server' => 'Add one more Name Server', + 'Add one more Name Server' => '增加一个DNS服务器', 'web domain' => 'web domain', 'dns domain' => 'dns domain', @@ -397,122 +399,122 @@ $LANG['cn'] = array( 'mail account' => 'mail account', 'cron job' => 'cron job', - 'cron' => 'cron', - 'user dir' => 'user dir', + 'cron' => '任务', + 'user dir' => '用户目录', - 'unlimited' => 'unlimited', - '1 account' => '1 账户', - '%s accounts' => '%s 账户', - '1 domain' => '1 域名', - '%s domains' => '%s 域名', - '1 record' => '1 记录', - '%s records' => '%s 记录', - '1 mail account' => '1 邮箱账户', - '%s mail accounts' => '%s 邮箱账户', - '1 database' => '1 数据库', - '%s databases' => '%s 数据库', - '1 cron job' => '1 定时任务', - '%s cron jobs' => '%s 定时任务', - '1 archive' => '1 档案', - '%s archives' => '%s 档案', - '1 item' => '1 item', - '%s items' => '%s items', - '1 package' => '1 预设方案', - '%s packages' => '%s 预设方案', - '1 IP address' => '1 IP地址', - '%s IP addresses' => '%s IP地址', - '1 month' => '1 月', - '%s months' => '%s 月', - '1 log record' => '1 日志记录', - '%s log records' => '%s 日志记录', - '1 object' => '1 对象', - '%s objects' => '%s 对象', - 'no exclusions' => '不排除', - '1 rule' => '1規則', - '%s rules' => '%s 規則', - 'There are no currently banned IP' => '目前尚無禁止的IP地址', + 'unlimited' => '无限', + '1 account' => '1 个账户', + '%s accounts' => '%s 个账户', + '1 domain' => '1 个域名', + '%s domains' => '%s 个域名', + '1 record' => '1 条记录', + '%s records' => '%s 条记录', + '1 mail account' => '1 个邮箱账户', + '%s mail accounts' => '%s 个邮箱账户', + '1 database' => '1 个数据库', + '%s databases' => '%s 个数据库', + '1 cron job' => '1 个任务', + '%s cron jobs' => '%s 个任务', + '1 archive' => '1 个存档', + '%s archives' => '%s 个存档', + '1 item' => '1 个项目', + '%s items' => '%s 个项目', + '1 package' => '1 个方案', + '%s packages' => '%s 个方案', + '1 IP address' => '1 个IP地址', + '%s IP addresses' => '%s 个IP地址', + '1 month' => '1 个月', + '%s months' => '%s 个月', + '1 log record' => '1 条日志记录', + '%s log records' => '%s 条日志记录', + '1 object' => '1 个对象', + '%s objects' => '%s 个对象', + 'no exclusions' => '未排除', + '1 rule' => '1 条规则', + '%s rules' => '%s 条规则', + 'There are no currently banned IP' => '目前没有已暂停的IP地址', //Keywords need to update. - 'USER_CREATED_OK' => 'User %s 已创建成功', - 'WEB_DOMAIN_CREATED_OK' => 'Domain %s 已创建成功.', - 'DNS_DOMAIN_CREATED_OK' => 'DNS domain %s 已创建成功.', - 'DNS_RECORD_CREATED_OK' => 'Record %s.%s 已创建成功.', - 'MAIL_DOMAIN_CREATED_OK' => 'Mail domain %s 已创建成功.', - 'MAIL_ACCOUNT_CREATED_OK' => 'Mail account %s@%s 已创建成功', - 'DATABASE_CREATED_OK' => 'Database %s 已创建成功', - 'CRON_CREATED_OK' => 'Cron job 已创建成功.', - 'IP_CREATED_OK' => 'IP address %s 已创建成功.', - 'PACKAGE_CREATED_OK' => 'Package %s 已创建成功.', - 'SSL_GENERATED_OK' => '证书已成功生成.', - 'RULE_CREATED_OK' => '規則已成功創建', - 'BANLIST_CREATED_OK' => 'IP address has been banned successfully', // I'm not sure about this text - 'Autoupdate has been successfully enabled' => 'Autoupdate has been successfully enabled', - 'Autoupdate has been successfully disabled' => 'Autoupdate has been successfully disabled', - 'Cronjob email reporting has been successfully enabled' => '的cronjob電子郵件報告已成功啟用', - 'Cronjob email reporting has been successfully disabled' => '的cronjob電子郵件報告已成功關閉', - 'Changes has been saved.' => '更改已保存.', - 'Confirmation' => 'Confirmation', - 'DELETE_USER_CONFIRMATION' => '您确定删除用户 %s?', - 'SUSPEND_USER_CONFIRMATION' => '你确定暂停用户 %s?', - 'UNSUSPEND_USER_CONFIRMATION' => '您确定解除暂停用户 %s?', - 'DELETE_DOMAIN_CONFIRMATION' => '您确定删除域名 %s?', - 'SUSPEND_DOMAIN_CONFIRMATION' => '你确定暂停域名 %s?', - 'UNSUSPEND_DOMAIN_CONFIRMATION' => '你确定解除暂停域名 %s?', - 'DELETE_RECORD_CONFIRMATION' => '你确定删除记录 %s?', - 'SUSPEND_RECORD_CONFIRMATION' => '你确定暂停记录 %s?', - 'UNSUSPEND_RECORD_CONFIRMATION' => '你确定解除暂停记录 %s?', - 'DELETE_MAIL_ACCOUNT_CONFIRMATION' => '你确定删除 %s?', - 'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => '你确定暂停 %s?', - 'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => '你确定解除暂停 %s?', - 'DELETE_DATABASE_CONFIRMATION' => '你确定删除数据库 %s?', - 'SUSPEND_DATABASE_CONFIRMATION' => '你确定暂停数据 %s?', - 'UNSUSPEND_DATABASE_CONFIRMATION' => '你确定解除暂停数据库 %s?', - 'DELETE_CRON_CONFIRMATION' => '你确定删除定时任务?', - 'SUSPEND_CRON_CONFIRMATION' => '你确定暂停定时任务?', - 'UNSUSPEND_CRON_CONFIRMATION' => '你确定解除暂停定时任务?', - 'DELETE_BACKUP_CONFIRMATION' => '你确定删除 %s 备份?', - 'DELETE_EXCLUSION_CONFIRMATION' => 'Are you sure to delete %s exclusion?', - 'DELETE_PACKAGE_CONFIRMATION' => '你确定删除方案 %s?', - 'DELETE_IP_CONFIRMATION' => '你确定删除IP地址 %s?', - 'DELETE_RULE_CONFIRMATION' => '您確定要刪除規則 #%s?', - 'SUSPEND_RULE_CONFIRMATION' => '您確定要暫停規則 #%s?', - 'UNSUSPEND_RULE_CONFIRMATION' => '您確定要取消掛起規則 #%s?', - 'LEAVE_PAGE_CONFIRMATION' => 'Leave Page?', - 'RESTART_CONFIRMATION' => 'Are you sure you want to restart %s?', - 'Welcome' => '欢迎光临', + 'USER_CREATED_OK' => '用户 %s 已添加成功', + 'WEB_DOMAIN_CREATED_OK' => '网站域名 %s 已添加成功', + 'DNS_DOMAIN_CREATED_OK' => 'DNS域名 %s 已添加成功', + 'DNS_RECORD_CREATED_OK' => '记录 %s.%s 已添加成功', + 'MAIL_DOMAIN_CREATED_OK' => '邮箱域名 %s 已添加成功', + 'MAIL_ACCOUNT_CREATED_OK' => '邮箱账户 %s@%s 已添加成功', + 'DATABASE_CREATED_OK' => '数据库 %s 已添加成功', + 'CRON_CREATED_OK' => '定时任务已添加成功', + 'IP_CREATED_OK' => 'IP地址 %s 已添加成功', + 'PACKAGE_CREATED_OK' => '方案 %s 已添加成功', + 'SSL_GENERATED_OK' => 'SSL证书已生成', + 'RULE_CREATED_OK' => '规则已创建成功', + 'BANLIST_CREATED_OK' => 'IP地址已封锁成功', + 'Autoupdate has been successfully enabled' => '自动更新已成功启用', + 'Autoupdate has been successfully disabled' => '自动更新已成功关闭', + 'Cronjob email reporting has been successfully enabled' => '定时任务的电子邮件报告已成功启用', + 'Cronjob email reporting has been successfully disabled' => '定时任务的电子邮件报告已成功关闭', + 'Changes has been saved.' => '已保存更改', + 'Confirmation' => '确认', + 'DELETE_USER_CONFIRMATION' => '确定要删除用户 %s 吗?', + 'SUSPEND_USER_CONFIRMATION' => '确定要暂停用户 %s 吗?', + 'UNSUSPEND_USER_CONFIRMATION' => '确定要解除暂停用户 %s 吗?', + 'DELETE_DOMAIN_CONFIRMATION' => '确定要删除域名 %s 吗?', + 'SUSPEND_DOMAIN_CONFIRMATION' => '确定要暂停域名 %s 吗?', + 'UNSUSPEND_DOMAIN_CONFIRMATION' => '确定要解除暂停域名 %s 吗?', + 'DELETE_RECORD_CONFIRMATION' => '确定要删除记录 %s 吗?', + 'SUSPEND_RECORD_CONFIRMATION' => '确定要暂停记录 %s 吗?', + 'UNSUSPEND_RECORD_CONFIRMATION' => '确定要解除暂停记录 %s 吗?', + 'DELETE_MAIL_ACCOUNT_CONFIRMATION' => '确定要删除 %s 吗?', + 'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => '确定要暂停 %s 吗?', + 'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => '确定要解除暂停 %s 吗?', + 'DELETE_DATABASE_CONFIRMATION' => '确定要删除数据库 %s 吗?', + 'SUSPEND_DATABASE_CONFIRMATION' => '确定要暂停数据库 %s 吗?', + 'UNSUSPEND_DATABASE_CONFIRMATION' => '确定要解除暂停数据库 %s 吗?', + 'DELETE_CRON_CONFIRMATION' => '确定要删除定时任务吗?', + 'SUSPEND_CRON_CONFIRMATION' => '确定要暂停定时任务吗?', + 'UNSUSPEND_CRON_CONFIRMATION' => '确定要解除暂停定时任务吗?', + 'DELETE_BACKUP_CONFIRMATION' => '确定要删除 %s 备份吗?', + 'DELETE_EXCLUSION_CONFIRMATION' => '确定要删除 %s 例外吗?', + 'DELETE_PACKAGE_CONFIRMATION' => '确定要删除方案 %s 吗?', + 'DELETE_IP_CONFIRMATION' => '确定要删除IP地址 %s 吗?', + 'DELETE_RULE_CONFIRMATION' => '确定要删除规则 #%s 吗?', + 'SUSPEND_RULE_CONFIRMATION' => '确定要暂停规则 #%s 吗?', + 'UNSUSPEND_RULE_CONFIRMATION' => '确定要解除暂停规则 #%s 吗?', + 'LEAVE_PAGE_CONFIRMATION' => '确定要离开当前页吗?', + 'RESTART_CONFIRMATION' => '确定要重新启动 %s 吗?', + 'Welcome' => '欢迎', 'LOGGED_IN_AS' => '以用户身份 %s 登录', 'Error' => '错误', - 'Invalid username or password' => '无效账号或密码', - 'Invalid username or code' => '无效账户或者验证码', - 'Passwords not match' => '密码不正确', - 'Please enter valid email address.' => '请输入有效的邮箱.', - 'Field "%s" can not be blank.' => '字段 "%s" 不能为空.', - 'Password is too short.' => '密码太短 (最少为6位数大小写字母+数字)', + 'Invalid username or password' => '无效的用户名称或密码', + 'Invalid username or code' => '无效的用户名称或验证码.', + 'Passwords not match' => '密码错误', + 'Please enter valid email address.' => '请输入正确的邮箱', + 'Field "%s" can not be blank.' => '"%s" 不能为空', + 'Password is too short.' => '密码太短 (至少为6个数字+字母)', 'Error code:' => '错误代码: %s', - 'SERVICE_ACTION_FAILED' => '"%s" "%s" 字段', - 'IP address is in use' => 'IP地址已被使用', - 'BACKUP_SCHEDULED' => '任务已经被添加到队列中。当备份完成将会电子邮件通知您.', - 'BACKUP_EXISTS' => '现有的备份已在运行,请等待该备份完成.', - 'RESTORE_SCHEDULED' => '任务已经被添加到队列中。当备份完成将会电子邮件通知您.', - 'RESTORE_EXISTS' => '现有的修复工作已在执行,请等待完成后再执行.', + 'SERVICE_ACTION_FAILED' => '"%s" "%s" 失败', + 'IP address is in use' => 'IP地址在使用中', + 'BACKUP_SCHEDULED' => '您的要求已加入队列中,备份完成后会以电子邮件通知您 ', + 'BACKUP_EXISTS' => '已经有一个备份正在执行,请等待备份完成后再操作', + 'RESTORE_SCHEDULED' => '您的要求已加入队列中,恢复完成后会以电子邮件通知您', + 'RESTORE_EXISTS' => '已经有一个恢复正在执行,请等待恢复完成后再操作', - 'WEB_EXCLUSIONS' => 'Type domain name, one per line. To exclude all domains use *. To exclude specific dirs use following format: domain.com:public_html/cache:public_html/tmp', - 'DNS_EXCLUSIONS' => 'Type domain name, one per line. To exclude all domains use *', - 'MAIL_EXCLUSIONS' => 'Type domain name, one per line. To exclude all domains use *. To exclude specific accounts use following format: domain.com:info:support:postmaster', - 'DB_EXCLUSIONS' => 'Type full database name, one per line. To exclude all databases use *', - 'CRON_EXCLUSIONS' => 'To exclude all jobs use *', - 'USER_EXCLUSIONS' => 'Type directory name, one per line. To exlude all dirs use *', + 'WEB_EXCLUSIONS' => "输入域名,每行一个。要排除所有域名请使用 *。要排除特定目录使用以下格式: domain.com:public_html/cache:public_html/tmp", + 'DNS_EXCLUSIONS' => "输入域名,每行一个。要排除所有域名请使用 *", + 'MAIL_EXCLUSIONS' => "输入域名,每行一个。要排除所有域名请使用 *。要排除特定帐户使用以下格式: domain.com:info:support:postmaster", + 'DB_EXCLUSIONS' => "输入完整数据库名称,每行一个。要排除所有数据库请使用 *", + 'CRON_EXCLUSIONS' => "要排除所有任务请使用 *", + 'USER_EXCLUSIONS' => "输入目录名称,每行一个。要排除所有目录请使用 *", - 'Welcome to Vesta Control Panel' => '欢迎来到Vesta管理面板', - 'MAIL_FROM' => 'Vesta管理面板 ', + 'Welcome to Vesta Control Panel' => '欢迎来到 Vesta 管理系统', + 'MAIL_FROM' => 'Vesta 管理系统 ', 'GREETINGS_GORDON_FREEMAN' => "您好, %s %s,\n", 'GREETINGS' => "您好,\n", - 'ACCOUNT_READY' => "您的帐户已创建可以使用.\n\nhttps://%s/login/\n用户名: %s\n密码: %s\n\n", + 'ACCOUNT_READY' => "您的账户已创建成功,并可以开始使用了!\n\nhttps://%s/login/\n用户名称: %s\n密码: %s\n\n--\nVesta Control Panel\n", - 'FTP login credentials' => 'FTP登录资料', - 'FTP_ACCOUNT_READY' => "FTP帐户已创建可以使用.\n\n主机名: %s\n用户名: %s_%s\n密码: %s\n\n", + 'FTP login credentials' => 'FTP 登录信息', + 'FTP_ACCOUNT_READY' => "FTP账户已创建成功,并可以开始使用了!\n\n主机名称: %s\n用户名称: %s_%s\n密码: %s\n\n--\nVesta Control Panel\n", - 'Database Credentials' => '数据库账户资料', - 'DATABASE_READY' => "数据库已创建成功.\n\n数据库名: %s\n用户: %s\n密码: %s\n%s\n\n", + 'Database Credentials' => "数据库登录信息", + 'DATABASE_READY' => "数据库已添加成功!\n\n数据库名称: %s\n用户名称: %s\n密码: %s\n%s\n\n--\nVesta Control Panel\n", 'forgot password' => '忘记密码', 'Confirm' => '确认', @@ -523,202 +525,209 @@ $LANG['cn'] = array( 'RESET_NOTICE' => '', // should we add something here? 'RESET_CODE_SENT' => '密码重置代码已发送到您的邮箱
', 'MAIL_RESET_SUBJECT' => '密码重置在 %s', - 'PASSWORD_RESET_REQUEST' => "重置面板密码请点击链接:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n或者您可以到 https://%s/reset/?action=code&user=%s 输入重置验证代码:\n%s\n\n如果您没有要求重设密码,请忽略此消息.", + 'PASSWORD_RESET_REQUEST' => '重置密码请点击链接:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n或者您可以到 https://%s/reset/?action=code&user=%s 输入密码重置代码:\n%s\n\n如果您没有要求重置密码,请忽略此邮件\n\n--\nVesta Control Panel\n', - 'Jan' => 'Jan', - 'Feb' => 'Feb', - 'Mar' => 'Mar', - 'Apr' => 'Apr', - 'May' => 'May', - 'Jun' => 'Jun', - 'Jul' => 'Jul', - 'Aug' => 'Aug', - 'Sep' => 'Sep', - 'Oct' => 'Oct', - 'Nov' => 'Nov', - 'Dec' => 'Dec', + 'Jan' => '01月', + 'Feb' => '02月', + 'Mar' => '03月', + 'Apr' => '04月', + 'May' => '05月', + 'Jun' => '06月', + 'Jul' => '07月', + 'Aug' => '08月', + 'Sep' => '09月', + 'Oct' => '10月', + 'Nov' => '11月', + 'Dec' => '12月', - 'Configuring Server' => 'Configuring Server', - 'Hostname' => 'Hostname', - 'Time Zone' => 'Time Zone', - 'Default Language' => 'Default Language', - 'Proxy Server' => 'Proxy Server', - 'Web Server' => 'Web Server', - 'Backend Server' => 'Backend Server', - 'Backend Pool Mode' => 'Backend Pool Mode', - 'DNS Server' => 'DNS Server', - 'DNS Cluster' => 'DNS Cluster', - 'MAIL Server' => 'MAIL Server', - 'Antivirus' => 'Antivirus', - 'AntiSpam' => 'AntiSpam', - 'Webmail URL' => 'Webmail URL', - 'MySQL Support' => 'MySQL Support', - 'phpMyAdmin URL' => 'phpMyAdmin URL', - 'PostgreSQL Support' => 'PostgreSQL Support', - 'phpPgAdmin URL' => 'phpPgAdmin URL', - 'Maximum Number Of Databases' => 'Maximum Number Of Databases', - 'Current Number Of Databases' => 'Current Number Of Databases', - 'Local backup' => 'Local backup', - 'Compression level' => 'Compression level', - 'Directory' => 'Directory', - 'Remote backup' => 'Remote backup', + 'Configuring Server' => '配置服务器', + 'Hostname' => '主机名称', + 'Time Zone' => '时区', + 'Default Language' => '默认语言', + 'Proxy Server' => '代理服务器', + 'Web Server' => 'Web 服务器', + 'Backend Server' => 'Backend 服务器', + 'Backend Pool Mode' => 'Backend Pool 模式', + 'DNS Server' => 'DNS 服务器', + 'DNS Cluster' => 'DNS 集群', + 'MAIL Server' => '邮箱服务器', + 'Antivirus' => '防病毒引擎', + 'AntiSpam' => '防垃圾邮件', + 'Webmail URL' => '设置网页邮箱网址', + 'MySQL Support' => 'MySQL 支持', + 'phpMyAdmin URL' => '设置 phpMyAdmin 网址', + 'PostgreSQL Support' => 'PostgreSQL 支持', + 'phpPgAdmin URL' => '设置 phpPgAdmin 网址', + 'Maximum Number Of Databases' => '数据库最大数量', + 'Current Number Of Databases' => '数据库当前数量', + 'Local backup' => '本地备份', + 'Compression level' => '压缩级别', + 'Directory' => '目录', + 'Remote backup' => '远程备份', 'ftp' => 'FTP', 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', - 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', - 'preview' => 'preview', - 'Reseller Role' => 'Reseller Role', - 'Web Config Editor' => 'Web Config Editor', - 'Template Manager' => 'Template Manager', - 'Backup Migration Manager' => 'Backup Migration Manager', - 'FileManager' => 'FileManager', - 'show: CPU / MEM / NET / DISK' => 'show: CPU / MEM / NET / DISK', + 'FileSystem Disk Quota' => '文件系统磁盘配额', + 'Vesta Control Panel Plugins' => 'Vesta 管理系统的插件', + 'preview' => '预览', + 'Reseller Role' => '作为经销商', + 'Web Config Editor' => '网络配置编辑器', + 'Template Manager' => '模板管理', + 'Backup Migration Manager' => '备份迁移管理', + 'FileManager' => '文件管理', + 'show: CPU / MEM / NET / DISK' => '查看: CPU / 内存 / 网络 / 磁盘', - 'sort by' => 'sort by', - 'Date' => 'Date', - 'Starred' => 'Starred', - 'Name' => 'Name', + 'sort by' => '排序方式', + 'Date' => '日期', + 'Starred' => '星标', + 'Name' => '名称', - - 'File Manager' => 'File Manager', - 'size' => 'size', - 'date' => 'date', - 'name' => 'name', - 'Initializing' => 'Initializing', - 'UPLOAD' => 'UPLOAD', - 'NEW FILE' => 'NEW FILE', - 'NEW DIR' => 'NEW DIR', - 'DELETE' => 'DELETE', - 'RENAME' => 'RENAME', - 'RIGHTS' => 'RIGHTS', - 'COPY' => 'COPY', - 'ARCHIVE' => 'ARCHIVE', - 'EXTRACT' => 'EXTRACT', - 'DOWNLOAD' => 'DOWNLOAD', - 'Are you sure?' => 'Are you sure?', // unused? - 'Hit' => 'Hit', - 'to reload the page' => 'to reload the page', - 'Directory name cannot be empty' => 'Directory name cannot be empty', - 'File name cannot be empty' => 'File name cannot be empty', - 'No file selected' => 'No file selected', - 'No file or folder selected' => 'No file or folder selected', - 'File type not supported' => 'File type not supported', - 'Directory download not available in current version' => 'Directory download not available in current version', - 'Directory not available' => 'Directory not available', - 'Done' => 'Done', - 'Close' => 'Close', - 'Copy' => 'Copy', - 'Cancel' => 'Cancel', - 'Rename' => 'Rename', - 'Change Rights' => 'Change Rights', - 'Delete' => 'Delete', - 'Extract' => 'Extract', - 'Create' => 'Create', - 'Compress' => 'Compress', - 'OK' => 'OK', + 'File Manager' => '文件管理', + 'type' => '类型', + 'size' => '大小', + 'date' => '日期', + 'name' => '名称', + 'Initializing' => '初始化中', + 'UPLOAD' => '上传', + 'NEW FILE' => '新建文件', + 'NEW DIR' => '新建目录', + 'DELETE' => '删除', + 'RENAME' => '重命名', + 'MOVE' => '移动', + 'RIGHTS' => '权限', + 'COPY' => '复制', + 'ARCHIVE' => '存档', + 'EXTRACT' => '提取', + 'DOWNLOAD' => '下载', + 'Are you sure?' => '你确定吗?', + 'Hit' => '再次按下', + 'to reload the page' => '键则刷新此页面', + 'Directory name cannot be empty' => '目录名称不能为空', + 'File name cannot be empty' => '文件名称不能为空', + 'No file selected' => '没有文件被选中', + 'No file or folder selected' => '没有文件或目录被选中', + 'File type not supported' => '不支持的文件类型', + 'Directory download not available in current version' => '目录下载在当前版本中不可用', + 'Directory not available' => '目录不可用', + 'Done' => '完成', + 'Close' => '关闭', + 'Copy' => '复制', + 'Cancel' => '取消', + 'Rename' => '重命名', + 'Move' => '移动', + 'Change Rights' => '变更权限', + 'Delete' => '删除', + 'Extract' => '提取', + 'Create' => '创建', + 'Compress' => '压缩', + 'OK' => '确定', 'YOU ARE COPYING' => 'YOU ARE COPYING', // unused? 'YOU ARE REMOVING' => 'YOU ARE REMOVING', - 'Delete items' => 'Delete items', - 'Copy files' => 'Copy files', - 'Are you sure you want to copy' => 'Are you sure you want to copy', - 'Are you sure you want to delete' => 'Are you sure you want to delete', - 'into' => 'into', - 'existing files will be replaced' => 'existing files will be replaced', - 'Original name' => 'Original name', - 'File' => 'File', - 'already exists' => 'already exists', - 'Create file' => 'Create file', - 'Create directory' => 'Create directory', - 'read by owner' => 'read by owner', - 'write by owner' => 'write by owner', - 'execute/search by owner' => 'execute/search by owner', - 'read by group' => 'read by group', - 'write by group' => 'write by group', - 'execute/search by group' => 'execute/search by group', - 'read by others' => 'read by others', - 'write by others' => 'write by others', - 'execute/search by others' => 'execute/search by others', + 'Delete items' => '删除这些项目', + 'Copy files' => '复制这些文件', + 'Move files' => '移动这些文件', + 'Are you sure you want to copy' => '你确定要复制', + 'Are you sure you want to move' => '你确定要移动', + 'Are you sure you want to delete' => '你确定要删除', + 'into' => '到', + 'existing files will be replaced' => '现有文件将被替换', + 'Original name' => '原有名称', + 'File' => '文件', + 'already exists' => '已经存在', + 'Create file' => '创建文件', + 'Create directory' => '创建目录', + 'read by owner' => '拥有者可读', + 'write by owner' => '拥有者可写', + 'execute/search by owner' => '拥有者可执行', + 'read by group' => '组可读', + 'write by group' => '组可写', + 'execute/search by group' => '组可执行', + 'read by others' => '其他可读', + 'write by others' => '其他可写', + 'execute/search by others' => '其他可执行', - 'Shortcuts' => 'Shortcuts', - 'Add New object' => 'Add New object', - 'Save Form' => 'Save Form', - 'Cancel saving form' => 'Cancel saving form', - 'Go to USER list' => 'Go to USER list', - 'Go to WEB list' => 'Go to WEB list', - 'Go to DNS list' => 'Go to DNS list', - 'Go to MAIL list' => 'Go to MAIL list', - 'Go to DB list' => 'Go to DB list', - 'Go to CRON list' => 'Go to CRON list', - 'Go to BACKUP list' => 'Go to BACKUP list', - 'Focus on search' => 'Focus on search', - 'Display/Close shortcuts' => 'Display/Close shortcuts', - 'Move backward through top menu' => 'Move backward through top menu', - 'Move forward through top menu' => 'Move forward through top menu', - 'Enter focused element' => 'Enter focused element', - 'Move up through elements list' => 'Move up through elements list', - 'Move down through elements list' => 'Move down through elements list', + 'Shortcuts' => '快捷键', + 'Add New object' => '添加新对象', + 'Save Form' => '保存表单', + 'Cancel saving form' => '取消保存表单', + 'Go to USER list' => '转到用户账户', + 'Go to WEB list' => '转到Web服务', + 'Go to DNS list' => '转到DNS服务', + 'Go to MAIL list' => '转到邮箱服务', + 'Go to DB list' => '转到数据库', + 'Go to CRON list' => '转到定时任务', + 'Go to BACKUP list' => '转到数据备份', + 'Focus on search' => '光标定位到搜索栏', + 'Display/Close shortcuts' => '显示 / 关闭 快捷键', + 'Move backward through top menu' => '在顶部菜单栏向前定位光标', + 'Move forward through top menu' => '在顶部菜单栏向后定位光标', + 'Enter focused element' => '转到被光标定位的菜单项', + 'Move up through elements list' => '在当前页列表内向上移动光标', + 'Move down through elements list' => '在当前页列表内向下移动光标', - 'Upload' => 'Upload', - 'New File' => 'New File', - 'New Folder' => 'New Folder', - 'Download' => 'Download', - 'Archive' => 'Archive', - 'Save File (in text editor)' => 'Save File (in text editor)', - 'Close Popup / Cancel' => 'Close Popup / Cancel', - 'Move Cursor Up' => 'Move Cursor Up', - 'Move Cursor Down' => 'Move Cursor Down', - 'Switch to Left Tab' => 'Switch to Left Tab', - 'Switch to Right Tab' => 'Switch to Right Tab', - 'Switch Tab' => 'Switch Tab', - 'Go to the Top of the File List' => 'Go to the Top of the File List', - 'Go to the Last File' => 'Go to the Last File', - 'Open File / Enter Directory' => 'Open File / Enter Directory', - 'Go to Parent Directory' => 'Go to Parent Directory', - 'Select Current File' => 'Select Current File', - 'Select Bunch of Files' => 'Select Bunch of Files', - 'Add File to the Current Selection' => 'Add File to the Current Selection', - 'Select All Files' => 'Select All Files', - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + 'Upload' => '上传', + 'New File' => '新建文件', + 'New Folder' => '新建目录', + 'Download' => '下载', + 'Archive' => '存档', + 'Save File (in text editor)' => '保存文件 (在文本编辑器内)', + 'Close Popup / Cancel' => '关闭弹窗 / 取消', + 'Move Cursor Up' => '上移光标', + 'Move Cursor Down' => '下移光标', + 'Switch to Left Tab' => '切换到左标签', + 'Switch to Right Tab' => '切换到右标签', + 'Switch Tab' => '切换标签', + 'Go to the Top of the File List' => '转至文件列表顶部', + 'Go to the Last File' => '转至最后一个文件', + 'Open File / Enter Directory' => '打开文件 / 进入目录', + 'Edit File' => '编辑文件', + 'Go to Parent Directory' => '转至父目录', + 'Select Current File' => '选中当前文件', + 'Select Bunch of Files' => '选择多个文件', + 'Add File to the Current Selection' => '将文件添加到当前选中区内', + 'Select All Files' => '选择所有文件', + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => + '快捷键的灵感来自旖旎的 GNU Midnight Commander 文件管理器', - 'Licence Key' => 'Licence Key', - 'Enter License Key' => 'Enter License Key', - 'Buy Licence' => 'Buy Licence', - 'Buy Lifetime License' => 'Buy Lifetime License', - 'Disable and Cancel Licence' => 'Disable and Cancel Licence', - 'Licence Activated' => 'Licence Activated', - 'Licence Deactivated' => 'Licence Deactivated', - 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', - 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', - 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.', + 'Licence Key' => '许可密匙', + 'Enter License Key' => '输入许可密匙', + 'Buy Licence' => '购买许可', + 'Buy Lifetime License' => '购买终身许可', //In Configuring Server - Vesta Control Panel Plugins - FileManager this keywords failed to work. But in SFTP Chroot can working. + 'Disable and Cancel Licence' => '停用并取消许可', + 'Licence Activated' => '许可已激活', + 'Licence Deactivated' => '许可已停用', + 'Restrict users so that they cannot use SSH and access only their home directory.' => '限制用户,使他们不能使用 SSH 只能访问自己的主目录。', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => '功能全面的文件管理器,浏览,复制,编辑,查看和检索你的 Web 文件。', + 'This is a commercial module, you would need to purchace license key to enable it.' => '这是商业模块,你需要购买许可密匙来启用它。', - 'Minutes' => 'Minutes', - 'Hourly' => 'Hourly', - 'Run Command' => 'Run Command', - 'every month' => 'every month', - 'every odd month' => 'every odd month', - 'every even month' => 'every even month', - 'every day' => 'every day', - 'every odd day' => 'every odd day', - 'every even day' => 'every even day', - 'weekdays (5 days)' => 'weekdays (5 days)', - 'weekend (2 days)' => 'weekend (2 days)', - 'Monday' => 'Monday', - 'Tuesday' => 'Tuesday', - 'Wednesday' => 'Wednesday', - 'Thursday' => 'Thursday', - 'Friday' => 'Friday', - 'Saturday' => 'Saturday', - 'Sunday' => 'Sunday', - 'every hour' => 'every hour', - 'every two hours' => 'every two hours', - 'every minute' => 'every minute', - 'every two minutes' => 'every two minutes', - 'every' => 'every', - 'Generate' => 'Generate', - - 'webalizer' => 'webalizer', - 'awstats' => 'awstats', + 'Minutes' => '分钟', + 'Hourly' => '小时', + 'Daily' => '按天', + 'Weekly' => '按周', + 'Monthly' => '按月', + 'Run Command' => '运行指令于', + 'every month' => '每个月', + 'every odd month' => '每个奇数月', + 'every even month' => '每隔 2 月', + 'every day' => '每日', + 'every odd day' => '每个奇数日', + 'every even day' => '每隔 2 日', + 'weekdays (5 days)' => '工作日 (5天)', + 'weekend (2 days)' => '双休日 (2天)', + 'Monday' => '周一 ', + 'Tuesday' => '周二 ', + 'Wednesday' => '周三 ', + 'Thursday' => '周四 ', + 'Friday' => '周五 ', + 'Saturday' => '周六 ', + 'Sunday' => '周日 ', + 'every hour' => '每小时', + 'every two hours' => '每隔 2 小时', + 'every minute' => '每分钟', + 'every two minutes' => '每隔 2 分钟', + 'every' => '每隔', + 'Generate' => '生成', + 'webalizer' => 'Webalizer', + 'awstats' => 'AWStats', ); diff --git a/web/inc/i18n/cz.php b/web/inc/i18n/cz.php index 1c81a1358..65a5bc7cd 100644 --- a/web/inc/i18n/cz.php +++ b/web/inc/i18n/cz.php @@ -286,6 +286,7 @@ $LANG['cz'] = array( 'DNS Support' => 'DNS podpora', 'Mail Support' => 'Mail podpora', 'Advanced options' => 'Pokročilé nastavení', + 'Basic options' => 'Basic options', 'Aliases' => 'Aliasy', 'SSL Certificate' => 'SSL certifikát', 'SSL Key' => 'SSL klíč', @@ -592,6 +593,7 @@ $LANG['cz'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +614,7 @@ $LANG['cz'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +625,9 @@ $LANG['cz'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +680,7 @@ $LANG['cz'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -696,6 +702,9 @@ $LANG['cz'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/da.php b/web/inc/i18n/da.php index 6fd4eb893..d5f299869 100644 --- a/web/inc/i18n/da.php +++ b/web/inc/i18n/da.php @@ -287,6 +287,7 @@ $LANG['da'] = array( 'DNS Support' => 'DNS Support', 'Mail Support' => 'Mail Support', 'Advanced options' => 'Avancerede Indstillinger', + 'Basic options' => 'Basic options', 'Aliases' => 'Aliaser', 'SSL Certificate' => 'SSL Certifikat', 'SSL Key' => 'SSL Key', @@ -593,6 +594,7 @@ $LANG['da'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -613,6 +615,7 @@ $LANG['da'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -623,7 +626,9 @@ $LANG['da'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -676,6 +681,7 @@ $LANG['da'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -697,6 +703,9 @@ $LANG['da'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/de.php b/web/inc/i18n/de.php index 1c391505d..4d1556ba6 100644 --- a/web/inc/i18n/de.php +++ b/web/inc/i18n/de.php @@ -285,6 +285,7 @@ $LANG['de'] = array( 'DNS Support' => 'DNS Unterstützung', 'Mail Support' => 'Mail Unterstützung', 'Advanced options' => 'Erweiterte Optionen', + 'Basic options' => 'Basic options', 'Aliases' => 'Aliase', 'SSL Certificate' => 'SSL Zertifikat', 'SSL Key' => 'SSL Schlüssel', @@ -591,6 +592,7 @@ $LANG['de'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -611,6 +613,7 @@ $LANG['de'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -621,7 +624,9 @@ $LANG['de'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -674,6 +679,7 @@ $LANG['de'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -695,6 +701,9 @@ $LANG['de'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/el.php b/web/inc/i18n/el.php index 22832944d..5767981c6 100644 --- a/web/inc/i18n/el.php +++ b/web/inc/i18n/el.php @@ -286,6 +286,7 @@ $LANG['el'] = array( 'DNS Support' => 'Υποστήριξη DNS', 'Mail Support' => 'Υποστήριξη Mail', 'Advanced options' => 'Προχωρημένες επιλογές', + 'Basic options' => 'Basic options', 'Aliases' => 'Ψευδώνυμα', 'SSL Certificate' => 'Πιστοποιητικό SSL', 'SSL Key' => 'Κλειδί SSL', @@ -592,6 +593,7 @@ $LANG['el'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +614,7 @@ $LANG['el'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +625,9 @@ $LANG['el'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +680,7 @@ $LANG['el'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -696,6 +702,9 @@ $LANG['el'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/en.php b/web/inc/i18n/en.php index b9c523019..dca814db9 100644 --- a/web/inc/i18n/en.php +++ b/web/inc/i18n/en.php @@ -246,6 +246,7 @@ $LANG['en'] = array( 'MySQL Usage on localhost' => 'MySQL Usage on localhost', 'PostgreSQL Usage on localhost' => 'PostgreSQL Usage on localhost', 'Bandwidth Usage eth0' => 'Bandwidth Usage eth0', + 'Bandwidth Usage eth1' => 'Bandwidth Usage eth1', 'Exim Usage' => 'Exim Usage', 'FTP Usage' => 'FTP Usage', 'SSH Usage' => 'SSH Usage', @@ -285,6 +286,7 @@ $LANG['en'] = array( 'DNS Support' => 'DNS Support', 'Mail Support' => 'Mail Support', 'Advanced options' => 'Advanced options', + 'Basic options' => 'Basic options', 'Aliases' => 'Aliases', 'SSL Certificate' => 'SSL Certificate', 'SSL Key' => 'SSL Key', @@ -591,6 +593,7 @@ $LANG['en'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -611,6 +614,7 @@ $LANG['en'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -621,7 +625,9 @@ $LANG['en'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -674,6 +680,7 @@ $LANG['en'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -695,6 +702,9 @@ $LANG['en'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/es.php b/web/inc/i18n/es.php index 6a044cab0..7ebfe1e50 100644 --- a/web/inc/i18n/es.php +++ b/web/inc/i18n/es.php @@ -2,6 +2,7 @@ /** * Vesta language file * Omar Gonzalez ogonzale@alumnos.inf.utfsm.cl + * Traducción de nuevas funciones por: Maksim Usmanov "Skamasle" - Skamasle.com */ $LANG['es'] = array( @@ -27,17 +28,17 @@ $LANG['es'] = array( 'LOGIN' => 'LOGIN', 'RESET PASSWORD' => 'RESET PASSWORD', - 'SEARCH' => 'SEARCH', - 'PACKAGE' => 'PACKAGE', + 'SEARCH' => 'BUSCAR', + 'PACKAGE' => 'PAQUETE', 'RRD' => 'RRD', - 'STATS' => 'STATS', + 'STATS' => 'ESTADÍSTICAS', 'LOG' => 'LOG', 'UPDATES' => 'UPDATES', 'FIREWALL' => 'FIREWALL', - 'SERVER' => 'SERVER', - 'MEMORY' => 'MEMORY', - 'DISK' => 'DISK', - 'NETWORK' => 'NETWORK', + 'SERVER' => 'SERVIDOR', + 'MEMORY' => 'MEMORIA', + 'DISK' => 'DISCO', + 'NETWORK' => 'RED', 'Web Log Manager' => 'Web Log Manager', 'Add User' => 'Añadir Usuario', @@ -58,7 +59,7 @@ $LANG['es'] = array( 'Ban IP Address' => 'Bloquear IP', 'Search' => 'Buscar', 'Add one more FTP Account' => 'Añadir una Cuenta FTP adicional', - 'Overall Statistics' => 'Estadística General', + 'Overall Statistics' => 'EstadísticaS Generales', 'Daily' => 'Diariamente', 'Weekly' => 'Semanalmente', 'Monthly' => 'Mensualmente', @@ -189,7 +190,7 @@ $LANG['es'] = array( 'backup exclusions' => 'exclusiones', 'template' => 'plantilla', 'SSL Support' => 'Soporte SSL', - 'SSL Home Directory' => 'SSL Home', + 'SSL Home Directory' => 'SSL Del Directorio Local', 'Proxy Support' => 'Soporte Proxy', 'Proxy Extensions' => 'Extensiones Proxy', 'Web Statistics' => 'Estadísticas Web', @@ -208,15 +209,15 @@ $LANG['es'] = array( 'Quota' => 'Cuota', 'Autoreply' => 'Respuesta Automática', 'Forward to' => 'Reenviar a', - 'Do not store forwarded mail' => 'No guarde correo reenviado', + 'Do not store forwarded mail' => 'No guardar correo reenviado', 'IMAP hostname' => 'IMAP hostname', - 'IMAP port' => 'IMAP port', + 'IMAP port' => 'Puerto IMAP', 'IMAP security' => 'IMAP security', - 'IMAP auth method' => 'IMAP auth method', + 'IMAP auth method' => 'Método de Autentificación IMAP', 'SMTP hostname' => 'SMTP hostname', - 'SMTP port' => 'SMTP port', - 'SMTP security' => 'SMTP security', - 'SMTP auth method' => 'SMTP auth method', + 'SMTP port' => 'Puerto SMTP', + 'SMTP security' => 'Seguridad STMP', + 'SMTP auth method' => 'Metodo de Autentificación STMP', 'STARTTLS' => 'STARTTLS', 'Normal password' => 'Normal password', 'database' => 'base de datos', @@ -246,7 +247,7 @@ $LANG['es'] = array( 'MySQL Usage on localhost' => 'Uso de MySQL en localhost', 'PostgreSQL Usage on localhost' => 'Uso de PostgreSQL en localhost', 'Bandwidth Usage eth0' => 'Uso de Ancho de Banda (eth0)', - 'Exim Usage' => 'Exim Usage', + 'Exim Usage' => 'Uso de Exim', 'FTP Usage' => 'Uso de FTP', 'SSH Usage' => 'Uso de SSH', 'reverse proxy' => 'proxy inverso', @@ -260,7 +261,7 @@ $LANG['es'] = array( 'ftp server' => 'servidor ftp', 'job scheduler' => 'planificador de trabajos', 'firewall' => 'firewall', - 'brute-force monitor' => 'brute-force monitor', + 'brute-force monitor' => 'monitor de ataques de fuerza bruta', 'CPU' => 'CPU', 'Memory' => 'Disco', 'Uptime' => 'Tiempo Activo', @@ -285,6 +286,7 @@ $LANG['es'] = array( 'DNS Support' => 'Soporte para DNS', 'Mail Support' => 'Soporte para Correo', 'Advanced options' => 'Opciones Avanzadas', + 'Basic options' => 'Basic options', 'Aliases' => 'Aliases', 'SSL Certificate' => 'Certificado SSL', 'SSL Key' => 'Llave SSL', @@ -379,28 +381,28 @@ $LANG['es'] = array( 'Comment' => 'Comentario', 'Banlist' => 'Lista negra', 'ranges are acceptable' => 'rangos son aceptables', - 'CIDR format is supported' => 'Formato CIDR se admite', - 'ACCEPT' => 'ACCEPT', - 'DROP' => 'DROP', + 'CIDR format is supported' => 'Se admite formato CIDR', + 'ACCEPT' => 'ACEPTAR', + 'DROP' => 'DENEGAR', 'TCP' => 'TCP', 'UDP' => 'UDP', 'ICMP' => 'ICMP', 'SSH' => 'SSH', 'FTP' => 'FTP', 'VESTA' => 'VESTA', - 'Add one more Name Server' => 'Add one more Name Server', + 'Add one more Name Server' => 'Añadir otro servidor DNS', - 'web domain' => 'web domain', - 'dns domain' => 'dns domain', - 'dns record' => 'dns record', - 'mail domain' => 'mail domain', - 'mail account' => 'mail account', - 'cron job' => 'cron job', + 'web domain' => 'dominio web', + 'dns domain' => 'dominio dns', + 'dns record' => 'registro dns', + 'mail domain' => 'dominio de correo', + 'mail account' => 'cuenta de correo', + 'cron job' => 'tarea programada', 'cron' => 'cron', - 'user dir' => 'user dir', + 'user dir' => 'directorio de usuario', - 'unlimited' => 'unlimited', + 'unlimited' => 'ilimitado', '1 account' => '1 cuenta', '%s accounts' => '%s cuentas', '1 domain' => '1 dominio', @@ -411,8 +413,8 @@ $LANG['es'] = array( '%s mail accounts' => '%s cuentas de correo', '1 database' => '1 base de datos', '%s databases' => '%s bases de datos', - '1 cron job' => '1 trabajo en cron', - '%s cron jobs' => '%s trabajos en cron', + '1 cron job' => '1 tarea programada', + '%s cron jobs' => '%s tareas programadas', '1 archive' => '1 archivo', '%s archives' => '%s archivos', '1 item' => '1 item', @@ -430,7 +432,7 @@ $LANG['es'] = array( 'no exclusions' => 'sin exclusiones', '1 rule' => '1 regla', '%s rules' => '%s reglas', - 'There are no currently banned IP' => 'No existen actualmente prohibidos IP', + 'There are no currently banned IP' => 'No existen actualmente IPs bloqueadas', 'USER_CREATED_OK' => 'Usuario %s ha sido creado correctamente', 'WEB_DOMAIN_CREATED_OK' => 'Dominio %s ha sido creado correctamente.', @@ -444,9 +446,9 @@ $LANG['es'] = array( 'PACKAGE_CREATED_OK' => 'Plan %s ha sido creado correctamente.', 'SSL_GENERATED_OK' => 'SSL certificado ha sido creado correctamente.', 'RULE_CREATED_OK' => 'Regla ha sido creado correctamente.', - 'BANLIST_CREATED_OK' => 'IP address has been banned successfully', // I'm not sure about this text - 'Autoupdate has been successfully enabled' => 'Autoupdate has been successfully enabled', - 'Autoupdate has been successfully disabled' => 'Autoupdate has been successfully disabled', + 'BANLIST_CREATED_OK' => 'La IP a sido bloqueada satisfactoriamente', // Im not sure about this text + 'Autoupdate has been successfully enabled' => 'Las actualizaciones automaticas han sido activadas con éxito', + 'Autoupdate has been successfully disabled' => 'Las actualizaciones automaticas han sido desactivas con éxito', 'Cronjob email reporting has been successfully enabled' => 'Informes de correo electrónico Cronjob ha permitido correctamente.', 'Cronjob email reporting has been successfully disabled' => 'Informes de correo electrónico Cronjob se ha desactivado correctamente.', 'Changes has been saved.' => 'Los cambios han sido guardados.', @@ -476,7 +478,7 @@ $LANG['es'] = array( 'DELETE_RULE_CONFIRMATION' => '¿Está seguro que desea eliminar la regla #%s', 'SUSPEND_RULE_CONFIRMATION' => '¿Está seguro que desea suspender la regla #%s?', 'UNSUSPEND_RULE_CONFIRMATION' => '¿Está seguro que desea habilitar la regla #%s?', - 'LEAVE_PAGE_CONFIRMATION' => 'Leave Page?', + 'LEAVE_PAGE_CONFIRMATION' => '¿Abandonar esta página?', 'RESTART_CONFIRMATION' => '¿Está seguro que desea reiniciar %s?', 'Welcome' => 'Bienvenido', 'LOGGED_IN_AS' => 'Conectado como el usuario %s', @@ -539,29 +541,29 @@ $LANG['es'] = array( 'Dec' => 'Dic', 'Configuring Server' => 'Configurar Servidor', - 'Hostname' => 'Hostname', + 'Hostname' => 'Nombre del Servidor', 'Time Zone' => 'Zona Horaria', 'Default Language' => 'Idioma por Defecto', 'Proxy Server' => 'Proxy Server', - 'Web Server' => 'Web Server', + 'Web Server' => 'Servidor Web', 'Backend Server' => 'Backend Server', 'Backend Pool Mode' => 'Backend Pool Mode', - 'DNS Server' => 'DNS Server', + 'DNS Server' => 'Servidor DNS', 'DNS Cluster' => 'DNS Cluster', - 'MAIL Server' => 'MAIL Server', + 'MAIL Server' => 'Servidor de Correo', 'Antivirus' => 'Antivirus', 'AntiSpam' => 'AntiSpam', 'Webmail URL' => 'Webmail URL', - 'MySQL Support' => 'MySQL Support', + 'MySQL Support' => 'Soporte para MYSQL', 'phpMyAdmin URL' => 'phpMyAdmin URL', - 'PostgreSQL Support' => 'PostgreSQL Support', + 'PostgreSQL Support' => 'Soporte para PostgreSQL', 'phpPgAdmin URL' => 'phpPgAdmin URL', - 'Maximum Number Of Databases' => 'Maximum Number Of Databases', - 'Current Number Of Databases' => 'Current Number Of Databases', - 'Local backup' => 'Local backup', - 'Compression level' => 'Compression level', - 'Directory' => 'Directory', - 'Remote backup' => 'Remote backup', + 'Maximum Number Of Databases' => 'Número Máximo de Bases de datos', + 'Current Number Of Databases' => 'Número de bases de datos actual', + 'Local backup' => 'Respaldo Local', + 'Compression level' => 'Nivel de Compresión', + 'Directory' => 'Directorio', + 'Remote backup' => 'Respaldo Remoto', 'ftp' => 'FTP', 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', @@ -573,7 +575,7 @@ $LANG['es'] = array( 'Template Manager' => 'Manejador de PLantilla', 'Backup Migration Manager' => 'Manejador de Migracion de Respaldos', 'FileManager' => 'Manejador de Archivos', - 'show: CPU / MEM / NET / DISK' => 'show: CPU / MEM / NET / DISK', + 'show: CPU / MEM / NET / DISK' => 'mostrar: CPU / MEM / RED / DISCO', 'sort by' => 'ordenar por', 'Date' => 'Fecha', @@ -581,144 +583,148 @@ $LANG['es'] = array( 'Name' => 'Nombre', - 'File Manager' => 'File Manager', - 'size' => 'size', - 'date' => 'date', - 'name' => 'name', - 'Initializing' => 'Initializing', - 'UPLOAD' => 'UPLOAD', - 'NEW FILE' => 'NEW FILE', - 'NEW DIR' => 'NEW DIR', - 'DELETE' => 'DELETE', - 'RENAME' => 'RENAME', - 'RIGHTS' => 'RIGHTS', - 'COPY' => 'COPY', - 'ARCHIVE' => 'ARCHIVE', - 'EXTRACT' => 'EXTRACT', - 'DOWNLOAD' => 'DOWNLOAD', - 'Are you sure?' => 'Are you sure?', // unused? + 'File Manager' => 'Editor de Archivos', + 'size' => 'tamaño', + 'date' => 'fecha', + 'name' => 'nombre', + 'Initializing' => 'Iniciando', + 'UPLOAD' => 'SUBIR', + 'NEW FILE' => 'ARCHIVO NUEVO', + 'NEW DIR' => 'DIRECTORIO NUEVO', + 'DELETE' => 'ELIMINAR', + 'RENAME' => 'RENOMBRAR', + 'MOVE' => 'MOVE', + 'RIGHTS' => 'PERMISOS', + 'COPY' => 'COPIAR', + 'ARCHIVE' => 'COMPRIMIR', + 'EXTRACT' => 'EXTRAER', + 'DOWNLOAD' => 'DESCARGAR', + 'Are you sure?' => '¿Estás seguro?', // unused? 'Hit' => 'Hit', - 'to reload the page' => 'to reload the page', - 'Directory name cannot be empty' => 'Directory name cannot be empty', - 'File name cannot be empty' => 'File name cannot be empty', - 'No file selected' => 'No file selected', - 'No file or folder selected' => 'No file or folder selected', - 'File type not supported' => 'File type not supported', - 'Directory download not available in current version' => 'Directory download not available in current version', - 'Directory not available' => 'Directory not available', - 'Done' => 'Done', - 'Close' => 'Close', - 'Copy' => 'Copy', - 'Cancel' => 'Cancel', + 'to reload the page' => 'para recargar la página', + 'Directory name cannot be empty' => 'El nombre del directorio no puede estar vacío', + 'File name cannot be empty' => 'El nombre del archivo no puede estar vacío', + 'No file selected' => 'No se a seleccionado ningún archivo', + 'No file or folder selected' => 'No se a seleccionado ningún archivo o directorio', + 'File type not supported' => 'El tipo de archivo no esta soportado', + 'Directory download not available in current version' => 'En la versión actual no se pueden descargar directorios', + 'Directory not available' => 'El directorio no esta disponible', + 'Done' => 'Hecho', + 'Close' => 'Cerrar', + 'Copy' => 'Copiar', + 'Cancel' => 'Cancelar', 'Rename' => 'Rename', - 'Change Rights' => 'Change Rights', - 'Delete' => 'Delete', - 'Extract' => 'Extract', - 'Create' => 'Create', - 'Compress' => 'Compress', + 'Move' => 'Move', + 'Change Rights' => 'Cambiar Permisos', + 'Delete' => 'Eliminar', + 'Extract' => 'Extraer', + 'Create' => 'Crear', + 'Compress' => 'Comprimir', 'OK' => 'OK', - 'YOU ARE COPYING' => 'YOU ARE COPYING', // unused? - 'YOU ARE REMOVING' => 'YOU ARE REMOVING', - 'Delete items' => 'Delete items', - 'Copy files' => 'Copy files', - 'Are you sure you want to copy' => 'Are you sure you want to copy', - 'Are you sure you want to delete' => 'Are you sure you want to delete', - 'into' => 'into', - 'existing files will be replaced' => 'existing files will be replaced', - 'Original name' => 'Original name', - 'File' => 'File', - 'already exists' => 'already exists', - 'Create file' => 'Create file', - 'Create directory' => 'Create directory', - 'read by owner' => 'read by owner', - 'write by owner' => 'write by owner', - 'execute/search by owner' => 'execute/search by owner', - 'read by group' => 'read by group', - 'write by group' => 'write by group', - 'execute/search by group' => 'execute/search by group', - 'read by others' => 'read by others', - 'write by others' => 'write by others', - 'execute/search by others' => 'execute/search by others', + 'YOU ARE COPYING' => 'ESTÁS COPIANDO', // unused? + 'YOU ARE REMOVING' => 'ESTÁS ELIMINANDO', + 'Delete items' => 'Eliminando items', + 'Copy files' => 'Copiar archivos', + 'Are you sure you want to copy' => 'Estás seguro que deseas copiar', + 'Are you sure you want to delete' => 'Estás seguro que deseas eliminar', + 'into' => 'en', + 'existing files will be replaced' => 'los archivos existentes serán reemplazados', + 'Original name' => 'Nombre original', + 'File' => 'Archivo', + 'already exists' => 'actualmente existe', + 'Create file' => 'Crear archivo', + 'Create directory' => 'Crear directorio', + 'read by owner' => 'lectura por propietario', + 'write by owner' => 'escritura por propietario', + 'execute/search by owner' => 'ejecutar/buscar por propietario', + 'read by group' => 'lectura por grupo', + 'write by group' => 'escritura por grupo', + 'execute/search by group' => 'ejecutar/buscar por grupo', + 'read by others' => 'lectura por otros', + 'write by others' => 'escritura por otros', + 'execute/search by others' => 'ejecutar/buscar por otros', + 'Shortcuts' => 'Atajos', // "TECLAS DE ACCESO RÁPIDO" todo depende desde donde se lea :) + 'Add New object' => 'Añadir Objeto Nuevo', + 'Save Form' => 'Guardar Formulario', + 'Cancel saving form' => 'Omitir guardar el formulario', + 'Go to USER list' => 'Ir a USUARIOS', // En mi opinión queda mejor "Ir a" que "Ir a Listado o Catalogo" + 'Go to WEB list' => 'Ir DOMINIOS / WEB', + 'Go to DNS list' => 'Ir a DNS', + 'Go to MAIL list' => 'Ir a CORREOS', + 'Go to DB list' => 'Ir a BASES DE DATOS', + 'Go to CRON list' => 'IR a CRON', + 'Go to BACKUP list' => 'IR a RESPALDO', + 'Focus on search' => 'Desplegar Buscador', + 'Display/Close shortcuts' => 'Mostrar/Ocultar atajos', + 'Move backward through top menu' => 'Desplazar hacia atrás en el menú superior', + 'Move forward through top menu' => 'Desplazar hacia adelante en el menú superior', + 'Enter focused element' => 'Acceder al elemento marcado', + 'Move up through elements list' => 'Ir hacia arriba por la lista de elementos', + 'Move down through elements list' => 'Ir hacia abajo por la lista de elementos', - 'Shortcuts' => 'Shortcuts', - 'Add New object' => 'Add New object', - 'Save Form' => 'Save Form', - 'Cancel saving form' => 'Cancel saving form', - 'Go to USER list' => 'Go to USER list', - 'Go to WEB list' => 'Go to WEB list', - 'Go to DNS list' => 'Go to DNS list', - 'Go to MAIL list' => 'Go to MAIL list', - 'Go to DB list' => 'Go to DB list', - 'Go to CRON list' => 'Go to CRON list', - 'Go to BACKUP list' => 'Go to BACKUP list', - 'Focus on search' => 'Focus on search', - 'Display/Close shortcuts' => 'Display/Close shortcuts', - 'Move backward through top menu' => 'Move backward through top menu', - 'Move forward through top menu' => 'Move forward through top menu', - 'Enter focused element' => 'Enter focused element', - 'Move up through elements list' => 'Move up through elements list', - 'Move down through elements list' => 'Move down through elements list', - - 'Upload' => 'Upload', - 'New File' => 'New File', - 'New Folder' => 'New Folder', - 'Download' => 'Download', - 'Archive' => 'Archive', - 'Save File (in text editor)' => 'Save File (in text editor)', - 'Close Popup / Cancel' => 'Close Popup / Cancel', - 'Move Cursor Up' => 'Move Cursor Up', - 'Move Cursor Down' => 'Move Cursor Down', - 'Switch to Left Tab' => 'Switch to Left Tab', - 'Switch to Right Tab' => 'Switch to Right Tab', - 'Switch Tab' => 'Switch Tab', - 'Go to the Top of the File List' => 'Go to the Top of the File List', - 'Go to the Last File' => 'Go to the Last File', - 'Open File / Enter Directory' => 'Open File / Enter Directory', - 'Go to Parent Directory' => 'Go to Parent Directory', - 'Select Current File' => 'Select Current File', - 'Select Bunch of Files' => 'Select Bunch of Files', - 'Add File to the Current Selection' => 'Add File to the Current Selection', - 'Select All Files' => 'Select All Files', + 'Upload' => 'Subir', + 'New File' => 'Archivo nuevo', + 'New Folder' => 'Directorio Nuevo', + 'Download' => 'Descargar', + 'Archive' => 'Comprimir', + 'Save File (in text editor)' => 'Guardar Archivo (en editor de texto)', + 'Close Popup / Cancel' => 'Cerar Ventana / Cancelar', + 'Move Cursor Up' => 'Mover el Cursor Hacia Arriba', + 'Move Cursor Down' => 'Mover el Cursor Hacia Abajo', + 'Switch to Left Tab' => 'Cambiar a la Pestaña Izquierda', + 'Switch to Right Tab' => 'Cambiar a la Pestaña Derecha', + 'Switch Tab' => 'Cambiar Pestaña', + 'Go to the Top of the File List' => 'Ir al Inicio de la Lista de Archivos', + 'Go to the Last File' => 'Ir la Último Archivo', + 'Open File / Enter Directory' => 'Abrir Archivo / Acceder al Directorio', + 'Edit File' => 'Edit File', + 'Go to Parent Directory' => 'Ir al Directorio Superior', + 'Select Current File' => 'Seleccionar Archivo', + 'Select Bunch of Files' => 'Seleccionar Múltiples Archivos', + 'Add File to the Current Selection' => 'Añadir Archivo a la Selección Actual', + 'Select All Files' => 'Seleccionar Todos los Archivos', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + 'Atajos inspirados en el editor de archivos Midnight Commander', - 'Licence Key' => 'Licence Key', - 'Enter License Key' => 'Enter License Key', - 'Buy Licence' => 'Buy Licence', - 'Buy Lifetime License' => 'Buy Lifetime License', - 'Disable and Cancel Licence' => 'Disable and Cancel Licence', - 'Licence Activated' => 'Licence Activated', - 'Licence Deactivated' => 'Licence Deactivated', - 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', - 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', - 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.', + 'Licence Key' => 'Clave de licencia', + 'Enter License Key' => 'Inserta la clave de licencia', + 'Buy Licence' => 'Comprar Licencia', + 'Buy Lifetime License' => 'Comprar Licencia de por vida', + 'Disable and Cancel Licence' => 'Deshabilitar y Cancelar Licencia', + 'Licence Activated' => 'Licencia Activada', + 'Licence Deactivated' => 'Licencia Desactivada', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restringe a los usuarios para que puedan acceder solo a su directorio raíz por ssh..', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Navegar, copiar, editar, ver y descargar todos los archivos de tu página web usando un completo administrador de archivos.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'Este es un modulo comercial, tienes que adquirir una licencia para usarlo.', - 'Minutes' => 'Minutes', - 'Hourly' => 'Hourly', - 'Run Command' => 'Run Command', - 'every month' => 'every month', - 'every odd month' => 'every odd month', - 'every even month' => 'every even month', - 'every day' => 'every day', - 'every odd day' => 'every odd day', - 'every even day' => 'every even day', - 'weekdays (5 days)' => 'weekdays (5 days)', - 'weekend (2 days)' => 'weekend (2 days)', - 'Monday' => 'Monday', - 'Tuesday' => 'Tuesday', - 'Wednesday' => 'Wednesday', - 'Thursday' => 'Thursday', - 'Friday' => 'Friday', - 'Saturday' => 'Saturday', - 'Sunday' => 'Sunday', - 'every hour' => 'every hour', - 'every two hours' => 'every two hours', - 'every minute' => 'every minute', - 'every two minutes' => 'every two minutes', - 'every' => 'every', - 'Generate' => 'Generate', + 'Minutes' => 'Minutos', + 'Hourly' => 'Hora', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', + 'Run Command' => 'Ejecutar Comando', + 'every month' => 'cada mes', + 'every odd month' => 'cada mes impar', + 'every even month' => 'cada mes par', + 'every day' => 'cada día', + 'every odd day' => 'cada día impar', + 'every even day' => 'cada día par', + 'weekdays (5 days)' => 'días laborables (5 días)', + 'weekend (2 days)' => 'fin de semana (2 días)', + 'Monday' => 'Lunes', + 'Tuesday' => 'Martes', + 'Wednesday' => 'Miércoles', + 'Thursday' => 'Jueves', + 'Friday' => 'Viernes', + 'Saturday' => 'Sábado', + 'Sunday' => 'Domingo', + 'every hour' => 'cada hora', + 'every two hours' => 'cada dos horas', + 'every minute' => 'cada minuto', + 'every two minutes' => 'cada dos minutos', + 'every' => 'cada', + 'Generate' => 'Generar', 'webalizer' => 'webalizer', 'awstats' => 'awstats', - ); diff --git a/web/inc/i18n/fa.php b/web/inc/i18n/fa.php index 28d74e702..26e2dc687 100644 --- a/web/inc/i18n/fa.php +++ b/web/inc/i18n/fa.php @@ -287,6 +287,7 @@ $LANG['fa'] = array( 'DNS Support' => 'پشتیبانی DNS', 'Mail Support' => 'پشتیبانی ایمیل', 'Advanced options' => 'گزینه های پیشرفته', + 'Basic options' => 'Basic options', 'Aliases' => 'نام مستعار', 'SSL Certificate' => 'گواهینامه SSL', 'SSL Key' => 'کلید SSL', @@ -593,6 +594,7 @@ $LANG['fa'] = array( 'NEW DIR' => 'پوشه تازه', 'DELETE' => 'حذف', 'RENAME' => 'تغییر نام', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'رونوشت', 'ARCHIVE' => 'بايگاني', @@ -613,6 +615,7 @@ $LANG['fa'] = array( 'Copy' => 'كپي', 'Cancel' => 'لغو', 'Rename' => 'تغيير نام', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'حذف', 'Extract' => 'بیرون کشیدن', @@ -623,7 +626,9 @@ $LANG['fa'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'آيا از كپي كردن اطمينان داريد؟', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'آيا از حذف اطمينان داريد؟', 'into' => 'به', 'existing files will be replaced' => 'پرونده های موجود جایگزین خواهد شد', @@ -676,6 +681,7 @@ $LANG['fa'] = array( 'Go to the Top of the File List' => 'رفتن به ابتداي فهرست پرونده ها', 'Go to the Last File' => 'رفتن به آخرين پرونده', 'Open File / Enter Directory' => 'بازگردن پرونده/ورود به پوشه', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'رفتن به پوشه بالايي', 'Select Current File' => 'انتخاب فايل جاري', 'Select Bunch of Files' => 'انتخاب دسته اي پرونده ها', @@ -697,6 +703,9 @@ $LANG['fa'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/fi.php b/web/inc/i18n/fi.php index 11d86a7c7..c692bb0c6 100644 --- a/web/inc/i18n/fi.php +++ b/web/inc/i18n/fi.php @@ -3,6 +3,7 @@ * Vesta Finnish language file * OHakala (onni@koodimonni.fi) * RJuho (juho.rasanen@kotikone.fi) +* theel0ja (theel0ja@theel0ja.info) */ $LANG['fi'] = array( @@ -11,9 +12,9 @@ $LANG['fi'] = array( 'Graphs' => 'Kuvaajat', 'Statistics' => 'Tilastot', 'Log' => 'Loki', - 'Server' => 'Pavelin', + 'Server' => 'Palvelin', 'Services' => 'Palvelut', - 'Firewall' => 'Firewall', + 'Firewall' => 'Palomuuri', 'Updates' => 'Päivitykset', 'Log in' => 'Kirjaudu', 'Log out' => 'Kirjaudu ulos', @@ -21,24 +22,24 @@ $LANG['fi'] = array( 'USER' => 'TILIT', 'WEB' => 'WEB', 'DNS' => 'DNS', - 'MAIL' => 'MAIL', + 'MAIL' => 'SÄHKÖPOSTI', 'DB' => 'DB', 'CRON' => 'CRON', - 'BACKUP' => 'BACKUP', + 'BACKUP' => 'VARMUUSKOPIOT', - 'LOGIN' => 'LOGIN', - 'RESET PASSWORD' => 'RESET PASSWORD', - 'SEARCH' => 'SEARCH', - 'PACKAGE' => 'PACKAGE', + 'LOGIN' => 'KIRJAUDU', + 'RESET PASSWORD' => 'NOLLAA SALASANA', + 'SEARCH' => 'HAE', + 'PACKAGE' => 'PAKETTI', 'RRD' => 'RRD', - 'STATS' => 'STATS', - 'LOG' => 'LOG', - 'UPDATES' => 'UPDATES', - 'FIREWALL' => 'FIREWALL', - 'SERVER' => 'SERVER', - 'MEMORY' => 'MEMORY', - 'DISK' => 'DISK', - 'NETWORK' => 'NETWORK', + 'STATS' => 'STATISTIIKKA', + 'LOG' => 'LOKI', + 'UPDATES' => 'PÄIVITYKSET', + 'FIREWALL' => 'PALOMUURI', + 'SERVER' => 'PALVELIN', + 'MEMORY' => 'MUISTI', + 'DISK' => 'LEVY', + 'NETWORK' => 'VERKKO', 'Web Log Manager' => 'Web Log Manager', 'Add User' => 'Lisää käyttäjä', @@ -129,7 +130,7 @@ $LANG['fi'] = array( 'Editing Package' => 'Muokataan pakettia', 'Adding IP address' => 'Lisätään IP-osoitetta', 'Editing IP Address' => 'Muokataan IP-osoitetta', - 'Editing Backup Exclusions' => 'Muokataan Varmuuskopioiden poikkeuksia', + 'Editing Backup Exclusions' => 'Muokataan varmuuskopioiden poikkeuksia', 'Generating CSR' => 'Generoidaan CSR', 'Listing' => 'Listataan', 'Search Results' => 'Hakutulokset', @@ -191,16 +192,16 @@ $LANG['fi'] = array( 'template' => 'pohjat', 'SSL Support' => 'SSL-tuki', 'SSL Home Directory' => 'SSL-kotihakemisto', - 'Proxy Support' => 'Proxy tuki', - 'Proxy Extensions' => 'Proxy laajennukset', - 'Web Statistics' => 'Webtilastot', + 'Proxy Support' => 'Proxy-tuki', + 'Proxy Extensions' => 'Proxy-laajennukset', + 'Web Statistics' => 'Web-tilastot', 'Additional FTP Account' => 'Ylimääräinen FTP-tili', 'Path' => 'Path', 'SOA' => 'SOA', 'TTL' => 'TTL', 'Expire' => 'Päättyy', 'Records' => 'Tietueet', - 'Serial' => 'Serial', + 'Serial' => 'Sarja', 'Catchall email' => 'Catchall-sähköposti', 'AntiVirus Support' => 'AntiVirus-tuki', 'AntiSpam Support' => 'AntiSpam-tuki', @@ -214,12 +215,12 @@ $LANG['fi'] = array( 'IMAP port' => 'IMAP port', 'IMAP security' => 'IMAP security', 'IMAP auth method' => 'IMAP auth method', - 'SMTP hostname' => 'SMTP hostname', - 'SMTP port' => 'SMTP port', - 'SMTP security' => 'SMTP security', + 'SMTP hostname' => 'SMTP-hostname', + 'SMTP port' => 'SMTP-portti', + 'SMTP security' => 'SMTP-turvallisuus', 'SMTP auth method' => 'SMTP auth method', 'STARTTLS' => 'STARTTLS', - 'Normal password' => 'Normal password', + 'Normal password' => 'Normaali salasana', 'database' => 'tietokanta', 'User' => 'Käyttäjä', 'Host' => 'Host', @@ -230,7 +231,7 @@ $LANG['fi'] = array( 'Month' => 'Kuukausi', 'Day of week' => 'Viikonpäivä', 'local' => 'paikallinen', - 'Run Time' => 'Run Time', + 'Run Time' => 'Ajoaika', 'Backup Size' => 'Varmuuskopion koko', 'SYS' => 'SYS', 'Domains' => 'Domainit', @@ -247,7 +248,7 @@ $LANG['fi'] = array( 'MySQL Usage on localhost' => 'MySQL-käyttö @ localhost', 'PostgreSQL Usage on localhost' => 'PostgreSQL-käyttö @ localhost', 'Bandwidth Usage eth0' => 'Kaistankäyttö eth0', - 'Exim Usage' => 'Exim Usage', + 'Exim Usage' => 'Exim-käyttö', 'FTP Usage' => 'FTP-käyttö', 'SSH Usage' => 'SSH-käyttö', 'reverse proxy' => 'reverse proxy', @@ -259,7 +260,7 @@ $LANG['fi'] = array( 'email antispam' => 'sähköpostin antispam', 'database server' => 'tietokantapalvelin', 'ftp server' => 'ftp-palvelin', - 'job scheduler' => 'job scheduler', //no-idea + 'job scheduler' => 'ajastettu työ', //no-idea E: @theel0ja: ajastettu työ would be good. 'firewall' => 'firewall', 'brute-force monitor' => 'brute-force monitor', 'CPU' => 'Prosessori', @@ -284,8 +285,9 @@ $LANG['fi'] = array( 'Default Name Servers' => 'Oletusnimipalvelimet', 'Domain' => 'Domain', 'DNS Support' => 'Tarvitsee DNS:n', - 'Mail Support' => 'Tarvitsee Sähköpostin', + 'Mail Support' => 'Tarvitsee sähköpostin', 'Advanced options' => 'Lisäasetukset', + 'Basic options' => 'Basic options', 'Aliases' => 'Aliakset', 'SSL Certificate' => 'SSL-sertifikaatti', 'SSL Key' => 'SSL-avain', @@ -318,8 +320,8 @@ $LANG['fi'] = array( 'Netmask' => 'Netmask', //no-idea 'Interface' => 'Interface', //no-idea 'Shared' => 'Jaettu', - 'Assigned user' => 'Assigned user', - 'Assigned domain' => 'Assigned domain', + 'Assigned user' => 'Määritetty käyttäjä', + 'Assigned domain' => 'Määritetty domain', 'NAT IP association' => 'NAT IP association', //no-idea 'shell' => 'shell', 'web domains' => 'web-domainit', @@ -348,7 +350,7 @@ $LANG['fi'] = array( 'ip address' => 'ip-osoite', 'IP address' => 'IP-osoite', 'netmask' => 'netmask', - 'interface' => 'interface', + 'interface' => 'yhdyskäytävä', 'assigned user' => 'omistaja', 'ns1' => 'ns1', 'ns2' => 'ns2', @@ -431,7 +433,7 @@ $LANG['fi'] = array( 'no exclusions' => 'ei poikkeuksia', '1 rule' => '1 sääntö', '%s rules' => '%s säännöt', - 'There are no currently banned IP' => 'Ei ole tällä hetkellä kielletty IP', + 'There are no currently banned IP' => 'Täällä ei ole tällä hetkellä bannattuja IP-osoitteita', 'USER_CREATED_OK' => 'Käyttäjä %s lisättiin onnistuneesti', 'WEB_DOMAIN_CREATED_OK' => 'Domain %s lisättiin onnistuneesti.', @@ -477,7 +479,7 @@ $LANG['fi'] = array( 'DELETE_RULE_CONFIRMATION' => 'Haluatko varmasti poistaa säännön #%s?', 'SUSPEND_RULE_CONFIRMATION' => 'Haluatko varmasti keskeyttää sääntöä #%s?', 'UNSUSPEND_RULE_CONFIRMATION' => 'Haluatko varmasti ottaa käyttöön sääntöä #%s?', - 'LEAVE_PAGE_CONFIRMATION' => 'Leave Page?', + 'LEAVE_PAGE_CONFIRMATION' => 'Poistu sivulta?', 'RESTART_CONFIRMATION' => 'Haluatko varmasti käynnistää uudelleen %s?', 'Welcome' => 'Tervetuloa', 'LOGGED_IN_AS' => 'Kirjautunut käyttäjänä %s', @@ -503,17 +505,17 @@ $LANG['fi'] = array( 'CRON_EXCLUSIONS' => "Ohittaaksesi kaikki tehtävät käytä '*'", 'USER_EXCLUSIONS' => "Syötä kansion nimi, yksi per rivi. Ohittaaksesi kaikki tietokannat syötä '*'", - 'Welcome to Vesta Control Panel' => 'Tervetuloa Vesta Hallintapaneeliin', - 'MAIL_FROM' => 'Vesta Hallintapaneeli ', + 'Welcome to Vesta Control Panel' => 'Tervetuloa Vesta-hallintapaneeliin', + 'MAIL_FROM' => 'Vesta-hallintapaneeli ', 'GREETINGS_GORDON_FREEMAN' => "Morjens, %s %s,\n", - 'GREETINGS' => "Morjens,\n", - 'ACCOUNT_READY' => "Käyttätilisi on luotu ja odottaa innokkaasti ensimmäistä kirjautumista.\n\nhttps://%s/login/\nKäyttäjä: %s\nSalasana: %s\n\n--\nVesta Hallintapaneeli\n", + 'GREETINGS' => "Morjen,s\n", + 'ACCOUNT_READY' => "Käyttätilisi on luotu ja odottaa innokkaasti ensimmäistä kirjautumista.\n\nhttps://%s/login/\nKäyttäjä: %s\nSalasana: %s\n\n--\nVesta-hallintapaneeli\n", 'FTP login credentials' => 'FTP-tilitiedot', - 'FTP_ACCOUNT_READY' => "FTP-tili on luotu ja odottaa innokkaasti ensimmäistä kirjautumista.\n\nHostname: %s\nKäyttäjä: %s_%s\nSalasana: %s\n\n--\nVesta Hallintapaneeli\n", + 'FTP_ACCOUNT_READY' => "FTP-tili on luotu ja odottaa innokkaasti ensimmäistä kirjautumista.\n\nHostname: %s\nKäyttäjä: %s_%s\nSalasana: %s\n\n--\nVesta-hallintapaneeli\n", 'Database Credentials' => 'Tietokannan-tilitiedot', - 'DATABASE_READY' => "Tietokanta on luotu onnistuneesti.\n\nTietokanta: %s\nKäyttäjä: %s\nSalasana: %s\n%s\n\n--\nVesta Hallintapaneeli\n", + 'DATABASE_READY' => "Tietokanta on luotu onnistuneesti.\n\nTietokanta: %s\nKäyttäjä: %s\nSalasana: %s\n%s\n\n--\nVesta-hallintapaneeli\n", 'forgot password' => 'unohditko salasanan?', 'Confirm' => 'Hyväksy', @@ -524,44 +526,44 @@ $LANG['fi'] = array( 'RESET_NOTICE' => '', // should we add something here? 'RESET_CODE_SENT' => 'Salasanan nollauskoodi on lähetetty sähköpostiisi
', 'MAIL_RESET_SUBJECT' => 'Salana vaihdettiin %s', - 'PASSWORD_RESET_REQUEST' => "Nollataksesi hallintapaneelin salasanan, seuraa tätä linkkiä:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nVaihtoehtoisesti voit mennä https://%s/reset/?action=code&user=%s ja syöttää nollauskoodin:\n%s\n\nJos et varta vasten pyytänyt tätä salasananvaihtoa, mene paniikkiin ja ota yhteyttä ylläpitoon.\n\n--\nVesta Hallintapaneeli\n", + 'PASSWORD_RESET_REQUEST' => "Nollataksesi hallintapaneelin salasanan, seuraa tätä linkkiä:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nVaihtoehtoisesti voit mennä https://%s/reset/?action=code&user=%s ja syöttää nollauskoodin:\n%s\n\nJos et varta vasten pyytänyt tätä salasananvaihtoa, mene paniikkiin ja ota yhteyttä ylläpitoon.\n\n--\nVesta-hallintapaneeli\n", - 'Jan' => 'Jan', - 'Feb' => 'Feb', - 'Mar' => 'Mar', - 'Apr' => 'Apr', - 'May' => 'May', - 'Jun' => 'Jun', - 'Jul' => 'Jul', - 'Aug' => 'Aug', - 'Sep' => 'Sep', - 'Oct' => 'Oct', - 'Nov' => 'Nov', - 'Dec' => 'Dec', + 'Jan' => 'Tam', + 'Feb' => 'Hel', + 'Mar' => 'Maa', + 'Apr' => 'Huh', + 'May' => 'Tou', + 'Jun' => 'Kes', + 'Jul' => 'Hei', + 'Aug' => 'Elo', + 'Sep' => 'Syy', + 'Oct' => 'Lok', + 'Nov' => 'Mar', + 'Dec' => 'Jou', - 'Configuring Server' => 'Configuring Server', + 'Configuring Server' => 'Konfiguroidaan palvelinta', 'Hostname' => 'Hostname', - 'Time Zone' => 'Time Zone', - 'Default Language' => 'Default Language', - 'Proxy Server' => 'Proxy Server', + 'Time Zone' => 'Aikavyöhyke', + 'Default Language' => 'Oletuskieli', + 'Proxy Server' => 'Välityspalvelin', 'Web Server' => 'Web Server', 'Backend Server' => 'Backend Server', 'Backend Pool Mode' => 'Backend Pool Mode', - 'DNS Server' => 'DNS Server', - 'DNS Cluster' => 'DNS Cluster', - 'MAIL Server' => 'MAIL Server', + 'DNS Server' => 'DNS-palvelin', + 'DNS Cluster' => 'DNS-klusteri', + 'MAIL Server' => 'MAIL-palvelin', 'Antivirus' => 'Antivirus', 'AntiSpam' => 'AntiSpam', - 'Webmail URL' => 'Webmail URL', + 'Webmail URL' => 'Webmailin URL', 'MySQL Support' => 'MySQL Support', 'phpMyAdmin URL' => 'phpMyAdmin URL', 'PostgreSQL Support' => 'PostgreSQL Support', 'phpPgAdmin URL' => 'phpPgAdmin URL', - 'Maximum Number Of Databases' => 'Maximum Number Of Databases', + 'Maximum Number Of Databases' => 'Maksimimäärä tietokantoja', 'Current Number Of Databases' => 'Current Number Of Databases', - 'Local backup' => 'Local backup', + 'Local backup' => 'Paikallinen varmuuskopio', 'Compression level' => 'Compression level', - 'Directory' => 'Directory', + 'Directory' => 'Hakemisto', 'Remote backup' => 'Remote backup', 'ftp' => 'FTP', 'sftp' => 'SFTP', @@ -577,27 +579,28 @@ $LANG['fi'] = array( 'show: CPU / MEM / NET / DISK' => 'show: CPU / MEM / NET / DISK', 'sort by' => 'sort by', - 'Date' => 'Date', + 'Date' => 'Päivämäärä', 'Starred' => 'Starred', - 'Name' => 'Name', + 'Name' => 'Nimi', - 'File Manager' => 'File Manager', - 'size' => 'size', - 'date' => 'date', - 'name' => 'name', + 'File Manager' => 'Tiedostonhallinta', + 'size' => 'koko', + 'date' => 'päivämäärä', + 'name' => 'nimi', 'Initializing' => 'Initializing', - 'UPLOAD' => 'UPLOAD', - 'NEW FILE' => 'NEW FILE', - 'NEW DIR' => 'NEW DIR', - 'DELETE' => 'DELETE', - 'RENAME' => 'RENAME', + 'UPLOAD' => 'LÄHETÄ', + 'NEW FILE' => 'UUSI TIEDOSTO', + 'NEW DIR' => 'UUSI HAKEMISTO', + 'DELETE' => 'POISTA', + 'RENAME' => 'UUDELLEENNIMEÄ', + 'MOVE' => 'SIIRRÄ', 'RIGHTS' => 'RIGHTS', - 'COPY' => 'COPY', - 'ARCHIVE' => 'ARCHIVE', - 'EXTRACT' => 'EXTRACT', - 'DOWNLOAD' => 'DOWNLOAD', - 'Are you sure?' => 'Are you sure?', // unused? + 'COPY' => 'KOPIOI', + 'ARCHIVE' => 'ARKISTO', + 'EXTRACT' => 'PURA', + 'DOWNLOAD' => 'LATAA', + 'Are you sure?' => 'Oletko varma?', // unused? 'Hit' => 'Hit', 'to reload the page' => 'to reload the page', 'Directory name cannot be empty' => 'Directory name cannot be empty', @@ -608,29 +611,32 @@ $LANG['fi'] = array( 'Directory download not available in current version' => 'Directory download not available in current version', 'Directory not available' => 'Directory not available', 'Done' => 'Done', - 'Close' => 'Close', - 'Copy' => 'Copy', - 'Cancel' => 'Cancel', - 'Rename' => 'Rename', + 'Close' => 'Sulje', + 'Copy' => 'Kopioi', + 'Cancel' => 'Peru', + 'Rename' => 'Uudelleennimeä', + 'Move' => 'Siirrä', 'Change Rights' => 'Change Rights', - 'Delete' => 'Delete', - 'Extract' => 'Extract', - 'Create' => 'Create', - 'Compress' => 'Compress', + 'Delete' => 'Poista', + 'Extract' => 'Pura', + 'Create' => 'Luo', + 'Compress' => 'Pakkaa', 'OK' => 'OK', 'YOU ARE COPYING' => 'YOU ARE COPYING', // unused? 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', - 'Copy files' => 'Copy files', + 'Copy files' => 'Kopioi tiedostoja', + 'Move files' => 'Siirrä tiedostoja', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', 'Original name' => 'Original name', - 'File' => 'File', - 'already exists' => 'already exists', - 'Create file' => 'Create file', - 'Create directory' => 'Create directory', + 'File' => 'Tiedosto', + 'already exists' => 'on jo olemassa', + 'Create file' => 'Luo tiedosto', + 'Create directory' => 'Luo hakemisto', 'read by owner' => 'read by owner', 'write by owner' => 'write by owner', 'execute/search by owner' => 'execute/search by owner', @@ -660,11 +666,11 @@ $LANG['fi'] = array( 'Move up through elements list' => 'Move up through elements list', 'Move down through elements list' => 'Move down through elements list', - 'Upload' => 'Upload', - 'New File' => 'New File', - 'New Folder' => 'New Folder', - 'Download' => 'Download', - 'Archive' => 'Archive', + 'Upload' => 'Lähetä', + 'New File' => 'Uusi kansio', + 'New Folder' => 'Uusi hakemisto', + 'Download' => 'Lataa', + 'Archive' => 'Arkisto', 'Save File (in text editor)' => 'Save File (in text editor)', 'Close Popup / Cancel' => 'Close Popup / Cancel', 'Move Cursor Up' => 'Move Cursor Up', @@ -675,49 +681,53 @@ $LANG['fi'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', 'Add File to the Current Selection' => 'Add File to the Current Selection', - 'Select All Files' => 'Select All Files', + 'Select All Files' => 'Valitse kaikki tiedostot', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', - 'Licence Key' => 'Licence Key', + 'Licence Key' => 'Lisenssiavain', 'Enter License Key' => 'Enter License Key', - 'Buy Licence' => 'Buy Licence', - 'Buy Lifetime License' => 'Buy Lifetime License', + 'Buy Licence' => 'Osta lisenssi', + 'Buy Lifetime License' => 'Osta elinikäinen lisenssi', 'Disable and Cancel Licence' => 'Disable and Cancel Licence', - 'Licence Activated' => 'Licence Activated', - 'Licence Deactivated' => 'Licence Deactivated', + 'Licence Activated' => 'Lisenssi aktivoitu', + 'Licence Deactivated' => 'Lisenssi deaktivoitu', 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.', - 'Minutes' => 'Minutes', - 'Hourly' => 'Hourly', - 'Run Command' => 'Run Command', - 'every month' => 'every month', - 'every odd month' => 'every odd month', + 'Minutes' => 'Minuutittain', // fuzzy + 'Hourly' => 'Tunneittain', + 'Daily' => 'Päivittäin', + 'Weekly' => 'Viikottain', + 'Monthly' => 'Kuukausittain', + 'Run Command' => 'Aja Komento', + 'every month' => 'joka kuukausi', + 'every odd month' => 'joka toinen kuukausi', 'every even month' => 'every even month', - 'every day' => 'every day', - 'every odd day' => 'every odd day', + 'every day' => 'joka päivä', + 'every odd day' => 'joka toinen päivä', 'every even day' => 'every even day', 'weekdays (5 days)' => 'weekdays (5 days)', 'weekend (2 days)' => 'weekend (2 days)', - 'Monday' => 'Monday', - 'Tuesday' => 'Tuesday', - 'Wednesday' => 'Wednesday', - 'Thursday' => 'Thursday', - 'Friday' => 'Friday', - 'Saturday' => 'Saturday', - 'Sunday' => 'Sunday', - 'every hour' => 'every hour', - 'every two hours' => 'every two hours', - 'every minute' => 'every minute', - 'every two minutes' => 'every two minutes', + 'Monday' => 'Maanantai', + 'Tuesday' => 'Tiistai', + 'Wednesday' => 'Keskiviikko', + 'Thursday' => 'Torstai', + 'Friday' => 'Perjantai', + 'Saturday' => 'Lauantai', + 'Sunday' => 'Sunnuntai', + 'every hour' => 'joka tunti', + 'every two hours' => 'joka toinen tunti', + 'every minute' => 'joka minuutti', + 'every two minutes' => 'joka toinen minuutti', 'every' => 'every', - 'Generate' => 'Generate', + 'Generate' => 'Generoi', 'webalizer' => 'webalizer', 'awstats' => 'awstats', diff --git a/web/inc/i18n/fr.php b/web/inc/i18n/fr.php index 6b2c6a9bf..142719420 100644 --- a/web/inc/i18n/fr.php +++ b/web/inc/i18n/fr.php @@ -285,6 +285,7 @@ $LANG['fr'] = array( 'DNS Support' => 'Support DNS', 'Mail Support' => 'Support Email', 'Advanced options' => 'Options avancées', + 'Basic options' => 'Basic options', 'Aliases' => 'Alias', 'SSL Certificate' => 'Certificat SSL', 'SSL Key' => 'Clé SSL', @@ -591,6 +592,7 @@ $LANG['fr'] = array( 'NEW DIR' => 'RÉP.', 'DELETE' => 'SUPPR', 'RENAME' => 'RENOMMER', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPIER', 'ARCHIVE' => 'ARCHIVER', @@ -611,6 +613,7 @@ $LANG['fr'] = array( 'Copy' => 'Copier', 'Cancel' => 'Annuler', 'Rename' => 'Renommer', + 'MOVE' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Supprimer', 'Extract' => 'Extraire', @@ -621,7 +624,9 @@ $LANG['fr'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -674,6 +679,7 @@ $LANG['fr'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -695,6 +701,9 @@ $LANG['fr'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/hu.php b/web/inc/i18n/hu.php index a9b99bd94..ad8ba63c2 100644 --- a/web/inc/i18n/hu.php +++ b/web/inc/i18n/hu.php @@ -289,6 +289,7 @@ $LANG['hu'] = array( 'DNS Support' => 'DNS támogatás', 'Mail Support' => 'Mail támogatás', 'Advanced options' => 'Haladó beállítások', + 'Basic options' => 'Basic options', 'Aliases' => 'Aliaszok', 'SSL Certificate' => 'SSL igazolás', 'SSL Key' => 'SSL kulcs', @@ -595,6 +596,7 @@ $LANG['hu'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -615,6 +617,7 @@ $LANG['hu'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -625,7 +628,9 @@ $LANG['hu'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -678,6 +683,7 @@ $LANG['hu'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -699,6 +705,9 @@ $LANG['hu'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/id.php b/web/inc/i18n/id.php index f1965d9f6..84f436d4c 100644 --- a/web/inc/i18n/id.php +++ b/web/inc/i18n/id.php @@ -288,6 +288,7 @@ $LANG['id'] = array( 'DNS Support' => 'Dukungan DNS', 'Mail Support' => 'Dukungan Mail', 'Advanced options' => 'Opsi lanjutan', + 'Basic options' => 'Basic options', 'Aliases' => 'Alias', 'SSL Certificate' => 'Sertifikat SSL', 'SSL Key' => 'Kunci SSL', @@ -594,6 +595,7 @@ $LANG['id'] = array( 'NEW DIR' => 'DIREKTORI BARU', 'DELETE' => 'HAPUS', 'RENAME' => 'GANTI', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'SALIN', 'ARCHIVE' => 'ARSIP', @@ -614,6 +616,7 @@ $LANG['id'] = array( 'Copy' => 'Salin', 'Cancel' => 'Batal', 'Rename' => 'Ganti nama', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Hapus', 'Extract' => 'Ekstrak', @@ -624,7 +627,9 @@ $LANG['id'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Yakin mau disalin', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Yakin mau dihapus', 'into' => 'ke', 'existing files will be replaced' => 'file yg sudah ada akan diganti', @@ -677,6 +682,7 @@ $LANG['id'] = array( 'Go to the Top of the File List' => 'Pindah Ke atas dari Daftar File', 'Go to the Last File' => 'Pindah File terakhir', 'Open File / Enter Directory' => 'Buka File/Masuk ke Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Ke Parent Directory', 'Select Current File' => 'Pilih File ini', 'Select Bunch of Files' => 'Pilih Bunch of Files', @@ -698,6 +704,9 @@ $LANG['id'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/it.php b/web/inc/i18n/it.php index 23fdba5db..85ecdcb20 100644 --- a/web/inc/i18n/it.php +++ b/web/inc/i18n/it.php @@ -286,6 +286,7 @@ $LANG['it'] = array( 'DNS Support' => 'Supporto DNS', 'Mail Support' => 'Supporto Mail', 'Advanced options' => 'Opzioni Avanzate', + 'Basic options' => 'Basic options', 'Aliases' => 'Alias Dominio', 'SSL Certificate' => 'Certificato SSL', 'SSL Key' => 'SSL Key', @@ -592,6 +593,7 @@ $LANG['it'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +614,7 @@ $LANG['it'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +625,9 @@ $LANG['it'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +680,7 @@ $LANG['it'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -696,6 +702,9 @@ $LANG['it'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/ja.php b/web/inc/i18n/ja.php index c425a04cc..9cebfc674 100644 --- a/web/inc/i18n/ja.php +++ b/web/inc/i18n/ja.php @@ -285,6 +285,7 @@ $LANG['ja'] = array( 'DNS Support' => 'DNSのサポート', 'Mail Support' => 'メールのサポート', 'Advanced options' => '詳細設定', + 'Basic options' => 'Basic options', 'Aliases' => 'エイリアス', 'SSL Certificate' => 'SSL証明書', 'SSL Key' => 'SSL鍵', @@ -591,6 +592,7 @@ $LANG['ja'] = array( 'NEW DIR' => 'ディレクトリの作成', 'DELETE' => '削除', 'RENAME' => '名前の変更', + 'MOVE' => 'MOVE', 'RIGHTS' => '権限', 'COPY' => 'コピー', 'ARCHIVE' => 'アーカイブ', @@ -611,6 +613,7 @@ $LANG['ja'] = array( 'Copy' => 'コピー', 'Cancel' => 'キャンセル', 'Rename' => '名前の変更', + 'Move' => 'Move', 'Change Rights' => '権限の変更', 'Delete' => '削除', 'Extract' => '展開', @@ -621,7 +624,9 @@ $LANG['ja'] = array( 'YOU ARE REMOVING' => '削除中', 'Delete items' => '項目の削除', 'Copy files' => 'ファイルのコピー', + 'Move files' => 'Move files', 'Are you sure you want to copy' => '次のファイルをコピーしてもよろしいですか', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => '次のファイルを削除してもよろしいですか', 'into' => 'から', 'existing files will be replaced' => '既存のファイルは置き換えられます', @@ -674,6 +679,7 @@ $LANG['ja'] = array( 'Go to the Top of the File List' => 'ファイルリストの先頭に移動する', 'Go to the Last File' => '最後のファイルに移動する', 'Open File / Enter Directory' => 'ファイルを開く / ディレクトリに入る', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => '親ディレクトリに移動する', 'Select Current File' => 'ファイルを選択する', 'Select Bunch of Files' => 'ファイルを範囲選択する', @@ -695,6 +701,9 @@ $LANG['ja'] = array( 'Minutes' => '分毎', 'Hourly' => '時間毎', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => '実行時', 'every month' => '毎月', 'every odd month' => '奇数月', diff --git a/web/inc/i18n/nl.php b/web/inc/i18n/nl.php index 5eff2d3e7..b5a376699 100644 --- a/web/inc/i18n/nl.php +++ b/web/inc/i18n/nl.php @@ -241,13 +241,13 @@ $LANG['nl'] = array( 'Users' => 'Gebruikers', 'Load Average' => 'Gemiddelde Belasting', 'Memory Usage' => 'Geheugengebruik', - 'APACHE2 Usage' => 'APACHE2 Usage', + 'APACHE2 Usage' => 'APACHE2 Gebruik', 'HTTPD Usage' => 'HTTPD Gebruik', 'NGINX Usage' => 'NGINX Gebruik', 'MySQL Usage on localhost' => 'MySQL Gebruik op localhost', 'PostgreSQL Usage on localhost' => 'PostgreSQL Gebruik op localhost', 'Bandwidth Usage eth0' => 'Bandbreedtegebruik eth0', - 'Exim Usage' => 'Exim Usage', + 'Exim Usage' => 'Exim Gebruik', 'FTP Usage' => 'FTP Gebruik', 'SSH Usage' => 'SSH Gebruik', 'reverse proxy' => 'reverse proxy', @@ -286,6 +286,7 @@ $LANG['nl'] = array( 'DNS Support' => 'DNS Ondersteuning', 'Mail Support' => 'Mail Ondersteuning', 'Advanced options' => 'Geavanceerde opties', + 'Basic options' => 'Basic options', 'Aliases' => 'Aliassen', 'SSL Certificate' => 'SSL Certificaat', 'SSL Key' => 'SSL Sleutel', @@ -365,10 +366,10 @@ $LANG['nl'] = array( 'ftp user password' => 'FTP gebruikerswachtwoord', 'ftp user' => 'FTP gebruiker', 'Last 70 lines of %s.%s.log' => 'Laatste 70 lijnen van %s.%s.log', - 'AccessLog' => 'AccessLog', - 'ErrorLog' => 'ErrorLog', - 'Download AccessLog' => 'Download Access Log', - 'Download ErrorLog' => 'Download Error Log', + 'AccessLog' => 'ToegangLog', + 'ErrorLog' => 'FoutenLog', + 'Download AccessLog' => 'Download Toegang Log', + 'Download ErrorLog' => 'Download Fout Log', 'Country' => 'Land', '2 letter code' => '2 letterige landcode', 'State / Province' => 'Staat / Provincie', @@ -389,19 +390,19 @@ $LANG['nl'] = array( 'SSH' => 'SSH', 'FTP' => 'FTP', 'VESTA' => 'VESTA', - 'Add one more Name Server' => 'Add one more Name Server', + 'Add one more Name Server' => 'Voeg nog een Name Server toe', - 'web domain' => 'web domain', - 'dns domain' => 'dns domain', + 'web domain' => 'web domein', + 'dns domain' => 'dns domein', 'dns record' => 'dns record', - 'mail domain' => 'mail domain', + 'mail domain' => 'mail domein', 'mail account' => 'mail account', 'cron job' => 'cron job', 'cron' => 'cron', 'user dir' => 'user dir', - 'unlimited' => 'unlimited', + 'unlimited' => 'oneindig', '1 account' => '1 account', '%s accounts' => '%s accounts', '1 domain' => '1 domein', @@ -539,14 +540,14 @@ $LANG['nl'] = array( 'Nov' => 'Nov', 'Dec' => 'Dec', - 'Configuring Server' => 'Configuring Server', + 'Configuring Server' => 'Server Instellen', 'Hostname' => 'Hostname', - 'Time Zone' => 'Time Zone', - 'Default Language' => 'Default Language', + 'Time Zone' => 'Tijdzone', + 'Default Language' => 'Standaard Taal', 'Proxy Server' => 'Proxy Server', 'Web Server' => 'Web Server', 'Backend Server' => 'Backend Server', - 'Backend Pool Mode' => 'Backend Pool Mode', + 'Backend Pool Mode' => 'Backend Pool Stand', 'DNS Server' => 'DNS Server', 'DNS Cluster' => 'DNS Cluster', 'MAIL Server' => 'MAIL Server', @@ -559,19 +560,19 @@ $LANG['nl'] = array( 'phpPgAdmin URL' => 'phpPgAdmin URL', 'Maximum Number Of Databases' => 'Maximum Number Of Databases', 'Current Number Of Databases' => 'Current Number Of Databases', - 'Local backup' => 'Local backup', + 'Local backup' => 'Lokale backup', 'Compression level' => 'Compression level', 'Directory' => 'Directory', - 'Remote backup' => 'Remote backup', + 'Remote backup' => 'Afstand backup', 'ftp' => 'FTP', 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', - 'FileSystem Disk Quota' => 'FileSystem Disk Quota', + 'FileSystem Disk Quota' => 'BestandenSystem Schijf Quotum', 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', - 'preview' => 'preview', + 'preview' => 'Voorbeeld', 'Reseller Role' => 'Reseller Role', - 'Web Config Editor' => 'Web Config Editor', - 'Template Manager' => 'Template Manager', + 'Web Config Editor' => 'Web Configuratie Bewerker', + 'Template Manager' => 'Voorbeeld Manager', 'Backup Migration Manager' => 'Backup Migration Manager', 'FileManager' => 'FileManager', 'show: CPU / MEM / NET / DISK' => 'show: CPU / MEM / NET / DISK', @@ -592,6 +593,7 @@ $LANG['nl'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +614,7 @@ $LANG['nl'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +625,9 @@ $LANG['nl'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +680,7 @@ $LANG['nl'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -694,10 +700,13 @@ $LANG['nl'] = array( 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.', - 'Minutes' => 'Minutes', - 'Hourly' => 'Hourly', - 'Run Command' => 'Run Command', - 'every month' => 'every month', + 'Minutes' => 'Minuten', + 'Hourly' => 'Ieder Uur', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', + 'Run Command' => 'Voer commando uit', + 'every month' => 'elke maand', 'every odd month' => 'every odd month', 'every even month' => 'every even month', 'every day' => 'every day', @@ -705,19 +714,19 @@ $LANG['nl'] = array( 'every even day' => 'every even day', 'weekdays (5 days)' => 'weekdays (5 days)', 'weekend (2 days)' => 'weekend (2 days)', - 'Monday' => 'Monday', - 'Tuesday' => 'Tuesday', - 'Wednesday' => 'Wednesday', - 'Thursday' => 'Thursday', - 'Friday' => 'Friday', - 'Saturday' => 'Saturday', - 'Sunday' => 'Sunday', - 'every hour' => 'every hour', - 'every two hours' => 'every two hours', - 'every minute' => 'every minute', - 'every two minutes' => 'every two minutes', - 'every' => 'every', - 'Generate' => 'Generate', + 'Monday' => 'Maandag', + 'Tuesday' => 'Dinsdag', + 'Wednesday' => 'Woensdag', + 'Thursday' => 'Donderdag', + 'Friday' => 'Vrijdag', + 'Saturday' => 'Zaterdag', + 'Sunday' => 'Zondag', + 'every hour' => 'elk uur', + 'every two hours' => 'elke twee uur', + 'every minute' => 'elke minuut', + 'every two minutes' => 'elke twee minuten', + 'every' => 'alle', + 'Generate' => 'Genereer', 'webalizer' => 'webalizer', 'awstats' => 'awstats', diff --git a/web/inc/i18n/no.php b/web/inc/i18n/no.php index cd55ccf5f..a50377d9b 100644 --- a/web/inc/i18n/no.php +++ b/web/inc/i18n/no.php @@ -286,6 +286,7 @@ $LANG['no'] = array( 'DNS Support' => 'DNS Støtte', 'Mail Support' => 'Mail Støtte', 'Advanced options' => 'Avanserte Instillinger', + 'Basic options' => 'Basic options', 'Aliases' => 'Aliaser', 'SSL Certificate' => 'SSL Sertifikat', 'SSL Key' => 'SSL Nøkkel', @@ -592,6 +593,7 @@ $LANG['no'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +614,7 @@ $LANG['no'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +625,9 @@ $LANG['no'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +680,7 @@ $LANG['no'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -696,6 +702,9 @@ $LANG['no'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/pl.php b/web/inc/i18n/pl.php index d4d509d5c..b542a5440 100644 --- a/web/inc/i18n/pl.php +++ b/web/inc/i18n/pl.php @@ -285,6 +285,7 @@ $LANG['pl'] = array( 'DNS Support' => 'Wsparcie dla DNS', 'Mail Support' => 'Wsparcie dla poczty email', 'Advanced options' => 'Ustawienia zaawansowane', + 'Basic options' => 'Basic options', 'Aliases' => 'Aliasy', 'SSL Certificate' => 'Certyfikat SSL', 'SSL Key' => 'Klucz SSL', @@ -591,6 +592,7 @@ $LANG['pl'] = array( 'NEW DIR' => 'NOWY FOLDER', 'DELETE' => 'USUŃ', 'RENAME' => 'ZMIEŃ NAZWĘ', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'KOPIUJ', 'ARCHIVE' => 'ARCHIWIZUJ', @@ -611,6 +613,7 @@ $LANG['pl'] = array( 'Copy' => 'Kopiuj', 'Cancel' => 'Anuluj', 'Rename' => 'Zmień nazwę', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Usuń', 'Extract' => 'Rozpakuj', @@ -621,7 +624,9 @@ $LANG['pl'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Czy jesteś pewny, że chcesz skopiować?', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Czy jesteś pewny, że chcesz usunąć?', 'into' => 'do', 'existing files will be replaced' => 'istniejące pliki zostaną zastąpione', @@ -674,6 +679,7 @@ $LANG['pl'] = array( 'Go to the Top of the File List' => 'Przejdź na górę listy plików', 'Go to the Last File' => 'Przejdź do ostatniego pliku', 'Open File / Enter Directory' => 'Otwórz plik/folder', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Przejdź do katalogu nadrzędnego', 'Select Current File' => 'Wybierz aktywny plik', 'Select Bunch of Files' => 'Wybierz kilka plików', @@ -695,6 +701,9 @@ $LANG['pl'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/pt-BR.php b/web/inc/i18n/pt-BR.php index 942486149..bd8136927 100644 --- a/web/inc/i18n/pt-BR.php +++ b/web/inc/i18n/pt-BR.php @@ -285,6 +285,7 @@ $LANG['pt-BR'] = array( 'DNS Support' => 'Suporte a DNS', 'Mail Support' => 'Suporte a Email', 'Advanced options' => 'Opções Avançadas', + 'Basic options' => 'Basic options', 'Aliases' => 'Apelidos', 'SSL Certificate' => 'Certificado SSL', 'SSL Key' => 'Chave SSL', @@ -591,6 +592,7 @@ $LANG['pt-BR'] = array( 'NEW DIR' => 'NOVO DIR', 'DELETE' => 'DELETAR', 'RENAME' => 'RENOMEAR', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPIAR', 'ARCHIVE' => 'ARQUIVAR', @@ -611,6 +613,7 @@ $LANG['pt-BR'] = array( 'Copy' => 'Copiar', 'Cancel' => 'Cancelar', 'Rename' => 'Renomear', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Deletar', 'Extract' => 'Extrair', @@ -621,7 +624,9 @@ $LANG['pt-BR'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Tem certeza que deseja copiar', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Tem certeza que deseja deletar', 'into' => 'dentro', 'existing files will be replaced' => 'arquivos existentes serão substituídos', @@ -674,6 +679,7 @@ $LANG['pt-BR'] = array( 'Go to the Top of the File List' => 'Ir para o Início da Lista de Arquivo', 'Go to the Last File' => 'Ir para o último Arquivo', 'Open File / Enter Directory' => 'Abrir Arquivo/Digitar Diretório', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Ir para o diretório principal', 'Select Current File' => 'Selecionar o Arquivo Atual', 'Select Bunch of Files' => 'Selecionar Vários Arquivos', @@ -695,6 +701,9 @@ $LANG['pt-BR'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/pt.php b/web/inc/i18n/pt.php index 76b8a6579..68e676dc4 100644 --- a/web/inc/i18n/pt.php +++ b/web/inc/i18n/pt.php @@ -285,6 +285,7 @@ $LANG['pt'] = array( 'DNS Support' => 'Suporte a DNS', 'Mail Support' => 'Suporte a Email', 'Advanced options' => 'Opções Avançadas', + 'Basic options' => 'Basic options', 'Aliases' => 'Apelidos', 'SSL Certificate' => 'Certificado SSL', 'SSL Key' => 'Chave SSL', @@ -591,6 +592,7 @@ $LANG['pt'] = array( 'NEW DIR' => 'NOVO DIR', 'DELETE' => 'DELETAR', 'RENAME' => 'RENOMEAR', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPIAR', 'ARCHIVE' => 'ARQUIVAR', @@ -611,6 +613,7 @@ $LANG['pt'] = array( 'Copy' => 'Copiar', 'Cancel' => 'Cancelar', 'Rename' => 'Renomear', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Deletar', 'Extract' => 'Extrair', @@ -621,7 +624,9 @@ $LANG['pt'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Tem certeza que deseja copiar', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Tem certeza que deseja deletar', 'into' => 'dentro', 'existing files will be replaced' => 'arquivos existentes serão substituídos', @@ -674,6 +679,7 @@ $LANG['pt'] = array( 'Go to the Top of the File List' => 'Ir para o Início da Lista de Arquivo', 'Go to the Last File' => 'Ir para o último Arquivo', 'Open File / Enter Directory' => 'Abrir Arquivo/Digitar Diretório', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Ir para o diretório principal', 'Select Current File' => 'Selecionar o Arquivo Atual', 'Select Bunch of Files' => 'Selecionar Vários Arquivos', @@ -695,6 +701,9 @@ $LANG['pt'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/ro.php b/web/inc/i18n/ro.php index cb9fd7884..b98647926 100644 --- a/web/inc/i18n/ro.php +++ b/web/inc/i18n/ro.php @@ -286,6 +286,7 @@ $LANG['ro'] = array( 'DNS Support' => 'Support DNS', 'Mail Support' => 'Support E-mail', 'Advanced options' => 'Opțiuni avansate', + 'Basic options' => 'Basic options', 'Aliases' => 'Aliasuri', 'SSL Certificate' => 'Certificat SSL', 'SSL Key' => 'Cheia SSL', @@ -592,6 +593,7 @@ $LANG['ro'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -612,6 +614,7 @@ $LANG['ro'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -622,7 +625,9 @@ $LANG['ro'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -675,6 +680,7 @@ $LANG['ro'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -696,6 +702,9 @@ $LANG['ro'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/ru.php b/web/inc/i18n/ru.php index 79bdb597e..6f971e38b 100644 --- a/web/inc/i18n/ru.php +++ b/web/inc/i18n/ru.php @@ -286,6 +286,7 @@ $LANG['ru'] = array( 'DNS Support' => 'Поддержка DNS', 'Mail Support' => 'Поддержка почты', 'Advanced options' => 'Дополнительные опции', + 'Basic options' => 'Базовые опции', 'Aliases' => 'Алиасы', 'SSL Certificate' => 'SSL сертификат', 'SSL Key' => 'Ключ SSL сертификата', @@ -592,6 +593,7 @@ $LANG['ru'] = array( 'NEW DIR' => 'ПАПКА', 'DELETE' => 'УДАЛИТЬ', 'RENAME' => 'ПЕРЕИМЕНОВАТЬ', + 'MOVE' => 'ПЕРЕМЕСТИТЬ', 'RIGHTS' => 'ПРАВА', 'COPY' => 'КОПИЯ', 'ARCHIVE' => 'АРХИВ', @@ -612,6 +614,7 @@ $LANG['ru'] = array( 'Copy' => 'Скопировать', 'Cancel' => 'Отмена', 'Rename' => 'Переименовать', + 'Move' => 'Пемеместить', 'Change Rights' => 'Сменить права', 'Delete' => 'Удалить', 'Extract' => 'Распаковать', @@ -622,7 +625,9 @@ $LANG['ru'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Переместить файлы', 'Are you sure you want to copy' => 'Вы уверены, что хотите скопировать', + 'Are you sure you want to move' => 'Вы уверены, что хотите переместить', 'Are you sure you want to delete' => 'Вы уверены, что хотите удалить', 'into' => 'в', 'existing files will be replaced' => 'существующие файлы будут перезаписаны', @@ -675,6 +680,7 @@ $LANG['ru'] = array( 'Go to the Top of the File List' => 'Перейти к первому файлу', 'Go to the Last File' => 'Перейти к последнему файлу', 'Open File / Enter Directory' => 'Открыть Файл/Папку', + 'Edit File' => 'Редактировать Файл', 'Go to Parent Directory' => 'Перейти в родительскую директорию', 'Select Current File' => 'Выбрать активный файл', 'Select Bunch of Files' => 'Выбрать блок файлов', @@ -695,6 +701,9 @@ $LANG['ru'] = array( 'This is a commercial module, you would need to purchace license key to enable it.' => 'Это коммерческий модуль, чтобы включить его, вам необходимо приобрести лицензию.', 'Minutes' => 'по минутам', + 'Daily' => 'ежедневно', + 'Weekly' => 'еженедельно', + 'Monthly' => 'ежемесячно', 'Hourly' => 'по часам', 'Run Command' => 'Выполнять', 'every month' => 'каждый месяц', diff --git a/web/inc/i18n/se.php b/web/inc/i18n/se.php index 0aa3b5e84..f474dff03 100644 --- a/web/inc/i18n/se.php +++ b/web/inc/i18n/se.php @@ -285,6 +285,7 @@ $LANG['se'] = array( 'DNS Support' => 'DNS-stöd', 'Mail Support' => 'Mail-stöd', 'Advanced options' => 'Avancerade inställningar', + 'Basic options' => 'Basic options', 'Aliases' => 'Alias', 'SSL Certificate' => 'SSL-certifikat', 'SSL Key' => 'SSL-nyckel', @@ -591,6 +592,7 @@ $LANG['se'] = array( 'NEW DIR' => 'NEW DIR', 'DELETE' => 'DELETE', 'RENAME' => 'RENAME', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'COPY', 'ARCHIVE' => 'ARCHIVE', @@ -611,6 +613,7 @@ $LANG['se'] = array( 'Copy' => 'Copy', 'Cancel' => 'Cancel', 'Rename' => 'Rename', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Delete', 'Extract' => 'Extract', @@ -621,7 +624,9 @@ $LANG['se'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Are you sure you want to delete', 'into' => 'into', 'existing files will be replaced' => 'existing files will be replaced', @@ -674,6 +679,7 @@ $LANG['se'] = array( 'Go to the Top of the File List' => 'Go to the Top of the File List', 'Go to the Last File' => 'Go to the Last File', 'Open File / Enter Directory' => 'Open File / Enter Directory', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Go to Parent Directory', 'Select Current File' => 'Select Current File', 'Select Bunch of Files' => 'Select Bunch of Files', @@ -695,6 +701,9 @@ $LANG['se'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/i18n/tr.php b/web/inc/i18n/tr.php index a36dfb235..8fa0133ea 100644 --- a/web/inc/i18n/tr.php +++ b/web/inc/i18n/tr.php @@ -286,6 +286,7 @@ $LANG['tr'] = array( 'DNS Support' => 'DNS Desteği', 'Mail Support' => 'Mail Desteği', 'Advanced options' => 'Gelişmiş seçenekler', + 'Basic options' => 'Basic options', 'Aliases' => 'Takma adlar (Alias)', 'SSL Certificate' => 'SSL Sertifikası', 'SSL Key' => 'SSL Anahtarı (Key)', @@ -592,6 +593,7 @@ $LANG['tr'] = array( 'NEW DIR' => 'YENİ KLASÖR', 'DELETE' => 'SİL', 'RENAME' => 'YENİDEN ADLANDIR', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'KOPYALA', 'ARCHIVE' => 'ARŞİVLE', @@ -612,6 +614,7 @@ $LANG['tr'] = array( 'Copy' => 'Kopyala', 'Cancel' => 'Vazgeç', 'Rename' => 'Yeniden Adlandır', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Sil', 'Extract' => 'Çıkart', @@ -622,7 +625,9 @@ $LANG['tr'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Kopyalamak istediğinizden emin misiniz', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Silmek istediğinizden emin misiniz', 'into' => 'into', 'existing files will be replaced' => 'varolan dosyalar değiştirilir', @@ -675,6 +680,7 @@ $LANG['tr'] = array( 'Go to the Top of the File List' => 'Dosya Listesinin Tepesine git', 'Go to the Last File' => 'Son Dosyaya git', 'Open File / Enter Directory' => 'Dosya Aç/Dizin Gir', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Üst Dizine Git', 'Select Current File' => 'Şuanki Dosyayı Seç', 'Select Bunch of Files' => 'Dosya Demetini Seç', @@ -696,6 +702,9 @@ $LANG['tr'] = array( 'Minutes' => 'Dakikalık', 'Hourly' => 'Saatlik', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Komutu Çalıştır', 'every month' => 'her ay', 'every odd month' => 'her tek ay', diff --git a/web/inc/i18n/tw.php b/web/inc/i18n/tw.php index 405b6f611..1a313c0b1 100644 --- a/web/inc/i18n/tw.php +++ b/web/inc/i18n/tw.php @@ -5,7 +5,6 @@ * Clark's Computer Knowledge Journal (https://www.clark-chen.com) * Clark's Hosting Service (https://host.clark-chen.com) * Clark Chen (clark@clark-chen.com) - * Github - https://github.com/ttcttctw/Vesta-Control-Panel-Traditional-Chinese-Translation/blob/master/tw.php */ $LANG['tw'] = array( 'Packages' => '方案設定', @@ -13,9 +12,9 @@ $LANG['tw'] = array( 'Graphs' => '資源使用圖表', 'Statistics' => '統計資料', 'Log' => '系統紀錄', - 'Server' => '伺服器', 'Services' => '服務', 'Firewall' => '防火牆', + 'Server' => '伺服器', 'Updates' => '系統更新', 'Log in' => '登入', 'Log out' => '登出', @@ -38,9 +37,9 @@ $LANG['tw'] = array( 'UPDATES' => 'UPDATES', 'FIREWALL' => 'FIREWALL', 'SERVER' => 'SERVER', - 'MEMORY' => '記憶體', - 'DISK' => '磁碟', - 'NETWORK' => '網路', + 'MEMORY' => 'MEMORY', + 'DISK' => 'DISK', + 'NETWORK' => 'NETWORK', 'Web Log Manager' => 'Web Log Manager', 'Add User' => '新增使用者', @@ -175,9 +174,9 @@ $LANG['tw'] = array( 'DNS Template' => 'DNS模板', 'Web Domains' => '網站網域', 'SSL Domains' => 'SSL網域', - 'Web Aliases' => '網站次網域', + 'Web Aliases' => '網站子網域', 'per domain' => '(每網域)', - 'DNS Domains' => 'DNS網域', + 'DNS Domains' => 'DNS Domains', 'DNS domains' => 'DNS網域', 'DNS records' => 'DNS紀錄', 'Name Servers' => '域名服務器', @@ -197,7 +196,7 @@ $LANG['tw'] = array( 'Proxy Extensions' => 'Nginx擴充', 'Web Statistics' => '網站統計', 'Additional FTP Account' => '其他FTP帳號', - 'Path' => '路徑', + 'Path' => 'Path', 'SOA' => 'SOA', 'TTL' => 'TTL', 'Expire' => '過期', @@ -243,15 +242,15 @@ $LANG['tw'] = array( 'Users' => '使用者', 'Load Average' => '平均負載量', 'Memory Usage' => '記憶體使用量', - 'APACHE2 Usage' => 'Apache2使用量', - 'HTTPD Usage' => 'Apache使用量', - 'NGINX Usage' => 'NGINX使用量', - 'MySQL Usage on localhost' => 'MySQL使用量 (localhost)', - 'PostgreSQL Usage on localhost' => 'PostgreSQL使用量 (localhost)', - 'Bandwidth Usage eth0' => '流量使用量 (eth0)', - 'Exim Usage' => 'Exim使用量', - 'FTP Usage' => 'FTP使用量', - 'SSH Usage' => 'SSH使用量', + 'APACHE2 Usage' => 'APACHE2 Usage', + 'HTTPD Usage' => 'HTTPD Usage', + 'NGINX Usage' => 'NGINX Usage', + 'MySQL Usage on localhost' => 'MySQL Usage on localhost', + 'PostgreSQL Usage on localhost' => 'PostgreSQL Usage on localhost', + 'Bandwidth Usage eth0' => 'Bandwidth Usage eth0', + 'Exim Usage' => 'Exim Usage', + 'FTP Usage' => 'FTP Usage', + 'SSH Usage' => 'SSH Usage', 'reverse proxy' => '代理伺服器', 'web server' => '網站主機', 'dns server' => 'DNS主機', @@ -288,7 +287,8 @@ $LANG['tw'] = array( 'DNS Support' => 'DNS支援', 'Mail Support' => '信箱支援', 'Advanced options' => '進階選項', - 'Aliases' => '次網域', + 'Basic options' => 'Basic options', + 'Aliases' => '子網域', 'SSL Certificate' => 'SSL憑證', 'SSL Key' => 'SSL密鑰', 'SSL Certificate Authority / Intermediate' => 'SSL中繼憑證', @@ -318,14 +318,14 @@ $LANG['tw'] = array( 'Command' => '指令', 'Package Name' => '方案名稱', 'Netmask' => '子網路遮罩', - 'Interface' => '端口', + 'Interface' => '介面卡', 'Shared' => '共享', 'Assigned user' => '指定使用者', 'Assigned domain' => '指定網址', 'NAT IP association' => 'NAT IP連結', 'shell' => 'shell', 'web domains' => '網站網域', - 'web aliases' => '網站次網域', + 'web aliases' => '網站子網域', 'dns records' => 'DNS記錄', 'mail domains' => '信箱網域', 'mail accounts' => '信箱帳號', @@ -338,7 +338,7 @@ $LANG['tw'] = array( 'cmd' => '指令', 'users' => '使用者', 'domains' => '網域', - 'aliases' => '次網域', + 'aliases' => '子網域', 'records' => '記錄', 'jobs' => '任務', 'username' => '使用者名稱', @@ -350,7 +350,7 @@ $LANG['tw'] = array( 'ip address' => 'IP位置', 'IP address' => 'IP位置', 'netmask' => '子網路遮罩', - 'interface' => '端口', + 'interface' => '介面卡', 'assigned user' => '指定使用者', 'ns1' => 'ns1', 'ns2' => 'ns2', @@ -377,21 +377,21 @@ $LANG['tw'] = array( 'City / Locality' => '市 / 地區', 'Organization' => '組織名稱', 'Action' => '動作', - 'Protocol' => '協議', - 'Port' => '端口', - 'Comment' => '備註', - 'Banlist' => '黑名單', - 'ranges are acceptable' => '可使用範圍(例如:21-22)', - 'CIDR format is supported' => '支援CIDR格式', - 'ACCEPT' => '允許', - 'DROP' => '封鎖', + 'Protocol' => '協定', + 'Port' => '連線埠', + 'Comment' => 'Comment', + 'Banlist' => 'Banlist', + 'ranges are acceptable' => 'ranges are acceptable', + 'CIDR format is supported' => 'CIDR format is supported', + 'ACCEPT' => 'ACCEPT', + 'DROP' => 'DROP', 'TCP' => 'TCP', 'UDP' => 'UDP', 'ICMP' => 'ICMP', 'SSH' => 'SSH', 'FTP' => 'FTP', 'VESTA' => 'VESTA', - 'Add one more Name Server' => '新增域名服務器', + 'Add one more Name Server' => 'Add one more Name Server', 'web domain' => 'web domain', 'dns domain' => 'dns domain', @@ -447,7 +447,7 @@ $LANG['tw'] = array( 'PACKAGE_CREATED_OK' => '方案 %s 已加入成功!', 'SSL_GENERATED_OK' => 'SSL憑證 已加入成功!', 'RULE_CREATED_OK' => 'Rule 已加入成功!', - 'BANLIST_CREATED_OK' => 'IP address has been banned successfully', // I'm not sure about this text + 'BANLIST_CREATED_OK' => 'IP address has been banned successfully', 'Autoupdate has been successfully enabled' => '自動更新已成功啟動', 'Autoupdate has been successfully disabled' => '自動更新已成功關閉', 'Cronjob email reporting has been successfully enabled' => '任務排程 電子郵件回報已成功啟動', @@ -498,12 +498,12 @@ $LANG['tw'] = array( 'RESTORE_SCHEDULED' => '您的要求已加入隊列中,回復完成後會再以電子郵件通知您', 'RESTORE_EXISTS' => '已經有一個回復正在執行中,請等待備份完成後在操作', - 'WEB_EXCLUSIONS' => '輸入網域名稱,每行一個網域。如要排除備份所有網域請使用*。排除特定的資料夾請依照這個格式: Example.com:public_html/cache:public_html/tmp', - 'DNS_EXCLUSIONS' => '輸入網域名稱,每行一個網域。如要排除備份所有網域請使用*', - 'MAIL_EXCLUSIONS' => '輸入網域名稱,每行一個網域。如要排除備份所有網域請使用*。要排除特定使用者請依照這個格式: Example.com:info:support:postmaster', - 'DB_EXCLUSIONS' => '輸入完整資料庫名城,每行一個資料庫。如要排除備份所有資料庫請使用*', - 'CRON_EXCLUSIONS' => '要排除備份所有任務排程請使用*', - 'USER_EXCLUSIONS' => '輸入要排除備份的資料夾名稱,每行一個資料夾。如要排除備份所有資料夾請使用*', + 'WEB_EXCLUSIONS' => "輸入網域名稱,每行一個網域。如要排除備份所有網域請使用*。排除特定的資料夾請依照這個格式: Example.com:public_html/cache:public_html/tmp", + 'DNS_EXCLUSIONS' => "輸入網域名稱,每行一個網域。如要排除備份所有網域請使用*", + 'MAIL_EXCLUSIONS' => "輸入網域名稱,每行一個網域。如要排除備份所有網域請使用*。要排除特定使用者請依照這個格式: Example.com:info:support:postmaster", + 'DB_EXCLUSIONS' => "輸入完整資料庫名城,每行一個資料庫。如要排除備份所有資料庫請使用*", + 'CRON_EXCLUSIONS' => "要排除備份所有任務排程請使用*", + 'USER_EXCLUSIONS' => "輸入要排除備份的資料夾名稱,每行一個資料夾。如要排除備份所有資料夾請使用*", 'Welcome to Vesta Control Panel' => '歡迎來到 Vesta 管理系統', 'MAIL_FROM' => 'Vesta 管理系統 ', @@ -514,7 +514,7 @@ $LANG['tw'] = array( 'FTP login credentials' => 'FTP 登入資料', 'FTP_ACCOUNT_READY' => "FTP帳號已成功建立,並可以開始使用了!\n\n主機名稱: %s\n使用者名稱: %s_%s\n密碼: %s\n\n--\nVesta Control Panel\n", - 'Database Credentials' => '資料庫 登入資料', + 'Database Credentials' => "資料庫 登入資料", 'DATABASE_READY' => "資料庫已加入成功!\n\n資料庫名稱: %s\n使用者名稱: %s\n密碼: %s\n%s\n\n--\nVesta Control Panel\n", 'forgot password' => '忘記密碼', @@ -523,11 +523,33 @@ $LANG['tw'] = array( 'Confirm Password' => '確認密碼', 'Reset' => '重設', 'Reset Code' => '重設代碼', - 'RESET_NOTICE' => '', // should we add something here? + 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => '密買重設代碼已發送到您的信箱
', 'MAIL_RESET_SUBJECT' => '密碼重置在 %s', 'PASSWORD_RESET_REQUEST' => "重置密碼請點擊連結:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n或者您可以到 https://%s/reset/?action=code&user=%s 輸入密碼重設代碼:\n%s\n\n如果您沒有要求重設密碼,請忽略此郵件\n\n—\nVesta Control Panel\n", + 'Run Command' => '執行指令', + 'every month' => '每月', + 'every odd month' => '每個單數月', + 'every even month' => '每個偶數月', + 'every day' => '每天', + 'every odd day' => '每次單數日', + 'every even day' => '每次偶數日', + 'weekdays (5 days)' => '平常日 (五天)', + 'weekend (2 days)' => '週末 (兩天)', + 'Monday' => '星期一', + 'Tuesday' => '星期二', + 'Wednesday' => '星期三', + 'Thursday' => '星期四', + 'Friday' => '星期五', + 'Saturday' => '星期六', + 'Sunday' => '星期日', + 'every hour' => '每小時', + 'every two hours' => '每兩小時', + 'every minute' => '每分鐘', + 'every two minutes' => '每兩分鐘', + 'every' => '每', + 'Jan' => '1月', 'Feb' => '2月', 'Mar' => '3月', @@ -545,26 +567,26 @@ $LANG['tw'] = array( 'Hostname' => '主機名稱', 'Time Zone' => '時區', 'Default Language' => '預設語言', - 'Proxy Server' => '代理伺服器', - 'Web Server' => '網頁伺服器', + 'Proxy Server' => 'Proxy Server', + 'Web Server' => 'Web Server', 'Backend Server' => 'Backend Server', 'Backend Pool Mode' => 'Backend Pool Mode', - 'DNS Server' => 'DNS伺服器', + 'DNS Server' => 'DNS Server', 'DNS Cluster' => 'DNS Cluster', - 'MAIL Server' => '郵件伺服器', - 'Antivirus' => '防毒系統', - 'AntiSpam' => '防垃圾郵件', - 'Webmail URL' => '網路信箱網址', - 'MySQL Support' => 'MySQL支援', - 'phpMyAdmin URL' => 'phpMyAdmin網址', - 'PostgreSQL Support' => 'PostgreSQL支援', + 'MAIL Server' => 'MAIL Server', + 'Antivirus' => 'Antivirus', + 'AntiSpam' => 'AntiSpam', + 'Webmail URL' => 'Webmail URL', + 'MySQL Support' => 'MySQL Support', + 'phpMyAdmin URL' => 'phpMyAdmin URL', + 'PostgreSQL Support' => 'PostgreSQL Support', 'phpPgAdmin URL' => 'phpPgAdmin URL', - 'Maximum Number Of Databases' => '資料庫最高可使用數量', - 'Current Number Of Databases' => '資料庫目前已使用數量', - 'Local backup' => '本機備份', - 'Compression level' => '壓縮程度', - 'Directory' => '路徑', - 'Remote backup' => '異地備份', + 'Maximum Number Of Databases' => 'Maximum Number Of Databases', + 'Current Number Of Databases' => 'Current Number Of Databases', + 'Local backup' => 'Local backup', + 'Compression level' => 'Compression level', + 'Directory' => 'Directory', + 'Remote backup' => 'Remote backup', 'ftp' => 'FTP', 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', @@ -583,7 +605,6 @@ $LANG['tw'] = array( 'Starred' => '加註星號', 'Name' => '名稱', - 'File Manager' => '檔案管理器', 'size' => '大小', 'date' => '日期', @@ -594,12 +615,13 @@ $LANG['tw'] = array( 'NEW DIR' => '新增資料夾', 'DELETE' => '刪除', 'RENAME' => '重新命名', + 'MOVE' => 'MOVE', 'RIGHTS' => '權限', 'COPY' => '複製', 'ARCHIVE' => '壓縮', 'EXTRACT' => '解壓縮', 'DOWNLOAD' => '下載', - 'Are you sure?' => 'Are you sure?', // unused? + 'Are you sure?' => 'Are you sure?', 'Hit' => 'Hit', 'to reload the page' => '重新整理頁面', 'Directory name cannot be empty' => '資料夾名稱不能為空白', @@ -614,6 +636,7 @@ $LANG['tw'] = array( 'Copy' => '複製', 'Cancel' => '取消', 'Rename' => '重新命名', + 'Move' => 'Move', 'Change Rights' => '修改權限', 'Delete' => '刪除', 'Extract' => '解壓縮', @@ -624,7 +647,9 @@ $LANG['tw'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => '確定要複製', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => '確定要刪除', 'into' => '資訊', 'existing files will be replaced' => '原本的檔案會被覆蓋', @@ -677,14 +702,15 @@ $LANG['tw'] = array( 'Go to the Top of the File List' => '回到檔案列表頂端', 'Go to the Last File' => '回到上個檔案', 'Open File / Enter Directory' => '開啟檔案 或 進入資料夾', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => '回到上一頁', 'Select Current File' => '選取目前的檔案', 'Select Bunch of Files' => '選取多個檔案', 'Add File to the Current Selection' => '增加檔案到已選取的列表', 'Select All Files' => '選取所有檔案', - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => "快捷鍵是的想法是由 magnificent GNU Midnight Commander 檔案管理器 啟發的
繁體中文翻譯是由 Clark's 虛擬主機服務 總工程師 Clark Chen 提供。", - + 'Save' => '儲存', 'Licence Key' => '授權金鑰', 'Enter License Key' => '輸入授權金鑰', 'Buy Licence' => '購買授權', @@ -698,6 +724,9 @@ $LANG['tw'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', @@ -724,13 +753,4 @@ $LANG['tw'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - -// Texts below doesn't exist in en.php - 'Bandwidth Usage p2p1' => '流量使用量 (p2p1)', - 'Bandwidth Usage ppp0' => '流量使用量 (ppp0)', - 'Bandwidth Usage ppp1' => '流量使用量 (ppp1)', - 'Bandwidth Usage eth1' => '流量使用量 (eth1)', - 'Bandwidth Usage sit0' => '流量使用量 (sit0)', - 'Bandwidth Usage sit1' => '流量使用量 (sit1)', - 'Bandwidth Usage he-ipv6' => '流量使用量 (he-ipv6)', ); diff --git a/web/inc/i18n/ua.php b/web/inc/i18n/ua.php index 2bebeb2f0..ac3ec409a 100644 --- a/web/inc/i18n/ua.php +++ b/web/inc/i18n/ua.php @@ -2,7 +2,7 @@ /** * Vesta language file * COLOBOCman (colobocman@gmail.com) - * Alex Connor (alex_connor@icloud.com) + * Alexandr Loskutov (alex_connor@icloud.com) */ $LANG['ua'] = array( @@ -26,20 +26,20 @@ $LANG['ua'] = array( 'CRON' => 'CRON', 'BACKUP' => 'BACKUP', - 'LOGIN' => 'LOGIN', - 'RESET PASSWORD' => 'RESET PASSWORD', - 'SEARCH' => 'SEARCH', - 'PACKAGE' => 'PACKAGE', + 'LOGIN' => 'ВВІЙТИ', + 'RESET PASSWORD' => 'СКИНУТИ ПАРОЛЬ', + 'SEARCH' => 'ПОШУК', + 'PACKAGE' => 'ПАКЕТ', 'RRD' => 'RRD', - 'STATS' => 'STATS', - 'LOG' => 'LOG', - 'UPDATES' => 'UPDATES', - 'FIREWALL' => 'FIREWALL', - 'SERVER' => 'SERVER', - 'MEMORY' => 'MEMORY', - 'DISK' => 'DISK', - 'NETWORK' => 'NETWORK', - 'Web Log Manager' => 'Web Log Manager', + 'STATS' => 'СТАТИСТИКА', + 'LOG' => 'ЖУРНАЛ', + 'UPDATES' => 'ОНОВЛЕННЯ', + 'FIREWALL' => 'ФАЙРВОЛ', + 'SERVER' => 'СЕРВЕР', + 'MEMORY' => "ПАМ'ЯТЬ", + 'DISK' => 'ДИСК', + 'NETWORK' => 'МЕРЕЖА', + 'Web Log Manager' => 'Менеджер Web журналу', 'Add User' => 'Додати користувача', 'Add Domain' => 'Додати домен', @@ -48,7 +48,7 @@ $LANG['ua'] = array( 'Add DNS Record' => 'Додати DNS запис', 'Add Mail Domain' => 'Додати поштовий домен', 'Add Mail Account' => 'Додати поштовий акаунт', - 'Add Database' => 'Додати Базу даних', + 'Add Database' => 'Додати базу даних', 'Add Cron Job' => 'Додати завдання', 'Create Backup' => 'Створити архів', 'Configure' => 'Налаштувати', @@ -182,10 +182,10 @@ $LANG['ua'] = array( 'Mail Domains' => 'Поштові домени', 'Mail Accounts' => 'Поштові акаунти', 'Cron Jobs' => 'Cron завдання', - 'SSH Access' => 'SSH Доступ', - 'IP Address' => 'IP Address', + 'SSH Access' => 'SSH доступ', + 'IP Address' => 'IP адреса', 'IP Addresses' => 'IP адреси', - 'Backups' => 'Резервні копії', + 'Backups' => 'Архіви', 'Backup System' => 'Система резервного копіювання', 'backup exclusions' => 'вийнятки архіву', 'template' => 'шаблон', @@ -210,16 +210,16 @@ $LANG['ua'] = array( 'Autoreply' => 'Автовідповідач', 'Forward to' => 'Перенаправлення', 'Do not store forwarded mail' => 'Не зберігати перенаправлені письма', - 'IMAP hostname' => 'IMAP hostname', - 'IMAP port' => 'IMAP port', - 'IMAP security' => 'IMAP security', - 'IMAP auth method' => 'IMAP auth method', - 'SMTP hostname' => 'SMTP hostname', - 'SMTP port' => 'SMTP port', - 'SMTP security' => 'SMTP security', - 'SMTP auth method' => 'SMTP auth method', + 'IMAP hostname' => "Ім'я IMAP хоста", + 'IMAP port' => 'Порт IMAP', + 'IMAP security' => 'Безпека IMAP', + 'IMAP auth method' => 'Метод аутентифікації IMAP', + 'SMTP hostname' => "Ім'я SMTP хоста", + 'SMTP port' => ' Порт SMTP', + 'SMTP security' => 'Безпека SMTP', + 'SMTP auth method' => 'Метод аутентифікації SMTP', 'STARTTLS' => 'STARTTLS', - 'Normal password' => 'Normal password', + 'Normal password' => 'Нормальний пароль', 'database' => 'база даних', 'User' => 'Користувач', 'Host' => 'Сервер', @@ -239,19 +239,19 @@ $LANG['ua'] = array( 'dedicated' => 'виділений', 'Owner' => 'Власник', 'Users' => 'Користувачі', - 'Load Average' => 'Загальне Навантаження', - 'Memory Usage' => "Використання Пам'яті", - 'APACHE2 Usage' => 'APACHE2 Usage', + 'Load Average' => 'Загальне навантаження', + 'Memory Usage' => "Використання пам'яті", + 'APACHE2 Usage' => 'Використання APACHE2', 'HTTPD Usage' => 'Використання HTTPd', 'NGINX Usage' => 'Використання Proxy', - 'MySQL Usage on localhost' => 'Локальний сервер бази даних MySQL', - 'PostgreSQL Usage on localhost' => 'Локальний сервер бази даних PostgreSQL', + 'MySQL Usage on localhost' => 'Використання локальної MySQL', + 'PostgreSQL Usage on localhost' => 'Використання локальної PostgreSQL', 'Bandwidth Usage eth0' => 'Використання мережі eth0', - 'Exim Usage' => 'Exim Usage', + 'Exim Usage' => 'Використання Exim', 'FTP Usage' => 'Використання FTP', 'SSH Usage' => 'Використання SSH', - 'reverse proxy' => 'зворотній проксі', - 'web server' => 'Web сервер', + 'reverse proxy' => 'зворотній proxy', + 'web server' => 'web сервер', 'dns server' => 'DNS сервер ', 'mail server' => 'поштовий сервер', 'pop/imap server' => 'POP/IMAP сервер', @@ -261,10 +261,10 @@ $LANG['ua'] = array( 'ftp server' => 'FTP сервер', 'job scheduler' => 'планувальник завдань', 'firewall' => 'firewall', - 'brute-force monitor' => 'brute-force monitor', + 'brute-force monitor' => 'брутфорс монітор', 'CPU' => 'Процесор', 'Memory' => "Пам'ять", - 'Uptime' => 'Запущений', + 'Uptime' => 'Працює', 'core package' => 'головний пакет', 'php interpreter' => 'PHP інтерпретатор', 'internal web server' => 'внутрішній веб сервер', @@ -286,6 +286,7 @@ $LANG['ua'] = array( 'DNS Support' => 'Підтримка DNS', 'Mail Support' => 'Підтримка пошти', 'Advanced options' => 'Додаткові опції', + 'Basic options' => 'Основні параметри', 'Aliases' => 'Аліаси', 'SSL Certificate' => 'SSL сертификат', 'SSL Key' => 'Ключ SSL сертифікату', @@ -350,8 +351,8 @@ $LANG['ua'] = array( 'netmask' => 'маска підмережі', 'interface' => 'інтерфейс', 'assigned user' => 'призначений користувач', - 'ns1' => 'сервер імен #1', - 'ns2' => 'сервер імен #2', + 'ns1' => 'сервер імен №1', + 'ns2' => 'сервер імен №2', 'user' => 'користувач', 'email' => 'пошта', 'first name' => "Ім'я", @@ -389,17 +390,17 @@ $LANG['ua'] = array( 'SSH' => 'SSH', 'FTP' => 'FTP', 'VESTA' => 'VESTA', - 'Add one more Name Server' => 'Add one more Name Server', + 'Add one more Name Server' => 'Додати ще один сервер імен', - 'web domain' => 'web domain', - 'dns domain' => 'dns domain', - 'dns record' => 'dns record', - 'mail domain' => 'mail domain', - 'mail account' => 'mail account', - 'cron job' => 'cron job', + 'web domain' => 'web домен', + 'dns domain' => 'dns домен', + 'dns record' => 'dns запис', + 'mail domain' => 'mail домен', + 'mail account' => 'mail акаунт', + 'cron job' => 'cron завдання', 'cron' => 'cron', - 'user dir' => 'user dir', + 'user dir' => 'тека користувача', 'unlimited' => 'безлімітний', '1 account' => ' 1 акаунт', @@ -445,7 +446,7 @@ $LANG['ua'] = array( 'PACKAGE_CREATED_OK' => 'Пакет %s успішно створено.', 'SSL_GENERATED_OK' => 'SSL cертификат успішно згенеровано.', 'RULE_CREATED_OK' => 'Правило успішно створено.', - 'BANLIST_CREATED_OK' => 'IP address has been banned successfully', // I'm not sure about this text + 'BANLIST_CREATED_OK' => 'IP адреса успішно заблокована', // I'm not sure about this text 'Autoupdate has been successfully enabled' => 'Aвтооновлення було успішно увімкнено', 'Autoupdate has been successfully disabled' => 'Aвтооновлення було успішно вимкнено', 'Cronjob email reporting has been successfully enabled' => 'Cronjob звітування було успішно увімкнено', @@ -477,7 +478,7 @@ $LANG['ua'] = array( 'DELETE_RULE_CONFIRMATION' => 'Ви впевнені, що хочете видалити правило #%s?', 'SUSPEND_RULE_CONFIRMATION' => 'Ви впевнені, що хочете заблокувати правило #%s?', 'UNSUSPEND_RULE_CONFIRMATION' => 'Ви впевнені, що хочете розблокувати правило #%s?', - 'LEAVE_PAGE_CONFIRMATION' => 'Leave Page?', + 'LEAVE_PAGE_CONFIRMATION' => 'Покинути сторінку?', 'RESTART_CONFIRMATION' => 'Ви впевнені, що хочете перезапустити %s?', 'Welcome' => 'Ласкаво просимо', 'LOGGED_IN_AS' => 'Ви увійшли як користувач %s', @@ -507,10 +508,10 @@ $LANG['ua'] = array( 'MAIL_FROM' => 'Vesta Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Вітаємо, %s %s,\n", 'GREETINGS' => "Вітаємо,\n", - 'ACCOUNT_READY' => "Ваш аккаунт успішно створено і готовий до використання.\n\nhttps://%s/login/\nІм`я користувача: %s\nПароль: %s\n\n--\nПанель керування Vesta\n", + 'ACCOUNT_READY' => "Ваш аккаунт успішно створено і готовий до використання.\n\nhttps://%s/login/\nІм'я користувача: %s\nПароль: %s\n\n--\nПанель керування Vesta\n", 'FTP login credentials' => 'Дані доступу до FTP', - 'FTP_ACCOUNT_READY' => "FTP аккаунт успішно створено і готовий до використання.\n\nХост: %s\nІм`я користувача: %s_%s\nПароль: %s\n\n--\nПанель керування Vesta\n", + 'FTP_ACCOUNT_READY' => "FTP аккаунт успішно створено і готовий до використання.\n\nХост: %s\nІм'я користувача: %s_%s\nПароль: %s\n\n--\nПанель керування Vesta\n", 'Database Credentials' => 'Дані доступу до БД', 'DATABASE_READY' => "База даних успішно створена.\n\nБаза даних: %s\nКористувач: %s\nПароль: %s\n%s\n\n--\nПанель керування Vesta\n", @@ -521,7 +522,7 @@ $LANG['ua'] = array( 'Confirm Password' => 'Підтвердження паролю', 'Reset' => 'Скинути', 'Reset Code' => 'Код скидання', - 'RESET_NOTICE' => '', // should we add something here? + 'RESET_NOTICE' => 'Скинути сповіщення', // should we add something here? 'RESET_CODE_SENT' => 'Код для відновлення паролю успішно відправлено на вашу електронну пошту.
', 'MAIL_RESET_SUBJECT' => 'Відновлення паролю %s', 'PASSWORD_RESET_REQUEST'=>"Щоб відновити пароль, будь-ласка, перейдіть за посиланням :\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nТакож ви можете відкрити сторінку https://%s/reset/?action=code&user=%s і вручну ввести код для відновлення:\n%s\n\nЯкщо ви не виконували процедуру відновлення паролю, будь ласка, проігноруйте цей лист і прийміть наші вибачення.\n\n--\nПанель керування Vesta\n", @@ -539,187 +540,195 @@ $LANG['ua'] = array( 'Nov' => 'Лист', 'Dec' => 'Груд', - 'Configuring Server' => 'Налаштування Серверу', + 'Configuring Server' => 'Налаштування серверу', 'Hostname' => "Ім'я хоста", - 'Time Zone' => 'Часовий Пояс', + 'Time Zone' => 'Часовий пояс', 'Default Language' => 'Мова за замовчуванням', - 'Proxy Server' => 'Proxy Server', - 'Web Server' => 'Web Server', - 'Backend Server' => 'Backend Server', + 'Proxy Server' => 'Proxy сервер', + 'Web Server' => 'Web сервер', + 'Backend Server' => 'Backend сервер', 'Backend Pool Mode' => 'Backend Pool Mode', - 'DNS Server' => 'DNS Server', - 'DNS Cluster' => 'DNS Cluster', - 'MAIL Server' => 'MAIL Server', - 'Antivirus' => 'Antivirus', - 'AntiSpam' => 'AntiSpam', + 'DNS Server' => 'DNS сервер', + 'DNS Cluster' => 'DNS кластер', + 'MAIL Server' => 'MAIL сервер', + 'Antivirus' => 'Антивірус', + 'AntiSpam' => 'АнтиСпам', 'Webmail URL' => 'Webmail URL', - 'MySQL Support' => 'MySQL Support', + 'MySQL Support' => 'Підтримка MySQL', 'phpMyAdmin URL' => 'phpMyAdmin URL', - 'PostgreSQL Support' => 'PostgreSQL Support', + 'PostgreSQL Support' => 'Підтримка PostgreSQL', 'phpPgAdmin URL' => 'phpPgAdmin URL', - 'Maximum Number Of Databases' => 'Maximum Number Of Databases', - 'Current Number Of Databases' => 'Current Number Of Databases', - 'Local backup' => 'Local backup', - 'Compression level' => 'Compression level', - 'Directory' => 'Directory', - 'Remote backup' => 'Remote backup', + 'Maximum Number Of Databases' => 'Максимальна кількість БД', + 'Current Number Of Databases' => 'Поточна кількість БД', + 'Local backup' => 'Локальний архів', + 'Compression level' => 'Рівень стиснення', + 'Directory' => 'Тека', + 'Remote backup' => 'Віддалений архів', 'ftp' => 'FTP', 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', - 'FileSystem Disk Quota' => 'FileSystem Disk Quota', + 'FileSystem Disk Quota' => 'Дискова квота файлової системи', 'Vesta Control Panel Plugins' => 'Плагіни Vesta Control Panel', 'preview' => "прев'ю", - 'Reseller Role' => 'Реселер', - 'Web Config Editor' => 'Веб Редактор Конфігів', - 'Template Manager' => 'Менеджер Шаблонів', - 'Backup Migration Manager' => 'Менеджер Міграції Бекапів', - 'FileManager' => 'Файл Менеджер', + 'Reseller Role' => 'Реселлер', + 'Web Config Editor' => 'Редактор Web конфігів', + 'Template Manager' => 'Менеджер шаблонів', + 'Backup Migration Manager' => 'Менеджер міграції архівів', + 'FileManager' => 'Файл менеджер', 'show: CPU / MEM / NET / DISK' => 'show: CPU / MEM / NET / DISK', - 'sort by' => 'sort by', - 'Date' => 'Date', - 'Starred' => 'Starred', - 'Name' => 'Name', + 'sort by' => 'сортувати за', + 'Date' => 'Дата', + 'Starred' => 'Вибране', + 'Name' => "Ім'я", - 'File Manager' => 'File Manager', - 'size' => 'size', - 'date' => 'date', - 'name' => 'name', - 'Initializing' => 'Initializing', - 'UPLOAD' => 'UPLOAD', - 'NEW FILE' => 'NEW FILE', - 'NEW DIR' => 'NEW DIR', - 'DELETE' => 'DELETE', - 'RENAME' => 'RENAME', - 'RIGHTS' => 'RIGHTS', - 'COPY' => 'COPY', - 'ARCHIVE' => 'ARCHIVE', - 'EXTRACT' => 'EXTRACT', - 'DOWNLOAD' => 'DOWNLOAD', - 'Are you sure?' => 'Are you sure?', // unused? - 'Hit' => 'Hit', - 'to reload the page' => 'to reload the page', - 'Directory name cannot be empty' => 'Directory name cannot be empty', - 'File name cannot be empty' => 'File name cannot be empty', - 'No file selected' => 'No file selected', - 'No file or folder selected' => 'No file or folder selected', - 'File type not supported' => 'File type not supported', - 'Directory download not available in current version' => 'Directory download not available in current version', - 'Directory not available' => 'Directory not available', - 'Done' => 'Done', - 'Close' => 'Close', - 'Copy' => 'Copy', - 'Cancel' => 'Cancel', - 'Rename' => 'Rename', - 'Change Rights' => 'Change Rights', - 'Delete' => 'Delete', - 'Extract' => 'Extract', - 'Create' => 'Create', - 'Compress' => 'Compress', + 'File Manager' => 'Файловий менеджер', + 'size' => 'розмір', + 'date' => 'дата', + 'name' => "ім'я", + 'Initializing' => 'Ініціалізація', + 'UPLOAD' => 'ВИВАНТАЖИТИ', + 'NEW FILE' => 'НОВИЙ ФАЙЛ', + 'NEW DIR' => 'НОВА ТЕКА', + 'DELETE' => 'ВИДАЛИТИ', + 'RENAME' => 'ПЕРЕЙМЕНУВАТИ', + 'MOVE' => 'ПЕРЕМІСТИТИ', + 'RIGHTS' => 'ПРАВА', + 'COPY' => 'КОПІЮВАТИ', + 'ARCHIVE' => 'АРХІВУВАТИ', + 'EXTRACT' => 'РОЗПАКУВАТИ', + 'DOWNLOAD' => 'ЗАВАНТАЖИТИ', + 'Are you sure?' => 'Ви впевнені?', // unused? + 'Hit' => 'Клацніть', + 'to reload the page' => 'для перезавантаження сторінки', + 'Directory name cannot be empty' => 'Назва теки не може бути порожньою', + 'File name cannot be empty' => 'Назва файлу не може бути порожньою', + 'No file selected' => 'Файл не обрано', + 'No file or folder selected' => 'Не обрано файл чи теку', + 'File type not supported' => 'Непідтримуваний тип файлу', + 'Directory download not available in current version' => 'Завантаження тек у цій версії не підтримується', + 'Directory not available' => 'Тека недоступна', + 'Done' => 'Готово', + 'Close' => 'Закрити', + 'Copy' => 'Копіювати', + 'Cancel' => 'Скасувати', + 'Rename' => 'Перейменувати', + 'Move' => 'Перемістити', + 'Change Rights' => 'Змінити права', + 'Delete' => 'Видалити', + 'Extract' => 'Розпакувати', + 'Create' => 'Створити', + 'Compress' => 'Стиснути', 'OK' => 'OK', - 'YOU ARE COPYING' => 'YOU ARE COPYING', // unused? - 'YOU ARE REMOVING' => 'YOU ARE REMOVING', - 'Delete items' => 'Delete items', - 'Copy files' => 'Copy files', - 'Are you sure you want to copy' => 'Are you sure you want to copy', - 'Are you sure you want to delete' => 'Are you sure you want to delete', - 'into' => 'into', - 'existing files will be replaced' => 'existing files will be replaced', - 'Original name' => 'Original name', - 'File' => 'File', - 'already exists' => 'already exists', - 'Create file' => 'Create file', - 'Create directory' => 'Create directory', - 'read by owner' => 'read by owner', - 'write by owner' => 'write by owner', - 'execute/search by owner' => 'execute/search by owner', - 'read by group' => 'read by group', - 'write by group' => 'write by group', - 'execute/search by group' => 'execute/search by group', - 'read by others' => 'read by others', - 'write by others' => 'write by others', - 'execute/search by others' => 'execute/search by others', + 'YOU ARE COPYING' => 'ВИ КОПІЮЄТЕ', // unused? + 'YOU ARE REMOVING' => 'ВИ ВИДАЛЯЄТЕ', + 'Delete items' => 'Видалити елементи', + 'Copy files' => 'Копіювати файли', + 'Move files' => 'Перемістити файли', + 'Are you sure you want to copy' => 'Ви впевнені, що хочете копіювати', + 'Are you sure you want to move' => 'Ви впевнені, що хочете перемістити', + 'Are you sure you want to delete' => 'Ви впевнені, що хочете видалити', + 'into' => 'у', + 'existing files will be replaced' => 'існуючі файли будуть замінені', + 'Original name' => "Оригінальне ім'я", + 'File' => 'Файл', + 'already exists' => 'вже існує', + 'Create file' => 'Створити файл', + 'Create directory' => 'Створити теку', + 'read by owner' => 'читання для власника', + 'write by owner' => 'запис для власника', + 'execute/search by owner' => 'виконання/пошук для власника', + 'read by group' => 'читання для групи', + 'write by group' => 'запис для групи', + 'execute/search by group' => 'виконання/пошук для групи', + 'read by others' => 'читання для інших', + 'write by others' => 'запис для інших', + 'execute/search by others' => 'виконання/пошук для інших', - 'Shortcuts' => 'Shortcuts', - 'Add New object' => 'Add New object', - 'Save Form' => 'Save Form', - 'Cancel saving form' => 'Cancel saving form', - 'Go to USER list' => 'Go to USER list', - 'Go to WEB list' => 'Go to WEB list', - 'Go to DNS list' => 'Go to DNS list', - 'Go to MAIL list' => 'Go to MAIL list', - 'Go to DB list' => 'Go to DB list', - 'Go to CRON list' => 'Go to CRON list', - 'Go to BACKUP list' => 'Go to BACKUP list', - 'Focus on search' => 'Focus on search', - 'Display/Close shortcuts' => 'Display/Close shortcuts', - 'Move backward through top menu' => 'Move backward through top menu', - 'Move forward through top menu' => 'Move forward through top menu', - 'Enter focused element' => 'Enter focused element', - 'Move up through elements list' => 'Move up through elements list', - 'Move down through elements list' => 'Move down through elements list', + 'Shortcuts' => 'Скорочення', + 'Add New object' => "Додати новий об'єкт", + 'Save Form' => 'Зберегти форму', + 'Cancel saving form' => 'Відмінити збереження', + 'Go to USER list' => 'Перейти до USER', + 'Go to WEB list' => 'Перейти до WEB', + 'Go to DNS list' => 'Перейти до DNS', + 'Go to MAIL list' => 'Перейти до MAIL', + 'Go to DB list' => 'Перейти до DB', + 'Go to CRON list' => 'Перейти до CRON', + 'Go to BACKUP list' => 'Перейти до BACKUP', + 'Focus on search' => 'Фокус на пошуку', + 'Display/Close shortcuts' => 'Показати/Приховати підказки', + 'Move backward through top menu' => 'Перейти до попереднього пункту меню', + 'Move forward through top menu' => 'Перейти до наступного пункту меню', + 'Enter focused element' => 'Перейти до активного пункту меню', + 'Move up through elements list' => 'Перейти до попереднього елементу списку', + 'Move down through elements list' => 'Перейти до наступного елементу списку', - 'Upload' => 'Upload', - 'New File' => 'New File', - 'New Folder' => 'New Folder', - 'Download' => 'Download', - 'Archive' => 'Archive', - 'Save File (in text editor)' => 'Save File (in text editor)', - 'Close Popup / Cancel' => 'Close Popup / Cancel', - 'Move Cursor Up' => 'Move Cursor Up', - 'Move Cursor Down' => 'Move Cursor Down', - 'Switch to Left Tab' => 'Switch to Left Tab', - 'Switch to Right Tab' => 'Switch to Right Tab', - 'Switch Tab' => 'Switch Tab', - 'Go to the Top of the File List' => 'Go to the Top of the File List', - 'Go to the Last File' => 'Go to the Last File', - 'Open File / Enter Directory' => 'Open File / Enter Directory', - 'Go to Parent Directory' => 'Go to Parent Directory', - 'Select Current File' => 'Select Current File', - 'Select Bunch of Files' => 'Select Bunch of Files', - 'Add File to the Current Selection' => 'Add File to the Current Selection', - 'Select All Files' => 'Select All Files', + 'Upload' => 'Вивантажити', + 'New File' => 'Новий файл', + 'New Folder' => 'Нова тека', + 'Download' => 'Завантажити', + 'Archive' => 'Архівувати', + 'Save File (in text editor)' => 'Зберегти файл (у текстовому редакторі)', + 'Close Popup / Cancel' => 'Приховати підказки / Скасувати', + 'Move Cursor Up' => 'Перемістити курсор догори', + 'Move Cursor Dow' => 'Перемістити курсор донизу', + 'Switch to Left Tab' => 'Перейти до лівої панелі', + 'Switch to Right Tab' => 'Перейти до правої панелі', + 'Switch Tab' => 'Переключити панель', + 'Go to the Top of File List' => 'Перейти до початку списку файлів', + 'Go to the Last File' => 'Перейти до останнього файлу', + 'Open File/Enter Directory' => 'Відкрити файл/Перейти до теки', + 'Edit File' => 'Редагувати файл', + 'Go to Parent Directory' => 'Перейти до батьківської теки', + 'Select Current File' => 'Обрати поточний файл', + 'Select Bunch of Files' => 'Обрати групу файлів', + 'Add File to the Current Selection' => 'Додати файли до поточного виділення', + 'Select All Files' => 'Виділити всі файли', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + 'скорочення позичені у файлогово менеджера GNU Midnight Commander', - 'Licence Key' => 'Licence Key', - 'Enter License Key' => 'Enter License Key', - 'Buy Licence' => 'Buy Licence', - 'Buy Lifetime License' => 'Buy Lifetime License', - 'Disable and Cancel Licence' => 'Disable and Cancel Licence', - 'Licence Activated' => 'Licence Activated', - 'Licence Deactivated' => 'Licence Deactivated', - 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', - 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', - 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.', + 'Licence Key' => 'Ліцензійний ключ', + 'Enter License Key' => 'Введіть ліцензійний ключ', + 'Buy Licence' => 'Придбати ліцензію', + 'Buy Lifetime License' => 'Придбати довічну ліцензію', + 'Disable and Cancel Licence' => 'Відключити та скасувати всі ліцензії', + 'Licence Activated' => 'Ліцензію активовано', + 'Licence Deactivated' => 'Ліцензію деактивовано', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Обмежити користувачів, так що вони не можуть використовувати SSH і мають доступ тільки до домашньої теки.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Перегляд, копіювання, редагування, переглядання та використання всіх файлів веб-доменів за допомогою повнофункціонального Файлового менеджеру.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'Це коммерційний модуль, ви повинні придбати ліцензіний ключ для увімкнення.', - 'Minutes' => 'Minutes', - 'Hourly' => 'Hourly', - 'Run Command' => 'Run Command', - 'every month' => 'every month', - 'every odd month' => 'every odd month', - 'every even month' => 'every even month', - 'every day' => 'every day', - 'every odd day' => 'every odd day', - 'every even day' => 'every even day', - 'weekdays (5 days)' => 'weekdays (5 days)', - 'weekend (2 days)' => 'weekend (2 days)', - 'Monday' => 'Monday', - 'Tuesday' => 'Tuesday', - 'Wednesday' => 'Wednesday', - 'Thursday' => 'Thursday', - 'Friday' => 'Friday', - 'Saturday' => 'Saturday', - 'Sunday' => 'Sunday', - 'every hour' => 'every hour', - 'every two hours' => 'every two hours', - 'every minute' => 'every minute', - 'every two minutes' => 'every two minutes', - 'every' => 'every', - 'Generate' => 'Generate', + 'Minutes' => 'Щохвилини', + 'Hourly' => 'Щогодини', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', + 'Run Command' => 'Виконати команду', + 'every month' => 'кожний місяць', + 'every odd month' => 'кожний непарний місяць', + 'every even month' => 'кожний парний місяць', + 'every day' => 'кожний день', + 'every odd day' => 'кожний непарний день', + 'every even day' => 'кожний парний день', + 'weekdays (5 days)' => 'будні (5 днів)', + 'weekend (2 days)' => 'вихідні (2 днів)', + 'Monday' => 'Понеділок', + 'Tuesday' => 'Вівторок', + 'Wednesday' => 'Середа', + 'Thursday' => 'Четвер', + 'Friday' => "П'ятниця", + 'Saturday' => 'Субота', + 'Sunday' => 'Неділя', + 'every hour' => 'Кожну годину', + 'every two hours' => 'кожні дві години', + 'every minute' => 'кожну хвилину', + 'every two minutes' => 'кожні дві хвилини', + 'every' => 'кожні', + 'Generate' => 'Генерувати', 'webalizer' => 'webalizer', 'awstats' => 'awstats', -); +); \ No newline at end of file diff --git a/web/inc/i18n/vi.php b/web/inc/i18n/vi.php index c226a207d..6d62be25f 100644 --- a/web/inc/i18n/vi.php +++ b/web/inc/i18n/vi.php @@ -7,10 +7,10 @@ $LANG['vi'] = array( 'Packages' => 'Gói hosting', 'IP' => 'IP', - 'Graphs' => 'Theo dõi', + 'Graphs' => 'Biểu đồ', 'Statistics' => 'Thống kê', 'Log' => 'Lịch sử', - 'Server' => 'Server', + 'Server' => 'Máy chủ', 'Services' => 'Dịch vụ', 'Firewall' => 'Tường lửa', 'Updates' => 'Cập nhật', @@ -25,19 +25,19 @@ $LANG['vi'] = array( 'CRON' => 'CRON', 'BACKUP' => 'Sao lưu', - 'LOGIN' => 'LOGIN', - 'RESET PASSWORD' => 'RESET PASSWORD', - 'SEARCH' => 'SEARCH', - 'PACKAGE' => 'PACKAGE', + 'LOGIN' => 'ĐĂNG NHẬP', + 'RESET PASSWORD' => 'KHÔI PHỤC MẬT KHẨU', + 'SEARCH' => 'TÌM KIẾM', + 'PACKAGE' => 'GÓI', 'RRD' => 'RRD', - 'STATS' => 'STATS', + 'STATS' => 'THỐNG KÊ', 'LOG' => 'LOG', - 'UPDATES' => 'UPDATES', - 'FIREWALL' => 'FIREWALL', - 'SERVER' => 'SERVER', - 'MEMORY' => 'MEMORY', - 'DISK' => 'DISK', - 'NETWORK' => 'NETWORK', + 'UPDATES' => 'CẬP NHẬT', + 'FIREWALL' => 'TƯỜNG LỬA', + 'SERVER' => 'MÁY CHỦ', + 'MEMORY' => 'RAM', + 'DISK' => 'DUNG LƯỢNG', + 'NETWORK' => 'MẠNG', 'Web Log Manager' => 'Web Log Manager', 'Add User' => 'Thêm tài khoản', @@ -54,7 +54,7 @@ $LANG['vi'] = array( 'Restore All' => 'Khôi phục tất cả', 'Add Package' => 'Thêm gói Hosting', 'Add IP' => 'Thêm địa chỉ IP', - 'Add Rule' => 'Thêm luạt', + 'Add Rule' => 'Thêm luật', 'Ban IP Address' => 'Chặn địa chỉ IP', 'Search' => 'Tìm kiếm', 'Add one more FTP Account' => 'Thêm tài khoản FTP', @@ -68,14 +68,14 @@ $LANG['vi'] = array( 'Save' => 'Lưu lại', 'Submit' => 'Gửi', - 'toggle all' => 'chọn cả', + 'toggle all' => 'chọn tất cả', 'apply to selected' => 'Hành động', - 'rebuild' => 'Build lại', - 'rebuild web' => 'Build lại web', - 'rebuild dns' => 'Build lại dns', - 'rebuild mail' => 'Build lại mail', - 'rebuild db' => 'Build lại cơ sở dữ liệu', - 'rebuild cron' => 'Build lại cron', + 'rebuild' => 'Tạo lại', + 'rebuild web' => 'Tạo lại web', + 'rebuild dns' => 'Tạo lại dns', + 'rebuild mail' => 'Tạo lại mail', + 'rebuild db' => 'Tạo lại cơ sở dữ liệu', + 'rebuild cron' => 'Tạo lại cron', 'update counters' => 'Cập nhật bộ đếm', 'suspend' => 'Đình chỉ', 'unsuspend' => 'Hủy đình chỉ', @@ -282,9 +282,10 @@ $LANG['vi'] = array( 'Default Template' => 'Mẫu mặc định', 'Default Name Servers' => 'Name Servers mặc định', 'Domain' => 'Tên miền', - 'DNS Support' => 'Hỗ trỡ DNS', + 'DNS Support' => 'Hỗ trợ DNS', 'Mail Support' => 'Hỗ trợ email', 'Advanced options' => 'Cấu hình nâng cao', + 'Basic options' => 'Basic options', 'Aliases' => 'Ánh xạ', 'SSL Certificate' => 'Chứng chỉ SSL', 'SSL Key' => 'SSL Key', @@ -376,7 +377,7 @@ $LANG['vi'] = array( 'Action' => 'Hành động', 'Protocol' => 'Giao thức', 'Port' => 'Cổng', - 'Comment' => 'Bình luật', + 'Comment' => 'Bình luận', 'Banlist' => 'Danh sách chặn', 'ranges are acceptable' => 'chấp nhận phạm vi', 'CIDR format is supported' => 'định dạng CIDR được hỗ trợ', @@ -461,22 +462,22 @@ $LANG['vi'] = array( 'SUSPEND_RECORD_CONFIRMATION' => 'Bạn có chắc chắn muốn đình chỉ bản ghi %s?', 'UNSUSPEND_RECORD_CONFIRMATION' => 'Bạn có chắc chắn muốn kích hoạt bản ghi %s?', 'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'Bạn có chắc chắn muốn xóa %s?', - 'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Bạn có chắc chắn muốn đình chỉ %s?', + 'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Bạn có chắc chắn muốn tạm dừng %s?', 'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Bạn có chắc chắn muốn kích hoạt %s?', 'DELETE_DATABASE_CONFIRMATION' => 'Bạn có chắc chắn muốn xóa CSDL %s?', - 'SUSPEND_DATABASE_CONFIRMATION' => 'Bạn có chắc chắn muốn đình chỉ CSDL %s?', + 'SUSPEND_DATABASE_CONFIRMATION' => 'Bạn có chắc chắn muốn tạm dừng CSDL %s?', 'UNSUSPEND_DATABASE_CONFIRMATION' => 'Bạn có chắc chắn muốn kích hoạt CSDL %s?', 'DELETE_CRON_CONFIRMATION' => 'Bạn có chắc chắn muốn xóa tiến trình tự động?', - 'SUSPEND_CRON_CONFIRMATION' => 'Bạn có chắc chắn muốn đình chỉ tiến trình tự động?', + 'SUSPEND_CRON_CONFIRMATION' => 'Bạn có chắc chắn muốn tạm dừng tiến trình tự động?', 'UNSUSPEND_CRON_CONFIRMATION' => 'Bạn có chắc chắn muốn kích hoạt tiến trình tự động?', 'DELETE_BACKUP_CONFIRMATION' => 'Bạn có chắc chắn muốn xóa bản sao lưu %s?', 'DELETE_EXCLUSION_CONFIRMATION' => 'Bạn có chắc chắn muốn xóa loại trừ %s?', 'DELETE_PACKAGE_CONFIRMATION' => 'Bạn có chắc chắn muốn xóa gói %s?', 'DELETE_IP_CONFIRMATION' => 'Bạn có chắc chắn muốn xóa địa chỉ IP %s?', 'DELETE_RULE_CONFIRMATION' => 'Bạn có chắc chắn muốn xóa luật #%s?', - 'SUSPEND_RULE_CONFIRMATION' => 'Bạn có chắc chắn muốn đình chỉ luật #%s?', + 'SUSPEND_RULE_CONFIRMATION' => 'Bạn có chắc chắn muốn tạm dừng luật #%s?', 'UNSUSPEND_RULE_CONFIRMATION' => 'Bạn có chắc chắn muốn kích hoạt luật #%s?', - 'LEAVE_PAGE_CONFIRMATION' => 'Leave Page?', + 'LEAVE_PAGE_CONFIRMATION' => 'Thoát khỏi trang này ?', 'RESTART_CONFIRMATION' => 'Bạn có chắc chắn muốn khởi động lại %s?', 'Welcome' => 'Xin chào', 'LOGGED_IN_AS' => 'Đăng nhập với tài khoản %s', @@ -502,7 +503,7 @@ $LANG['vi'] = array( 'CRON_EXCLUSIONS' => 'Để loại bỏ tất cả tiến trình, sử dụng ký tự *', 'USER_EXCLUSIONS' => 'Điền tên thư mục, mỗi thư mục một dòng. Để loại bỏ tất cả thư mục, sử dụng ký tự *', - 'Welcome to Vesta Control Panel' => 'Chào mứng đến Vesta Control Panel', + 'Welcome to Vesta Control Panel' => 'Chào mừng bạn đến Vesta Control Panel', 'MAIL_FROM' => 'Vesta Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Xin chào, %s %s,\n", 'GREETINGS' => "Hello,\n", @@ -525,10 +526,10 @@ $LANG['vi'] = array( 'MAIL_RESET_SUBJECT' => 'Khôi phục mật khẩu tại %s', 'PASSWORD_RESET_REQUEST' => "Để thiết lập lại mật khẩu quản trị, vui lòng truy cập vào địa chỉ:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, you may go to https://%s/reset/?action=code&user=%s và nhập mã sau:\n%s\n\nNếu bạn không thực hiện khôi phục mật khẩu, vui lòng bỏ qua email này.\n\n--\nVesta Control Panel\n", - 'Jan' => 'Tháng một', - 'Feb' => 'Tháng hai', - 'Mar' => 'Tháng ba', - 'Apr' => 'Tháng tư', + 'Jan' => 'Tháng 1', + 'Feb' => 'Tháng 2', + 'Mar' => 'Tháng 3', + 'Apr' => 'Tháng 4', 'May' => 'Tháng 5', 'Jun' => 'Tháng 6', 'Jul' => 'Tháng 7', @@ -538,10 +539,10 @@ $LANG['vi'] = array( 'Nov' => 'Tháng 11', 'Dec' => 'Tháng 12', - 'Configuring Server' => 'Cài đặt máy chủ', - 'Hostname' => 'Tên miền', + 'Configuring Server' => 'Cấu hình máy chủ', + 'Hostname' => 'Tên miền máy chủ', 'Time Zone' => 'Múi giờ', - 'Default Language' => 'Ngôn ngữ mặc đinhk', + 'Default Language' => 'Ngôn ngữ mặc định', 'Proxy Server' => 'Proxy Server', 'Web Server' => 'Web Server', 'Backend Server' => 'Backend Server', @@ -591,12 +592,13 @@ $LANG['vi'] = array( 'NEW DIR' => 'Thêm thư mục mới', 'DELETE' => 'Xóa', 'RENAME' => 'Đổi tên', + 'MOVE' => 'MOVE', 'RIGHTS' => 'RIGHTS', 'COPY' => 'Sao chép', 'ARCHIVE' => 'Nén', 'EXTRACT' => 'Giải nén', 'DOWNLOAD' => 'Tải về', - 'Are you sure?' => 'Are you sure?', // unused? + 'Are you sure?' => 'Bạn có chắc chắn ?', // unused? 'Hit' => 'Lượt', 'to reload the page' => 'để tải lại trang', 'Directory name cannot be empty' => 'Tên thư mục không thể để trống', @@ -611,6 +613,7 @@ $LANG['vi'] = array( 'Copy' => 'Sao chép', 'Cancel' => 'Hủy', 'Rename' => 'Đổi tên', + 'Move' => 'Move', 'Change Rights' => 'Change Rights', 'Delete' => 'Xóa', 'Extract' => 'Giải nén', @@ -621,7 +624,9 @@ $LANG['vi'] = array( 'YOU ARE REMOVING' => 'YOU ARE REMOVING', 'Delete items' => 'Delete items', 'Copy files' => 'Copy files', + 'Move files' => 'Move files', 'Are you sure you want to copy' => 'Bạn có chắc chắn muốn sao chép', + 'Are you sure you want to move' => 'Are you sure you want to move', 'Are you sure you want to delete' => 'Bạn có chắc chắn muốn xóa', 'into' => 'into', 'existing files will be replaced' => 'tệp tồn tại sẽ được ghi đè', @@ -674,6 +679,7 @@ $LANG['vi'] = array( 'Go to the Top of the File List' => 'Lên đầu danh sách tệp', 'Go to the Last File' => 'Di chuyển đến tệp cuối cùng', 'Open File / Enter Directory' => 'Mở tệp/Truy cập thư mục', + 'Edit File' => 'Edit File', 'Go to Parent Directory' => 'Về thư mục cha', 'Select Current File' => 'Chọn tệp hiện tại', 'Select Bunch of Files' => 'Chọn nhiều tệp', @@ -694,6 +700,9 @@ $LANG['vi'] = array( 'Minutes' => 'Minutes', 'Hourly' => 'Hourly', + 'Daily' => 'Dayly', + 'Weekly' => 'Weekly', + 'Monthly' => 'Monthly', 'Run Command' => 'Run Command', 'every month' => 'every month', 'every odd month' => 'every odd month', diff --git a/web/inc/main.php b/web/inc/main.php index 901c37091..e0761013b 100644 --- a/web/inc/main.php +++ b/web/inc/main.php @@ -20,6 +20,7 @@ if(!isset($_SESSION['user_combined_ip'])){ // Checking user to use session from the same IP he has been logged in if($_SESSION['user_combined_ip'] != $user_combined_ip){ session_destroy(); + session_start(); $_SESSION['request_uri'] = $_SERVER['REQUEST_URI']; header("Location: /login/"); exit; @@ -28,6 +29,7 @@ if($_SESSION['user_combined_ip'] != $user_combined_ip){ // Check system settings if ((!isset($_SESSION['VERSION'])) && (!defined('NO_AUTH_REQUIRED'))) { session_destroy(); + session_start(); $_SESSION['request_uri'] = $_SERVER['REQUEST_URI']; header("Location: /login/"); exit; diff --git a/web/js/app.js b/web/js/app.js index 249fd89bf..af335fa5d 100644 --- a/web/js/app.js +++ b/web/js/app.js @@ -797,9 +797,9 @@ App.Ajax.request = function(method, data, callback, onError){ }*/ //App.Helpers.setAjaxBusy(method, data); data = data || {}; - + var prgs = $('.progress-container'); - + switch (method) { case 'cd': prgs.find('title').text('Opening dir'); @@ -825,8 +825,12 @@ App.Ajax.request = function(method, data, callback, onError){ prgs.find('title').text('Renaming file'); prgs.show(); break; + case 'copy_file': + case 'copy_directory': + prgs.find('title').text('Copying files'); + prgs.show(); + break; default: - break; } diff --git a/web/js/file_manager.js b/web/js/file_manager.js index cbf6ca6c1..1692aa8af 100644 --- a/web/js/file_manager.js +++ b/web/js/file_manager.js @@ -314,7 +314,6 @@ FM.open = function(dir, box, callback) { 'dir': dir }; App.Ajax.request('cd', params, function(reply) { - //var tab = FM.getTabLetter(FM.CURRENT_TAB); FM.preselectedItems[tab] = []; if (reply.result == true) { var html = FM.generate_listing(reply.listing, box); @@ -324,17 +323,16 @@ FM.open = function(dir, box, callback) { } callback && callback(reply); - + var current_pwd = dir.trim() == '' ? FM.ROOT_DIR : dir; - + FM.updateTopLevelPathBar(box, tab, current_pwd); - - + var path_a = FM['TAB_A_CURRENT_PATH'] == '' ? FM.ROOT_DIR : FM['TAB_A_CURRENT_PATH']; var path_b = FM['TAB_B_CURRENT_PATH'] == '' ? FM.ROOT_DIR : FM['TAB_B_CURRENT_PATH']; var url = '/list/directory/?dir_a='+path_a+'&dir_b='+path_b; history.pushState({}, null, url); - + if (FM['CURRENT_' + tab + '_LINE'] == -1) { FM.setActive(0, FM.CURRENT_TAB); } @@ -653,10 +651,13 @@ FM.generate_listing = function(reply, box) { var t_index = tab + '_' + i; + o.name = o.name.replace('"', '\"'); + o.full_path = o.full_path.replace('"', '\"'); + var tpl = Tpl.get('entry_line', 'FM'); tpl.set(':CL_ACTION_1', cl_act); - tpl.set(':SOURCE', $.toJSON(o)); tpl.set(':NAME', o.name); + tpl.set(':SOURCE', $.toJSON(o)); tpl.set(':PERMISSIONS', o.permissions); tpl.set(':OWNER', o.owner); tpl.set(':SIZE_VALUE', o.type == 'f' ? FM.humanFileSizeValue(o.size) : ' '); @@ -738,7 +739,7 @@ FM.bulkOperation = function(ref) { $(ref).find('option[value=-1]').attr('selected', true); } -FM.checkBulkStatus = function(bulkStatuses, acc) { +FM.checkBulkStatus = function(bulkStatuses, acc, dont_reload) { var status = true; var msg = ''; if (bulkStatuses.length == acc.length) { @@ -760,10 +761,11 @@ FM.checkBulkStatus = function(bulkStatuses, acc) { $('#popup .ok').hide(); } - var box = FM['TAB_' + tab]; var tab = FM.getTabLetter(FM.CURRENT_TAB); -// FM.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box, function(){}, true); - FM.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box, function(){}, false); + var box = FM['TAB_' + tab]; + if(!dont_reload){ + FM.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box); + } } } @@ -803,8 +805,6 @@ FM.humanFileSizeUnit = function(size) { FM.bulkCopyDo = function() { var acc = $(FM.CURRENT_TAB).find('.dir.selected'); if (acc.length > 0) { - //FM.popupClose(); - var cfr_html = ''; var numberOfItems = 0; $.each(acc, function(i, o) { @@ -825,7 +825,6 @@ FM.bulkCopyDo = function() { src = $.parseJSON(src); if (FM.isItemPseudo(src)) { - //cfr_html += '
'+src.name+'
'; return; } @@ -836,9 +835,6 @@ FM.bulkCopyDo = function() { } if (FM.isItemPseudo(src)) { - /*return FM.displayError( - App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED - );*/ return; } @@ -856,16 +852,18 @@ FM.bulkCopyDo = function() { dir_target: dest }; + App.Ajax.request(action, params, function(reply) { if (reply.result == true) { bulkStatuses.push(true); } else { - //FM.showError('copy-items', reply.message); bulkStatuses.push(reply.message); } - - FM.checkBulkStatus(bulkStatuses, acc); + FM.checkBulkStatus(bulkStatuses, acc, true); + if(bulkStatuses.length == acc.length){ + FM.open(FM['TAB_' + opposite_tab + '_CURRENT_PATH'], FM['TAB_' + opposite_tab]); + } }); }); } @@ -960,7 +958,6 @@ FM.bulkRemoveDo = function() { bulkStatuses.push(true); } else { - //FM.showError('copy-items', reply.message); bulkStatuses.push(reply.message); } @@ -997,76 +994,6 @@ FM.bulkRemove = function() { } } - -FM.bulkRemove11111 = function() { - var acc = $(FM.CURRENT_TAB).find('.dir.selected'); - if (acc.length > 0) { - //FM.popupClose(); - - var cfr_html = ''; - - $.each(acc, function(i, o) { - var ref = $(o); - var src = $(ref).find('.source').val(); - src = $.parseJSON(src); - - if (!FM.isItemPseudo(o)) { - cfr_html += '
'+src.name+'
'; - } - }); - - var tpl = Tpl.get('popup_bulk', 'FM'); - tpl.set(':ACTION', App.Constants.FM_YOU_ARE_REMOVING); - tpl.set(':TEXT', cfr_html); - - FM.popupOpen(tpl.finalize()); - - var bulkStatuses = []; - $.each(acc, function(i, o) { - var ref = $(o); - var src = $(ref).find('.source').val(); - src = $.parseJSON(src); - - var tab = FM.getTabLetter(FM.CURRENT_TAB); - - var opposite_tab = 'A'; - if (tab == 'A') { - opposite_tab = 'B'; - } - - if (FM.isItemPseudo(src)) { - return; - /*return FM.displayError( - App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED - );*/ - } - - var dest = FM['TAB_' + opposite_tab + '_CURRENT_PATH' ]; - if (dest == '') { - dest = GLOBAL.ROOT_DIR; - } - - var params = { - item: src.full_path, - dir: FM['TAB_' + tab + '_CURRENT_PATH'] - }; - - App.Ajax.request('delete_files', params, function(reply) { - if (reply.result == true) { - bulkStatuses.push(true); - } - else { - //FM.showError('copy-items', reply.message); - bulkStatuses.push(reply.message); - } - - FM.checkBulkStatus(bulkStatuses, acc); - }); - }); - - } -} - FM.toggleAllItemsSelected = function() { var tab = FM.getTabLetter(FM.CURRENT_TAB); var box = FM['TAB_' + tab]; @@ -1217,7 +1144,6 @@ FM.unpackItem = function() { App.Constants.FM_NO_FILE_SELECTED ); } - var src = selected.find('.source').val(); src = $.parseJSON(src); @@ -1233,12 +1159,12 @@ FM.unpackItem = function() { App.Constants.FM_FILE_TYPE_NOT_SUPPORTED ); } - + var dst = FM['TAB_' + tab + '_CURRENT_PATH']; if (dst == '') { dst = GLOBAL.ROOT_DIR; } - + var tpl = Tpl.get('popup_unpack', 'FM'); tpl.set(':FILENAME', src.name); tpl.set(':DST_DIRNAME', (dst).replace('//', '/')); @@ -1248,36 +1174,32 @@ FM.unpackItem = function() { FM.packItem = function() { var tab = FM.getTabLetter(FM.CURRENT_TAB); var box = FM['TAB_' + tab]; - var selected = $(FM['TAB_' + tab] ).find('.dir.active'); + var selected = $(FM['TAB_' + tab] ).find('.dir.selected'); if (selected.length == 0) { return FM.displayError( App.Constants.FM_NO_FILE_SELECTED ); } - var src = selected.find('.source').val(); src = $.parseJSON(src); - - if (FM.isItemPseudo(src)) { - return FM.displayError( - App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED - ); - } - - if (FM.isItemPseudo(src)) { + + if (FM.isItemPseudo(src) && selected.length <=1 ) { return FM.displayError( App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED ); } - var dst = FM['TAB_' + tab + '_CURRENT_PATH']; if (dst == '') { dst = GLOBAL.ROOT_DIR; } - + var tpl = Tpl.get('popup_pack', 'FM'); + if(selected.length > 1){ + tpl = Tpl.get('popup_bulk_pack', 'FM'); + } + tpl.set(':NUMBER_OF_ITEMS', selected.length); tpl.set(':FILENAME', src.name); tpl.set(':DST_DIRNAME', (dst + '/' + src.name + '.tar.gz').replace('//', '/')); FM.popupOpen(tpl.finalize()); @@ -1346,15 +1268,15 @@ FM.confirmRename = function() { var src = selected.find('.source').val(); src = $.parseJSON(src); - + var target_name = $('#rename-title').val(); - + if (target_name.trim().length == 0) { return FM.displayError( App.Constants.FM_FILE_NAME_CANNOT_BE_EMPTY ); } - + var action = FM.isItemFile(src) ? 'rename_file' : 'rename_directory'; var params = { @@ -1362,7 +1284,7 @@ FM.confirmRename = function() { target_name: target_name, dir: FM['TAB_' + tab + '_CURRENT_PATH'] + '/' }; - + App.Ajax.request(action, params, function(reply) { if (reply.result == true) { FM.popupClose(); @@ -1398,6 +1320,198 @@ FM.renameItems = function() { FM.popupOpen(tpl.finalize()); } +FM.confirmMove = function() { + var tab = FM.getTabLetter(FM.CURRENT_TAB); + var box = FM['TAB_' + tab]; + var selected = $(FM['TAB_' + tab] ).find('.dir.active'); + if (!selected) { + return FM.displayError( + App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED + ); + } + + var src = selected.find('.source').val(); + src = $.parseJSON(src); + + var target_name = $('#dst-name').val(); + + if (target_name.trim().length == 0) { + return FM.displayError( + App.Constants.FM_FILE_NAME_CANNOT_BE_EMPTY + ); + } + + var opposite_tab = 'A'; + if (tab == 'A') { + opposite_tab = 'B'; + } + var opposite_box = FM['TAB_' + opposite_tab]; + + var action = FM.isItemFile(src) ? 'move_file' : 'move_directory'; + + var params = { + item: FM['TAB_' + tab + '_CURRENT_PATH'] + '/' + src.name, + target_name: target_name + }; + + App.Ajax.request(action, params, function(reply) { + if (reply.result == true) { + FM.popupClose(); + FM.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box); + FM.openAndSync(FM['TAB_' + opposite_tab + '_CURRENT_PATH'], opposite_box); + } + else { + FM.showError('rename-items', reply.message); + } + }); +} + + +FM.moveItems = function() { + var tab = FM.getTabLetter(FM.CURRENT_TAB); + var selected = $(FM['TAB_' + tab] ).find('.dir.selected'); + if (selected.length == 0) { + return FM.displayError( + App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED + ); + } + + if (selected.length > 1) { // multi operation + return FM.bulkMove(); + } + + var src = selected.find('.source').val(); + src = $.parseJSON(src); + + if (FM.isItemPseudo(src)) { + return FM.displayError( + App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED + ); + } + + var opposite_tab = 'A'; + if (tab == 'A') { + opposite_tab = 'B'; + } + + var dst = FM['TAB_' + opposite_tab + '_CURRENT_PATH']; + if (dst == '') { + dst = GLOBAL.ROOT_DIR; + } + + var tpl = Tpl.get('popup_move', 'FM'); + tpl.set(':FILENAME', src.full_path); + tpl.set(':DST_NAME', (dst + '/' + src.name).replace('//', '/')); + FM.popupOpen(tpl.finalize()); +} + +FM.bulkMove = function() { + var acc = $(FM.CURRENT_TAB).find('.dir.selected'); + if (acc.length > 0) { + FM.popupClose(); + + var cfr_html = ''; + var numberOfItems = 0; + $.each(acc, function(i, o) { + var ref = $(o); + var src = $(ref).find('.source').val(); + src = $.parseJSON(src); + + if (!FM.isItemPseudo(src)) { + cfr_html += '
'+src.name+'
'; + numberOfItems++; + } + }); + + var tab = FM.getTabLetter(FM.CURRENT_TAB); + var opposite_tab = 'A'; + if (tab == 'A') { + opposite_tab = 'B'; + } + var dest = FM['TAB_' + opposite_tab + '_CURRENT_PATH' ]; + if (dest == '') { + dest = GLOBAL.ROOT_DIR; + } + + var tpl = Tpl.get('popup_bulk_move', 'FM'); + tpl.set(':NUMBER_OF_ITEMS', numberOfItems); + tpl.set(':DST_NAME', dest); + //popup_bulk_copy + + FM.popupOpen(tpl.finalize()); + } +} + +FM.bulkMoveDo = function() { + var acc = $(FM.CURRENT_TAB).find('.dir.selected'); + if (acc.length > 0) { + //FM.popupClose(); + + var cfr_html = ''; + var numberOfItems = 0; + $.each(acc, function(i, o) { + var ref = $(o); + var src = $(ref).find('.source').val(); + src = $.parseJSON(src); + + if (!FM.isItemPseudo(o)) { + cfr_html += '
'+src.name+'
'; + numberOfItems++; + } + }); + + var bulkStatuses = []; + $.each(acc, function(i, o) { + var ref = $(o); + var src = $(ref).find('.source').val(); + src = $.parseJSON(src); + + var target_name = $('#dst-name').val(); + if (target_name.trim().length == 0) { + return FM.displayError( + App.Constants.FM_FILE_NAME_CANNOT_BE_EMPTY + ); + } + + var tab = FM.getTabLetter(FM.CURRENT_TAB); + var opposite_tab = 'A'; + if (tab == 'A') { + opposite_tab = 'B'; + } + + if (FM.isItemPseudo(src)) { + return; + } + + var dest = FM['TAB_' + opposite_tab + '_CURRENT_PATH' ]; + if (dest == '') { + dest = GLOBAL.ROOT_DIR; + } + var action = FM.isItemFile(src) ? 'move_file' : 'move_directory'; + + var params = { + item: FM['TAB_' + tab + '_CURRENT_PATH'] + '/' + src.name, + target_name: target_name + }; + + App.Ajax.request(action, params, function(reply) { + if (reply.result == true) { + bulkStatuses.push(true); + } + else { + //FM.showError('copy-items', reply.message); + bulkStatuses.push(reply.message); + } + + FM.checkBulkStatus(bulkStatuses, acc); + if(bulkStatuses.length == acc.length){ + FM.open(FM['TAB_' + opposite_tab + '_CURRENT_PATH'], FM['TAB_' + opposite_tab]); + } + }); + }); + } +} + FM.confirmChmod = function() { var tab = FM.getTabLetter(FM.CURRENT_TAB); var box = FM['TAB_' + tab]; @@ -1540,9 +1654,6 @@ FM.confirmBulkChmod = function() { $('#popup .message').show().html(msg); $('#popup .ok').hide(); } - -// FM.popupClose(); -// FM.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box); } } @@ -1635,6 +1746,7 @@ FM.popupOpen = function(html) { } FM.popupClose = function() { + $('#reload-in-time').remove(); clearTimeout(FM.Env.errorMessageHideTimeout); return $('#popup').flayer_close(); } @@ -1651,22 +1763,22 @@ FM.copyItems = function() { if (selected.length > 1) { // multi operation return FM.bulkCopy(); } - + var src = selected.find('.source').val(); src = $.parseJSON(src); - + if (FM.isItemPseudo(src)) { return FM.displayError( App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED ); } - + var opposite_tab = 'A'; if (tab == 'A') { opposite_tab = 'B'; } - + var dst = FM['TAB_' + opposite_tab + '_CURRENT_PATH']; if (dst == '') { dst = GLOBAL.ROOT_DIR; @@ -1687,7 +1799,7 @@ FM.confirmUnpackItem = function () { App.Constants.FM_NO_FILE_SELECTED ); } - + var opposite_tab = 'A'; if (tab == 'A') { opposite_tab = 'B'; @@ -1695,7 +1807,7 @@ FM.confirmUnpackItem = function () { var src = selected.find('.source').val(); src = $.parseJSON(src); - + if (FM.isItemPseudo(src)) { return FM.displayError( App.Constants.FM_NO_FILE_SELECTED @@ -1707,12 +1819,12 @@ FM.confirmUnpackItem = function () { App.Constants.FM_FILE_TYPE_NOT_SUPPORTED ); } - + var dst = FM['TAB_' + tab + '_CURRENT_PATH']; if (dst == '') { dst = GLOBAL.ROOT_DIR; } - + var params = { item: src.full_path, filename: src.name, @@ -1735,45 +1847,58 @@ FM.confirmUnpackItem = function () { FM.confirmPackItem = function () { var tab = FM.getTabLetter(FM.CURRENT_TAB); var box = FM['TAB_' + tab]; - var selected = $(FM['TAB_' + tab] ).find('.dir.active'); + var selected = $(FM['TAB_' + tab] ).find('.dir.active, .dir.selected'); if (selected.length == 0) { return FM.displayError( App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED ); } - + if (selected.length == 1) { + var ref = $(selected[0]); + var src = $(ref).find('.source').val(); + src = $.parseJSON(src); + + if (FM.isItemPseudo(src)) { + return FM.displayError( + App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED + ); + } + } + + if (selected.length > 0) { + var files_arr = []; + $.each(selected, function(i, o) { + var ref = $(o); + var src = $(ref).find('.source').val(); + src = $.parseJSON(src); + + if (!FM.isItemPseudo(o)) { + files_arr.push(src.full_path); + } + }); + } + + + var opposite_tab = 'A'; if (tab == 'A') { opposite_tab = 'B'; } - var src = selected.find('.source').val(); - src = $.parseJSON(src); - - if (FM.isItemPseudo(src)) { - return FM.displayError( - App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED - ); - } - var dst = FM['TAB_' + tab + '_CURRENT_PATH']; if (dst == '') { dst = GLOBAL.ROOT_DIR; } - + var params = { - item: src.full_path, - filename: src.name, - dir: FM['TAB_' + tab + '_CURRENT_PATH'], - dir_target: $('#pack-destination').val() + items: files_arr.join(','), + dst_item: $('#pack-destination').val() }; - App.Ajax.request('pack_item', params, function(reply) { if (reply.result == true) { FM.popupClose(); FM.open(FM['TAB_' + tab + '_CURRENT_PATH'], FM['TAB_' + tab]); - FM.open(FM['TAB_' + opposite_tab + '_CURRENT_PATH'], FM['TAB_' + opposite_tab]); } else { FM.showError('unpack_item', reply.message); @@ -1784,7 +1909,7 @@ FM.confirmPackItem = function () { FM.confirmCopyItems = function () { var tab = FM.getTabLetter(FM.CURRENT_TAB); var selected = $(FM['TAB_' + tab] ).find('.dir.selected'); - + if (!selected) { return FM.displayError( App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED @@ -1822,7 +1947,6 @@ FM.confirmCopyItems = function () { App.Ajax.request(action, params, function(reply) { if (reply.result == true) { FM.popupClose(); - // FM.open(FM['TAB_' + tab + '_CURRENT_PATH'], FM['TAB_' + tab]); FM.openAndSync(FM['TAB_' + opposite_tab + '_CURRENT_PATH'], FM['TAB_' + opposite_tab]); } else { @@ -1962,12 +2086,11 @@ FM.triggerRefreshActionTrick = function() { $('#reload-in-time').remove(); FM.Env.RELOAD_IN_TIME = true; var tpl = Tpl.get('reload_in_time', 'FM'); - //tpl.set(':TIME_LEFT', FM.RELOAD_IN_TIME_SECONDS + 1); - + $('body').append(tpl.finalize()); - + var ref = $('#reload-in-time').find('.reload-in-time-counter'); - + var timeleft = FM.RELOAD_IN_TIME_SECONDS; FM.Env.reload_in_time_interval = setInterval(function() { @@ -2293,6 +2416,32 @@ $(document).ready(function() { 'target': document }); + shortcut.add("F4",function() { + var tab = FM.getTabLetter(FM.CURRENT_TAB); + var elm = $(FM.CURRENT_TAB).find('.dir:eq('+FM['CURRENT_'+tab+'_LINE']+')'); + + if (elm.length == 1) { + var src = $.parseJSON($(elm).find('.source').val()); + + if (src.type == 'd') { + } + else { + if(FM.IMG_FILETYPES.indexOf(src.filetype) >= 0 && src.filetype.length > 0) { + FM.fotoramaOpen(tab, 'img-' + elm.index()); + } + else { + FM.openFile(src.full_path, FM.CURRENT_TAB, elm); + } + } + } + },{ + 'type': 'keydown', + 'propagate': false, + 'disable_in_input': false, + 'target': document + }); + + shortcut.add("Enter",function() { if (FM.isPopupOpened()) { return FM.handlePopupSubmit(); @@ -2357,6 +2506,16 @@ $(document).ready(function() { 'target': document }); + shortcut.add("m",function() { + FM.moveItems(); + },{ + 'type': 'keydown', + 'propagate': false, + 'disable_in_input': true, + 'target': document + }); + + shortcut.add("shift+F6",function() { FM.renameItems(); },{ diff --git a/web/js/i18n.js.php b/web/js/i18n.js.php index 3200a356f..f625becac 100644 --- a/web/js/i18n.js.php +++ b/web/js/i18n.js.php @@ -24,6 +24,7 @@ App.Constants.FM_DIRECTORY_NOT_AVAILABLE = ''; App.Constants.FM_CLOSE = ''; App.Constants.FM_COPY = ''; +App.Constants.FM_MOVE = ''; App.Constants.FM_CANCEL = ''; App.Constants.FM_RENAME = ''; App.Constants.FM_CHMOD = ''; @@ -38,8 +39,10 @@ App.Constants.FM_YOU_ARE_COPYING = ''; App.Constants.FM_YOU_ARE_REMOVING = ''; App.Constants.FM_COPY_BULK = ''; +App.Constants.FM_MOVE_BULK = ''; App.Constants.FM_CONFIRM_COPY = ''; +App.Constants.FM_CONFIRM_MOVE = ''; App.Constants.FM_CONFIRM_DELETE = ''; App.Constants.FM_INTO_KEYWORD = ''; App.Constants.FM_EXISTING_FILES_WILL_BE_REPLACED= ''; diff --git a/web/js/init.js b/web/js/init.js index b4f43edb5..3ac6175e3 100644 --- a/web/js/init.js +++ b/web/js/init.js @@ -548,6 +548,10 @@ $(document).ready(function(){ VE.navigation.init(); + + $('.button').attr('title','ctrl+Enter'); + $('.button.cancel').attr('title','ctrl+Backspace'); + VE.core.register(); if (location.href.search(/list/) != -1) { var shift_select_ref = $('body').finderSelect({ diff --git a/web/js/iviewer/img/iviewer.rotate_left.png b/web/js/iviewer/img/iviewer.rotate_left.png index df0956de9..d52c2e114 100644 Binary files a/web/js/iviewer/img/iviewer.rotate_left.png and b/web/js/iviewer/img/iviewer.rotate_left.png differ diff --git a/web/js/iviewer/img/iviewer.rotate_right.png b/web/js/iviewer/img/iviewer.rotate_right.png index 7a6c82987..7468cad4d 100644 Binary files a/web/js/iviewer/img/iviewer.rotate_right.png and b/web/js/iviewer/img/iviewer.rotate_right.png differ diff --git a/web/js/iviewer/test/arrow.png b/web/js/iviewer/test/arrow.png index 550374092..f0a571e03 100644 Binary files a/web/js/iviewer/test/arrow.png and b/web/js/iviewer/test/arrow.png differ diff --git a/web/js/iviewer/test/lightbox-gallery/img/bg_transblack.png b/web/js/iviewer/test/lightbox-gallery/img/bg_transblack.png index 855f7e5e4..706d3b646 100644 Binary files a/web/js/iviewer/test/lightbox-gallery/img/bg_transblack.png and b/web/js/iviewer/test/lightbox-gallery/img/bg_transblack.png differ diff --git a/web/js/iviewer/test/lightbox-gallery/img/btn_close.png b/web/js/iviewer/test/lightbox-gallery/img/btn_close.png index 53180b3f3..864981f89 100644 Binary files a/web/js/iviewer/test/lightbox-gallery/img/btn_close.png and b/web/js/iviewer/test/lightbox-gallery/img/btn_close.png differ diff --git a/web/js/iviewer/test/lightbox-gallery/img/btn_next.png b/web/js/iviewer/test/lightbox-gallery/img/btn_next.png index c3cdc5067..ea40d4a63 100644 Binary files a/web/js/iviewer/test/lightbox-gallery/img/btn_next.png and b/web/js/iviewer/test/lightbox-gallery/img/btn_next.png differ diff --git a/web/js/iviewer/test/lightbox-gallery/img/btn_prev.png b/web/js/iviewer/test/lightbox-gallery/img/btn_prev.png index addebd326..d0467e5f5 100644 Binary files a/web/js/iviewer/test/lightbox-gallery/img/btn_prev.png and b/web/js/iviewer/test/lightbox-gallery/img/btn_prev.png differ diff --git a/web/js/iviewer/test/lightbox-gallery/img/btn_zoomin.png b/web/js/iviewer/test/lightbox-gallery/img/btn_zoomin.png index 6cdf77c47..233058db9 100644 Binary files a/web/js/iviewer/test/lightbox-gallery/img/btn_zoomin.png and b/web/js/iviewer/test/lightbox-gallery/img/btn_zoomin.png differ diff --git a/web/js/iviewer/test/lightbox-gallery/img/btn_zoomout.png b/web/js/iviewer/test/lightbox-gallery/img/btn_zoomout.png index 8394c217e..515b150a7 100644 Binary files a/web/js/iviewer/test/lightbox-gallery/img/btn_zoomout.png and b/web/js/iviewer/test/lightbox-gallery/img/btn_zoomout.png differ diff --git a/web/js/iviewer/test/lightbox/img/bg_transblack.png b/web/js/iviewer/test/lightbox/img/bg_transblack.png index 855f7e5e4..706d3b646 100644 Binary files a/web/js/iviewer/test/lightbox/img/bg_transblack.png and b/web/js/iviewer/test/lightbox/img/bg_transblack.png differ diff --git a/web/js/iviewer/test/lightbox/img/btn_close.png b/web/js/iviewer/test/lightbox/img/btn_close.png index 53180b3f3..864981f89 100644 Binary files a/web/js/iviewer/test/lightbox/img/btn_close.png and b/web/js/iviewer/test/lightbox/img/btn_close.png differ diff --git a/web/js/iviewer/test/lightbox/img/btn_zoomin.png b/web/js/iviewer/test/lightbox/img/btn_zoomin.png index 6cdf77c47..233058db9 100644 Binary files a/web/js/iviewer/test/lightbox/img/btn_zoomin.png and b/web/js/iviewer/test/lightbox/img/btn_zoomin.png differ diff --git a/web/js/iviewer/test/lightbox/img/btn_zoomout.png b/web/js/iviewer/test/lightbox/img/btn_zoomout.png index 8394c217e..515b150a7 100644 Binary files a/web/js/iviewer/test/lightbox/img/btn_zoomout.png and b/web/js/iviewer/test/lightbox/img/btn_zoomout.png differ diff --git a/web/js/pages/edit_server_mysql.js b/web/js/pages/edit_server_mysql.js new file mode 100644 index 000000000..b1949368f --- /dev/null +++ b/web/js/pages/edit_server_mysql.js @@ -0,0 +1,41 @@ +function toggleOptions(){ + if($('#advanced-options').is(':visible')){ + $.removeCookie('advanced'); + $('#advanced-options').hide(); + $('#basic-options').show(); + } else { + $.cookie('advanced', 1); + $('#advanced-options').show(); + $('#basic-options').hide(); + + var advance_options = $('#advanced-options textarea'); + + $('#vstobjects input[type=text]').each(function(i, elm){ + var search = $(elm).attr('regexp'); + var prev_value = $(elm).attr('prev_value'); + $(elm).attr('prev_value', $(elm).val()); + var regexp = new RegExp('^('+search+')(.+)('+prev_value+')', 'm'); + advance_options.val(advance_options.val().replace(regexp, '$1$2' + $(elm).val())); + }) + } +} + +$('#vstobjects').submit(function(){ + if($('#basic-options').is(':visible')){ + var advance_options = $('#advanced-options textarea'); + + $('#vstobjects input[type=text]').each(function(i, elm){ + var search = $(elm).attr('regexp'); + var prev_value = $(elm).attr('prev_value'); + $(elm).attr('prev_value', $(elm).val()); + var regexp = new RegExp('^('+search+')(.+)('+prev_value+')', 'm'); + advance_options.val(advance_options.val().replace(regexp, '$1$2' + $(elm).val())); + }) + } +}); + +$(document).ready(function() { + if($.cookie('advanced')){ + toggleOptions(); + } +}); diff --git a/web/js/pages/edit_server_nginx.js b/web/js/pages/edit_server_nginx.js new file mode 100644 index 000000000..9a9cebd72 --- /dev/null +++ b/web/js/pages/edit_server_nginx.js @@ -0,0 +1,41 @@ +function toggleOptions(){ + if($('#advanced-options').is(':visible')){ + $.removeCookie('advanced'); + $('#advanced-options').hide(); + $('#basic-options').show(); + } else { + $.cookie('advanced', 1); + $('#advanced-options').show(); + $('#basic-options').hide(); + + var advance_options = $('#advanced-options textarea'); + + $('#vstobjects input[type=text]').each(function(i, elm){ + var search = $(elm).attr('regexp'); + var prev_value = $(elm).attr('prev_value'); + $(elm).attr('prev_value', $(elm).val()); + var regexp = new RegExp('('+search+')(.+)('+prev_value+')'); + advance_options.val(advance_options.val().replace(regexp, '$1$2' + $(elm).val())); + }) + } +} + +$('#vstobjects').submit(function(){ + if($('#basic-options').is(':visible')){ + var advance_options = $('#advanced-options textarea'); + + $('#vstobjects input[type=text]').each(function(i, elm){ + var search = $(elm).attr('regexp'); + var prev_value = $(elm).attr('prev_value'); + $(elm).attr('prev_value', $(elm).val()); + var regexp = new RegExp('('+search+')(.+)('+prev_value+')'); + advance_options.val(advance_options.val().replace(regexp, '$1$2' + $(elm).val())); + }) + } +}); + +$(document).ready(function() { + if($.cookie('advanced')){ + toggleOptions(); + } +}); diff --git a/web/js/pages/edit_server_php.js b/web/js/pages/edit_server_php.js new file mode 100644 index 000000000..b1949368f --- /dev/null +++ b/web/js/pages/edit_server_php.js @@ -0,0 +1,41 @@ +function toggleOptions(){ + if($('#advanced-options').is(':visible')){ + $.removeCookie('advanced'); + $('#advanced-options').hide(); + $('#basic-options').show(); + } else { + $.cookie('advanced', 1); + $('#advanced-options').show(); + $('#basic-options').hide(); + + var advance_options = $('#advanced-options textarea'); + + $('#vstobjects input[type=text]').each(function(i, elm){ + var search = $(elm).attr('regexp'); + var prev_value = $(elm).attr('prev_value'); + $(elm).attr('prev_value', $(elm).val()); + var regexp = new RegExp('^('+search+')(.+)('+prev_value+')', 'm'); + advance_options.val(advance_options.val().replace(regexp, '$1$2' + $(elm).val())); + }) + } +} + +$('#vstobjects').submit(function(){ + if($('#basic-options').is(':visible')){ + var advance_options = $('#advanced-options textarea'); + + $('#vstobjects input[type=text]').each(function(i, elm){ + var search = $(elm).attr('regexp'); + var prev_value = $(elm).attr('prev_value'); + $(elm).attr('prev_value', $(elm).val()); + var regexp = new RegExp('^('+search+')(.+)('+prev_value+')', 'm'); + advance_options.val(advance_options.val().replace(regexp, '$1$2' + $(elm).val())); + }) + } +}); + +$(document).ready(function() { + if($.cookie('advanced')){ + toggleOptions(); + } +}); diff --git a/web/js/templates.js b/web/js/templates.js index 3c7f252c5..95ca1873b 100644 --- a/web/js/templates.js +++ b/web/js/templates.js @@ -64,14 +64,18 @@ App.Templates.html = {

'+App.Constants.FM_COPY+'

\ \ '], - /*popup_bulk: [''], + popup_bulk_pack: ['
\ +
'+App.Constants.FM_PACK+' (~!:NUMBER_OF_ITEMS~!)
\ +
\ + \ +
\ +
\ + \ +
\ +

'+App.Constants.FM_CANCEL+'

\ +

'+App.Constants.FM_PACK_BUTTON+'

\ +
\ +
'], + popup_unpack: ['
\
'+App.Constants.FM_EXTRACT+' "~!:FILENAME~!" '+App.Constants.FM_INTO_KEYWORD+':
\
\ diff --git a/web/list/web/index.php b/web/list/web/index.php index 1db6c29c7..688dfeaa9 100644 --- a/web/list/web/index.php +++ b/web/list/web/index.php @@ -9,6 +9,7 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); exec (VESTA_CMD."v-list-web-domains $user json", $output, $return_var); $data = json_decode(implode('', $output), true); $data = array_reverse($data,true); +$ips = json_decode(shell_exec(VESTA_CMD.'v-list-sys-ips json'), true); // Render page render_page($user, $TAB, 'list_web'); diff --git a/web/templates/admin/add_cron.html b/web/templates/admin/add_cron.html index 12a56e3f9..fdcbbb29b 100644 --- a/web/templates/admin/add_cron.html +++ b/web/templates/admin/add_cron.html @@ -84,7 +84,7 @@

- +

@@ -153,7 +153,7 @@

- +

@@ -227,7 +227,7 @@

- +

@@ -342,7 +342,7 @@

- +

diff --git a/web/templates/admin/add_dns_rec.html b/web/templates/admin/add_dns_rec.html index 0ebc05526..2f5a00e5a 100644 --- a/web/templates/admin/add_dns_rec.html +++ b/web/templates/admin/add_dns_rec.html @@ -80,6 +80,7 @@ + diff --git a/web/templates/admin/add_mail_acc.html b/web/templates/admin/add_mail_acc.html index 70f2d5bc6..725780eee 100644 --- a/web/templates/admin/add_mail_acc.html +++ b/web/templates/admin/add_mail_acc.html @@ -132,6 +132,7 @@
+ @@ -142,7 +143,7 @@ - + @@ -158,7 +159,7 @@ - + @@ -179,4 +180,4 @@
: william.cage@
:
:
:
-
\ No newline at end of file + diff --git a/web/templates/admin/add_web.html b/web/templates/admin/add_web.html index 40e1c18d5..7551b1848 100644 --- a/web/templates/admin/add_web.html +++ b/web/templates/admin/add_web.html @@ -62,14 +62,10 @@ diff --git a/web/templates/admin/edit_cron.html b/web/templates/admin/edit_cron.html index ef54e9df0..1a6757d6f 100644 --- a/web/templates/admin/edit_cron.html +++ b/web/templates/admin/edit_cron.html @@ -84,7 +84,7 @@

- +

@@ -153,7 +153,7 @@

- +

@@ -225,7 +225,7 @@

- +

@@ -339,7 +339,7 @@

- +

diff --git a/web/templates/admin/edit_server.html b/web/templates/admin/edit_server.html index b21872184..c7fdcbe9d 100644 --- a/web/templates/admin/edit_server.html +++ b/web/templates/admin/edit_server.html @@ -737,7 +737,7 @@ '.__('Buy Licence').' 3$/'.__('month').'
  • - '.__('Buy Lifetime Licence').' 50$ + '.__('Buy Lifetime License').' 50$
  • 2Checkout.com Inc. (Ohio, USA) is a payment facilitator for goods and services provided by vestacp.com.'; diff --git a/web/templates/admin/edit_server_bind9.html b/web/templates/admin/edit_server_bind9.html new file mode 100644 index 000000000..21ffd00e7 --- /dev/null +++ b/web/templates/admin/edit_server_bind9.html @@ -0,0 +1,92 @@ +
    +
    +
    + + + + → ".htmlentities($_SESSION['error_msg']).""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo ""; + } + } + ?> + + + +
    + / + → ".$_SESSION['ok_msg']."
    +
    +
    +
    + +
    + + + +
    + + +
    + + + + + + + + +
    + + +
    +
    + + + + + + + + + + + + + + +
    + +
    + +
    + +
    + +
    + +
    + + + + + + +
    + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/web/templates/admin/edit_server_dovecot.html b/web/templates/admin/edit_server_dovecot.html new file mode 100644 index 000000000..50d9668ef --- /dev/null +++ b/web/templates/admin/edit_server_dovecot.html @@ -0,0 +1,171 @@ +
    +
    +
    + + + + → ".htmlentities($_SESSION['error_msg']).""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo ""; + } + } + ?> + + +
    + / + → ".$_SESSION['ok_msg']."
    +
    +
    +
    + +
    + + + +
    + + +
    + + + + + + + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + + + + + + + +
    + + + +
    +
    +
    +
    diff --git a/web/templates/admin/edit_server_httpd.html b/web/templates/admin/edit_server_httpd.html new file mode 100644 index 000000000..a713b54ef --- /dev/null +++ b/web/templates/admin/edit_server_httpd.html @@ -0,0 +1,86 @@ +
    +
    +
    + + + + → ".htmlentities($_SESSION['error_msg']).""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo ""; + } + } + ?> + + +
    + / + + → ".$_SESSION['ok_msg']."
    +
    +
    +
    + +
    + + + +
    + + +
    + + + + + + + + +
    + + +
    +
    + + + + + + + + + + + +
    + +
    + +
    + +
    + + + + + + + +
    + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/web/templates/admin/edit_server_mysql.html b/web/templates/admin/edit_server_mysql.html new file mode 100644 index 000000000..d5fa8976d --- /dev/null +++ b/web/templates/admin/edit_server_mysql.html @@ -0,0 +1,155 @@ +
    +
    +
    + + + + → ".htmlentities($_SESSION['error_msg']).""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo ""; + } + } + ?> + + +
    + / + → ".$_SESSION['ok_msg']."
    +
    +
    +
    + +
    + + + +
    + + +
    + + + + + + + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + max_connections +
    + +

    +
    + max_user_connections +
    + +

    +
    + wait_timeout +
    + +

    +
    + interactive_timeout +
    + +

    +
    + max_allowed_packet +
    + +

    +
    + +
    + + + + + + + + + + + + + + + +
    + +
    + +
    + +
    + +
    + + + + + + + +
    + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/web/templates/admin/edit_server_nginx.html b/web/templates/admin/edit_server_nginx.html new file mode 100644 index 000000000..3bcd4f6b9 --- /dev/null +++ b/web/templates/admin/edit_server_nginx.html @@ -0,0 +1,213 @@ +
    +
    +
    + + + + → ".htmlentities($_SESSION['error_msg']).""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo ""; + } + } + ?> + + +
    + / + + → ".$_SESSION['ok_msg']."
    +
    +
    +
    + +
    + + + +
    + + +
    + + + + + + + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + worker_processes +
    + +

    +
    + worker_connections +
    + +

    +
    + client_max_body_size +
    + +

    +
    + send_timeout +
    + +

    +
    + proxy_connect_timeout +
    + +

    +
    + proxy_send_timeout +
    + +

    +
    + proxy_read_timeout +
    + +

    +
    + gzip +
    + +

    +
    + gzip_comp_level +
    + +

    +
    + charset +
    + +

    +
    + +
    + + + + + + + + + + + + + + + + +
    + +
    + +
    + +
    + +
    + + + + + + + +
    + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/web/templates/admin/edit_server_pgsql.html b/web/templates/admin/edit_server_pgsql.html new file mode 100644 index 000000000..314729a61 --- /dev/null +++ b/web/templates/admin/edit_server_pgsql.html @@ -0,0 +1,92 @@ +
    +
    +
    + + + + → ".htmlentities($_SESSION['error_msg']).""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo ""; + } + } + ?> + + +
    + / + → ".$_SESSION['ok_msg']."
    +
    +
    +
    + +
    + + + +
    + + +
    + + + + + + + + +
    + + +
    +
    + + + + + + + + + + + + + + +
    + +
    + +
    + +
    + +
    + +
    + + + + + + + +
    + + + +
    +
    +
    +
    diff --git a/web/templates/admin/edit_server_php.html b/web/templates/admin/edit_server_php.html new file mode 100644 index 000000000..ef54c323e --- /dev/null +++ b/web/templates/admin/edit_server_php.html @@ -0,0 +1,175 @@ +
    +
    +
    + + + + → ".htmlentities($_SESSION['error_msg']).""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo ""; + } + } + ?> + + +
    + / + + → ".$_SESSION['ok_msg']."
    +
    +
    +
    + +
    + + + +
    + + +
    + + + + + + + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + max_execution_time +
    + +

    +
    + max_input_time +
    + +

    +
    + memory_limit +
    + +

    +
    + error_reporting +
    + +

    +
    + display_errors +
    + +

    +
    + post_max_size +
    + +

    +
    + upload_max_filesize +
    + +

    +
    + +
    + + + + + + + + + + + + + +
    + +
    + +
    + +
    + +
    + + + + + + +
    + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/web/templates/admin/edit_server_service.html b/web/templates/admin/edit_server_service.html new file mode 100644 index 000000000..76cb75c89 --- /dev/null +++ b/web/templates/admin/edit_server_service.html @@ -0,0 +1,84 @@ +
    +
    +
    + + + + → ".htmlentities($_SESSION['error_msg']).""; + } else { + if (!empty($_SESSION['ok_msg'])) { + echo ""; + } + } + ?> + + +
    + / + → ".$_SESSION['ok_msg']."
    +
    +
    +
    + +
    + + + +
    + + +
    + + + + + + + + +
    + + +
    +
    + + + + + + + + + + +
    + +
    + +
    + +
    + + + + + + + +
    + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/web/templates/admin/edit_web.html b/web/templates/admin/edit_web.html index e3c1843f7..1277b3f46 100644 --- a/web/templates/admin/edit_web.html +++ b/web/templates/admin/edit_web.html @@ -65,15 +65,10 @@ diff --git a/web/templates/admin/list_backup.html b/web/templates/admin/list_backup.html index 0dcac926d..ef00139df 100644 --- a/web/templates/admin/list_backup.html +++ b/web/templates/admin/list_backup.html @@ -1,6 +1,6 @@
    - +
    @@ -19,7 +19,7 @@
    -
    +
    diff --git a/web/templates/admin/list_backup_exclusions.html b/web/templates/admin/list_backup_exclusions.html index 28d075746..449755c7a 100644 --- a/web/templates/admin/list_backup_exclusions.html +++ b/web/templates/admin/list_backup_exclusions.html @@ -1,6 +1,6 @@
    - +
    @@ -77,7 +77,7 @@ $ex_value) { - echo ''.$ex_key.':'.$ex_value.'
    '; + echo ''.$ex_key.' '.$ex_value.'
    '; } ?> diff --git a/web/templates/admin/list_cron.html b/web/templates/admin/list_cron.html index 4ec2de21f..2a0d56b3f 100644 --- a/web/templates/admin/list_cron.html +++ b/web/templates/admin/list_cron.html @@ -1,6 +1,6 @@
    - +
    diff --git a/web/templates/admin/list_firewall.html b/web/templates/admin/list_firewall.html index 8f00ed112..defa4c8e5 100644 --- a/web/templates/admin/list_firewall.html +++ b/web/templates/admin/list_firewall.html @@ -1,6 +1,6 @@
    - +
    diff --git a/web/templates/admin/list_ip.html b/web/templates/admin/list_ip.html index 3d4c78fc6..ab4dfb3d1 100644 --- a/web/templates/admin/list_ip.html +++ b/web/templates/admin/list_ip.html @@ -1,6 +1,6 @@
    - +
    @@ -53,6 +53,7 @@
    +
     ↵
     R
    @@ -136,6 +137,7 @@
    +
     ↵
     S
     R
    @@ -169,8 +171,7 @@
    :
    -
    : -
    +
    :
    diff --git a/web/templates/admin/list_user.html b/web/templates/admin/list_user.html index d52d80986..199db9aff 100644 --- a/web/templates/admin/list_user.html +++ b/web/templates/admin/list_user.html @@ -2,9 +2,9 @@
    '; + echo ''; } else { - echo ''; + echo ''; } ?>